comparison crypto_desc.c @ 839:33207ed1174b

Merge in ECC
author Matt Johnston <matt@ucc.asn.au>
date Mon, 21 Oct 2013 22:57:21 +0800
parents e465ed10c51d
children 89555751c489 750ec4ec4cbe
comparison
equal deleted inserted replaced
834:e378da7eae5d 839:33207ed1174b
1 #include "includes.h"
2 #include "dbutil.h"
3 #include "crypto_desc.h"
4 #include "ltc_prng.h"
5 #include "ecc.h"
6
7 #ifdef DROPBEAR_LTC_PRNG
8 int dropbear_ltc_prng = -1;
9 #endif
10
11
12 /* Register the compiled in ciphers.
13 * This should be run before using any of the ciphers/hashes */
14 void crypto_init() {
15
16 const struct ltc_cipher_descriptor *regciphers[] = {
17 #ifdef DROPBEAR_AES
18 &aes_desc,
19 #endif
20 #ifdef DROPBEAR_BLOWFISH
21 &blowfish_desc,
22 #endif
23 #ifdef DROPBEAR_TWOFISH
24 &twofish_desc,
25 #endif
26 #ifdef DROPBEAR_3DES
27 &des3_desc,
28 #endif
29 NULL
30 };
31
32 const struct ltc_hash_descriptor *reghashes[] = {
33 /* we need sha1 for hostkey stuff regardless */
34 &sha1_desc,
35 #ifdef DROPBEAR_MD5_HMAC
36 &md5_desc,
37 #endif
38 #ifdef DROPBEAR_SHA256
39 &sha256_desc,
40 #endif
41 #ifdef DROPBEAR_SHA384
42 &sha384_desc,
43 #endif
44 #ifdef DROPBEAR_SHA512
45 &sha512_desc,
46 #endif
47 NULL
48 };
49 int i;
50
51 for (i = 0; regciphers[i] != NULL; i++) {
52 if (register_cipher(regciphers[i]) == -1) {
53 dropbear_exit("Error registering crypto");
54 }
55 }
56
57 for (i = 0; reghashes[i] != NULL; i++) {
58 if (register_hash(reghashes[i]) == -1) {
59 dropbear_exit("Error registering crypto");
60 }
61 }
62
63 #ifdef DROPBEAR_LTC_PRNG
64 dropbear_ltc_prng = register_prng(&dropbear_prng_desc);
65 if (dropbear_ltc_prng == -1) {
66 dropbear_exit("Error registering crypto");
67 }
68 #endif
69
70 #ifdef DROPBEAR_ECC
71 ltc_mp = ltm_desc;
72 dropbear_ecc_fill_dp();
73 #endif
74 }
75