|
17 | 17 | import java.security.KeyFactory; |
18 | 18 | import java.security.KeyPair; |
19 | 19 | import java.security.KeyPairGenerator; |
20 | | -import java.security.MessageDigest; |
21 | 20 | import java.security.NoSuchAlgorithmException; |
22 | 21 | import java.security.PrivateKey; |
23 | 22 | import java.security.PublicKey; |
24 | 23 |
|
25 | | -import java.security.SecureRandom; |
26 | | -import java.security.SignatureException; |
27 | 24 | import java.security.interfaces.ECPrivateKey; |
28 | 25 | import java.security.interfaces.ECPublicKey; |
29 | 26 | import java.security.spec.ECGenParameterSpec; |
@@ -427,7 +424,7 @@ public PKeyEC generate_key(final ThreadContext context) { |
427 | 424 | try { |
428 | 425 | ECGenParameterSpec genSpec = new ECGenParameterSpec(getCurveName()); |
429 | 426 | KeyPairGenerator gen = SecurityHelper.getKeyPairGenerator("EC"); // "BC" |
430 | | - gen.initialize(genSpec, new SecureRandom()); |
| 427 | + gen.initialize(genSpec, OpenSSL.getSecureRandom(context)); |
431 | 428 | KeyPair pair = gen.generateKeyPair(); |
432 | 429 | this.publicKey = (ECPublicKey) pair.getPublic(); |
433 | 430 | this.privateKey = pair.getPrivate(); |
@@ -537,11 +534,8 @@ public IRubyObject dh_compute_key(final ThreadContext context, final IRubyObject |
537 | 534 | final byte[] secret = agreement.generateSecret(); |
538 | 535 | return StringHelper.newString(context.runtime, secret); |
539 | 536 | } |
540 | | - catch (NoSuchAlgorithmException ex) { |
541 | | - throw newECError(context.runtime, ex.toString()); |
542 | | - } |
543 | 537 | catch (InvalidKeyException ex) { |
544 | | - throw newECError(context.runtime, ex.toString()); |
| 538 | + throw newECError(context.runtime, "invalid key: " + ex.getMessage()); |
545 | 539 | } |
546 | 540 | catch (GeneralSecurityException ex) { |
547 | 541 | throw newECError(context.runtime, ex.toString()); |
|
0 commit comments