split off common certificate-adding code
This commit is contained in:
parent
993cd40208
commit
f2621a5ea9
37
collects/openssl/private/add-cert.rkt
Normal file
37
collects/openssl/private/add-cert.rkt
Normal file
|
@ -0,0 +1,37 @@
|
|||
#lang racket/base
|
||||
(require ffi/unsafe
|
||||
ffi/unsafe/define
|
||||
ffi/unsafe/alloc
|
||||
"../libssl.rkt"
|
||||
"../libcrypto.rkt")
|
||||
(provide (protect-out
|
||||
(except-out (all-defined-out)
|
||||
define-crypto
|
||||
define-ssl)))
|
||||
|
||||
;; -- libcrypto
|
||||
|
||||
(define-ffi-definer define-crypto libcrypto
|
||||
#:default-make-fail make-not-available)
|
||||
(define-cpointer-type _X509*)
|
||||
(define-cpointer-type _X509_STORE*)
|
||||
|
||||
;; FIXME: refcounting?
|
||||
(define-crypto d2i_X509
|
||||
(_fun (buf) ::
|
||||
(_pointer = #f)
|
||||
((_ptr i _pointer) = buf)
|
||||
(_int32 = (bytes-length buf))
|
||||
-> _X509*))
|
||||
|
||||
(define-crypto X509_STORE_add_cert
|
||||
(_fun _X509_STORE* _X509* -> _int))
|
||||
|
||||
;; -- libssl
|
||||
|
||||
(define-ffi-definer define-ssl libssl
|
||||
#:default-make-fail make-not-available)
|
||||
(define _SSL_CTX* _pointer)
|
||||
|
||||
(define-ssl SSL_CTX_get_cert_store
|
||||
(_fun _SSL_CTX* -> _X509_STORE*))
|
|
@ -5,35 +5,10 @@
|
|||
ffi/unsafe/define
|
||||
ffi/unsafe/alloc
|
||||
"../libssl.rkt"
|
||||
"../libcrypto.rkt")
|
||||
"../libcrypto.rkt"
|
||||
"add-cert.rkt")
|
||||
(provide load-win32-root-certificates)
|
||||
|
||||
;; -- libcrypto
|
||||
(define-ffi-definer define-crypto libcrypto
|
||||
#:default-make-fail make-not-available)
|
||||
(define-cpointer-type _X509*)
|
||||
(define-cpointer-type _X509_STORE*)
|
||||
|
||||
;; FIXME: refcounting?
|
||||
(define-crypto d2i_X509
|
||||
(_fun (buf) ::
|
||||
(_pointer = #f)
|
||||
((_ptr i _pointer) = buf)
|
||||
(_int32 = (bytes-length buf))
|
||||
-> _X509*))
|
||||
|
||||
(define-crypto X509_STORE_add_cert
|
||||
(_fun _X509_STORE* _X509* -> _int))
|
||||
|
||||
;; -- libssl
|
||||
|
||||
(define-ffi-definer define-ssl libssl
|
||||
#:default-make-fail make-not-available)
|
||||
(define _SSL_CTX* _pointer)
|
||||
|
||||
(define-ssl SSL_CTX_get_cert_store
|
||||
(_fun _SSL_CTX* -> _X509_STORE*))
|
||||
|
||||
;; -- Windows CryptoAPI
|
||||
|
||||
(define crypt-lib
|
||||
|
|
Loading…
Reference in New Issue
Block a user