|
@@ -123,9 +123,137 @@ void init_timer(void)
|
|
|
fprintf(stderr, "Clock Skew: %lu\n", (unsigned long)skew);
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * unregister ciphers, hashes & prngs
|
|
|
+ */
|
|
|
+static void _unregister_all(void)
|
|
|
+{
|
|
|
+#ifdef LTC_RIJNDAEL
|
|
|
+ unregister_cipher(&aes_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_BLOWFISH
|
|
|
+ unregister_cipher(&blowfish_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_XTEA
|
|
|
+ unregister_cipher(&xtea_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_RC5
|
|
|
+ unregister_cipher(&rc5_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_RC6
|
|
|
+ unregister_cipher(&rc6_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_SAFERP
|
|
|
+ unregister_cipher(&saferp_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_TWOFISH
|
|
|
+ unregister_cipher(&twofish_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_SAFER
|
|
|
+ unregister_cipher(&safer_k64_desc);
|
|
|
+ unregister_cipher(&safer_sk64_desc);
|
|
|
+ unregister_cipher(&safer_k128_desc);
|
|
|
+ unregister_cipher(&safer_sk128_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_RC2
|
|
|
+ unregister_cipher(&rc2_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_DES
|
|
|
+ unregister_cipher(&des_desc);
|
|
|
+ unregister_cipher(&des3_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_CAST5
|
|
|
+ unregister_cipher(&cast5_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_NOEKEON
|
|
|
+ unregister_cipher(&noekeon_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_SKIPJACK
|
|
|
+ unregister_cipher(&skipjack_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_KHAZAD
|
|
|
+ unregister_cipher(&khazad_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_ANUBIS
|
|
|
+ unregister_cipher(&anubis_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_KSEED
|
|
|
+ unregister_cipher(&kseed_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_KASUMI
|
|
|
+ unregister_cipher(&kasumi_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_MULTI2
|
|
|
+ unregister_cipher(&multi2_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_CAMELLIA
|
|
|
+ unregister_cipher(&camellia_desc);
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef LTC_TIGER
|
|
|
+ unregister_hash(&tiger_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_MD2
|
|
|
+ unregister_hash(&md2_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_MD4
|
|
|
+ unregister_hash(&md4_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_MD5
|
|
|
+ unregister_hash(&md5_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_SHA1
|
|
|
+ unregister_hash(&sha1_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_SHA224
|
|
|
+ unregister_hash(&sha224_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_SHA256
|
|
|
+ unregister_hash(&sha256_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_SHA384
|
|
|
+ unregister_hash(&sha384_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_SHA512
|
|
|
+ unregister_hash(&sha512_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_RIPEMD128
|
|
|
+ unregister_hash(&rmd128_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_RIPEMD160
|
|
|
+ unregister_hash(&rmd160_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_RIPEMD256
|
|
|
+ unregister_hash(&rmd256_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_RIPEMD320
|
|
|
+ unregister_hash(&rmd320_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_WHIRLPOOL
|
|
|
+ unregister_hash(&whirlpool_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_CHC_HASH
|
|
|
+ unregister_hash(&chc_desc);
|
|
|
+#endif
|
|
|
+
|
|
|
+ unregister_prng(&yarrow_desc);
|
|
|
+#ifdef LTC_FORTUNA
|
|
|
+ unregister_prng(&fortuna_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_RC4
|
|
|
+ unregister_prng(&rc4_desc);
|
|
|
+#endif
|
|
|
+#ifdef LTC_SOBER128
|
|
|
+ unregister_prng(&sober128_desc);
|
|
|
+#endif
|
|
|
+} /* _cleanup() */
|
|
|
+
|
|
|
void reg_algs(void)
|
|
|
{
|
|
|
int err;
|
|
|
+
|
|
|
+ atexit(_unregister_all);
|
|
|
+
|
|
|
#ifdef LTC_RIJNDAEL
|
|
|
register_cipher (&aes_desc);
|
|
|
#endif
|
|
@@ -258,6 +386,10 @@ register_prng(&sober128_desc);
|
|
|
exit(EXIT_FAILURE);
|
|
|
}
|
|
|
|
|
|
+ if (strcmp("CRYPT_OK", error_to_string(err))) {
|
|
|
+ exit(EXIT_FAILURE);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
int time_keysched(void)
|