io.sockets.secure.openssl,openssl.libssl: ENUM: over syntax

The enum does the same thing as the custom syntax did and is a little
easier to understand.
modern-harvey2
Björn Lindqvist 2017-06-24 16:46:00 +02:00
parent 483325d0f0
commit 0d8338ceb8
2 changed files with 55 additions and 71 deletions

View File

@ -1,13 +1,13 @@
! Copyright (C) 2007, 2008, Slava Pestov, Elie CHAFTARI.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors alien alien.c-types alien.data alien.strings
assocs byte-arrays classes.struct combinators
combinators.short-circuit destructors fry io io.backend
io.binary io.buffers io.encodings.8-bit.latin1 io.encodings.utf8
io.files io.pathnames io.ports io.sockets io.sockets.secure
io.timeouts kernel libc locals math math.functions math.order
math.parser memoize namespaces openssl openssl.libcrypto
openssl.libssl random sequences sets splitting unicode ;
USING: accessors alien alien.c-types alien.data alien.enums
alien.strings assocs byte-arrays classes.struct combinators
combinators.short-circuit destructors fry io io.backend io.binary
io.buffers io.encodings.8-bit.latin1 io.encodings.utf8 io.files
io.pathnames io.ports io.sockets io.sockets.secure io.timeouts kernel
libc locals math math.functions math.order math.parser memoize
namespaces openssl openssl.libcrypto openssl.libssl random sequences
sets splitting unicode ;
IN: io.sockets.secure.openssl
GENERIC: ssl-method ( symbol -- method )
@ -323,8 +323,8 @@ M: ssl-handle dispose*
] with-destructors ;
: check-verify-result ( ssl-handle -- )
SSL_get_verify_result dup X509_V_OK =
[ drop ] [ verify-message certificate-verify-error ] if ;
SSL_get_verify_result X509_V_ERROR number>enum dup X509_V_ERR_OK =
[ drop ] [ certificate-verify-error ] if ;
: x509name>string ( x509name -- string )
NID_commonName 256 <byte-array>

View File

@ -1,10 +1,9 @@
! Copyright (C) 2007 Elie CHAFTARI
! Portions copyright (C) 2008 Slava Pestov
! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.c-types alien.destructors alien.libraries alien.parser
alien.syntax assocs classes.struct combinators kernel lexer
literals namespaces openssl.libcrypto parser quotations
sequences system words ;
USING: alien alien.c-types alien.destructors alien.libraries
alien.parser alien.syntax classes.struct combinators kernel literals
namespaces openssl.libcrypto system ;
IN: openssl.libssl
@ -513,63 +512,48 @@ FUNCTION: void SSL_CTX_set_tmp_rsa_callback ( SSL_CTX* ctx, void* rsa )
! ===============================================
! x509_vfy.h
! ===============================================
<<
SYMBOL: verify-messages
H{ } clone verify-messages set-global
: verify-message ( n -- word ) verify-messages get-global at ;
SYNTAX: X509_V_:
scan-token "X509_V_" prepend create-word-in
scan-number
[ 1quotation ( -- value ) define-inline ]
[ verify-messages get set-at ]
2bi ;
>>
X509_V_: OK 0
X509_V_: ERR_UNABLE_TO_GET_ISSUER_CERT 2
X509_V_: ERR_UNABLE_TO_GET_CRL 3
X509_V_: ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4
X509_V_: ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5
X509_V_: ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6
X509_V_: ERR_CERT_SIGNATURE_FAILURE 7
X509_V_: ERR_CRL_SIGNATURE_FAILURE 8
X509_V_: ERR_CERT_NOT_YET_VALID 9
X509_V_: ERR_CERT_HAS_EXPIRED 10
X509_V_: ERR_CRL_NOT_YET_VALID 11
X509_V_: ERR_CRL_HAS_EXPIRED 12
X509_V_: ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13
X509_V_: ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14
X509_V_: ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15
X509_V_: ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16
X509_V_: ERR_OUT_OF_MEM 17
X509_V_: ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18
X509_V_: ERR_SELF_SIGNED_CERT_IN_CHAIN 19
X509_V_: ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20
X509_V_: ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21
X509_V_: ERR_CERT_CHAIN_TOO_LONG 22
X509_V_: ERR_CERT_REVOKED 23
X509_V_: ERR_INVALID_CA 24
X509_V_: ERR_PATH_LENGTH_EXCEEDED 25
X509_V_: ERR_INVALID_PURPOSE 26
X509_V_: ERR_CERT_UNTRUSTED 27
X509_V_: ERR_CERT_REJECTED 28
X509_V_: ERR_SUBJECT_ISSUER_MISMATCH 29
X509_V_: ERR_AKID_SKID_MISMATCH 30
X509_V_: ERR_AKID_ISSUER_SERIAL_MISMATCH 31
X509_V_: ERR_KEYUSAGE_NO_CERTSIGN 32
X509_V_: ERR_UNABLE_TO_GET_CRL_ISSUER 33
X509_V_: ERR_UNHANDLED_CRITICAL_EXTENSION 34
X509_V_: ERR_KEYUSAGE_NO_CRL_SIGN 35
X509_V_: ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36
X509_V_: ERR_INVALID_NON_CA 37
X509_V_: ERR_PROXY_PATH_LENGTH_EXCEEDED 38
X509_V_: ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39
X509_V_: ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40
X509_V_: ERR_APPLICATION_VERIFICATION 50
ENUM: X509_V_ERROR
X509_V_ERR_OK
{ X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 }
X509_V_ERR_UNABLE_TO_GET_CRL
X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE
X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE
X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
X509_V_ERR_CERT_SIGNATURE_FAILURE
X509_V_ERR_CRL_SIGNATURE_FAILURE
X509_V_ERR_CERT_NOT_YET_VALID
X509_V_ERR_CERT_HAS_EXPIRED
X509_V_ERR_CRL_NOT_YET_VALID
X509_V_ERR_CRL_HAS_EXPIRED
X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD
X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD
X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD
X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD
X509_V_ERR_OUT_OF_MEM
X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN
X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE
X509_V_ERR_CERT_CHAIN_TOO_LONG
X509_V_ERR_CERT_REVOKED
X509_V_ERR_INVALID_CA
X509_V_ERR_PATH_LENGTH_EXCEEDED
X509_V_ERR_INVALID_PURPOSE
X509_V_ERR_CERT_UNTRUSTED
X509_V_ERR_CERT_REJECTED
X509_V_ERR_SUBJECT_ISSUER_MISMATCH
X509_V_ERR_AKID_SKID_MISMATCH
X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH
X509_V_ERR_KEYUSAGE_NO_CERTSIGN
X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER
X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION
X509_V_ERR_KEYUSAGE_NO_CRL_SIGN
X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION
X509_V_ERR_INVALID_NON_CA
X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED
X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE
X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED
{ X509_V_ERR_APPLICATION_VERIFICATION 50 } ;
! ===============================================
! obj_mac.h