diff options
author | Jack Lloyd <[email protected]> | 2018-08-01 21:43:32 -0400 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2018-08-01 21:43:32 -0400 |
commit | a7f646c2de170b16d40498500e1ae96ee5fd030f (patch) | |
tree | df4af032ce3ee9866bff6fa6834af227c8d554db | |
parent | 2504351f6df8ff07df131dcee3248f4b9595e2d7 (diff) |
Avoid requirement to set rng in botan_privkey_load
-rw-r--r-- | src/lib/ffi/ffi.h | 8 | ||||
-rw-r--r-- | src/lib/ffi/ffi_pkey.cpp | 8 |
2 files changed, 9 insertions, 7 deletions
diff --git a/src/lib/ffi/ffi.h b/src/lib/ffi/ffi.h index 5e27962d8..549b09957 100644 --- a/src/lib/ffi/ffi.h +++ b/src/lib/ffi/ffi.h @@ -790,10 +790,12 @@ BOTAN_PUBLIC_API(2,5) int botan_privkey_create_elgamal( /* * Input currently assumed to be PKCS #8 structure; * Set password to NULL to indicate no encryption expected +* The rng parameter is unused and may be set to null */ -BOTAN_PUBLIC_API(2,0) int botan_privkey_load(botan_privkey_t* key, botan_rng_t rng, - const uint8_t bits[], size_t len, - const char* password); +BOTAN_PUBLIC_API(2,0) int botan_privkey_load(botan_privkey_t* key, + botan_rng_t rng, + const uint8_t bits[], size_t len, + const char* password); BOTAN_PUBLIC_API(2,0) int botan_privkey_destroy(botan_privkey_t key); diff --git a/src/lib/ffi/ffi_pkey.cpp b/src/lib/ffi/ffi_pkey.cpp index ae7e61433..fe5a47db1 100644 --- a/src/lib/ffi/ffi_pkey.cpp +++ b/src/lib/ffi/ffi_pkey.cpp @@ -58,22 +58,22 @@ int botan_privkey_load(botan_privkey_t* key, botan_rng_t rng_obj, const uint8_t bits[], size_t len, const char* password) { + BOTAN_UNUSED(rng_obj); + *key = nullptr; return ffi_guard_thunk(BOTAN_CURRENT_FUNCTION, [=]() -> int { Botan::DataSource_Memory src(bits, len); - Botan::RandomNumberGenerator& rng = safe_get(rng_obj); - std::unique_ptr<Botan::Private_Key> pkcs8; if(password == nullptr) { - pkcs8.reset(Botan::PKCS8::load_key(src, rng)); + pkcs8 = Botan::PKCS8::load_key(src); } else { - pkcs8.reset(Botan::PKCS8::load_key(src, rng, static_cast<std::string>(password))); + pkcs8 = Botan::PKCS8::load_key(src, std::string(password)); } if(pkcs8) |