F-5803: close Ed25519 release split-lock race by freeing under one lock

pull/248/head
Chris Conlon 2026-07-24 13:02:42 -06:00
parent 1466e4f5aa
commit de7d9136f5
11 changed files with 11 additions and 11 deletions

View File

@ -109,8 +109,8 @@ public class AesCcm extends NativeStruct {
(state != WolfCryptState.RELEASED)) {
synchronized (pointerLock) {
wc_AesFree();
super.releaseNativeStruct();
}
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}

View File

@ -109,8 +109,8 @@ public class AesGcm extends NativeStruct {
(state != WolfCryptState.RELEASED)) {
synchronized (pointerLock) {
wc_AesFree();
super.releaseNativeStruct();
}
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}

View File

@ -100,11 +100,11 @@ public class Dh extends NativeStruct {
synchronized (pointerLock) {
wc_FreeDhKey();
super.releaseNativeStruct();
}
setPrivateKey(new byte[0]);
setPublicKey(new byte[0]);
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}

View File

@ -90,6 +90,7 @@ public class Ecc extends NativeStruct {
synchronized (pointerLock) {
wc_ecc_free();
super.releaseNativeStruct();
}
synchronized (rngLock) {
@ -100,7 +101,6 @@ public class Ecc extends NativeStruct {
}
}
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}

View File

@ -63,8 +63,8 @@ public class Ed25519 extends NativeStruct {
synchronized (pointerLock) {
wc_ed25519_free();
super.releaseNativeStruct();
}
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}

View File

@ -95,8 +95,8 @@ public class Lms extends NativeStruct {
synchronized (pointerLock) {
wc_LmsKey_free();
super.releaseNativeStruct();
}
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}

View File

@ -144,8 +144,8 @@ public class MlDsa extends NativeStruct {
synchronized (pointerLock) {
wc_dilithium_free();
super.releaseNativeStruct();
}
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}

View File

@ -124,8 +124,8 @@ public class MlKem extends NativeStruct {
synchronized (pointerLock) {
wc_mlkem_free();
super.releaseNativeStruct();
}
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}

View File

@ -250,8 +250,8 @@ public class Rsa extends NativeStruct {
synchronized (pointerLock) {
wc_FreeRsaKey();
super.releaseNativeStruct();
}
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}

View File

@ -189,8 +189,8 @@ public class SlhDsa extends NativeStruct {
synchronized (pointerLock) {
wc_SlhDsaKey_free();
super.releaseNativeStruct();
}
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}

View File

@ -82,8 +82,8 @@ public class Xmss extends NativeStruct {
synchronized (pointerLock) {
wc_XmssKey_free();
super.releaseNativeStruct();
}
super.releaseNativeStruct();
state = WolfCryptState.RELEASED;
}
}