@@ -2,13 +2,14 @@ module WOTS
22 # WOTS+ private key.
33 class PrivateKey
44 include Util
5+ extend Util
56
67 attr_reader :param
78 attr_reader :keys
89
910 def initialize ( param , keys )
10- raise ArgumentError "param must be WOTS::Param." unless param . is_a? ( WOTS ::Param )
11- raise ArgumentError "keys must be Array." unless keys . is_a? ( Array )
11+ raise ArgumentError , "param must be WOTS::Param." unless param . is_a? ( WOTS ::Param )
12+ raise ArgumentError , "keys must be Array." unless keys . is_a? ( Array )
1213 raise ArgumentError , "The length of keys must be the same as param#len." unless keys . length == param . len
1314 keys . each do |key |
1415 raise ArgumentError , "key must be hex string." unless hex_string? ( key )
@@ -24,9 +25,10 @@ def initialize(param, keys)
2425 # @param [String] seed
2526 # @raise ArgumentError
2627 def self . from_seed ( param , seed )
27- raise ArgumentError "param must be WOTS::Param." unless param . is_a? ( WOTS ::Param )
28- raise ArgumentError "seed must be String." unless seed . is_a? ( String )
29- raise ArgumentError "len parameter too large." if param . len . bit_length > 16
28+ raise ArgumentError , "param must be WOTS::Param." unless param . is_a? ( WOTS ::Param )
29+ raise ArgumentError , "seed must be String." unless seed . is_a? ( String )
30+ raise ArgumentError , "seed must be #{ param . n } bytes." unless hex_to_bin ( seed ) . bytesize == param . n
31+ raise ArgumentError , "len parameter too large." if param . len . bit_length > 16
3032
3133 keys = param . len . times . map do |i |
3234 param . prf ( seed , param . to_byte ( i , 32 ) )
0 commit comments