Sha256: afbfba38327700b638e446e551c71357b9a11c2aedd356eea7813d6c9150a9e0
Contents?: true
Size: 1.39 KB
Versions: 3
Compression:
Stored size: 1.39 KB
Contents
module Sidetree module Util module JWK module_function # Parse jwk hash object. # The returned jwk does not include the kid. # @param [Hash] params # @return [JSON::JWK] def parse(params) jwk = JSON::JWK.new(params) jwk.delete("kid") jwk end # Validate jwk object as sidetree jwk. # @param [JSON::JWK] jwk # @raise [Sidetree::Error] def validate!(jwk) raise Sidetree::Error unless jwk.is_a?(JSON::JWK) jwk.keys.each do |k| unless %w[kty crv x y].include?(k) raise Sidetree::Error, "JWK Es256k has unknown property" end end unless jwk[:kty] == "EC" raise Sidetree::Error, "JWK Es256k missing or invalid kty" end unless jwk[:crv] == "secp256k1" raise Sidetree::Error, "JWK Es256k missing or invalid crv" end unless jwk[:x].is_a?(String) raise Sidetree::Error, "JWK Es256k missing or invalid type x" end unless jwk[:y].is_a?(String) raise Sidetree::Error, "JWK Es256k missing or invalid type y" end unless jwk[:x].length == 43 raise Sidetree::Error, "JWK Es256k has incorrect length of x" end unless jwk[:y].length == 43 raise Sidetree::Error, "JWK Es256k has incorrect length of y" end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sidetree-0.1.5 | lib/sidetree/util/jwk.rb |
sidetree-0.1.4 | lib/sidetree/util/jwk.rb |
sidetree-0.1.3 | lib/sidetree/util/jwk.rb |