|
15 | 15 | package openssl |
16 | 16 |
|
17 | 17 | // #include "shim.h" |
| 18 | +// #include <openssl/rsa.h> |
| 19 | +//EVP_PKEY *evp_rsa_gen(uint bits) { |
| 20 | +// return EVP_RSA_gen(bits); |
| 21 | +//} |
18 | 22 | import "C" |
19 | 23 |
|
20 | 24 | import ( |
@@ -682,23 +686,13 @@ func LoadPublicKeyFromDER(der_block []byte) (PublicKey, error) { |
682 | 686 |
|
683 | 687 | // GenerateRSAKey generates a new RSA private key with an exponent of 3. |
684 | 688 | func GenerateRSAKey(bits int) (PrivateKey, error) { |
685 | | - return GenerateRSAKeyWithExponent(bits, 3) |
| 689 | + return GenerateRSAKeyWithExponent(bits) |
686 | 690 | } |
687 | 691 |
|
688 | 692 | // GenerateRSAKeyWithExponent generates a new RSA private key. |
689 | | -func GenerateRSAKeyWithExponent(bits int, exponent int) (PrivateKey, error) { |
690 | | - rsa := C.RSA_generate_key(C.int(bits), C.ulong(exponent), nil, nil) |
691 | | - if rsa == nil { |
692 | | - return nil, errors.New("failed to generate RSA key") |
693 | | - } |
694 | | - key := C.X_EVP_PKEY_new() |
695 | | - if key == nil { |
696 | | - return nil, errors.New("failed to allocate EVP_PKEY") |
697 | | - } |
698 | | - if C.X_EVP_PKEY_assign_charp(key, C.EVP_PKEY_RSA, (*C.char)(unsafe.Pointer(rsa))) != 1 { |
699 | | - C.X_EVP_PKEY_free(key) |
700 | | - return nil, errors.New("failed to assign RSA key") |
701 | | - } |
| 693 | +// GenerateRSAKeyWithExponent generates a new RSA private key. |
| 694 | +func GenerateRSAKeyWithExponent(bits int) (PrivateKey, error) { |
| 695 | + key := C.evp_rsa_gen(C.uint(bits)) |
702 | 696 | p := &pKey{key: key} |
703 | 697 | runtime.SetFinalizer(p, freePKey) |
704 | 698 | return p, nil |
|
0 commit comments