33#define LOG(kind, ...) GNUNET_log_from (kind, "util-crypto-symmetric", \
46 gcry_randomize (
key->aes_key,
49 gcry_randomize (
key->twofish_key,
71 gcry_cipher_open (
handle, GCRY_CIPHER_AES256,
72 GCRY_CIPHER_MODE_CFB, 0));
73 rc = gcry_cipher_setkey (*
handle,
77 rc = gcry_cipher_setiv (*
handle,
103 gcry_cipher_open (
handle, GCRY_CIPHER_TWOFISH,
104 GCRY_CIPHER_MODE_CFB, 0));
105 rc = gcry_cipher_setkey (*
handle,
108 GNUNET_assert ((0 == rc) || ((
char) rc == GPG_ERR_WEAK_KEY));
109 rc = gcry_cipher_setiv (*
handle,
112 GNUNET_assert ((0 == rc) || ((
char) rc == GPG_ERR_WEAK_KEY));
133 gcry_cipher_close (
handle);
137 gcry_cipher_close (
handle);
138 memset (tmp, 0,
sizeof(tmp));
159 gcry_cipher_close (
handle);
163 gcry_cipher_close (
handle);
164 memset (tmp, 0,
sizeof(tmp));
static int setup_cipher_aes(gcry_cipher_hd_t *handle, const struct GNUNET_CRYPTO_SymmetricSessionKey *sessionkey, const struct GNUNET_CRYPTO_SymmetricInitializationVector *iv)
Initialize AES cipher.
static int setup_cipher_twofish(gcry_cipher_hd_t *handle, const struct GNUNET_CRYPTO_SymmetricSessionKey *sessionkey, const struct GNUNET_CRYPTO_SymmetricInitializationVector *iv)
Initialize TWOFISH cipher.
struct GNUNET_HashCode key
The key used in the DHT.
static int result
Global testing status.
static struct GNUNET_VPN_Handle * handle
Handle to vpn service.
void GNUNET_CRYPTO_symmetric_create_session_key(struct GNUNET_CRYPTO_SymmetricSessionKey *key)
Create a new SessionKey (for symmetric encryption).
ssize_t GNUNET_CRYPTO_symmetric_encrypt(const void *block, size_t size, const struct GNUNET_CRYPTO_SymmetricSessionKey *sessionkey, const struct GNUNET_CRYPTO_SymmetricInitializationVector *iv, void *result)
Encrypt a block using a symmetric sessionkey.
ssize_t GNUNET_CRYPTO_symmetric_decrypt(const void *block, size_t size, const struct GNUNET_CRYPTO_SymmetricSessionKey *sessionkey, const struct GNUNET_CRYPTO_SymmetricInitializationVector *iv, void *result)
Decrypt a given block using a symmetric sessionkey.
#define GNUNET_NZL(l)
Macro used to avoid using 0 for the length of a variable-size array (Non-Zero-Length).
#define GNUNET_CRYPTO_AES_KEY_LENGTH
length of the sessionkey in bytes (256 BIT sessionkey)
#define GNUNET_assert(cond)
Use this for fatal errors that cannot be handled.
static unsigned int size
Size of the "table".
unsigned char aes_iv[(256/8)/2]
unsigned char twofish_iv[(256/8)/2]
unsigned char twofish_key[(256/8)]
Actual key for TwoFish.
unsigned char aes_key[(256/8)]
Actual key for AES.