diff --git a/pkgs/racket-test/tests/openssl/hostname.rkt b/pkgs/racket-test/tests/openssl/hostname.rkt new file mode 100644 index 0000000000..d26b102297 --- /dev/null +++ b/pkgs/racket-test/tests/openssl/hostname.rkt @@ -0,0 +1,12 @@ +#lang racket +(require openssl/mzssl) + +(define-values (r w) (ssl-connect "www.racket-lang.org" 443)) +(define hostnames (ssl-peer-certificate-hostnames r)) + +(unless (and (list? hostnames) + (andmap string? hostnames)) + (error "not a good hostnames result")) + +(when (null? hostnames) + (error "expected some hostnames")) diff --git a/racket/collects/openssl/mzssl.rkt b/racket/collects/openssl/mzssl.rkt index 083956034d..12f6117993 100644 --- a/racket/collects/openssl/mzssl.rkt +++ b/racket/collects/openssl/mzssl.rkt @@ -349,10 +349,19 @@ TO DO: (define-crypto X509_NAME_get_entry (_fun _X509_NAME* _int -> _X509_NAME_ENTRY*/null)) (define-crypto X509_NAME_ENTRY_get_data (_fun _X509_NAME_ENTRY* -> _ASN1_STRING*)) (define-crypto X509_get_ext_d2i (_fun _X509* _int _pointer _pointer -> _STACK*/null)) -(define-crypto sk_num (_fun _STACK* -> _int)) +(define-crypto sk_num (_fun _STACK* -> _int) + #:fail (lambda () + (define-crypto OPENSSL_sk_num (_fun _STACK* -> _int)) + OPENSSL_sk_num)) (define-crypto sk_GENERAL_NAME_value (_fun _STACK* _int -> _GENERAL_NAME-pointer) - #:c-id sk_value) -(define-crypto sk_pop_free (_fun _STACK* _fpointer -> _void)) + #:c-id sk_value + #:fail (lambda () + (define-crypto OPENSSL_sk_value (_fun _STACK* _int -> _GENERAL_NAME-pointer)) + OPENSSL_sk_value)) +(define-crypto sk_pop_free (_fun _STACK* _fpointer -> _void) + #:fail (lambda () + (define-crypto OPENSSL_sk_pop_free (_fun _STACK* _fpointer -> _void)) + OPENSSL_sk_pop_free)) ;; (define-crypto X509_get_default_cert_area (_fun -> _string)) (define-crypto X509_get_default_cert_dir (_fun -> _string))