Sha256: e3cdbb78d6d90111a090a02eb7dc47b22d25ad03156b4b16973c43a6306cafe8
Contents?: true
Size: 1.4 KB
Versions: 1
Compression:
Stored size: 1.4 KB
Contents
#include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h> #include <fpe.h> #include <fpe_locl.h> /* usage: ./example 2DE79D232DF5585D68CE47882AE256D6 CBD09280979564 10 3992520240 */ int main(int argc, char *argv[]) { if (argc != 5) { printf("Usage: %s <key> <tweak> <radix> <plaintext>\n", argv[0]); return 0; } char ciphertext[100]; char resulttext[100]; char* key = argv[1]; char* tweak = argv[2]; char* plaintext = argv[4]; int radix = atoi(argv[3]); int txtlen = strlen(plaintext), tlen = strlen(tweak) / 2; FPE_KEY *ff1 = FPE_ff1_create_key(key, tweak, radix); FPE_KEY *ff3 = (tlen == 7) ? FPE_ff3_1_create_key(key, tweak, radix) : FPE_ff3_create_key(key, tweak, radix); //for (int i = 0; i < xlen; ++i) // assert(x[i] < radix); FPE_ff1_encrypt(plaintext, ciphertext, ff1); printf("FF1 ciphertext: %s\n", ciphertext); memset(resulttext, 0, txtlen); FPE_ff1_decrypt(ciphertext, resulttext, ff1); printf("FF1 decrypted: %s\n\n", resulttext); FPE_ff3_encrypt(plaintext, ciphertext, ff3); printf("FF3 ciphertext: %s\n", ciphertext); memset(resulttext, 0, txtlen); FPE_ff3_decrypt(ciphertext, resulttext, ff3); printf("FF3 decrypted: %s\n\n", resulttext); FPE_ff1_delete_key(ff1); FPE_ff3_delete_key(ff3); return 0; }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruby_clang_fpe-0.1.0 | vendor/clang-fpe/example.c |