Module: JsonWebToken::Algorithm::Ecdsa
- Extended by:
- Common, Format::Asn1
- Defined in:
- lib/json_web_token/algorithm/ecdsa.rb
Overview
Sign or verify a JSON Web Signature (JWS) structure using ECDSA
Constant Summary collapse
- MAC_BYTE_COUNT =
{ '256' => 64, # prime256v1 aka: secp256r1 '384' => 96, # secp384r1 '512' => 132 # secp521r1 note difference (not 128) due to using 521-bit integers }
Constants included from Common
Constants included from Format::Asn1
Class Method Summary collapse
-
.sign(sha_bits, private_key, signing_input) ⇒ BinaryString
A digital signature, or mac.
-
.verify?(mac, sha_bits, public_key, signing_input) ⇒ Boolean
A predicate to verify the signing_input for a given
mac
.
Methods included from Common
digest_new, validate_key, validate_sha_bits
Methods included from Format::Asn1
der_to_signature, signature_to_der
Class Method Details
.sign(sha_bits, private_key, signing_input) ⇒ BinaryString
Returns a digital signature, or mac.
28 29 30 31 32 |
# File 'lib/json_web_token/algorithm/ecdsa.rb', line 28 def sign(sha_bits, private_key, signing_input) validate_key(sha_bits, private_key) der = private_key.dsa_sign_asn1(ssl_digest_hash sha_bits, signing_input) der_to_signature(der, sha_bits) end |
.verify?(mac, sha_bits, public_key, signing_input) ⇒ Boolean
Returns a predicate to verify the signing_input for a given mac
.
42 43 44 45 46 47 |
# File 'lib/json_web_token/algorithm/ecdsa.rb', line 42 def verify?(mac, sha_bits, public_key, signing_input) validate_key(sha_bits, public_key) validate_signature_size(mac, sha_bits) der = signature_to_der(mac, sha_bits) public_key.dsa_verify_asn1(ssl_digest_hash(sha_bits, signing_input), der) end |