X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=openssl.c;h=9d3ad577da4f5636f409fbacb0f1433ca0c720e1;hb=1f33eda05b3e96b32817a133287bcfc5e99ed6b4;hp=5f04c845c6ec1e8b5d837f827233df425033fad4;hpb=0d1918752a18755bf701b82cf57fad79d9b18bc9;p=paraslash.git diff --git a/openssl.c b/openssl.c index 5f04c845..9d3ad577 100644 --- a/openssl.c +++ b/openssl.c @@ -60,6 +60,12 @@ void crypt_shutdown(void) #ifdef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA CRYPTO_cleanup_all_ex_data(); #endif +#ifdef HAVE_OPENSSL_THREAD_STOP /* openssl-1.1 or later */ + OPENSSL_thread_stop(); +#else /* openssl-1.0 */ + ERR_remove_thread_state(NULL); +#endif + EVP_cleanup(); } /* @@ -277,7 +283,7 @@ int apc_get_pubkey(const char *key_file, struct asymmetric_key **result) unsigned char *blob; size_t decoded_size; int ret; - struct asymmetric_key *key = para_malloc(sizeof(*key)); + struct asymmetric_key *key = alloc(sizeof(*key)); ret = decode_public_key(key_file, &blob, &decoded_size); if (ret < 0) @@ -318,7 +324,7 @@ int apc_priv_decrypt(const char *key_file, unsigned char *outbuf, return ret; if (inlen < 0) return -E_RSA; - priv = para_malloc(sizeof(*priv)); + priv = alloc(sizeof(*priv)); ret = get_private_key(key_file, &priv->rsa); if (ret < 0) { free(priv); @@ -360,7 +366,7 @@ struct stream_cipher { struct stream_cipher *sc_new(const unsigned char *data, int len) { - struct stream_cipher *sc = para_malloc(sizeof(*sc)); + struct stream_cipher *sc = alloc(sizeof(*sc)); assert(len >= 2 * AES_CRT128_BLOCK_SIZE); sc->aes = EVP_CIPHER_CTX_new(); @@ -384,7 +390,7 @@ static void aes_ctr128_crypt(EVP_CIPHER_CTX *ctx, struct iovec *src, *dst = (typeof(*dst)) { /* Add one for the terminating zero byte. */ - .iov_base = para_malloc(inlen + 1), + .iov_base = alloc(inlen + 1), .iov_len = inlen }; ret = EVP_EncryptUpdate(ctx, dst->iov_base, &outlen, src->iov_base, inlen); @@ -408,3 +414,11 @@ void hash_function(const char *data, unsigned long len, unsigned char *hash) SHA1_Update(&c, data, len); SHA1_Final(hash, &c); } + +void hash2_function(const char *data, unsigned long len, unsigned char *hash) +{ + SHA256_CTX c; + SHA256_Init(&c); + SHA256_Update(&c, data, len); + SHA256_Final(hash, &c); +}