fuzz: translate fuzz-hsm_encryption to fuzz-hsm_secret.
What changed, and why it matters
This commit adds a new fuzz test and its test data. Fuzz tests are automated tools that throw random or crafted inputs at a piece of code to look for crashes or bugs. The new test exercises the encryption and decryption routines for the node's HSM (Hardware Security Module) secret, but it does not change those routines themselves. There is no indication this commit fixes or introduces a security vulnerability.
No security action required; this is a test-only addition. Reviewers may optionally verify that the copied corpus and harness correctly exercise the intended code paths and that the harness does not introduce undefined behavior in its casts or memory handling.
Security signals we found
Adds fuzzing coverage for HSM secret encryption/decryption roundtrip
No changes to cryptographic implementation or production code paths
Assertions in fuzz harness are expected invariants, not runtime checks
Evidence from the diff
The change introduces tests/fuzz/fuzz-hsm_secret.c, a libFuzzer harness that takes arbitrary input, treats the first 32 bytes as an hsm_secret seed and the remainder as a passphrase, then performs an encrypt/decrypt roundtrip through encrypt_legacy_hsm_secret() and extract_hsm_secret(), asserting success and equality. It also copies 61 existing corpus files from fuzz-hsm_encryption into tests/fuzz/corpora/fuzz-hsm_secret/. The commit message explicitly states this is a translation of an existing fuzz target because the code paths are the same. No production code is modified.
Changed components
tests/fuzz/fuzz-hsm_secret.ctests/fuzz/corpora/fuzz-hsm_secret/Inspect captured patch +92 / −0
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/010a57daa7433703ddc639f51f53d01a74afdba8 b/tests/fuzz/corpora/fuzz-hsm_secret/010a57daa7433703ddc639f51f53d01a74afdba8
new file mode 100644
index 00000000..86652eac
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/010a57daa7433703ddc639f51f53d01a74afdba8
@@ -0,0 +1,3 @@
+-�������;��������!;���������
+��
+2
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/010a7169be4dc57b1df48a71f8292af8a692b2b3 b/tests/fuzz/corpora/fuzz-hsm_secret/010a7169be4dc57b1df48a71f8292af8a692b2b3
new file mode 100644
index 00000000..66995784
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/010a7169be4dc57b1df48a71f8292af8a692b2b3 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/019f9573207b9765047f660f11cd19bbd48309e2 b/tests/fuzz/corpora/fuzz-hsm_secret/019f9573207b9765047f660f11cd19bbd48309e2
new file mode 100644
index 00000000..18a2c231
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/019f9573207b9765047f660f11cd19bbd48309e2 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/086d57f3fa5ff9c9b7eb765ff8b88a2d797ca946 b/tests/fuzz/corpora/fuzz-hsm_secret/086d57f3fa5ff9c9b7eb765ff8b88a2d797ca946
new file mode 100644
index 00000000..602ed3f8
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/086d57f3fa5ff9c9b7eb765ff8b88a2d797ca946
@@ -0,0 +1,2 @@
+-����������������������������
+QQQQQQQQQQ�����QQQQQQQQ��
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/11daf937510fff8519d131daf36160fb39cfba15 b/tests/fuzz/corpora/fuzz-hsm_secret/11daf937510fff8519d131daf36160fb39cfba15
new file mode 100644
index 00000000..a335e4b4
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/11daf937510fff8519d131daf36160fb39cfba15 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/11f4de6b8b45cf8051b1d17fa4cde9ad935cea41 b/tests/fuzz/corpora/fuzz-hsm_secret/11f4de6b8b45cf8051b1d17fa4cde9ad935cea41
new file mode 100644
index 00000000..67c32976
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/11f4de6b8b45cf8051b1d17fa4cde9ad935cea41
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/176cbd4490560d179030137a21c904027fea3935 b/tests/fuzz/corpora/fuzz-hsm_secret/176cbd4490560d179030137a21c904027fea3935
new file mode 100644
index 00000000..22ad235a
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/176cbd4490560d179030137a21c904027fea3935 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/24c823bc3c38d3de37f789f5ecafaa8408c93757 b/tests/fuzz/corpora/fuzz-hsm_secret/24c823bc3c38d3de37f789f5ecafaa8408c93757
new file mode 100644
index 00000000..0a282f9b
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/24c823bc3c38d3de37f789f5ecafaa8408c93757 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/260031bd67c9814ad538fb29634fa783c82ccfe3 b/tests/fuzz/corpora/fuzz-hsm_secret/260031bd67c9814ad538fb29634fa783c82ccfe3
new file mode 100644
index 00000000..67ce86d6
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/260031bd67c9814ad538fb29634fa783c82ccfe3 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/26dfa419dd7a4e2049feff895b829dda48f425ac b/tests/fuzz/corpora/fuzz-hsm_secret/26dfa419dd7a4e2049feff895b829dda48f425ac
new file mode 100644
index 00000000..76204898
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/26dfa419dd7a4e2049feff895b829dda48f425ac
@@ -0,0 +1,2 @@
+-�������������������������������������������
+���
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/2756db15a535e07f2ac3498d97d7bb2be248a172 b/tests/fuzz/corpora/fuzz-hsm_secret/2756db15a535e07f2ac3498d97d7bb2be248a172
new file mode 100644
index 00000000..490e942b
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/2756db15a535e07f2ac3498d97d7bb2be248a172
@@ -0,0 +1,2 @@
+-���������������������������
+�����������������������
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/29d842a6375afe12348b81f1742c708169f6796b b/tests/fuzz/corpora/fuzz-hsm_secret/29d842a6375afe12348b81f1742c708169f6796b
new file mode 100644
index 00000000..7aeae87f
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/29d842a6375afe12348b81f1742c708169f6796b
@@ -0,0 +1,2 @@
+-��������������������������
+��
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/3bc15c8aae3e4124dd409035f32ea2fd6835efc9 b/tests/fuzz/corpora/fuzz-hsm_secret/3bc15c8aae3e4124dd409035f32ea2fd6835efc9
new file mode 100644
index 00000000..3cf20d57
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/3bc15c8aae3e4124dd409035f32ea2fd6835efc9
@@ -0,0 +1 @@
+-
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/44fdfd93ea706488b4817f55435dde2bf0048eb5 b/tests/fuzz/corpora/fuzz-hsm_secret/44fdfd93ea706488b4817f55435dde2bf0048eb5
new file mode 100644
index 00000000..f811ff67
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/44fdfd93ea706488b4817f55435dde2bf0048eb5 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/48748e3a570fbe79b28fa52b048ecc9d73b6d3b1 b/tests/fuzz/corpora/fuzz-hsm_secret/48748e3a570fbe79b28fa52b048ecc9d73b6d3b1
new file mode 100644
index 00000000..babeeded
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/48748e3a570fbe79b28fa52b048ecc9d73b6d3b1
@@ -0,0 +1,2 @@
+-����������������������������
+YYY��
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/4d9636304829eca44744fa3f960c076fa247d875 b/tests/fuzz/corpora/fuzz-hsm_secret/4d9636304829eca44744fa3f960c076fa247d875
new file mode 100644
index 00000000..a3d76e4d
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/4d9636304829eca44744fa3f960c076fa247d875
@@ -0,0 +1,2 @@
+-��-���������;���������;���������
+��iiiiiiiii���
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/59d2945e40bfcbb2ac91ce0334a06689abe21fb7 b/tests/fuzz/corpora/fuzz-hsm_secret/59d2945e40bfcbb2ac91ce0334a06689abe21fb7
new file mode 100644
index 00000000..77ac414b
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/59d2945e40bfcbb2ac91ce0334a06689abe21fb7 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/5dbe749bb6c6027a0022430f2514824f47097269 b/tests/fuzz/corpora/fuzz-hsm_secret/5dbe749bb6c6027a0022430f2514824f47097269
new file mode 100644
index 00000000..a039fea5
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/5dbe749bb6c6027a0022430f2514824f47097269 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/712bad91ff51f19b892122cbba365a0f4b3147fb b/tests/fuzz/corpora/fuzz-hsm_secret/712bad91ff51f19b892122cbba365a0f4b3147fb
new file mode 100644
index 00000000..b39b745d
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/712bad91ff51f19b892122cbba365a0f4b3147fb differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/7618428f8d106024bd6e27dfada6d9dbb2f05a9b b/tests/fuzz/corpora/fuzz-hsm_secret/7618428f8d106024bd6e27dfada6d9dbb2f05a9b
new file mode 100644
index 00000000..721f8eff
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/7618428f8d106024bd6e27dfada6d9dbb2f05a9b differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/7c191aae1d3d9a8a8a9c70959f8ac14ba22e7c83 b/tests/fuzz/corpora/fuzz-hsm_secret/7c191aae1d3d9a8a8a9c70959f8ac14ba22e7c83
new file mode 100644
index 00000000..a5bffea4
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/7c191aae1d3d9a8a8a9c70959f8ac14ba22e7c83 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/82db6048fae4a5953f671f416b59afe4004380ec b/tests/fuzz/corpora/fuzz-hsm_secret/82db6048fae4a5953f671f416b59afe4004380ec
new file mode 100644
index 00000000..f75f77eb
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/82db6048fae4a5953f671f416b59afe4004380ec differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/85b3c5e8a553adee68f94a2c5770f59acf41308f b/tests/fuzz/corpora/fuzz-hsm_secret/85b3c5e8a553adee68f94a2c5770f59acf41308f
new file mode 100644
index 00000000..5ee21ebe
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/85b3c5e8a553adee68f94a2c5770f59acf41308f differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/85e53271e14006f0265921d02d4d736cdc580b0b b/tests/fuzz/corpora/fuzz-hsm_secret/85e53271e14006f0265921d02d4d736cdc580b0b
new file mode 100644
index 00000000..ce542efa
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/85e53271e14006f0265921d02d4d736cdc580b0b
@@ -0,0 +1 @@
+�
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/878e4439b591edc28ebb2691979661037bc5cde1 b/tests/fuzz/corpora/fuzz-hsm_secret/878e4439b591edc28ebb2691979661037bc5cde1
new file mode 100644
index 00000000..104add0c
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/878e4439b591edc28ebb2691979661037bc5cde1 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/8efd4d04bba8942cef9293af1a778e66fe6d0e7d b/tests/fuzz/corpora/fuzz-hsm_secret/8efd4d04bba8942cef9293af1a778e66fe6d0e7d
new file mode 100644
index 00000000..0fd06ea8
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/8efd4d04bba8942cef9293af1a778e66fe6d0e7d
@@ -0,0 +1 @@
+-��������������������������-���������������������
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/922d91b16cc923561d58979900554de2af4762d8 b/tests/fuzz/corpora/fuzz-hsm_secret/922d91b16cc923561d58979900554de2af4762d8
new file mode 100644
index 00000000..891a3ef2
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/922d91b16cc923561d58979900554de2af4762d8 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/92b6e6612209872ccc8bb6b45b617558125e092a b/tests/fuzz/corpora/fuzz-hsm_secret/92b6e6612209872ccc8bb6b45b617558125e092a
new file mode 100644
index 00000000..1581ba2b
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/92b6e6612209872ccc8bb6b45b617558125e092a differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/974098cfbcc636d36e3a8e64dd8018fc8b83ec89 b/tests/fuzz/corpora/fuzz-hsm_secret/974098cfbcc636d36e3a8e64dd8018fc8b83ec89
new file mode 100644
index 00000000..5d99ffec
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/974098cfbcc636d36e3a8e64dd8018fc8b83ec89 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/9842926af7ca0a8cca12604f945414f07b01e13d b/tests/fuzz/corpora/fuzz-hsm_secret/9842926af7ca0a8cca12604f945414f07b01e13d
new file mode 100644
index 00000000..fc2b5693
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/9842926af7ca0a8cca12604f945414f07b01e13d
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/9ca6d4b8e2b357f4996c432067304c1f626720eb b/tests/fuzz/corpora/fuzz-hsm_secret/9ca6d4b8e2b357f4996c432067304c1f626720eb
new file mode 100644
index 00000000..1ac09885
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/9ca6d4b8e2b357f4996c432067304c1f626720eb differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/9e350e370dc6f75a337009f44ef5d0ecf5ed610e b/tests/fuzz/corpora/fuzz-hsm_secret/9e350e370dc6f75a337009f44ef5d0ecf5ed610e
new file mode 100644
index 00000000..9fbf5f88
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/9e350e370dc6f75a337009f44ef5d0ecf5ed610e differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/a4921de93678886f2666fe9240f55356038ac16e b/tests/fuzz/corpora/fuzz-hsm_secret/a4921de93678886f2666fe9240f55356038ac16e
new file mode 100644
index 00000000..0d4475d0
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/a4921de93678886f2666fe9240f55356038ac16e differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/a71b3c25b54d5c8eb084084f1ef9f9b27931d5ff b/tests/fuzz/corpora/fuzz-hsm_secret/a71b3c25b54d5c8eb084084f1ef9f9b27931d5ff
new file mode 100644
index 00000000..aadd4413
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/a71b3c25b54d5c8eb084084f1ef9f9b27931d5ff
@@ -0,0 +1 @@
+�
z-
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/af030542a4125d670351df40131a4265e29b7447 b/tests/fuzz/corpora/fuzz-hsm_secret/af030542a4125d670351df40131a4265e29b7447
new file mode 100644
index 00000000..4011feca
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/af030542a4125d670351df40131a4265e29b7447 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/b0adf074d207869cad9d349b0bf943d532c5e765 b/tests/fuzz/corpora/fuzz-hsm_secret/b0adf074d207869cad9d349b0bf943d532c5e765
new file mode 100644
index 00000000..9f24745f
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/b0adf074d207869cad9d349b0bf943d532c5e765 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/b166167155f161a697affe07e3a018901bf00c7f b/tests/fuzz/corpora/fuzz-hsm_secret/b166167155f161a697affe07e3a018901bf00c7f
new file mode 100644
index 00000000..b5cc5944
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/b166167155f161a697affe07e3a018901bf00c7f
@@ -0,0 +1,2 @@
+-������������������8��������������������������������
+��
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/b6a060bc39f6f35a41d503cf5c32adae7540e2d4 b/tests/fuzz/corpora/fuzz-hsm_secret/b6a060bc39f6f35a41d503cf5c32adae7540e2d4
new file mode 100644
index 00000000..15848673
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/b6a060bc39f6f35a41d503cf5c32adae7540e2d4
@@ -0,0 +1 @@
+-����������������������������������&�������������
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/b714e28e82cb02857771f0ef8a3a1fc91f7d578c b/tests/fuzz/corpora/fuzz-hsm_secret/b714e28e82cb02857771f0ef8a3a1fc91f7d578c
new file mode 100644
index 00000000..cc7c26f9
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/b714e28e82cb02857771f0ef8a3a1fc91f7d578c
@@ -0,0 +1 @@
+-��������;���������!;�����������
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/c1554cfd9efc6515e42d6ea45c85131217dc48c6 b/tests/fuzz/corpora/fuzz-hsm_secret/c1554cfd9efc6515e42d6ea45c85131217dc48c6
new file mode 100644
index 00000000..944ef808
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/c1554cfd9efc6515e42d6ea45c85131217dc48c6 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/ca06da040976f32f8453a8737c15ea1b800d0255 b/tests/fuzz/corpora/fuzz-hsm_secret/ca06da040976f32f8453a8737c15ea1b800d0255
new file mode 100644
index 00000000..322cde80
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/ca06da040976f32f8453a8737c15ea1b800d0255 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/d2c778022a38b46327e74b61341dc384402580ec b/tests/fuzz/corpora/fuzz-hsm_secret/d2c778022a38b46327e74b61341dc384402580ec
new file mode 100644
index 00000000..fe7303c7
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/d2c778022a38b46327e74b61341dc384402580ec differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/d5fc363735dc945c877052ef2b7ebe383208afe1 b/tests/fuzz/corpora/fuzz-hsm_secret/d5fc363735dc945c877052ef2b7ebe383208afe1
new file mode 100644
index 00000000..7aea70c0
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/d5fc363735dc945c877052ef2b7ebe383208afe1 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/d7d64e916ef78eb838273ae25a308aaf217980d8 b/tests/fuzz/corpora/fuzz-hsm_secret/d7d64e916ef78eb838273ae25a308aaf217980d8
new file mode 100644
index 00000000..050e845e
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/d7d64e916ef78eb838273ae25a308aaf217980d8
@@ -0,0 +1 @@
+-��������;�
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/d9a56f6dabaf3b4cc0776f9ee65b1d64a69aa7e4 b/tests/fuzz/corpora/fuzz-hsm_secret/d9a56f6dabaf3b4cc0776f9ee65b1d64a69aa7e4
new file mode 100644
index 00000000..8157ef3a
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/d9a56f6dabaf3b4cc0776f9ee65b1d64a69aa7e4
@@ -0,0 +1 @@
+`������
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/da424c425994ded6390738b342cf7c853c6aa51f b/tests/fuzz/corpora/fuzz-hsm_secret/da424c425994ded6390738b342cf7c853c6aa51f
new file mode 100644
index 00000000..fc5204d8
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/da424c425994ded6390738b342cf7c853c6aa51f
@@ -0,0 +1 @@
+��
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/dd4c2e570f6c9506840c00001570479aff75fe09 b/tests/fuzz/corpora/fuzz-hsm_secret/dd4c2e570f6c9506840c00001570479aff75fe09
new file mode 100644
index 00000000..bd734bcf
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/dd4c2e570f6c9506840c00001570479aff75fe09 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/de48b44d9fdbb12c895bc256198d61caf24eacbe b/tests/fuzz/corpora/fuzz-hsm_secret/de48b44d9fdbb12c895bc256198d61caf24eacbe
new file mode 100644
index 00000000..a3db6a0a
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/de48b44d9fdbb12c895bc256198d61caf24eacbe differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/ded4d55b7202b767c7bd76edf6dfd6f15d2a7592 b/tests/fuzz/corpora/fuzz-hsm_secret/ded4d55b7202b767c7bd76edf6dfd6f15d2a7592
new file mode 100644
index 00000000..af8186d9
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/ded4d55b7202b767c7bd76edf6dfd6f15d2a7592 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/df58248c414f342c81e056b40bee12d17a08bf61 b/tests/fuzz/corpora/fuzz-hsm_secret/df58248c414f342c81e056b40bee12d17a08bf61
new file mode 100644
index 00000000..f59ec20a
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/df58248c414f342c81e056b40bee12d17a08bf61
@@ -0,0 +1 @@
+*
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/e31d31820dd73683cc2858c3fe3deb567b469c36 b/tests/fuzz/corpora/fuzz-hsm_secret/e31d31820dd73683cc2858c3fe3deb567b469c36
new file mode 100644
index 00000000..bec1f158
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/e31d31820dd73683cc2858c3fe3deb567b469c36 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/e3a039a6cfc87ae1503145a859bd03ea0a675524 b/tests/fuzz/corpora/fuzz-hsm_secret/e3a039a6cfc87ae1503145a859bd03ea0a675524
new file mode 100644
index 00000000..586d539f
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/e3a039a6cfc87ae1503145a859bd03ea0a675524 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/ead8514f2be42cdd84c9dd7aee05c3e378f9d8e8 b/tests/fuzz/corpora/fuzz-hsm_secret/ead8514f2be42cdd84c9dd7aee05c3e378f9d8e8
new file mode 100644
index 00000000..96521d33
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/ead8514f2be42cdd84c9dd7aee05c3e378f9d8e8 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/eb408af63c99aa3224d25ff6c74990e56635d5ef b/tests/fuzz/corpora/fuzz-hsm_secret/eb408af63c99aa3224d25ff6c74990e56635d5ef
new file mode 100644
index 00000000..552c7ccf
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/eb408af63c99aa3224d25ff6c74990e56635d5ef
@@ -0,0 +1,2 @@
+-���������;���������!;���������
+��
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/eb6a2e7996ecfbca0aad0988a7c36d11bf0884d2 b/tests/fuzz/corpora/fuzz-hsm_secret/eb6a2e7996ecfbca0aad0988a7c36d11bf0884d2
new file mode 100644
index 00000000..19362ffa
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/eb6a2e7996ecfbca0aad0988a7c36d11bf0884d2
@@ -0,0 +1,2 @@
+-��������������������������������������������
+���
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/ee129cbcf727b0afd5a7f3b79a4fa333417033d9 b/tests/fuzz/corpora/fuzz-hsm_secret/ee129cbcf727b0afd5a7f3b79a4fa333417033d9
new file mode 100644
index 00000000..f608f326
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/ee129cbcf727b0afd5a7f3b79a4fa333417033d9 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/f0054c92049c5e3706f7c45082065e67f9ea8ea0 b/tests/fuzz/corpora/fuzz-hsm_secret/f0054c92049c5e3706f7c45082065e67f9ea8ea0
new file mode 100644
index 00000000..356d5548
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/f0054c92049c5e3706f7c45082065e67f9ea8ea0 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/f44634b586d683d6c27e5997fa674574683e267a b/tests/fuzz/corpora/fuzz-hsm_secret/f44634b586d683d6c27e5997fa674574683e267a
new file mode 100644
index 00000000..1b316d11
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/f44634b586d683d6c27e5997fa674574683e267a differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/f4cb666c221192e9a9a2010e114ec8847f038051 b/tests/fuzz/corpora/fuzz-hsm_secret/f4cb666c221192e9a9a2010e114ec8847f038051
new file mode 100644
index 00000000..58c9354f
Binary files /dev/null and b/tests/fuzz/corpora/fuzz-hsm_secret/f4cb666c221192e9a9a2010e114ec8847f038051 differ
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/f98aef5540e4bcf21b7292adb1b9de01669d7e7b b/tests/fuzz/corpora/fuzz-hsm_secret/f98aef5540e4bcf21b7292adb1b9de01669d7e7b
new file mode 100644
index 00000000..32e83d5c
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/f98aef5540e4bcf21b7292adb1b9de01669d7e7b
@@ -0,0 +1 @@
+-��
\ No newline at end of file
diff --git a/tests/fuzz/corpora/fuzz-hsm_secret/fe7b328bfc4adc6daa6d5de3eba6273832803783 b/tests/fuzz/corpora/fuzz-hsm_secret/fe7b328bfc4adc6daa6d5de3eba6273832803783
new file mode 100644
index 00000000..f9ff64d1
--- /dev/null
+++ b/tests/fuzz/corpora/fuzz-hsm_secret/fe7b328bfc4adc6daa6d5de3eba6273832803783
@@ -0,0 +1,2 @@
+����������;���������!;���������
+��
diff --git a/tests/fuzz/fuzz-hsm_secret.c b/tests/fuzz/fuzz-hsm_secret.c
new file mode 100644
index 00000000..8c5ccc8b
--- /dev/null
+++ b/tests/fuzz/fuzz-hsm_secret.c
@@ -0,0 +1,56 @@
+#include "config.h"
+#include <assert.h>
+
+#include <ccan/mem/mem.h>
+#include <common/hsm_secret.h>
+#include <common/setup.h>
+#include <stdlib.h>
+#include <tests/fuzz/libfuzz.h>
+
+void init(int *argc, char ***argv)
+{
+ /* Don't run as a unit test under valgrind: too slow! */
+#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
+ if (getenv("VALGRIND") && strcmp(getenv("VALGRIND"), "1") == 0) {
+ common_shutdown();
+ exit(0);
+ }
+#endif
+}
+
+void run(const uint8_t *data, size_t size)
+{
+ /* 4294967295 is crypto_pwhash_argon2id_PASSWD_MAX. libfuzzer won't
+ * generate inputs that large in practice, but hey. */
+ if (size > 32 && size < 4294967295) {
+ struct secret *hsm_secret, *encryption_key;
+ char *passphrase;
+ u8 encrypted_data[ENCRYPTED_HSM_SECRET_LEN];
+ struct hsm_secret *decrypted_hsm;
+ enum hsm_secret_error err;
+
+ /* Take the first 32 bytes as the plaintext hsm_secret seed,
+ * and the remaining ones as the passphrase. */
+ hsm_secret = (struct secret *)tal_dup_arr(NULL, u8, data, 32, 0);
+ passphrase = to_string(NULL, data + 32, size - 32);
+
+ /* A valid seed, a valid passphrase. This should not fail. */
+ encryption_key = get_encryption_key(NULL, passphrase);
+ assert(encryption_key);
+
+ /* Roundtrip: encrypt then decrypt */
+ assert(encrypt_legacy_hsm_secret(encryption_key, hsm_secret, encrypted_data));
+ decrypted_hsm = extract_hsm_secret(NULL, encrypted_data, ENCRYPTED_HSM_SECRET_LEN,
+ passphrase, &err);
+ assert(decrypted_hsm);
+ assert(err == HSM_SECRET_OK);
+ assert(decrypted_hsm->type == HSM_SECRET_ENCRYPTED);
+ assert(memeq(hsm_secret->data, sizeof(hsm_secret->data),
+ decrypted_hsm->secret_data, sizeof(hsm_secret->data)));
+
+ tal_free(hsm_secret);
+ tal_free(passphrase);
+ tal_free(encryption_key);
+ tal_free(decrypted_hsm);
+ }
+}
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.