+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include <openssl/err.h>
#include <openssl/sha.h>
#include <openssl/evp.h>
int outlen1, outlen2;
unsigned char hkey[16];
+ ERR_load_crypto_strings(); /* FIXME */
+
if (EVP_BytesToKey(EVP_aes_128_cbc(), EVP_sha1(),
NULL, key, keylen, 5, hkey, NULL) != 16) return 1UL;
if (!EVP_EncryptInit(&ctx, EVP_aes_128_cbc(), hkey, iv))
return ERR_get_error();
if (!EVP_EncryptFinal(&ctx, ct + outlen1, &outlen2))
return ERR_get_error();
- if (outlen1 + outlen2 != tlen) return 1UL;
+ if (outlen1 + outlen2 != tlen) {
+ printf("enc tlen =%d outlen1=%d outlen2=%d\n",
+ tlen, outlen1, outlen2);
+ // return 1UL;
+ }
return 0UL;
}
return ERR_get_error();
if (!EVP_DecryptFinal(&ctx, ct + outlen1, &outlen2))
return ERR_get_error();
- if (outlen1 + outlen2 != tlen) return 1UL;
+ if (outlen1 + outlen2 != tlen) {
+ printf("dec tlen =%d outlen1=%d outlen2=%d\n",
+ tlen, outlen1, outlen2);
+ // return 1UL;
+ }
return 0UL;
}
if (!SHA1_Init(&sctx)) return ERR_get_error();
if (!SHA1_Update(&sctx, pt, tlen)) return ERR_get_error();
if (!SHA1_Final(tag, &sctx)) return ERR_get_error();
- *taglen = 160;
+ *taglen = 20;
return 0UL;
}
HMAC_CTX hctx;
HMAC_CTX_init(&hctx);
- if (!HMAC_Init(&hctx, key, keylen, EVP_sha1())) return ERR_get_error();
+ if (!HMAC_Init_ex(&hctx, key, keylen, EVP_sha1(), NULL)) return ERR_get_error();
if (!HMAC_Update(&hctx, pt, tlen)) return ERR_get_error();
if (!HMAC_Final(&hctx, tag, (unsigned int *)taglen))
return ERR_get_error();