summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Benjamin <davidben@google.com>2023-04-29 02:56:36 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-04-29 02:56:36 +0000
commitabac355c388817fbd4971523ae7443cd9afe0142 (patch)
tree0a33b2b9279b5c3fc12f867b4e9a43221a21c744
parent661e526496ff0ec86e7130d7250c7a2f5942ce3c (diff)
parent90adc39f6b0fb4066511aaf61a0b5cb259e1a16e (diff)
downloadkeymaster-abac355c388817fbd4971523ae7443cd9afe0142.tar.gz
Use setters instead of reaching into RSA struct am: 0d21791494 am: 3e98a88015 am: 90adc39f6b
Original change: https://android-review.googlesource.com/c/platform/system/keymaster/+/2569530 Change-Id: I9b9fe16ce7690d2babeb2e868be2a3490841cafa Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--legacy_support/keymaster1_engine.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/legacy_support/keymaster1_engine.cpp b/legacy_support/keymaster1_engine.cpp
index 10bfc57..3614274 100644
--- a/legacy_support/keymaster1_engine.cpp
+++ b/legacy_support/keymaster1_engine.cpp
@@ -153,12 +153,15 @@ RSA* Keymaster1Engine::BuildRsaKey(const KeymasterKeyBlob& blob,
return nullptr;
}
- rsa->n = BN_dup(public_rsa->n);
- rsa->e = BN_dup(public_rsa->e);
- if (!rsa->n || !rsa->e) {
+ BIGNUM_Ptr n(BN_dup(RSA_get0_n(public_rsa.get())));
+ BIGNUM_Ptr e(BN_dup(RSA_get0_e(public_rsa.get())));
+ if (!n || !e || !RSA_set0_key(rsa.get(), n.get(), e.get(), /*d=*/nullptr)) {
*error = TranslateLastOpenSslError();
return nullptr;
}
+ // RSA_set0_key takes ownership on success.
+ (void)n.release();
+ (void)e.release();
*error = KM_ERROR_OK;
return rsa.release();