jose_jwa_pkcs1 (JOSE v1.11.12)

View Source

PKCS #1: RSA Cryptography Specifications Version 2.1 See RFC 3447: https://tools.ietf.org/html/rfc3447

Summary

Types

rsa_digest_type/0

-type rsa_digest_type() :: md5 | sha | sha224 | sha256 | sha384 | sha512.

rsa_hash_fun/0

-type rsa_hash_fun() ::
          rsa_digest_type() | {hmac, rsa_digest_type(), iodata()} | fun((iodata()) -> binary()).

rsa_private_key/0

-type rsa_private_key() ::
          #'RSAPrivateKey'{version :: term(),
                           modulus :: term(),
                           publicExponent :: term(),
                           privateExponent :: term(),
                           prime1 :: term(),
                           prime2 :: term(),
                           exponent1 :: term(),
                           exponent2 :: term(),
                           coefficient :: term(),
                           otherPrimeInfos :: term()}.

rsa_public_key/0

-type rsa_public_key() :: #'RSAPublicKey'{modulus :: term(), publicExponent :: term()}.

Functions

decrypt_private(CipherText, RSAPrivateKey, Options)

eme_oaep_decode(Hash, EM, Label, K)

-spec eme_oaep_decode(Hash, EM, Label, K) -> M | error
                         when
                             Hash :: rsa_hash_fun(),
                             EM :: binary(),
                             Label :: binary(),
                             K :: integer(),
                             M :: binary().

eme_oaep_encode(Hash, DM, Label, Seed, K)

-spec eme_oaep_encode(Hash, DM, Label, Seed, K) -> {ok, EM} | {error, Reason}
                         when
                             Hash :: rsa_hash_fun(),
                             DM :: binary(),
                             Label :: binary(),
                             Seed :: binary(),
                             K :: integer(),
                             EM :: binary(),
                             Reason :: term().

eme_pkcs1_decode(EM, K)

-spec eme_pkcs1_decode(EM, K) -> M | error when EM :: binary(), K :: integer(), M :: binary().

eme_pkcs1_encode(DM, K)

-spec eme_pkcs1_encode(DM, K) -> {ok, EM} | {error, Reason}
                          when DM :: binary(), K :: integer(), EM :: binary(), Reason :: term().

emsa_pkcs1_encode(Hash, Algorithm, Message, EMBits)

-spec emsa_pkcs1_encode(Hash, Algorithm, Message, EMBits) -> {ok, EM} | {error, Reason}
                           when
                               Hash :: rsa_hash_fun(),
                               Algorithm :: md5 | sha | sha1 | sha256 | sha384 | sha512 | binary(),
                               Message :: binary(),
                               EMBits :: integer(),
                               EM :: binary(),
                               Reason :: term().

emsa_pss_encode(Hash, Message, EMBits)

-spec emsa_pss_encode(Hash, Message, EMBits) -> {ok, EM} | {error, Reason}
                         when
                             Hash :: rsa_hash_fun(),
                             Message :: binary(),
                             EMBits :: integer(),
                             EM :: binary(),
                             Reason :: term().

emsa_pss_encode(Hash, Message, Salt, EMBits)

-spec emsa_pss_encode(Hash, Message, Salt, EMBits) -> {ok, EM} | {error, Reason}
                         when
                             Hash :: rsa_hash_fun(),
                             Message :: binary(),
                             Salt :: binary() | integer(),
                             EMBits :: integer(),
                             EM :: binary(),
                             Reason :: term().

emsa_pss_verify(Hash, Message, EM, EMBits)

-spec emsa_pss_verify(Hash, Message, EM, EMBits) -> boolean()
                         when
                             Hash :: rsa_hash_fun(),
                             Message :: binary(),
                             EM :: binary(),
                             EMBits :: integer().

emsa_pss_verify(Hash, Message, EM, SaltLen, EMBits)

-spec emsa_pss_verify(Hash, Message, EM, SaltLen, EMBits) -> boolean()
                         when
                             Hash :: rsa_hash_fun(),
                             Message :: binary(),
                             EM :: binary(),
                             SaltLen :: integer(),
                             EMBits :: integer().

encrypt_public(PlainText, RSAPublicKey, Options)

mgf1(Hash, Seed, MaskLen)

-spec mgf1(Hash, Seed, MaskLen) -> {ok, binary()} | {error, mask_too_long}
              when Hash :: rsa_hash_fun(), Seed :: binary(), MaskLen :: pos_integer().

rsaes_oaep_decrypt(Hash, CipherText, RSAPrivateKey)

-spec rsaes_oaep_decrypt(Hash, CipherText, RSAPrivateKey) -> PlainText
                            when
                                Hash :: rsa_hash_fun(),
                                CipherText :: binary(),
                                RSAPrivateKey :: rsa_private_key(),
                                PlainText :: binary().

rsaes_oaep_decrypt(Hash, CipherText, Label, RSAPrivateKey)

-spec rsaes_oaep_decrypt(Hash, CipherText, Label, RSAPrivateKey) -> PlainText
                            when
                                Hash :: rsa_hash_fun(),
                                CipherText :: binary(),
                                Label :: binary(),
                                RSAPrivateKey :: rsa_private_key(),
                                PlainText :: binary().

rsaes_oaep_encrypt(Hash, PlainText, RSAPublicKey)

