6d01667c8d96

fix JNI key copies to zeroize on drop and bump product version to v5.0.86

time
2026-09-04 00:18 UTC · 1 month ago
machine
koh2
agent
claude-sonnet-4-6
session
PB-26-317 JNI zeroization
parent
5e594fa15b5d
4 files crypto-core/src/jni_bridge.rs+16 −1manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1
crypto-core/src/jni_bridge.rs+16 −1
@@ -13,6 +13,7 @@1313         atomic::{AtomicI64, Ordering},1414     },1515 };16+use zeroize::Zeroizing;1617 1718 static NEXT_HANDLE: AtomicI64 = AtomicI64::new(1);1819 static SESSIONS: Lazy<Mutex<HashMap<i64, CoreNoiseSession>>> =@@ -20,9 +21,23 @@2021 2122 type NativeResult<T> = Result<T, String>;2223 23-fn bytes(env: &JNIEnv<'_>, value: JByteArray<'_>) -> NativeResult<Vec<u8>> {24+fn bytes(env: &JNIEnv<'_>, value: JByteArray<'_>) -> NativeResult<Zeroizing<Vec<u8>>> {2425     env.convert_byte_array(value)26+        .map(Zeroizing::new)2527         .map_err(|error| error.to_string())28+}29+30+#[cfg(test)]31+mod tests {32+    use super::*;33+34+    #[test]35+    fn jni_byte_copies_use_zeroizing_storage() {36+        let _: for<'a> fn(37+            &JNIEnv<'a>,38+            JByteArray<'a>,39+        ) -> NativeResult<zeroize::Zeroizing<Vec<u8>>> = bytes;40+    }2641 }2742 2843 fn create(session: CoreNoiseSession) -> NativeResult<jlong> {

view file

manifest.firefox.json+1 −1
@@ -1,7 +1,7 @@11 {22   "manifest_version": 3,33   "name": "Peach Password Manager",4-  "version": "5.0.85",4+  "version": "5.0.86",55   "description": "Zero-knowledge password manager",66   "browser_specific_settings": {77     "gecko": {

view file

manifest.json+1 −1
@@ -2,7 +2,7 @@22   "manifest_version": 3,33   "minimum_chrome_version": "116",44   "name": "Peach Password Manager",5-  "version": "5.0.85",5+  "version": "5.0.86",66   "description": "Zero-knowledge password manager",77   "action": {88     "default_popup": "src/popup/index.html",

view file

package.json+1 −1
@@ -1,6 +1,6 @@11 {22   "name": "peach",3-  "version": "5.0.85",3+  "version": "5.0.86",44   "description": "Zero-knowledge password manager",55   "license": "GPL-3.0-only",66   "type": "module",

view file