tls13-cert-key-exchange x509-cert-callback-ocsp gnutls_ocsp_resp_list_import2 \
server-sign-md5-rep privkey-keygen mini-tls-nonblock no-signal pkcs7-gen dtls-etm \
x509sign-verify-rsa x509sign-verify-ecdsa x509sign-verify-gost \
- mini-alignment oids atfork prf psk-file priority-init2 post-client-hello-change-prio \
+ cipher-alignment oids atfork prf psk-file priority-init2 post-client-hello-change-prio \
status-request status-request-ok rfc7633-missing sign-verify-ext \
fallback-scsv pkcs8-key-decode urls dtls-rehandshake-cert rfc7633-ok \
key-usage-rsa key-usage-ecdhe-rsa mini-session-verify-function auto-verify \
str);
}
-/* A very basic TLS client, with anonymous authentication.
- */
-
-
#define MAX_BUF 1024
#define MSG "Hello TLS"
const gnutls_datum_t key = { key_pem, sizeof(key_pem) };
struct myaes_ctx {
- struct aes_ctx aes;
+ struct aes128_ctx aes;
unsigned char iv[16];
int enc;
};
static int
myaes_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
{
- /* we use key size to distinguish */
- if (algorithm != GNUTLS_CIPHER_AES_128_CBC
- && algorithm != GNUTLS_CIPHER_AES_192_CBC
- && algorithm != GNUTLS_CIPHER_AES_256_CBC)
+ if (algorithm != GNUTLS_CIPHER_AES_128_CBC)
return GNUTLS_E_INVALID_REQUEST;
*_ctx = calloc(1, sizeof(struct myaes_ctx));
{
struct myaes_ctx *ctx = _ctx;
+ assert(keysize == 16);
+
if (ctx->enc)
- aes_set_encrypt_key(&ctx->aes, keysize, userkey);
+ aes128_set_encrypt_key(&ctx->aes, userkey);
else
- aes_set_decrypt_key(&ctx->aes, keysize, userkey);
+ aes128_set_decrypt_key(&ctx->aes, userkey);
return 0;
}
fail("encrypt: dest is not 16-byte aligned: %lu\n", ((unsigned long)dst)%16);
}
- cbc_encrypt(&ctx->aes, (nettle_cipher_func*)aes_encrypt, 16, ctx->iv, src_size, dst, src);
+ cbc_encrypt(&ctx->aes, (nettle_cipher_func*)aes128_encrypt, 16, ctx->iv, src_size, dst, src);
return 0;
}
}
#endif
- cbc_decrypt(&ctx->aes, (nettle_cipher_func*)aes_decrypt, 16, ctx->iv, src_size, dst, src);
+ cbc_decrypt(&ctx->aes, (nettle_cipher_func*)aes128_decrypt, 16, ctx->iv, src_size, dst, src);
return 0;
}