|
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