diff options
author | Henrik Nord <[email protected]> | 2011-09-20 10:32:59 +0200 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2011-09-20 10:33:04 +0200 |
commit | 4b18ef90369c52a9344b851025519f397ccb8543 (patch) | |
tree | 59190f15bee6d38bcd9ca54974a429129c51aa1c /lib/public_key/src/public_key.erl | |
parent | 5b3f4c143cf7c9cd32437bfc9882f6ceb960648e (diff) | |
parent | 6cd2fa9346d51ab936873d96b5c96bf5c15ddcf0 (diff) | |
download | otp-4b18ef90369c52a9344b851025519f397ccb8543.tar.gz otp-4b18ef90369c52a9344b851025519f397ccb8543.tar.bz2 otp-4b18ef90369c52a9344b851025519f397ccb8543.zip |
Merge branch 'cr/md2-With-RSA-Encryption' into dev
* cr/md2-With-RSA-Encryption:
Document crypto:sha_mac_96/2 to compute an SHA MAC, not MD5
Support md2WithRSAEncryption certificates in public_key
Support 'md2' hash in crypto:rsa_sign/3 and crypto:rsa_verify/4
OTP-9554
Diffstat (limited to 'lib/public_key/src/public_key.erl')
-rw-r--r-- | lib/public_key/src/public_key.erl | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/public_key/src/public_key.erl b/lib/public_key/src/public_key.erl index 33fcce2c44..940efffcd0 100644 --- a/lib/public_key/src/public_key.erl +++ b/lib/public_key/src/public_key.erl @@ -55,7 +55,7 @@ -type rsa_padding() :: 'rsa_pkcs1_padding' | 'rsa_pkcs1_oaep_padding' | 'rsa_no_padding'. -type public_crypt_options() :: [{rsa_pad, rsa_padding()}]. --type rsa_digest_type() :: 'md5' | 'sha'. +-type rsa_digest_type() :: 'md2' | 'md5' | 'sha'. -type dss_digest_type() :: 'none' | 'sha'. -define(UINT32(X), X:32/unsigned-big-integer). @@ -307,7 +307,8 @@ encrypt_private(PlainText, #'RSAPrivateKey'{modulus = N, sign(PlainText, DigestType, #'RSAPrivateKey'{modulus = N, publicExponent = E, privateExponent = D}) when is_binary(PlainText), - (DigestType == md5 orelse + (DigestType == md2 orelse + DigestType == md5 orelse DigestType == sha) -> crypto:rsa_sign(DigestType, sized_binary(PlainText), [crypto:mpint(E), @@ -335,7 +336,10 @@ sign(PlainText, sha, #'DSAPrivateKey'{p = P, q = Q, g = G, x = X}) %%-------------------------------------------------------------------- verify(PlainText, DigestType, Signature, #'RSAPublicKey'{modulus = Mod, publicExponent = Exp}) - when is_binary (PlainText), DigestType == sha; DigestType == md5 -> + when is_binary(PlainText), + (DigestType == md2 orelse + DigestType == md5 orelse + DigestType == sha) -> crypto:rsa_verify(DigestType, sized_binary(PlainText), sized_binary(Signature), |