-spec rsaes_oaep_encrypt(Hash, PlainText, RSAPublicKey) -> CipherText
                            when
                                Hash :: rsa_hash_fun(),
                                PlainText :: binary(),
                                RSAPublicKey :: rsa_public_key(),
                                CipherText :: binary().

rsaes_oaep_encrypt(Hash, PlainText, Label, RSAPublicKey)

-spec rsaes_oaep_encrypt(Hash, PlainText, Label, RSAPublicKey) -> CipherText
                            when
                                Hash :: rsa_hash_fun(),
                                PlainText :: binary(),
                                Label :: binary(),
                                RSAPublicKey :: rsa_public_key(),
                                CipherText :: binary().

rsaes_oaep_encrypt(Hash, PlainText, Label, Seed, RSAPublicKey)

-spec rsaes_oaep_encrypt(Hash, PlainText, Label, Seed, RSAPublicKey) -> CipherText
                            when
                                Hash :: rsa_hash_fun(),
                                PlainText :: binary(),
                                Label :: binary(),
                                Seed :: binary(),
                                RSAPublicKey :: rsa_public_key(),
                                CipherText :: binary().

rsaes_pkcs1_decrypt(CipherText, RSAPrivateKey)

-spec rsaes_pkcs1_decrypt(CipherText, RSAPrivateKey) -> PlainText
                             when
                                 CipherText :: binary(),
                                 RSAPrivateKey :: rsa_private_key(),
                                 PlainText :: binary().

rsaes_pkcs1_encrypt(PlainText, RSAPublicKey)

-spec rsaes_pkcs1_encrypt(PlainText, RSAPublicKey) -> CipherText
                             when
                                 PlainText :: binary(),
                                 RSAPublicKey :: rsa_public_key(),
                                 CipherText :: binary().

rsassa_pkcs1_sign(Hash, Message, RSAPrivateKey)

-spec rsassa_pkcs1_sign(Hash, Message, RSAPrivateKey) -> {ok, Signature} | {error, Reason}
                           when
                               Hash :: rsa_hash_fun(),
                               Message :: binary(),
                               RSAPrivateKey :: rsa_private_key(),
                               Signature :: binary(),
                               Reason :: term().

rsassa_pkcs1_sign(Hash, Algorithm, Message, RSAPrivateKey)

-spec rsassa_pkcs1_sign(Hash, Algorithm, Message, RSAPrivateKey) -> {ok, Signature} | {error, Reason}
                           when
                               Hash :: rsa_hash_fun(),
                               Algorithm :: md5 | sha | sha1 | sha256 | sha384 | sha512 | binary(),
                               Message :: binary(),
                               RSAPrivateKey :: rsa_private_key(),
                               Signature :: binary(),
                               Reason :: term().

rsassa_pkcs1_verify(Hash, Message, Signature, RSAPublicKey)

-spec rsassa_pkcs1_verify(Hash, Message, Signature, RSAPublicKey) -> boolean()
                             when
                                 Hash :: rsa_hash_fun(),
                                 Message :: binary(),
                                 Signature :: binary(),
                                 RSAPublicKey :: rsa_public_key().

rsassa_pkcs1_verify(Hash, Algorithm, Message, Signature, RSAPublicKey)

-spec rsassa_pkcs1_verify(Hash, Algorithm, Message, Signature, RSAPublicKey) -> boolean()
                             when
                                 Hash :: rsa_hash_fun(),
                                 Algorithm :: md5 | sha | sha1 | sha256 | sha384 | sha512 | binary(),
                                 Message :: binary(),
                                 Signature :: binary(),
                                 RSAPublicKey :: rsa_public_key().

rsassa_pss_sign(Hash, Message, RSAPrivateKey)

-spec rsassa_pss_sign(Hash, Message, RSAPrivateKey) -> {ok, Signature} | {error, Reason}
                         when
                             Hash :: rsa_hash_fun(),
                             Message :: binary(),
                             RSAPrivateKey :: rsa_private_key(),
                             Signature :: binary(),
                             Reason :: term().

rsassa_pss_sign(Hash, Message, Salt, RSAPrivateKey)

-spec rsassa_pss_sign(Hash, Message, Salt, RSAPrivateKey) -> {ok, Signature} | {error, Reason}
                         when
                             Hash :: rsa_hash_fun(),
                             Message :: binary(),
                             Salt :: binary() | integer(),
                             RSAPrivateKey :: rsa_private_key(),
                             Signature :: binary(),
                             Reason :: term().

rsassa_pss_verify(Hash, Message, Signature, RSAPublicKey)

-spec rsassa_pss_verify(Hash, Message, Signature, RSAPublicKey) -> boolean()
                           when
                               Hash :: rsa_hash_fun(),
                               Message :: binary(),
                               Signature :: binary(),
                               RSAPublicKey :: rsa_public_key().

rsassa_pss_verify(Hash, Message, Signature, SaltLen, RSAPublicKey)

-spec rsassa_pss_verify(Hash, Message, Signature, SaltLen, RSAPublicKey) -> boolean()
                           when
                               Hash :: rsa_hash_fun(),
                               Message :: binary(),
                               Signature :: binary(),
                               SaltLen :: integer(),
                               RSAPublicKey :: rsa_public_key().

sign(Message, DigestType, RSAPrivateKey, Options)

verify(Message, DigestType, Signature, RSAPublicKey, Options)