crypto_ipcrypt_BYTES: 16 crypto_ipcrypt_KEYBYTES: 16 crypto_ipcrypt_ND_KEYBYTES: 16 crypto_ipcrypt_ND_TWEAKBYTES: 8 crypto_ipcrypt_ND_INPUTBYTES: 16 crypto_ipcrypt_ND_OUTPUTBYTES: 24 crypto_ipcrypt_NDX_KEYBYTES: 32 crypto_ipcrypt_NDX_TWEAKBYTES: 16 crypto_ipcrypt_NDX_INPUTBYTES: 16 crypto_ipcrypt_NDX_OUTPUTBYTES: 32 Test 1: Format-preserving encryption Key: 0102030405060708090a0b0c0d0e0f10 Input: 00000000000000000000ffffc0000201 Encrypted: 574549939d262d3dc317324ac05a8d59 Decrypted: 00000000000000000000ffffc0000201 OK: Round-trip successful Test 2: Non-deterministic encryption (ND mode) Tweak: aabbccddeeff1122 ND Encrypted: aabbccddeeff1122377e9a17198d908604f3261d45fd639a ND Decrypted: 00000000000000000000ffffc0000201 OK: ND round-trip successful Test 3: Non-deterministic encryption (NDX mode with 16-byte tweak) NDX Key: 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20 NDX Tweak: aaabacadaeafb0b1b2b3b4b5b6b7b8b9 NDX Encrypted: aaabacadaeafb0b1b2b3b4b5b6b7b8b97df52c417f76ef314bbe7bea5b30bcea NDX Decrypted: 00000000000000000000ffffc0000201 OK: NDX round-trip successful Test 4: Key generation Random key generated (skipped in output) Random NDX key generated (skipped in output) Test 5: Different inputs produce different outputs Input[0]: 00000000000000000000ffff00000000 05406dbec71c4163c3033a3a76b9ebad Input[1]: 00000000000000000000ffff00000001 1672fc1d4626d0db668088eb5b54a40e Input[2]: 00000000000000000000ffff00000002 748c9d664ca12e3669ae344a280202c8 Input[3]: 00000000000000000000ffff00000003 524ca1315033ea4509bbaabf93c3ec80 Test 6: Verify deterministic encryption OK: Deterministic encryption verified Test 7: In-place encryption and decryption OK: In-place round-trip successful All tests passed!