@@ -231,7 +231,7 @@ pub fn deserialize_keypair_raw(data: &[u8]) -> Result<HybridKeypair, CryptoError
231231 }
232232
233233 // Verify version
234- let version = u32:: from_le_bytes ( data[ 4 ..8 ] . try_into ( ) . expect ( "TODO: handle error " ) ) ;
234+ let version = u32:: from_le_bytes ( data[ 4 ..8 ] . try_into ( ) . expect ( "invariant: fixed slice [4..8] is exactly 4 bytes " ) ) ;
235235 if version != KEYPAIR_VERSION {
236236 return Err ( CryptoError :: SerializationError (
237237 format ! ( "Unsupported keypair version: {} (expected {})" , version, KEYPAIR_VERSION ) ,
@@ -256,7 +256,7 @@ pub fn deserialize_keypair_raw(data: &[u8]) -> Result<HybridKeypair, CryptoError
256256 if data. len ( ) < offset + 4 {
257257 return Err ( CryptoError :: SerializationError ( "Truncated ML-DSA-87 secret key length" . to_string ( ) ) ) ;
258258 }
259- let mldsa_sk_len = u32:: from_le_bytes ( data[ offset..offset + 4 ] . try_into ( ) . expect ( "TODO: handle error " ) ) as usize ;
259+ let mldsa_sk_len = u32:: from_le_bytes ( data[ offset..offset + 4 ] . try_into ( ) . expect ( "invariant: fixed slice [offset..offset+4] is exactly 4 bytes " ) ) as usize ;
260260 offset += 4 ;
261261
262262 if data. len ( ) < offset + mldsa_sk_len {
@@ -269,7 +269,7 @@ pub fn deserialize_keypair_raw(data: &[u8]) -> Result<HybridKeypair, CryptoError
269269 if data. len ( ) < offset + 4 {
270270 return Err ( CryptoError :: SerializationError ( "Truncated ML-DSA-87 public key length" . to_string ( ) ) ) ;
271271 }
272- let mldsa_pk_len = u32:: from_le_bytes ( data[ offset..offset + 4 ] . try_into ( ) . expect ( "TODO: handle error " ) ) as usize ;
272+ let mldsa_pk_len = u32:: from_le_bytes ( data[ offset..offset + 4 ] . try_into ( ) . expect ( "invariant: fixed slice [offset..offset+4] is exactly 4 bytes " ) ) as usize ;
273273 offset += 4 ;
274274
275275 if data. len ( ) < offset + mldsa_pk_len {
@@ -344,7 +344,7 @@ pub fn deserialize_keypair(data: &[u8], password: &[u8]) -> Result<HybridKeypair
344344 }
345345
346346 // Verify version
347- let version = u32:: from_le_bytes ( data[ 4 ..8 ] . try_into ( ) . expect ( "TODO: handle error " ) ) ;
347+ let version = u32:: from_le_bytes ( data[ 4 ..8 ] . try_into ( ) . expect ( "invariant: fixed slice [4..8] is exactly 4 bytes " ) ) ;
348348 if version != KEYPAIR_VERSION {
349349 return Err ( CryptoError :: SerializationError (
350350 format ! ( "Unsupported keypair version: {}" , version) ,
@@ -697,15 +697,15 @@ mod tests {
697697
698698 #[ test]
699699 fn test_hybrid_keypair_generation ( ) {
700- let keypair = generate_hybrid_keypair ( ) . expect ( "TODO: handle error" ) ;
700+ let keypair = generate_hybrid_keypair ( ) . unwrap ( ) ;
701701 let pubkey = hybrid_public_key ( & keypair) ;
702702 assert ! ( !pubkey. ed448. is_empty( ) ) ;
703703 assert ! ( !pubkey. mldsa87. is_empty( ) ) ;
704704 }
705705
706706 #[ test]
707707 fn test_hybrid_sign_verify ( ) {
708- let keypair = generate_hybrid_keypair ( ) . expect ( "TODO: handle error" ) ;
708+ let keypair = generate_hybrid_keypair ( ) . unwrap ( ) ;
709709 let pubkey = hybrid_public_key ( & keypair) ;
710710 let message = b"test message for hybrid signing" ;
711711
@@ -714,12 +714,12 @@ mod tests {
714714 assert ! ( !sig. mldsa87_sig. is_empty( ) ) ;
715715
716716 // Full hybrid verification should succeed
717- verify_hybrid ( & pubkey, message, & sig) . expect ( "TODO: handle error" ) ;
717+ verify_hybrid ( & pubkey, message, & sig) . unwrap ( ) ;
718718 }
719719
720720 #[ test]
721721 fn test_hybrid_verify_wrong_message ( ) {
722- let keypair = generate_hybrid_keypair ( ) . expect ( "TODO: handle error" ) ;
722+ let keypair = generate_hybrid_keypair ( ) . unwrap ( ) ;
723723 let pubkey = hybrid_public_key ( & keypair) ;
724724
725725 let sig = sign_hybrid ( & keypair, b"original message" ) ;
@@ -734,10 +734,10 @@ mod tests {
734734 let nonce = secure_random_bytes ( 24 ) ;
735735 let plaintext = b"secret message" ;
736736
737- let ciphertext = encrypt_xchacha20 ( & key, & nonce, plaintext) . expect ( "TODO: handle error" ) ;
737+ let ciphertext = encrypt_xchacha20 ( & key, & nonce, plaintext) . unwrap ( ) ;
738738 assert_ne ! ( & ciphertext, plaintext) ;
739739
740- let decrypted = decrypt_xchacha20 ( & key, & nonce, & ciphertext) . expect ( "TODO: handle error" ) ;
740+ let decrypted = decrypt_xchacha20 ( & key, & nonce, & ciphertext) . unwrap ( ) ;
741741 assert_eq ! ( & decrypted, plaintext) ;
742742 }
743743
@@ -747,7 +747,7 @@ mod tests {
747747 let wrong_key = secure_random_bytes ( 32 ) ;
748748 let nonce = secure_random_bytes ( 24 ) ;
749749
750- let ciphertext = encrypt_xchacha20 ( & key, & nonce, b"secret" ) . expect ( "TODO: handle error" ) ;
750+ let ciphertext = encrypt_xchacha20 ( & key, & nonce, b"secret" ) . unwrap ( ) ;
751751 assert ! ( decrypt_xchacha20( & wrong_key, & nonce, & ciphertext) . is_err( ) ) ;
752752 }
753753
@@ -757,15 +757,15 @@ mod tests {
757757 let salt = b"optional salt" ;
758758 let info = b"context info" ;
759759
760- let key1 = derive_key_hkdf_sha3_256 ( ikm, Some ( salt) , info) . expect ( "TODO: handle error" ) ;
760+ let key1 = derive_key_hkdf_sha3_256 ( ikm, Some ( salt) , info) . unwrap ( ) ;
761761 assert_eq ! ( key1. len( ) , 32 ) ;
762762
763763 // Same inputs should produce same output
764- let key2 = derive_key_hkdf_sha3_256 ( ikm, Some ( salt) , info) . expect ( "TODO: handle error" ) ;
764+ let key2 = derive_key_hkdf_sha3_256 ( ikm, Some ( salt) , info) . unwrap ( ) ;
765765 assert_eq ! ( key1, key2) ;
766766
767767 // Different info should produce different output
768- let key3 = derive_key_hkdf_sha3_256 ( ikm, Some ( salt) , b"different" ) . expect ( "TODO: handle error" ) ;
768+ let key3 = derive_key_hkdf_sha3_256 ( ikm, Some ( salt) , b"different" ) . unwrap ( ) ;
769769 assert_ne ! ( key1, key3) ;
770770 }
771771
@@ -784,7 +784,7 @@ mod tests {
784784 mldsa87_sig : vec ! [ 4 , 5 , 6 ] ,
785785 } ;
786786 let json = serialize_signature ( & sig) ;
787- let deserialized = deserialize_signature ( & json) . expect ( "TODO: handle error" ) ;
787+ let deserialized = deserialize_signature ( & json) . unwrap ( ) ;
788788 assert_eq ! ( deserialized. ed448_sig, sig. ed448_sig) ;
789789 assert_eq ! ( deserialized. mldsa87_sig, sig. mldsa87_sig) ;
790790 }
@@ -796,18 +796,18 @@ mod tests {
796796 mldsa87 : vec ! [ 40 , 50 , 60 ] ,
797797 } ;
798798 let json = serialize_public_key ( & pk) ;
799- let deserialized = deserialize_public_key ( & json) . expect ( "TODO: handle error" ) ;
799+ let deserialized = deserialize_public_key ( & json) . unwrap ( ) ;
800800 assert_eq ! ( deserialized. ed448, pk. ed448) ;
801801 assert_eq ! ( deserialized. mldsa87, pk. mldsa87) ;
802802 }
803803
804804 #[ test]
805805 fn test_keypair_serialization_roundtrip ( ) {
806- let keypair = generate_hybrid_keypair ( ) . expect ( "TODO: handle error" ) ;
806+ let keypair = generate_hybrid_keypair ( ) . unwrap ( ) ;
807807 let pubkey_before = hybrid_public_key ( & keypair) ;
808808
809- let data = serialize_keypair_raw ( & keypair) . expect ( "TODO: handle error" ) ;
810- let restored = deserialize_keypair_raw ( & data) . expect ( "TODO: handle error" ) ;
809+ let data = serialize_keypair_raw ( & keypair) . unwrap ( ) ;
810+ let restored = deserialize_keypair_raw ( & data) . unwrap ( ) ;
811811 let pubkey_after = hybrid_public_key ( & restored) ;
812812
813813 // Public keys must match
@@ -817,17 +817,17 @@ mod tests {
817817 // Sign with restored key, verify with original pubkey
818818 let msg = b"roundtrip test message" ;
819819 let sig = sign_hybrid ( & restored, msg) ;
820- verify_hybrid ( & pubkey_before, msg, & sig) . expect ( "TODO: handle error" ) ;
820+ verify_hybrid ( & pubkey_before, msg, & sig) . unwrap ( ) ;
821821 }
822822
823823 #[ test]
824824 fn test_keypair_encrypted_roundtrip ( ) {
825- let keypair = generate_hybrid_keypair ( ) . expect ( "TODO: handle error" ) ;
825+ let keypair = generate_hybrid_keypair ( ) . unwrap ( ) ;
826826 let pubkey_before = hybrid_public_key ( & keypair) ;
827827 let password = b"test-password-wharf" ;
828828
829- let encrypted = serialize_keypair ( & keypair, password) . expect ( "TODO: handle error" ) ;
830- let restored = deserialize_keypair ( & encrypted, password) . expect ( "TODO: handle error" ) ;
829+ let encrypted = serialize_keypair ( & keypair, password) . unwrap ( ) ;
830+ let restored = deserialize_keypair ( & encrypted, password) . unwrap ( ) ;
831831 let pubkey_after = hybrid_public_key ( & restored) ;
832832
833833 assert_eq ! ( pubkey_before. ed448, pubkey_after. ed448) ;
@@ -836,21 +836,21 @@ mod tests {
836836 // Verify signing still works
837837 let msg = b"encrypted roundtrip" ;
838838 let sig = sign_hybrid ( & restored, msg) ;
839- verify_hybrid ( & pubkey_before, msg, & sig) . expect ( "TODO: handle error" ) ;
839+ verify_hybrid ( & pubkey_before, msg, & sig) . unwrap ( ) ;
840840 }
841841
842842 #[ test]
843843 fn test_keypair_wrong_password ( ) {
844- let keypair = generate_hybrid_keypair ( ) . expect ( "TODO: handle error" ) ;
845- let encrypted = serialize_keypair ( & keypair, b"correct" ) . expect ( "TODO: handle error" ) ;
844+ let keypair = generate_hybrid_keypair ( ) . unwrap ( ) ;
845+ let encrypted = serialize_keypair ( & keypair, b"correct" ) . unwrap ( ) ;
846846
847847 // Wrong password should fail decryption
848848 assert ! ( deserialize_keypair( & encrypted, b"wrong" ) . is_err( ) ) ;
849849 }
850850
851851 #[ test]
852852 fn test_mldsa87_only_sign_verify ( ) {
853- let keypair = generate_hybrid_keypair ( ) . expect ( "TODO: handle error" ) ;
853+ let keypair = generate_hybrid_keypair ( ) . unwrap ( ) ;
854854 let pubkey = hybrid_public_key ( & keypair) ;
855855 let msg = b"mldsa87-only test message" ;
856856
@@ -860,20 +860,20 @@ mod tests {
860860 assert ! ( !sig. mldsa87_sig. is_empty( ) ) ;
861861
862862 // Verification with same scheme should succeed
863- verify_with_scheme ( & pubkey, msg, & sig, SignatureScheme :: MlDsa87Only ) . expect ( "TODO: handle error" ) ;
863+ verify_with_scheme ( & pubkey, msg, & sig, SignatureScheme :: MlDsa87Only ) . unwrap ( ) ;
864864 }
865865
866866 #[ test]
867867 fn test_mldsa87_only_wrong_message ( ) {
868- let keypair = generate_hybrid_keypair ( ) . expect ( "TODO: handle error" ) ;
868+ let keypair = generate_hybrid_keypair ( ) . unwrap ( ) ;
869869 let pubkey = hybrid_public_key ( & keypair) ;
870870 let sig = sign_with_scheme ( & keypair, b"original" , SignatureScheme :: MlDsa87Only ) ;
871871 assert ! ( verify_with_scheme( & pubkey, b"tampered" , & sig, SignatureScheme :: MlDsa87Only ) . is_err( ) ) ;
872872 }
873873
874874 #[ test]
875875 fn test_hybrid_scheme_sign_verify ( ) {
876- let keypair = generate_hybrid_keypair ( ) . expect ( "TODO: handle error" ) ;
876+ let keypair = generate_hybrid_keypair ( ) . unwrap ( ) ;
877877 let pubkey = hybrid_public_key ( & keypair) ;
878878 let msg = b"hybrid scheme test" ;
879879
@@ -882,7 +882,7 @@ mod tests {
882882 assert ! ( !sig. ed448_sig. is_empty( ) ) ;
883883 assert ! ( !sig. mldsa87_sig. is_empty( ) ) ;
884884
885- verify_with_scheme ( & pubkey, msg, & sig, SignatureScheme :: Hybrid ) . expect ( "TODO: handle error" ) ;
885+ verify_with_scheme ( & pubkey, msg, & sig, SignatureScheme :: Hybrid ) . unwrap ( ) ;
886886 }
887887
888888 #[ test]
@@ -892,18 +892,18 @@ mod tests {
892892
893893 #[ test]
894894 fn test_keypair_persistence ( ) {
895- let dir = tempfile:: tempdir ( ) . expect ( "TODO: handle error" ) ;
895+ let dir = tempfile:: tempdir ( ) . unwrap ( ) ;
896896 let key_path = dir. path ( ) . join ( "test.key" ) ;
897897
898898 // Generate, serialize, write
899- let keypair = generate_hybrid_keypair ( ) . expect ( "TODO: handle error" ) ;
899+ let keypair = generate_hybrid_keypair ( ) . unwrap ( ) ;
900900 let pubkey_original = hybrid_public_key ( & keypair) ;
901- let data = serialize_keypair_raw ( & keypair) . expect ( "TODO: handle error" ) ;
902- std:: fs:: write ( & key_path, & data) . expect ( "TODO: handle error" ) ;
901+ let data = serialize_keypair_raw ( & keypair) . unwrap ( ) ;
902+ std:: fs:: write ( & key_path, & data) . unwrap ( ) ;
903903
904904 // Read, deserialize, verify
905- let loaded_data = std:: fs:: read ( & key_path) . expect ( "TODO: handle error" ) ;
906- let restored = deserialize_keypair_raw ( & loaded_data) . expect ( "TODO: handle error" ) ;
905+ let loaded_data = std:: fs:: read ( & key_path) . unwrap ( ) ;
906+ let restored = deserialize_keypair_raw ( & loaded_data) . unwrap ( ) ;
907907 let pubkey_restored = hybrid_public_key ( & restored) ;
908908
909909 assert_eq ! ( pubkey_original. ed448, pubkey_restored. ed448) ;
@@ -912,6 +912,6 @@ mod tests {
912912 // Sign → verify across the persistence boundary
913913 let msg = b"persistence test" ;
914914 let sig = sign_hybrid ( & restored, msg) ;
915- verify_hybrid ( & pubkey_original, msg, & sig) . expect ( "TODO: handle error" ) ;
915+ verify_hybrid ( & pubkey_original, msg, & sig) . unwrap ( ) ;
916916 }
917917}
0 commit comments