lib/rbnacl/boxes/curve25519xsalsa20poly1305/public_key.rb in rbnacl-3.1.2 vs lib/rbnacl/boxes/curve25519xsalsa20poly1305/public_key.rb in rbnacl-3.2.0

- old
+ new

@@ -1,53 +1,55 @@ # encoding: binary module RbNaCl - # RbNaCl::Box public key. Send it (securely!) to your friends. - # - # This class stores the NaCL public key, and provides some convenience - # functions for working with it. - class Boxes::Curve25519XSalsa20Poly1305::PublicKey + module Boxes + class Curve25519XSalsa20Poly1305 + # RbNaCl::Box public key. Send it (securely!) to your friends. + # + # This class stores the NaCL public key, and provides some convenience + # functions for working with it. + class PublicKey + include KeyComparator + include Serializable - include KeyComparator - include Serializable + # The size of the key, in bytes + BYTES = Boxes::Curve25519XSalsa20Poly1305::PUBLICKEYBYTES - # The size of the key, in bytes - BYTES = Boxes::Curve25519XSalsa20Poly1305::PUBLICKEYBYTES + # Initializes a new PublicKey for key operations. + # + # Takes the (optionally encoded) public key bytes. This can be shared with + # many people and used to establish key pairs with their private key, for + # the exchanging of messages using a RbNaCl::Box + # + # @param public_key [String] The public key + # + # @raise [RbNaCl::LengthError] If the key is not valid after decoding. + # + # @return A new PublicKey + def initialize(public_key) + @public_key = Util.check_string(public_key, BYTES, "Public key") + end - # Initializes a new PublicKey for key operations. - # - # Takes the (optionally encoded) public key bytes. This can be shared with - # many people and used to establish key pairs with their private key, for - # the exchanging of messages using a RbNaCl::Box - # - # @param public_key [String] The public key - # - # @raise [RbNaCl::LengthError] If the key is not valid after decoding. - # - # @return A new PublicKey - def initialize(public_key) - @public_key = Util.check_string(public_key, BYTES, "Public key") - end + # The raw bytes of the key + # + # @return [String] the raw bytes. + def to_bytes + @public_key + end - # The raw bytes of the key - # - # @return [String] the raw bytes. - def to_bytes - @public_key - end + # The crypto primitive the PublicKey class is to be used for + # + # @return [Symbol] The primitive + def self.primitive + :curve25519xsalsa20poly1305 + end - # The crypto primitive the PublicKey class is to be used for - # - # @return [Symbol] The primitive - def self.primitive - :curve25519xsalsa20poly1305 + # The crypto primitive this PublicKey is to be used for. + # + # @return [Symbol] The primitive + def primitive + self.class.primitive + end + end end - - # The crypto primitive this PublicKey is to be used for. - # - # @return [Symbol] The primitive - def primitive - self.class.primitive - end end - end