ffi-czmq 0.1.5.pre → 0.1.6.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 444198027bcdd0c5906ffa6b56ddde5880b694b6
4
- data.tar.gz: 2e4e614f95750ee43be4a7258922fdfa8a303a7b
3
+ metadata.gz: 23a96efb8c851990c1b881966d411b8e48aad1df
4
+ data.tar.gz: 51d1b99f852880126dc84a6ad2bc0d519faa0d51
5
5
  SHA512:
6
- metadata.gz: 5f3c6f5ba8cfa8945ef42e27d6762acce9ecdb6a83be85db0ae05444e36cfd9249a5a854d084488d6db4d2f151a48bd8f3c0621c113efb8691e46fc4b3b3ec54
7
- data.tar.gz: 5dc16ab6ac77219739be34dbf5c44eadb4b1c45a7c4a8f55c271093258027b96931fd6419f75874231719f6299685084038e1da9cbd0239a7e93b89980873a97
6
+ metadata.gz: 19d166c0bde022c56e4d68210c1d1f276311a0c512f80adcbde2b06b9c6a6f6876e5061aee78a9b87e7b3603fc894a9c4d5ff51eec566ab3f8ed2891ce8cecd9
7
+ data.tar.gz: 0384d25d02a8343f87d2d38326f73be2ed6a5bd87719d952cfb8c1e5efb4c9ae14cafaef2f2dbe9372770514c41459ca4caffabacf4289d30a798d2e4cd3d13e
@@ -44,6 +44,12 @@ module CZMQ
44
44
  strerror(errno)
45
45
  end
46
46
 
47
+ ZERO = "\0".force_encoding(Encoding::ASCII_8BIT).freeze
48
+
49
+ def zeros(n)
50
+ ZERO * n
51
+ end
52
+
47
53
  def bin2hex(bytes)
48
54
  String(bytes).unpack(HEXY).first
49
55
  end
@@ -1,3 +1,3 @@
1
1
  module CZMQ
2
- VERSION = Gem::Version.new('0.1.5.pre')
2
+ VERSION = Gem::Version.new('0.1.6.pre')
3
3
  end
@@ -8,15 +8,20 @@ module CZMQ
8
8
  czmq_constructor
9
9
  czmq_destructor
10
10
 
11
- czmq_function :public_txt, :public_txt, [:pointer], :string
12
- czmq_function :secret_txt, :secret_txt, [:pointer], :string
13
- czmq_function :load_zcert, :load, [:string], :pointer
14
- czmq_function :save, :save, [:pointer, :string], :int
15
- czmq_function :save_public, :save_public, [:pointer, :string], :int
16
- czmq_function :save_secret, :save_secret, [:pointer, :string], :int
17
- czmq_function :apply, :apply, [:pointer, :pointer], :void
18
- czmq_function :dup_zcert, :dup, [:pointer], :pointer
19
- czmq_function :eq, :eq, [:pointer, :pointer], :bool
11
+ czmq_function :new_from_zcert, :new_from, [:buffer_in, :buffer_in], :pointer
12
+ czmq_function :public_key, :public_key, [:pointer], :pointer
13
+ czmq_function :secret_key, :secret_key, [:pointer], :pointer
14
+ czmq_function :public_txt, :public_txt, [:pointer], :string
15
+ czmq_function :secret_txt, :secret_txt, [:pointer], :string
16
+ czmq_function :set_meta, :set_meta, [:pointer, :string, :string, :varargs], :void
17
+ czmq_function :meta, :meta, [:pointer, :string], :string
18
+ czmq_function :load_zcert, :load, [:string], :pointer
19
+ czmq_function :save, :save, [:pointer, :string], :int
20
+ czmq_function :save_public, :save_public, [:pointer, :string], :int
21
+ czmq_function :save_secret, :save_secret, [:pointer, :string], :int
22
+ czmq_function :apply, :apply, [:pointer, :pointer], :void
23
+ czmq_function :dup_zcert, :dup, [:pointer], :pointer
24
+ czmq_function :eq, :eq, [:pointer, :pointer], :bool
20
25
 
21
26
  def self.convert(cert)
22
27
  if Utils.check_for_pointer(cert)
@@ -31,6 +36,10 @@ module CZMQ
31
36
  end
32
37
  end
33
38
 
39
+ def self.new_from(public_key, secret_key)
40
+ new_from_czmq_obj(new_from_zcert(public_key, secret_key))
41
+ end
42
+
34
43
  def self.load(filename)
35
44
  unless (zcert = load_zcert(filename)).null?
36
45
  new_from_czmq_obj(zcert)
@@ -1,5 +1,5 @@
1
- require_relative 'utils'
2
- require_relative 'libczmq'
1
+ require_relative 'libczmq'
2
+ require_relative 'zcert'
3
3
 
4
4
  module CZMQ
5
5
  class Zcertstore
@@ -8,7 +8,16 @@ module CZMQ
8
8
  czmq_constructor [:string]
9
9
  czmq_destructor
10
10
 
11
- czmq_function :lookup, :lookup, [:pointer, :string], :pointer
11
+ czmq_function :lookup_zcert, :lookup, [:pointer, :string], :pointer
12
12
  czmq_function :insert_zcert, :insert, [:pointer, :pointer], :void
13
+ czmq_function :print, :print, [:pointer], :void
14
+
15
+ def lookup(public_key)
16
+ Zcert.new_from_czmq_obj(lookup_zcert(public_key))
17
+ end
18
+
19
+ def insert(zcert)
20
+ insert_zcert(Zcert.convert(zcert))
21
+ end
13
22
  end
14
23
  end
@@ -1,4 +1,5 @@
1
1
  require 'ffi'
2
+ require_relative 'czmq/utils'
2
3
 
3
4
  module Libzmq
4
5
  extend FFI::Library
@@ -58,17 +59,20 @@ module Libzmq
58
59
 
59
60
  def z85_decode(str)
60
61
  if (str.bytesize % 5 == 0)
61
- buffer = FFI::MemoryPointer.new(:uint8, (str.bytesize * 0.8))
62
+ buffer = CZMQ::Utils.zeros(str.bytesize * 0.8)
62
63
  zmq_z85_decode(buffer, str)
63
64
  buffer
65
+ else
66
+ raise ArgumentError, "str=#{str} bytesize=#{str.bytesize} is not divisible by 5", caller
64
67
  end
65
68
  end
66
69
 
67
70
  def z85_encode(data)
68
71
  size = data.respond_to?(:bytesize) ? data.bytesize : data.size
69
72
  if (size % 4 == 0)
70
- buffer = FFI::MemoryPointer.new(:char, (size * 1.25) + 1)
71
- zmq_z85_encode(buffer, data, size)
73
+ zmq_z85_encode(CZMQ::Utils.zeros(size * 1.25 + 1), data, size)
74
+ else
75
+ raise ArgumentError, "data=#{data} size=#{size} is not divisible by 4", caller
72
76
  end
73
77
  end
74
78
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-czmq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5.pre
4
+ version: 0.1.6.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hendrik
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-21 00:00:00.000000000 Z
12
+ date: 2014-12-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi