checksums,openssl.libcrypto: make it work with openssl 1.1

modern-harvey2
Björn Lindqvist 2017-07-01 22:19:42 +02:00
parent 97cf96b668
commit 5156d250b9
2 changed files with 19 additions and 11 deletions

View File

@ -1,8 +1,7 @@
! Copyright (C) 2008, 2010, 2016 Slava Pestov, Alexander Ilin
! See http://factorcode.org/license.txt for BSD license.
USING: accessors alien.c-types alien.data checksums
checksums.common destructors kernel openssl openssl.libcrypto
sequences ;
USING: accessors alien.c-types alien.data checksums checksums.common
destructors kernel namespaces openssl openssl.libcrypto sequences ;
IN: checksums.openssl
ERROR: unknown-digest name ;
@ -21,12 +20,17 @@ C: <openssl-checksum> openssl-checksum
TUPLE: evp-md-context < disposable handle ;
: evp-md-ctx-new ( -- ctx )
ssl-new-api? get-global [ EVP_MD_CTX_new ] [ EVP_MD_CTX_create ] if ;
: evp-md-ctx-free ( ctx -- )
ssl-new-api? get-global [ EVP_MD_CTX_free ] [ EVP_MD_CTX_destroy ] if ;
: <evp-md-context> ( -- ctx )
evp-md-context new-disposable
EVP_MD_CTX_create >>handle ;
evp-md-context new-disposable evp-md-ctx-new >>handle ;
M: evp-md-context dispose*
handle>> EVP_MD_CTX_destroy ;
handle>> evp-md-ctx-free ;
: digest-named ( name -- md )
dup EVP_get_digestbyname [ ] [ unknown-digest ] ?if ;

View File

@ -139,11 +139,20 @@ STRUCT: EVP_MD_CTX
{ flags ulong }
{ md_data void* } ;
! ------------------------------------------------------------------------------
! API >= 1.1.0
! ------------------------------------------------------------------------------
FUNCTION: ulong OpenSSL_version_num ( )
FUNCTION: EVP_MD_CTX* EVP_MD_CTX_new ( )
FUNCTION: void EVP_MD_CTX_free ( EVP_MD_CTX* ctx )
! ------------------------------------------------------------------------------
! API < 1.1.0, removed in new versions
! ------------------------------------------------------------------------------
FUNCTION: void OpenSSL_add_all_ciphers ( )
FUNCTION: void OpenSSL_add_all_digests ( )
FUNCTION: EVP_MD_CTX* EVP_MD_CTX_create ( )
FUNCTION: void EVP_MD_CTX_destroy ( EVP_MD_CTX* ctx )
! ------------------------------------------------------------------------------
! Clean them up before exiting
@ -154,11 +163,6 @@ FUNCTION: EVP_MD* EVP_get_digestbyname ( c-string name )
FUNCTION: void EVP_MD_CTX_init ( EVP_MD* ctx )
FUNCTION: int EVP_MD_CTX_cleanup ( EVP_MD_CTX* ctx )
FUNCTION: EVP_MD_CTX* EVP_MD_CTX_create ( )
FUNCTION: void EVP_MD_CTX_destroy ( EVP_MD_CTX* ctx )
FUNCTION: int EVP_MD_CTX_copy_ex ( EVP_MD_CTX* out, EVP_MD_CTX* in )
FUNCTION: int EVP_DigestInit_ex ( EVP_MD_CTX* ctx, EVP_MD* type, ENGINE* impl )