Method: JOSE::JWK::KTY_OKP_Ed448.from_map
- Defined in:
- lib/jose/jwk/kty_okp_ed448.rb
.from_map(fields) ⇒ Object
JOSE::JWK callbacks
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/jose/jwk/kty_okp_ed448.rb', line 9 def self.from_map(fields) if fields['kty'] == 'OKP' and fields['crv'] == 'Ed448' and fields['x'].is_a?(String) pk = JOSE.urlsafe_decode64(fields['x']) secret = nil if fields['d'].is_a?(String) secret = JOSE.urlsafe_decode64(fields['d']) end if pk.bytesize == PK_BYTES and (secret.nil? or secret.bytesize == SECRET_BYTES) if secret.nil? return JOSE::JWK::KTY_OKP_Ed448.new(pk), fields.except('kty', 'crv', 'x') else return JOSE::JWK::KTY_OKP_Ed448.new(secret + pk), fields.except('kty', 'crv', 'x', 'd') end end end raise ArgumentError, "invalid 'OKP' crv 'Ed448' JWK" end |