Module: JsonWebToken::Algorithm::Rsa

Extended by:
Common
Defined in:
lib/json_web_token/algorithm/rsa.rb

Overview

Sign or verify a JSON Web Signature (JWS) structure using RSASSA-PKCS-v1_5

Constant Summary collapse

KEY_BITS_MIN =
2048

Constants included from Common

Common::SHA_BITS

Class Method Summary collapse

Methods included from Common

digest_new, validate_key, validate_sha_bits

Class Method Details

.sign(sha_bits, private_key, signing_input) ⇒ BinaryString

Returns a digital signature, or mac.

Examples:

Rsa.sign('256', < private_key >, 'signing_input').bytes.length
# => 256

Parameters:

  • sha_bits (String)

    desired security level in bits of the signature scheme

  • private_key (OpenSSL::PKey::RSA)

    key used to sign a digital signature, or mac

  • signing_input (String)

    input payload for a mac computation

Returns:

  • (BinaryString)

    a digital signature, or mac



21
22
23
24
# File 'lib/json_web_token/algorithm/rsa.rb', line 21

def sign(sha_bits, private_key, signing_input)
  validate_key(sha_bits, private_key)
  private_key.sign(digest_new(sha_bits), signing_input)
end

.verify?(mac, sha_bits, public_key, signing_input) ⇒ Boolean

Returns a predicate to verify the signing_input for a given mac.

Examples:

Rsa.verify?(< binary_string >, '256', < public_key >, 'signing_input')
# => true

Parameters:

  • mac (BinaryString)

    a digital signature, or mac

  • sha_bits (String)

    desired security level in bits of the signature scheme

  • public_key (OpenSSL::PKey::RSA)

    key used to verify a digital signature, or mac

  • signing_input (String)

    input payload for a mac computation

Returns:

  • (Boolean)

    a predicate to verify the signing_input for a given mac



34
35
36
37
# File 'lib/json_web_token/algorithm/rsa.rb', line 34

def verify?(mac, sha_bits, public_key, signing_input)
  validate_key(sha_bits, public_key)
  public_key.verify(digest_new(sha_bits), mac, signing_input)
end