aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public_key/src/public_key.erl
diff options
context:
space:
mode:
authorHenrik Nord <[email protected]>2011-09-20 10:32:59 +0200
committerHenrik Nord <[email protected]>2011-09-20 10:33:04 +0200
commit4b18ef90369c52a9344b851025519f397ccb8543 (patch)
tree59190f15bee6d38bcd9ca54974a429129c51aa1c /lib/public_key/src/public_key.erl
parent5b3f4c143cf7c9cd32437bfc9882f6ceb960648e (diff)
parent6cd2fa9346d51ab936873d96b5c96bf5c15ddcf0 (diff)
downloadotp-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.erl10
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),