cztop 0.9.0 → 0.9.1

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: d8c82a0f35f091e2d464beabb00adaf5ad0f0b35
4
- data.tar.gz: aa92e0a78ca5ca7dcc00441d16e004085024a60a
3
+ metadata.gz: 1797c227b1864ce06f37506793448b449d067778
4
+ data.tar.gz: 79c7e8d0ac13492a4255edad4e28edf6a06c12b9
5
5
  SHA512:
6
- metadata.gz: 792e7990a6451bd7f02b638e02c782c95c9d54cbc009aa371de33234ed84b06d88737f830406363e96b44425f643c051948a57aa81719e9059627c48252a308b
7
- data.tar.gz: 1af4724a36e2959e1e94f552c9289e51f98aa5565df5bb6c14cc8a99130401fd4713fa3f75090e2dcdc9cc466521d7e2a51bea756df20d34a10767767d3822d8
6
+ metadata.gz: bd9cfb68026997aaeec79b3f09aebb94070586411e0a79440705637ec2e0f9e91625f82f98d7a8eaf47ad3fd76700197670c3da663ff35b82bd3748733d63095
7
+ data.tar.gz: 10f4e7752dba82961a22ca38c0e21745581ec48fde1b55f2918ecab4a70e040e24a876dc99b0ee987d34543e5235f5876590746309e3592c28074ac24db9c9fd
data/README.md CHANGED
@@ -13,38 +13,6 @@ mechanisms (like CURVE).
13
13
  [![Coverage Status](https://coveralls.io/repos/paddor/cztop/badge.svg?branch=master&service=github)](https://coveralls.io/github/paddor/cztop?branch=master)
14
14
  [![ISC License](https://img.shields.io/badge/license-ISC_License-blue.svg)](LICENSE)
15
15
 
16
- ## Reasons
17
-
18
- Why another CZMQ Ruby binding? Here is a list of existing projects I found and
19
- the issues with them, from my point of view:
20
-
21
- * [Asmod4n/ruby-ffi-czmq](https://github.com/Asmod4n/ruby-ffi-czmq)
22
- * outdated
23
- * according to its author, it's an "abomination"
24
- * [methodmissing/rbczmq](https://github.com/methodmissing/rbczmq)
25
- * no support for security features (see [methodmissing/rbczmq#28](https://github.com/methodmissing/rbczmq/issues/28))
26
- * no JRuby support (see [methodmissing/rbczmq#48](https://github.com/methodmissing/rbczmq/issues/48))
27
- * doesn't feel like Ruby
28
- * [mtortonesi/ruby-czmq](https://github.com/mtortonesi/ruby-czmq)
29
- * no tests
30
- * no documentation
31
- * outdated
32
- * doesn't feel like Ruby
33
- * [chuckremes/ffi-rzmq](https://github.com/chuckremes/ffi-rzmq)
34
- * support discontinued
35
- * low level ZMQ gem, not CZMQ
36
-
37
- Furthermore, I knew about the generated low-level Ruby FFI binding in the
38
- [zeromq/czmq](https://github.com/zeromq/czmq) repository. I wanted to make use
39
- of it because I love that it's generated (and thus, most likely correct
40
- and up-to-date). Unfortunately, it was in pretty bad shape and missing a few
41
- CZMQ classes.
42
-
43
- So I decided to improve the quality and usability of the binding and add the
44
- missing classes. The result is
45
- [czmq-ffi-gen](https://github.com/paddor/czmq-ffi-gen) which provides a solid
46
- foundation for CZTop.
47
-
48
16
  ## Goals
49
17
 
50
18
  Here are some some of the goals I have/had in mind for this library:
@@ -371,6 +339,38 @@ $
371
339
  * can be used in a pipeline (limited memory usage)
372
340
  * reusable interface: `Z85::Pipe`
373
341
 
342
+ ## Reasons
343
+
344
+ Why another CZMQ Ruby binding? Here is a list of existing projects I found and
345
+ the issues with them, from my point of view:
346
+
347
+ * [Asmod4n/ruby-ffi-czmq](https://github.com/Asmod4n/ruby-ffi-czmq)
348
+ * outdated
349
+ * according to its author, it's an "abomination"
350
+ * [methodmissing/rbczmq](https://github.com/methodmissing/rbczmq)
351
+ * no support for security features (see [methodmissing/rbczmq#28](https://github.com/methodmissing/rbczmq/issues/28))
352
+ * no JRuby support (see [methodmissing/rbczmq#48](https://github.com/methodmissing/rbczmq/issues/48))
353
+ * doesn't feel like Ruby
354
+ * [mtortonesi/ruby-czmq](https://github.com/mtortonesi/ruby-czmq)
355
+ * no tests
356
+ * no documentation
357
+ * outdated
358
+ * doesn't feel like Ruby
359
+ * [chuckremes/ffi-rzmq](https://github.com/chuckremes/ffi-rzmq)
360
+ * support discontinued
361
+ * low level ZMQ gem, not CZMQ
362
+
363
+ Furthermore, I knew about the generated low-level Ruby FFI binding in the
364
+ [zeromq/czmq](https://github.com/zeromq/czmq) repository. I wanted to make use
365
+ of it because I love that it's generated (and thus, most likely correct
366
+ and up-to-date). Unfortunately, it was in pretty bad shape and missing a few
367
+ CZMQ classes.
368
+
369
+ So I decided to improve the quality and usability of the binding and add the
370
+ missing classes. The result is
371
+ [czmq-ffi-gen](https://github.com/paddor/czmq-ffi-gen) which provides a solid
372
+ foundation for CZTop.
373
+
374
374
 
375
375
  ## Contributing
376
376
 
@@ -20,15 +20,21 @@ module CZTop
20
20
  from_ffi_delegate(ptr)
21
21
  end
22
22
 
23
- # Creates a new certificate from the given keys.
24
- # @param public_key [String] binary public key (32 bytes)
25
- # @param secret_key [String] binary secret key (32 bytes)
23
+ # Creates a new certificate from the given keys (either binary or in Z85
24
+ # format).
25
+ # @param public_key [String] binary public key (32 or 40 bytes)
26
+ # @param secret_key [String, nil] binary secret key (32 or 40 bytes), or
27
+ # nil to initialize a public key only certificate
26
28
  # @return [Certificate] the fresh certificate
27
29
  # @raise [ArgumentError] if keys passed are invalid
28
30
  # @raise [SystemCallError] if this fails
29
- def self.new_from(public_key, secret_key)
31
+ def self.new_from(public_key, secret_key = nil)
30
32
  raise ArgumentError, "no public key given" unless public_key
31
- raise ArgumentError, "no secret key given" unless secret_key
33
+ secret_key ||= "\x00" * 32 # no secret key given, provide 32 null bytes
34
+
35
+ # convert Z85 => binary
36
+ public_key = Z85.decode(public_key) if public_key.bytesize == 40
37
+ secret_key = Z85.decode(secret_key) if secret_key.bytesize == 40
32
38
 
33
39
  raise ArgumentError, "invalid public key size" if public_key.bytesize != 32
34
40
  raise ArgumentError, "invalid secret key size" if secret_key.bytesize != 32
data/lib/cztop/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CZTop
2
- VERSION = "0.9.0"
2
+ VERSION = "0.9.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cztop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrik Wenger