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

View File

@ -139,11 +139,20 @@ STRUCT: EVP_MD_CTX
{ flags ulong } { flags ulong }
{ md_data void* } ; { 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 ! API < 1.1.0, removed in new versions
! ------------------------------------------------------------------------------ ! ------------------------------------------------------------------------------
FUNCTION: void OpenSSL_add_all_ciphers ( ) FUNCTION: void OpenSSL_add_all_ciphers ( )
FUNCTION: void OpenSSL_add_all_digests ( ) 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 ! 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: void EVP_MD_CTX_init ( EVP_MD* ctx )
FUNCTION: int EVP_MD_CTX_cleanup ( EVP_MD_CTX* 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_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 ) FUNCTION: int EVP_DigestInit_ex ( EVP_MD_CTX* ctx, EVP_MD* type, ENGINE* impl )