Skip to content

Commit 3a37deb

Browse files
committed
Add FIPS private lock handling to ECC key encoding
1 parent 01a48e3 commit 3a37deb

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

src/wp_ecc_kmgmt.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2377,7 +2377,9 @@ static int wp_ecc_encode_pki_size(const wp_Ecc *ecc, size_t* keyLen)
23772377
int rc;
23782378
word32 len;
23792379

2380+
PRIVATE_KEY_UNLOCK();
23802381
rc = wc_EccKeyToPKCS8((ecc_key*)&ecc->key, NULL, &len);
2382+
PRIVATE_KEY_LOCK();
23812383
if (rc != LENGTH_ONLY_E) {
23822384
ok = 0;
23832385
}
@@ -2407,7 +2409,9 @@ static int wp_ecc_encode_pki(const wp_Ecc *ecc, unsigned char* keyData,
24072409
word32 len = (word32)*keyLen;
24082410

24092411
/* TODO: for older versions, curve is always included! */
2412+
PRIVATE_KEY_UNLOCK();
24102413
rc = wc_EccKeyToPKCS8((ecc_key*)&ecc->key, keyData, &len);
2414+
PRIVATE_KEY_LOCK();
24112415
if (rc <= 0) {
24122416
ok = 0;
24132417
}
@@ -2434,7 +2438,9 @@ static int wp_ecc_encode_epki_size(const wp_Ecc *ecc, size_t* keyLen)
24342438
int rc;
24352439
word32 len;
24362440

2441+
PRIVATE_KEY_UNLOCK();
24372442
rc = wc_EccKeyToPKCS8((ecc_key*)&ecc->key, NULL, &len);
2443+
PRIVATE_KEY_LOCK();
24382444
if (rc != LENGTH_ONLY_E) {
24392445
ok = 0;
24402446
}
@@ -2469,7 +2475,9 @@ static int wp_ecc_encode_epki(const wp_EccEncDecCtx* ctx, const wp_Ecc *ecc,
24692475
word32 len = (word32)*keyLen;
24702476

24712477
/* Encode key. */
2478+
PRIVATE_KEY_UNLOCK();
24722479
rc = wc_EccKeyToPKCS8((ecc_key*)&ecc->key, keyData, &len);
2480+
PRIVATE_KEY_LOCK();
24732481
if (rc <= 0) {
24742482
ok = 0;
24752483
}

0 commit comments

Comments
 (0)