summaryrefslogtreecommitdiffhomepage
path: root/crypto_desc.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2013-04-09 00:36:04 +0800
committerMatt Johnston <matt@ucc.asn.au>2013-04-09 00:36:04 +0800
commit7f091e70196cdcfbf80d16d508e6bed0bce38022 (patch)
tree4b2fbbf4ee71a61b9156e32d743118eb5a694d98 /crypto_desc.c
parent4f07805d0a658de4b8645ea12471269d006428a9 (diff)
start on ecdsa keys
--HG-- branch : ecc
Diffstat (limited to 'crypto_desc.c')
-rw-r--r--crypto_desc.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/crypto_desc.c b/crypto_desc.c
new file mode 100644
index 0000000..403e085
--- /dev/null
+++ b/crypto_desc.c
@@ -0,0 +1,73 @@
+#include "includes.h"
+#include "dbutil.h"
+#include "crypto_desc.h"
+#include "ltc_prng.h"
+
+#ifdef DROPBEAR_LTC_PRNG
+ int dropbear_ltc_prng = -1;
+#endif
+
+
+/* Register the compiled in ciphers.
+ * This should be run before using any of the ciphers/hashes */
+void crypto_init() {
+
+ const struct ltc_cipher_descriptor *regciphers[] = {
+#ifdef DROPBEAR_AES
+ &aes_desc,
+#endif
+#ifdef DROPBEAR_BLOWFISH
+ &blowfish_desc,
+#endif
+#ifdef DROPBEAR_TWOFISH
+ &twofish_desc,
+#endif
+#ifdef DROPBEAR_3DES
+ &des3_desc,
+#endif
+ NULL
+ };
+
+ const struct ltc_hash_descriptor *reghashes[] = {
+ /* we need sha1 for hostkey stuff regardless */
+ &sha1_desc,
+#ifdef DROPBEAR_MD5_HMAC
+ &md5_desc,
+#endif
+#ifdef DROPBEAR_SHA256
+ &sha256_desc,
+#endif
+#ifdef DROPBEAR_SHA384
+ &sha384_desc,
+#endif
+#ifdef DROPBEAR_SHA512
+ &sha512_desc,
+#endif
+ NULL
+ };
+ int i;
+
+ for (i = 0; regciphers[i] != NULL; i++) {
+ if (register_cipher(regciphers[i]) == -1) {
+ dropbear_exit("Error registering crypto");
+ }
+ }
+
+ for (i = 0; reghashes[i] != NULL; i++) {
+ if (register_hash(reghashes[i]) == -1) {
+ dropbear_exit("Error registering crypto");
+ }
+ }
+
+#ifdef DROPBEAR_LTC_PRNG
+ dropbear_ltc_prng = register_prng(&dropbear_prng_desc);
+ if (dropbear_ltc_prng == -1) {
+ dropbear_exit("Error registering crypto");
+ }
+#endif
+
+#ifdef DROPBEAR_ECC
+ ltc_mp = ltm_desc;
+#endif
+}
+