;; -*- mode: Scheme; -*- ;; ;; This file is part of cryptlib for CHICKEN ;; Copyright (c) 2011 by Thomas Chust. All rights reserved. ;; ;; Permission is hereby granted, free of charge, to any person ;; obtaining a copy of this software and associated documentation ;; files (the Software), to deal in the Software without restriction, ;; including without limitation the rights to use, copy, modify, ;; merge, publish, distribute, sublicense, and/or sell copies of the ;; Software, and to permit persons to whom the Software is furnished ;; to do so, subject to the following conditions: ;; ;; The above copyright notice and this permission notice shall be ;; included in all copies or substantial portions of the Software. ;; ;; THE SOFTWARE IS PROVIDED ASIS, WITHOUT WARRANTY OF ANY KIND, ;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS ;; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ;; SOFTWARE. ;; cryptlib itself is ;; Copyright 1992-2010 Peter Gutmann. All rights reserved. ;; ;; Redistribution and use in source and binary forms, with or without ;; modification, are permitted provided that the following conditions ;; are met: ;; ;; 1. Redistributions of source code must retain the above copyright ;; notice, this list of conditions and the following disclaimer. ;; ;; 2. Redistributions in binary form must reproduce the above ;; copyright notice, this list of conditions and the following ;; disclaimer in the documentation and/or other materials provided ;; with the distribution. ;; ;; 3. Redistributions in any form must be accompanied by information ;; on how to obtain complete source code for the cryptlib software ;; and any accompanying software that uses the cryptlib software. ;; The source code must either be included in the distribution or ;; be available for no more than the cost of distribution, and must ;; be freely redistributable under reasonable conditions. For an ;; executable file, complete source code means the source code for ;; all modules it contains or uses. It does not include source ;; code for modules or files that typically accompany the major ;; components of the operating system on which the executable file ;; runs. Note that decoupling the software from the user, for ;; example by running in a SaaS configuration, does not exempt you ;; from these requirements. ;; ;; THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED ;; WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ;; OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ;; NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE ;; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT ;; OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE ;; USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH ;; DAMAGE. (require-library srfi-4 srfi-13 srfi-18 srfi-69 ports lolevel) (module cryptlib (ALGO-NONE ALGO-DES ALGO-3DES ALGO-IDEA ALGO-RC2 ALGO-RC4 ALGO-AES ALGO-DH ALGO-RSA ALGO-DSA ALGO-ELGAMAL ALGO-ECDSA ALGO-ECDH ALGO-MD5 ALGO-SHA1 ALGO-SHA2 ALGO-SHAng ALGO-HMAC-SHA1 ALGO-HMAC-SHA2 ALGO-HMAC-SHAng ALGO-FIRST-CONVENTIONAL ALGO-LAST-CONVENTIONAL ALGO-FIRST-PKC ALGO-LAST-PKC ALGO-FIRST-HASH ALGO-LAST-HASH ALGO-FIRST-MAC ALGO-LAST-MAC MODE-NONE MODE-ECB MODE-CBC MODE-CFB MODE-GCM MODE-LAST KEYSET-NONE KEYSET-FILE KEYSET-HTTP KEYSET-LDAP KEYSET-ODBC KEYSET-DATABASE KEYSET-ODBC-STORE KEYSET-DATABASE-STORE KEYSET-LAST DEVICE-NONE DEVICE-FORTEZZA DEVICE-PKCS11 DEVICE-CRYPTOAPI DEVICE-HARDWARE DEVICE-LAST CERTTYPE-NONE CERTTYPE-CERTIFICATE CERTTYPE-ATTRIBUTE-CERT CERTTYPE-CERTCHAIN CERTTYPE-CERTREQUEST CERTTYPE-REQUEST-CERT CERTTYPE-REQUEST-REVOCATION CERTTYPE-CRL CERTTYPE-CMS-ATTRIBUTES CERTTYPE-RTCS-REQUEST CERTTYPE-RTCS-RESPONSE CERTTYPE-OCSP-REQUEST CERTTYPE-OCSP-RESPONSE CERTTYPE-PKIUSER CERTTYPE-LAST FORMAT-NONE FORMAT-AUTO FORMAT-CRYPTLIB FORMAT-CMS FORMAT-PKCS7 FORMAT-SMIME FORMAT-PGP FORMAT-LAST SESSION-NONE SESSION-SSH SESSION-SSH-SERVER SESSION-SSL SESSION-SSL-SERVER SESSION-TLS SESSION-TLS-SERVER SESSION-RTCS SESSION-RTCS-SERVER SESSION-OCSP SESSION-OCSP-SERVER SESSION-TSP SESSION-TSP-SERVER SESSION-CMP SESSION-CMP-SERVER SESSION-SCEP SESSION-SCEP-SERVER SESSION-CERTSTORE-SERVER SESSION-LAST USER-NONE USER-NORMAL USER-SO USER-CA USER-LAST ATTRIBUTE-NONE PROPERTY-HIGHSECURITY PROPERTY-OWNER PROPERTY-FORWARDCOUNT PROPERTY-LOCKED PROPERTY-USAGECOUNT PROPERTY-NONEXPORTABLE ATTRIBUTE-ERRORTYPE ATTRIBUTE-ERRORLOCUS ATTRIBUTE-ERRORMESSAGE ATTRIBUTE-CURRENT-GROUP ATTRIBUTE-CURRENT ATTRIBUTE-CURRENT-INSTANCE ATTRIBUTE-BUFFERSIZE OPTION-INFO-DESCRIPTION OPTION-INFO-COPYRIGHT OPTION-INFO-MAJORVERSION OPTION-INFO-MINORVERSION OPTION-INFO-STEPPING OPTION-ENCR-ALGO OPTION-ENCR-HASH OPTION-ENCR-MAC OPTION-PKC-ALGO OPTION-PKC-KEYSIZE OPTION-SIG-ALGO OPTION-SIG-KEYSIZE OPTION-KEYING-ALGO OPTION-KEYING-ITERATIONS OPTION-CERT-SIGNUNRECOGNISEDATTRIBUTES OPTION-CERT-VALIDITY OPTION-CERT-UPDATEINTERVAL OPTION-CERT-COMPLIANCELEVEL OPTION-CMS-DEFAULTATTRIBUTES OPTION-SMIME-DEFAULTATTRIBUTES OPTION-KEYS-LDAP-OBJECTCLASS OPTION-KEYS-LDAP-OBJECTTYPE OPTION-KEYS-LDAP-FILTER OPTION-KEYS-LDAP-CACERTNAME OPTION-KEYS-LDAP-CERTNAME OPTION-KEYS-LDAP-CRLNAME OPTION-KEYS-LDAP-EMAILNAME OPTION-DEVICE-PKCS11-DVR01 OPTION-DEVICE-PKCS11-DVR02 OPTION-DEVICE-PKCS11-DVR03 OPTION-DEVICE-PKCS11-DVR04 OPTION-DEVICE-PKCS11-DVR05 OPTION-DEVICE-PKCS11-HARDWAREONLY OPTION-NET-SOCKS-SERVER OPTION-NET-SOCKS-USERNAME OPTION-NET-HTTP-PROXY OPTION-NET-CONNECTTIMEOUT OPTION-NET-READTIMEOUT OPTION-NET-WRITETIMEOUT OPTION-MISC-ASYNCINIT OPTION-MISC-SIDECHANNELPROTECTION OPTION-CONFIGCHANGED OPTION-SELFTESTOK CTXINFO-ALGO CTXINFO-MODE CTXINFO-NAME-ALGO CTXINFO-NAME-MODE CTXINFO-KEYSIZE CTXINFO-BLOCKSIZE CTXINFO-IVSIZE CTXINFO-KEYING-ALGO CTXINFO-KEYING-ITERATIONS CTXINFO-KEYING-SALT CTXINFO-KEYING-VALUE CTXINFO-KEY CTXINFO-KEY-COMPONENTS CTXINFO-IV CTXINFO-HASHVALUE CTXINFO-LABEL CTXINFO-PERSISTENT CERTINFO-SELFSIGNED CERTINFO-IMMUTABLE CERTINFO-XYZZY CERTINFO-CERTTYPE CERTINFO-FINGERPRINT-SHA1 CERTINFO-FINGERPRINT-SHA2 CERTINFO-FINGERPRINT-SHAng CERTINFO-CURRENT-CERTIFICATE CERTINFO-TRUSTED-USAGE CERTINFO-TRUSTED-IMPLICIT CERTINFO-SIGNATURELEVEL CERTINFO-VERSION CERTINFO-SERIALNUMBER CERTINFO-SUBJECTPUBLICKEYINFO CERTINFO-CERTIFICATE CERTINFO-USERCERTIFICATE CERTINFO-CACERTIFICATE CERTINFO-ISSUERNAME CERTINFO-VALIDFROM CERTINFO-VALIDTO CERTINFO-SUBJECTNAME CERTINFO-ISSUERUNIQUEID CERTINFO-SUBJECTUNIQUEID CERTINFO-CERTREQUEST CERTINFO-THISUPDATE CERTINFO-NEXTUPDATE CERTINFO-REVOCATIONDATE CERTINFO-REVOCATIONSTATUS CERTINFO-CERTSTATUS CERTINFO-DN CERTINFO-PKIUSER-ID CERTINFO-PKIUSER-ISSUEPASSWORD CERTINFO-PKIUSER-REVPASSWORD CERTINFO-PKIUSER-RA CERTINFO-COUNTRYNAME CERTINFO-STATEORPROVINCENAME CERTINFO-LOCALITYNAME CERTINFO-ORGANIZATIONNAME CERTINFO-ORGANISATIONNAME CERTINFO-ORGANIZATIONALUNITNAME CERTINFO-ORGANISATIONALUNITNAME CERTINFO-COMMONNAME CERTINFO-OTHERNAME-TYPEID CERTINFO-OTHERNAME-VALUE CERTINFO-RFC822NAME CERTINFO-EMAIL CERTINFO-DNSNAME CERTINFO-DIRECTORYNAME CERTINFO-EDIPARTYNAME-NAMEASSIGNER CERTINFO-EDIPARTYNAME-PARTYNAME CERTINFO-UNIFORMRESOURCEIDENTIFIER CERTINFO-URL CERTINFO-IPADDRESS CERTINFO-REGISTEREDID CERTINFO-CHALLENGEPASSWORD CERTINFO-CRLEXTREASON CERTINFO-KEYFEATURES CERTINFO-AUTHORITYINFOACCESS CERTINFO-AUTHORITYINFO-RTCS CERTINFO-AUTHORITYINFO-OCSP CERTINFO-AUTHORITYINFO-CAISSUERS CERTINFO-AUTHORITYINFO-CERTSTORE CERTINFO-AUTHORITYINFO-CRLS CERTINFO-BIOMETRICINFO CERTINFO-BIOMETRICINFO-TYPE CERTINFO-BIOMETRICINFO-HASHALGO CERTINFO-BIOMETRICINFO-HASH CERTINFO-BIOMETRICINFO-URL CERTINFO-QCSTATEMENT CERTINFO-QCSTATEMENT-SEMANTICS CERTINFO-QCSTATEMENT-REGISTRATIONAUTHORITY CERTINFO-IPADDRESSBLOCKS CERTINFO-IPADDRESSBLOCKS-ADDRESSFAMILY CERTINFO-IPADDRESSBLOCKS-PREFIX CERTINFO-IPADDRESSBLOCKS-MIN CERTINFO-IPADDRESSBLOCKS-MAX CERTINFO-AUTONOMOUSSYSIDS CERTINFO-AUTONOMOUSSYSIDS-ASNUM-ID CERTINFO-AUTONOMOUSSYSIDS-ASNUM-MIN CERTINFO-AUTONOMOUSSYSIDS-ASNUM-MAX CERTINFO-OCSP-NONCE CERTINFO-OCSP-RESPONSE CERTINFO-OCSP-RESPONSE-OCSP CERTINFO-OCSP-NOCHECK CERTINFO-OCSP-ARCHIVECUTOFF CERTINFO-SUBJECTINFOACCESS CERTINFO-SUBJECTINFO-CAREPOSITORY CERTINFO-SUBJECTINFO-TIMESTAMPING CERTINFO-SUBJECTINFO-SIGNEDOBJECTREPOSITORY CERTINFO-SUBJECTINFO-RPKIMANIFEST CERTINFO-SUBJECTINFO-SIGNEDOBJECT CERTINFO-SIGG-DATEOFCERTGEN CERTINFO-SIGG-PROCURATION CERTINFO-SIGG-PROCURE-COUNTRY CERTINFO-SIGG-PROCURE-TYPEOFSUBSTITUTION CERTINFO-SIGG-PROCURE-SIGNINGFOR CERTINFO-SIGG-ADMISSIONS CERTINFO-SIGG-ADMISSIONS-AUTHORITY CERTINFO-SIGG-ADMISSIONS-NAMINGAUTHID CERTINFO-SIGG-ADMISSIONS-NAMINGAUTHURL CERTINFO-SIGG-ADMISSIONS-NAMINGAUTHTEXT CERTINFO-SIGG-ADMISSIONS-PROFESSIONITEM CERTINFO-SIGG-ADMISSIONS-PROFESSIONOID CERTINFO-SIGG-ADMISSIONS-REGISTRATIONNUMBER CERTINFO-SIGG-MONETARYLIMIT CERTINFO-SIGG-MONETARY-CURRENCY CERTINFO-SIGG-MONETARY-AMOUNT CERTINFO-SIGG-MONETARY-EXPONENT CERTINFO-SIGG-DECLARATIONOFMAJORITY CERTINFO-SIGG-DECLARATIONOFMAJORITY-COUNTRY CERTINFO-SIGG-RESTRICTION CERTINFO-SIGG-CERTHASH CERTINFO-SIGG-ADDITIONALINFORMATION CERTINFO-STRONGEXTRANET CERTINFO-STRONGEXTRANET-ZONE CERTINFO-STRONGEXTRANET-ID CERTINFO-SUBJECTDIRECTORYATTRIBUTES CERTINFO-SUBJECTDIR-TYPE CERTINFO-SUBJECTDIR-VALUES CERTINFO-SUBJECTKEYIDENTIFIER CERTINFO-KEYUSAGE CERTINFO-PRIVATEKEYUSAGEPERIOD CERTINFO-PRIVATEKEY-NOTBEFORE CERTINFO-PRIVATEKEY-NOTAFTER CERTINFO-SUBJECTALTNAME CERTINFO-ISSUERALTNAME CERTINFO-BASICCONSTRAINTS CERTINFO-CA CERTINFO-AUTHORITY CERTINFO-PATHLENCONSTRAINT CERTINFO-CRLNUMBER CERTINFO-CRLREASON CERTINFO-HOLDINSTRUCTIONCODE CERTINFO-INVALIDITYDATE CERTINFO-DELTACRLINDICATOR CERTINFO-ISSUINGDISTRIBUTIONPOINT CERTINFO-ISSUINGDIST-FULLNAME CERTINFO-ISSUINGDIST-USERCERTSONLY CERTINFO-ISSUINGDIST-CACERTSONLY CERTINFO-ISSUINGDIST-SOMEREASONSONLY CERTINFO-ISSUINGDIST-INDIRECTCRL CERTINFO-CERTIFICATEISSUER CERTINFO-NAMECONSTRAINTS CERTINFO-PERMITTEDSUBTREES CERTINFO-EXCLUDEDSUBTREES CERTINFO-CRLDISTRIBUTIONPOINT CERTINFO-CRLDIST-FULLNAME CERTINFO-CRLDIST-REASONS CERTINFO-CRLDIST-CRLISSUER CERTINFO-CERTIFICATEPOLICIES CERTINFO-CERTPOLICYID CERTINFO-CERTPOLICY-CPSURI CERTINFO-CERTPOLICY-ORGANIZATION CERTINFO-CERTPOLICY-NOTICENUMBERS CERTINFO-CERTPOLICY-EXPLICITTEXT CERTINFO-POLICYMAPPINGS CERTINFO-ISSUERDOMAINPOLICY CERTINFO-SUBJECTDOMAINPOLICY CERTINFO-AUTHORITYKEYIDENTIFIER CERTINFO-AUTHORITY-KEYIDENTIFIER CERTINFO-AUTHORITY-CERTISSUER CERTINFO-AUTHORITY-CERTSERIALNUMBER CERTINFO-POLICYCONSTRAINTS CERTINFO-REQUIREEXPLICITPOLICY CERTINFO-INHIBITPOLICYMAPPING CERTINFO-EXTKEYUSAGE CERTINFO-EXTKEY-MS-INDIVIDUALCODESIGNING CERTINFO-EXTKEY-MS-COMMERCIALCODESIGNING CERTINFO-EXTKEY-MS-CERTTRUSTLISTSIGNING CERTINFO-EXTKEY-MS-TIMESTAMPSIGNING CERTINFO-EXTKEY-MS-SERVERGATEDCRYPTO CERTINFO-EXTKEY-MS-ENCRYPTEDFILESYSTEM CERTINFO-EXTKEY-SERVERAUTH CERTINFO-EXTKEY-CLIENTAUTH CERTINFO-EXTKEY-CODESIGNING CERTINFO-EXTKEY-EMAILPROTECTION CERTINFO-EXTKEY-IPSECENDSYSTEM CERTINFO-EXTKEY-IPSECTUNNEL CERTINFO-EXTKEY-IPSECUSER CERTINFO-EXTKEY-TIMESTAMPING CERTINFO-EXTKEY-OCSPSIGNING CERTINFO-EXTKEY-DIRECTORYSERVICE CERTINFO-EXTKEY-ANYKEYUSAGE CERTINFO-EXTKEY-NS-SERVERGATEDCRYPTO CERTINFO-EXTKEY-VS-SERVERGATEDCRYPTO-CA CERTINFO-CRLSTREAMIDENTIFIER CERTINFO-FRESHESTCRL CERTINFO-FRESHESTCRL-FULLNAME CERTINFO-FRESHESTCRL-REASONS CERTINFO-FRESHESTCRL-CRLISSUER CERTINFO-ORDEREDLIST CERTINFO-BASEUPDATETIME CERTINFO-DELTAINFO CERTINFO-DELTAINFO-LOCATION CERTINFO-DELTAINFO-NEXTDELTA CERTINFO-INHIBITANYPOLICY CERTINFO-TOBEREVOKED CERTINFO-TOBEREVOKED-CERTISSUER CERTINFO-TOBEREVOKED-REASONCODE CERTINFO-TOBEREVOKED-REVOCATIONTIME CERTINFO-TOBEREVOKED-CERTSERIALNUMBER CERTINFO-REVOKEDGROUPS CERTINFO-REVOKEDGROUPS-CERTISSUER CERTINFO-REVOKEDGROUPS-REASONCODE CERTINFO-REVOKEDGROUPS-INVALIDITYDATE CERTINFO-REVOKEDGROUPS-STARTINGNUMBER CERTINFO-REVOKEDGROUPS-ENDINGNUMBER CERTINFO-EXPIREDCERTSONCRL CERTINFO-AAISSUINGDISTRIBUTIONPOINT CERTINFO-AAISSUINGDIST-FULLNAME CERTINFO-AAISSUINGDIST-SOMEREASONSONLY CERTINFO-AAISSUINGDIST-INDIRECTCRL CERTINFO-AAISSUINGDIST-USERATTRCERTS CERTINFO-AAISSUINGDIST-AACERTS CERTINFO-AAISSUINGDIST-SOACERTS CERTINFO-NS-CERTTYPE CERTINFO-NS-BASEURL CERTINFO-NS-REVOCATIONURL CERTINFO-NS-CAREVOCATIONURL CERTINFO-NS-CERTRENEWALURL CERTINFO-NS-CAPOLICYURL CERTINFO-NS-SSLSERVERNAME CERTINFO-NS-COMMENT CERTINFO-SET-HASHEDROOTKEY CERTINFO-SET-ROOTKEYTHUMBPRINT CERTINFO-SET-CERTIFICATETYPE CERTINFO-SET-MERCHANTDATA CERTINFO-SET-MERID CERTINFO-SET-MERACQUIRERBIN CERTINFO-SET-MERCHANTLANGUAGE CERTINFO-SET-MERCHANTNAME CERTINFO-SET-MERCHANTCITY CERTINFO-SET-MERCHANTSTATEPROVINCE CERTINFO-SET-MERCHANTPOSTALCODE CERTINFO-SET-MERCHANTCOUNTRYNAME CERTINFO-SET-MERCOUNTRY CERTINFO-SET-MERAUTHFLAG CERTINFO-SET-CERTCARDREQUIRED CERTINFO-SET-TUNNELING CERTINFO-SET-TUNNELLING CERTINFO-SET-TUNNELINGFLAG CERTINFO-SET-TUNNELLINGFLAG CERTINFO-SET-TUNNELINGALGID CERTINFO-SET-TUNNELLINGALGID CERTINFO-CMS-CONTENTTYPE CERTINFO-CMS-MESSAGEDIGEST CERTINFO-CMS-SIGNINGTIME CERTINFO-CMS-COUNTERSIGNATURE CERTINFO-CMS-SIGNINGDESCRIPTION CERTINFO-CMS-SMIMECAPABILITIES CERTINFO-CMS-SMIMECAP-3DES CERTINFO-CMS-SMIMECAP-AES CERTINFO-CMS-SMIMECAP-CAST128 CERTINFO-CMS-SMIMECAP-SHAng CERTINFO-CMS-SMIMECAP-SHA2 CERTINFO-CMS-SMIMECAP-SHA1 CERTINFO-CMS-SMIMECAP-HMAC-SHAng CERTINFO-CMS-SMIMECAP-HMAC-SHA2 CERTINFO-CMS-SMIMECAP-HMAC-SHA1 CERTINFO-CMS-SMIMECAP-AUTHENC256 CERTINFO-CMS-SMIMECAP-AUTHENC128 CERTINFO-CMS-SMIMECAP-RSA-SHAng CERTINFO-CMS-SMIMECAP-RSA-SHA2 CERTINFO-CMS-SMIMECAP-RSA-SHA1 CERTINFO-CMS-SMIMECAP-DSA-SHA1 CERTINFO-CMS-SMIMECAP-ECDSA-SHAng CERTINFO-CMS-SMIMECAP-ECDSA-SHA2 CERTINFO-CMS-SMIMECAP-ECDSA-SHA1 CERTINFO-CMS-SMIMECAP-PREFERSIGNEDDATA CERTINFO-CMS-SMIMECAP-CANNOTDECRYPTANY CERTINFO-CMS-SMIMECAP-PREFERBINARYINSIDE CERTINFO-CMS-RECEIPTREQUEST CERTINFO-CMS-RECEIPT-CONTENTIDENTIFIER CERTINFO-CMS-RECEIPT-FROM CERTINFO-CMS-RECEIPT-TO CERTINFO-CMS-SECURITYLABEL CERTINFO-CMS-SECLABEL-CLASSIFICATION CERTINFO-CMS-SECLABEL-POLICY CERTINFO-CMS-SECLABEL-PRIVACYMARK CERTINFO-CMS-SECLABEL-CATTYPE CERTINFO-CMS-SECLABEL-CATVALUE CERTINFO-CMS-MLEXPANSIONHISTORY CERTINFO-CMS-MLEXP-ENTITYIDENTIFIER CERTINFO-CMS-MLEXP-TIME CERTINFO-CMS-MLEXP-NONE CERTINFO-CMS-MLEXP-INSTEADOF CERTINFO-CMS-MLEXP-INADDITIONTO CERTINFO-CMS-CONTENTHINTS CERTINFO-CMS-CONTENTHINT-DESCRIPTION CERTINFO-CMS-CONTENTHINT-TYPE CERTINFO-CMS-EQUIVALENTLABEL CERTINFO-CMS-EQVLABEL-POLICY CERTINFO-CMS-EQVLABEL-CLASSIFICATION CERTINFO-CMS-EQVLABEL-PRIVACYMARK CERTINFO-CMS-EQVLABEL-CATTYPE CERTINFO-CMS-EQVLABEL-CATVALUE CERTINFO-CMS-SIGNINGCERTIFICATE CERTINFO-CMS-SIGNINGCERT-ESSCERTID CERTINFO-CMS-SIGNINGCERT-POLICIES CERTINFO-CMS-SIGNINGCERTIFICATEV2 CERTINFO-CMS-SIGNINGCERTV2-ESSCERTIDV2 CERTINFO-CMS-SIGNINGCERTV2-POLICIES CERTINFO-CMS-SIGNATUREPOLICYID CERTINFO-CMS-SIGPOLICYID CERTINFO-CMS-SIGPOLICYHASH CERTINFO-CMS-SIGPOLICY-CPSURI CERTINFO-CMS-SIGPOLICY-ORGANIZATION CERTINFO-CMS-SIGPOLICY-NOTICENUMBERS CERTINFO-CMS-SIGPOLICY-EXPLICITTEXT CERTINFO-CMS-SIGTYPEIDENTIFIER CERTINFO-CMS-SIGTYPEID-ORIGINATORSIG CERTINFO-CMS-SIGTYPEID-DOMAINSIG CERTINFO-CMS-SIGTYPEID-ADDITIONALATTRIBUTES CERTINFO-CMS-SIGTYPEID-REVIEWSIG CERTINFO-CMS-NONCE CERTINFO-SCEP-MESSAGETYPE CERTINFO-SCEP-PKISTATUS CERTINFO-SCEP-FAILINFO CERTINFO-SCEP-SENDERNONCE CERTINFO-SCEP-RECIPIENTNONCE CERTINFO-SCEP-TRANSACTIONID CERTINFO-CMS-SPCAGENCYINFO CERTINFO-CMS-SPCAGENCYURL CERTINFO-CMS-SPCSTATEMENTTYPE CERTINFO-CMS-SPCSTMT-INDIVIDUALCODESIGNING CERTINFO-CMS-SPCSTMT-COMMERCIALCODESIGNING CERTINFO-CMS-SPCOPUSINFO CERTINFO-CMS-SPCOPUSINFO-NAME CERTINFO-CMS-SPCOPUSINFO-URL KEYINFO-QUERY KEYINFO-QUERY-REQUESTS DEVINFO-INITIALISE DEVINFO-INITIALIZE DEVINFO-AUTHENT-USER DEVINFO-AUTHENT-SUPERVISOR DEVINFO-SET-AUTHENT-USER DEVINFO-SET-AUTHENT-SUPERVISOR DEVINFO-ZEROISE DEVINFO-ZEROIZE DEVINFO-LOGGEDIN DEVINFO-LABEL ENVINFO-DATASIZE ENVINFO-COMPRESSION ENVINFO-CONTENTTYPE ENVINFO-DETACHEDSIGNATURE ENVINFO-SIGNATURE-RESULT ENVINFO-INTEGRITY ENVINFO-PASSWORD ENVINFO-KEY ENVINFO-SIGNATURE ENVINFO-SIGNATURE-EXTRADATA ENVINFO-RECIPIENT ENVINFO-PUBLICKEY ENVINFO-PRIVATEKEY ENVINFO-PRIVATEKEY-LABEL ENVINFO-ORIGINATOR ENVINFO-SESSIONKEY ENVINFO-HASH ENVINFO-TIMESTAMP ENVINFO-KEYSET-SIGCHECK ENVINFO-KEYSET-ENCRYPT ENVINFO-KEYSET-DECRYPT SESSINFO-ACTIVE SESSINFO-CONNECTIONACTIVE SESSINFO-USERNAME SESSINFO-PASSWORD SESSINFO-PRIVATEKEY SESSINFO-KEYSET SESSINFO-AUTHRESPONSE SESSINFO-SERVER-NAME SESSINFO-SERVER-PORT SESSINFO-SERVER-FINGERPRINT-SHA1 SESSINFO-CLIENT-NAME SESSINFO-CLIENT-PORT SESSINFO-SESSION SESSINFO-NETWORKSOCKET SESSINFO-VERSION SESSINFO-REQUEST SESSINFO-RESPONSE SESSINFO-CACERTIFICATE SESSINFO-TSP-MSGIMPRINT SESSINFO-CMP-REQUESTTYPE SESSINFO-CMP-PRIVKEYSET SESSINFO-SSH-CHANNEL SESSINFO-SSH-CHANNEL-TYPE SESSINFO-SSH-CHANNEL-ARG1 SESSINFO-SSH-CHANNEL-ARG2 SESSINFO-SSH-CHANNEL-ACTIVE SESSINFO-SSL-OPTIONS USERINFO-PASSWORD USERINFO-CAKEY-CERTSIGN USERINFO-CAKEY-CRLSIGN USERINFO-CAKEY-RTCSSIGN USERINFO-CAKEY-OCSPSIGN KEYUSAGE-NONE KEYUSAGE-DIGITALSIGNATURE KEYUSAGE-NONREPUDIATION KEYUSAGE-KEYENCIPHERMENT KEYUSAGE-DATAENCIPHERMENT KEYUSAGE-KEYAGREEMENT KEYUSAGE-KEYCERTSIGN KEYUSAGE-CRLSIGN KEYUSAGE-ENCIPHERONLY KEYUSAGE-DECIPHERONLY KEYUSAGE-LAST CRLREASON-UNSPECIFIED CRLREASON-KEYCOMPROMISE CRLREASON-CACOMPROMISE CRLREASON-AFFILIATIONCHANGED CRLREASON-SUPERSEDED CRLREASON-CESSATIONOFOPERATION CRLREASON-CERTIFICATEHOLD CRLREASON-REMOVEFROMCRL CRLREASON-PRIVILEGEWITHDRAWN CRLREASON-AACOMPROMISE CRLREASON-LAST CRLREASON-NEVERVALID CRLEXTREASON-LAST CRLREASONFLAG-UNUSED CRLREASONFLAG-KEYCOMPROMISE CRLREASONFLAG-CACOMPROMISE CRLREASONFLAG-AFFILIATIONCHANGED CRLREASONFLAG-SUPERSEDED CRLREASONFLAG-CESSATIONOFOPERATION CRLREASONFLAG-CERTIFICATEHOLD CRLREASONFLAG-LAST HOLDINSTRUCTION-NONE HOLDINSTRUCTION-CALLISSUER HOLDINSTRUCTION-REJECT HOLDINSTRUCTION-PICKUPTOKEN HOLDINSTRUCTION-LAST COMPLIANCELEVEL-OBLIVIOUS COMPLIANCELEVEL-REDUCED COMPLIANCELEVEL-STANDARD COMPLIANCELEVEL-PKIX-PARTIAL COMPLIANCELEVEL-PKIX-FULL COMPLIANCELEVEL-LAST NS-CERTTYPE-SSLCLIENT NS-CERTTYPE-SSLSERVER NS-CERTTYPE-SMIME NS-CERTTYPE-OBJECTSIGNING NS-CERTTYPE-SSLCA NS-CERTTYPE-SMIMECA NS-CERTTYPE-OBJECTSIGNINGCA NS-CERTTYPE-LAST SET-CERTTYPE-CARD SET-CERTTYPE-MER SET-CERTTYPE-PGWY SET-CERTTYPE-CCA SET-CERTTYPE-MCA SET-CERTTYPE-PCA SET-CERTTYPE-GCA SET-CERTTYPE-BCA SET-CERTTYPE-RCA SET-CERTTYPE-ACQ SET-CERTTYPE-LAST CONTENT-NONE CONTENT-DATA CONTENT-SIGNEDDATA CONTENT-ENVELOPEDDATA CONTENT-SIGNEDANDENVELOPEDDATA CONTENT-DIGESTEDDATA CONTENT-ENCRYPTEDDATA CONTENT-COMPRESSEDDATA CONTENT-AUTHDATA CONTENT-AUTHENVDATA CONTENT-TSTINFO CONTENT-SPCINDIRECTDATACONTEXT CONTENT-RTCSREQUEST CONTENT-RTCSRESPONSE CONTENT-RTCSRESPONSE-EXT CONTENT-MRTD CONTENT-LAST CLASSIFICATION-UNMARKED CLASSIFICATION-UNCLASSIFIED CLASSIFICATION-RESTRICTED CLASSIFICATION-CONFIDENTIAL CLASSIFICATION-SECRET CLASSIFICATION-TOP-SECRET CLASSIFICATION-LAST CERTSTATUS-VALID CERTSTATUS-NOTVALID CERTSTATUS-NONAUTHORITATIVE CERTSTATUS-UNKNOWN OCSPSTATUS-NOTREVOKED OCSPSTATUS-REVOKED OCSPSTATUS-UNKNOWN SIGNATURELEVEL-NONE SIGNATURELEVEL-SIGNERCERT SIGNATURELEVEL-ALL SIGNATURELEVEL-LAST INTEGRITY-NONE INTEGRITY-MACONLY INTEGRITY-FULL CERTFORMAT-NONE CERTFORMAT-CERTIFICATE CERTFORMAT-CERTCHAIN CERTFORMAT-TEXT-CERTIFICATE CERTFORMAT-TEXT-CERTCHAIN CERTFORMAT-XML-CERTIFICATE CERTFORMAT-XML-CERTCHAIN CERTFORMAT-LAST REQUESTTYPE-NONE REQUESTTYPE-INITIALISATION REQUESTTYPE-INITIALIZATION REQUESTTYPE-CERTIFICATE REQUESTTYPE-KEYUPDATE REQUESTTYPE-REVOCATION REQUESTTYPE-PKIBOOT REQUESTTYPE-LAST KEYID-NONE KEYID-NAME KEYID-URI KEYID-EMAIL KEYID-LAST OBJECT-NONE OBJECT-ENCRYPTED-KEY OBJECT-PKCENCRYPTED-KEY OBJECT-KEYAGREEMENT OBJECT-SIGNATURE OBJECT-LAST ERRTYPE-NONE ERRTYPE-ATTR-SIZE ERRTYPE-ATTR-VALUE ERRTYPE-ATTR-ABSENT ERRTYPE-ATTR-PRESENT ERRTYPE-CONSTRAINT ERRTYPE-ISSUERCONSTRAINT ERRTYPE-LAST CERTACTION-NONE CERTACTION-CREATE CERTACTION-CONNECT CERTACTION-DISCONNECT CERTACTION-ERROR CERTACTION-ADDUSER CERTACTION-DELETEUSER CERTACTION-REQUEST-CERT CERTACTION-REQUEST-RENEWAL CERTACTION-REQUEST-REVOCATION CERTACTION-CERT-CREATION CERTACTION-CERT-CREATION-COMPLETE CERTACTION-CERT-CREATION-DROP CERTACTION-CERT-CREATION-REVERSE CERTACTION-RESTART-CLEANUP CERTACTION-RESTART-REVOKE-CERT CERTACTION-ISSUE-CERT CERTACTION-ISSUE-CRL CERTACTION-REVOKE-CERT CERTACTION-EXPIRE-CERT CERTACTION-CLEANUP CERTACTION-LAST SSLOPTION-NONE SSLOPTION-MINVER-SSLV3 SSLOPTION-MINVER-TLS10 SSLOPTION-MINVER-TLS11 SSLOPTION-MINVER-TLS12 SSLOPTION-MINVER-TLS13 SSLOPTION-MANUAL-CERTCHECK SSLOPTION-DISABLE-NAMEVERIFY SSLOPTION-DISABLE-CERTVERIFY SSLOPTION-SUITEB-128 SSLOPTION-SUITEB-256 MAX-KEYSIZE MAX-IVSIZE MAX-PKCSIZE MAX-PKCSIZE-ECC MAX-HASHSIZE MAX-TEXTSIZE USE-DEFAULT UNUSED KEYTYPE-PRIVATE KEYTYPE-PUBLIC RANDOM-FASTPOLL RANDOM-SLOWPOLL CURSOR-FIRST CURSOR-PREVIOUS CURSOR-NEXT CURSOR-LAST KEYOPT-NONE KEYOPT-READONLY KEYOPT-CREATE KEYOPT-LAST OK ERROR-PARAM1 ERROR-PARAM2 ERROR-PARAM3 ERROR-PARAM4 ERROR-PARAM5 ERROR-PARAM6 ERROR-PARAM7 ERROR-MEMORY ERROR-NOTINITED ERROR-INITED ERROR-NOSECURE ERROR-RANDOM ERROR-FAILED ERROR-INTERNAL ERROR-NOTAVAIL ERROR-PERMISSION ERROR-WRONGKEY ERROR-INCOMPLETE ERROR-COMPLETE ERROR-TIMEOUT ERROR-INVALID ERROR-SIGNALLED ERROR-OVERFLOW ERROR-UNDERFLOW ERROR-BADDATA ERROR-SIGNATURE ERROR-OPEN ERROR-READ ERROR-WRITE ERROR-NOTFOUND ERROR-DUPLICATE ENVELOPE-RESOURCE add-random! login logout destroy-object open-device query-capability query-object create-context generate-key encrypt decrypt attribute attribute-set! attribute/string attribute-set!/string attribute-delete! export-key import-key create-signature check-signature open-keyset get-public-key get-private-key get-key add-public-key! add-private-key! delete-key! create-cert sign-cert! check-cert export-cert import-cert ca-get-item ca-add-item! ca-delete-item! ca-cert-management create-envelope create-session push-data pop-data flush-data object-port? port->object open-input-object open-output-object) (import scheme chicken foreign srfi-4 srfi-13 srfi-69 ports lolevel (only srfi-18 raise thread-yield!)) (foreign-declare "#include ") (define ALGO-NONE (foreign-value "CRYPT_ALGO_NONE" int)) (define ALGO-DES (foreign-value "CRYPT_ALGO_DES" int)) (define ALGO-3DES (foreign-value "CRYPT_ALGO_3DES" int)) (define ALGO-IDEA (foreign-value "CRYPT_ALGO_IDEA" int)) (define ALGO-RC2 (foreign-value "CRYPT_ALGO_RC2" int)) (define ALGO-RC4 (foreign-value "CRYPT_ALGO_RC4" int)) (define ALGO-AES (foreign-value "CRYPT_ALGO_AES" int)) (define ALGO-DH (foreign-value "CRYPT_ALGO_DH" int)) (define ALGO-RSA (foreign-value "CRYPT_ALGO_RSA" int)) (define ALGO-DSA (foreign-value "CRYPT_ALGO_DSA" int)) (define ALGO-ELGAMAL (foreign-value "CRYPT_ALGO_ELGAMAL" int)) (define ALGO-ECDSA (foreign-value "CRYPT_ALGO_ECDSA" int)) (define ALGO-ECDH (foreign-value "CRYPT_ALGO_ECDH" int)) (define ALGO-MD5 (foreign-value "CRYPT_ALGO_MD5" int)) (define ALGO-SHA1 (foreign-value "CRYPT_ALGO_SHA1" int)) (define ALGO-SHA2 (foreign-value "CRYPT_ALGO_SHA2" int)) (define ALGO-SHAng (foreign-value "CRYPT_ALGO_SHAng" int)) (define ALGO-HMAC-SHA1 (foreign-value "CRYPT_ALGO_HMAC_SHA1" int)) (define ALGO-HMAC-SHA2 (foreign-value "CRYPT_ALGO_HMAC_SHA2" int)) (define ALGO-HMAC-SHAng (foreign-value "CRYPT_ALGO_HMAC_SHAng" int)) (define ALGO-FIRST-CONVENTIONAL (foreign-value "CRYPT_ALGO_FIRST_CONVENTIONAL" int)) (define ALGO-LAST-CONVENTIONAL (foreign-value "CRYPT_ALGO_LAST_CONVENTIONAL" int)) (define ALGO-FIRST-PKC (foreign-value "CRYPT_ALGO_FIRST_PKC" int)) (define ALGO-LAST-PKC (foreign-value "CRYPT_ALGO_LAST_PKC" int)) (define ALGO-FIRST-HASH (foreign-value "CRYPT_ALGO_FIRST_HASH" int)) (define ALGO-LAST-HASH (foreign-value "CRYPT_ALGO_LAST_HASH" int)) (define ALGO-FIRST-MAC (foreign-value "CRYPT_ALGO_FIRST_MAC" int)) (define ALGO-LAST-MAC (foreign-value "CRYPT_ALGO_LAST_MAC" int)) (define MODE-NONE (foreign-value "CRYPT_MODE_NONE" int)) (define MODE-ECB (foreign-value "CRYPT_MODE_ECB" int)) (define MODE-CBC (foreign-value "CRYPT_MODE_CBC" int)) (define MODE-CFB (foreign-value "CRYPT_MODE_CFB" int)) (define MODE-GCM (foreign-value "CRYPT_MODE_GCM" int)) (define MODE-LAST (foreign-value "CRYPT_MODE_LAST" int)) (define KEYSET-NONE (foreign-value "CRYPT_KEYSET_NONE" int)) (define KEYSET-FILE (foreign-value "CRYPT_KEYSET_FILE" int)) (define KEYSET-HTTP (foreign-value "CRYPT_KEYSET_HTTP" int)) (define KEYSET-LDAP (foreign-value "CRYPT_KEYSET_LDAP" int)) (define KEYSET-ODBC (foreign-value "CRYPT_KEYSET_ODBC" int)) (define KEYSET-DATABASE (foreign-value "CRYPT_KEYSET_DATABASE" int)) (define KEYSET-ODBC-STORE (foreign-value "CRYPT_KEYSET_ODBC_STORE" int)) (define KEYSET-DATABASE-STORE (foreign-value "CRYPT_KEYSET_DATABASE_STORE" int)) (define KEYSET-LAST (foreign-value "CRYPT_KEYSET_LAST" int)) (define DEVICE-NONE (foreign-value "CRYPT_DEVICE_NONE" int)) (define DEVICE-FORTEZZA (foreign-value "CRYPT_DEVICE_FORTEZZA" int)) (define DEVICE-PKCS11 (foreign-value "CRYPT_DEVICE_PKCS11" int)) (define DEVICE-CRYPTOAPI (foreign-value "CRYPT_DEVICE_CRYPTOAPI" int)) (define DEVICE-HARDWARE (foreign-value "CRYPT_DEVICE_HARDWARE" int)) (define DEVICE-LAST (foreign-value "CRYPT_DEVICE_LAST" int)) (define CERTTYPE-NONE (foreign-value "CRYPT_CERTTYPE_NONE" int)) (define CERTTYPE-CERTIFICATE (foreign-value "CRYPT_CERTTYPE_CERTIFICATE" int)) (define CERTTYPE-ATTRIBUTE-CERT (foreign-value "CRYPT_CERTTYPE_ATTRIBUTE_CERT" int)) (define CERTTYPE-CERTCHAIN (foreign-value "CRYPT_CERTTYPE_CERTCHAIN" int)) (define CERTTYPE-CERTREQUEST (foreign-value "CRYPT_CERTTYPE_CERTREQUEST" int)) (define CERTTYPE-REQUEST-CERT (foreign-value "CRYPT_CERTTYPE_REQUEST_CERT" int)) (define CERTTYPE-REQUEST-REVOCATION (foreign-value "CRYPT_CERTTYPE_REQUEST_REVOCATION" int)) (define CERTTYPE-CRL (foreign-value "CRYPT_CERTTYPE_CRL" int)) (define CERTTYPE-CMS-ATTRIBUTES (foreign-value "CRYPT_CERTTYPE_CMS_ATTRIBUTES" int)) (define CERTTYPE-RTCS-REQUEST (foreign-value "CRYPT_CERTTYPE_RTCS_REQUEST" int)) (define CERTTYPE-RTCS-RESPONSE (foreign-value "CRYPT_CERTTYPE_RTCS_RESPONSE" int)) (define CERTTYPE-OCSP-REQUEST (foreign-value "CRYPT_CERTTYPE_OCSP_REQUEST" int)) (define CERTTYPE-OCSP-RESPONSE (foreign-value "CRYPT_CERTTYPE_OCSP_RESPONSE" int)) (define CERTTYPE-PKIUSER (foreign-value "CRYPT_CERTTYPE_PKIUSER" int)) (define CERTTYPE-LAST (foreign-value "CRYPT_CERTTYPE_LAST" int)) (define FORMAT-NONE (foreign-value "CRYPT_FORMAT_NONE" int)) (define FORMAT-AUTO (foreign-value "CRYPT_FORMAT_AUTO" int)) (define FORMAT-CRYPTLIB (foreign-value "CRYPT_FORMAT_CRYPTLIB" int)) (define FORMAT-CMS (foreign-value "CRYPT_FORMAT_CMS" int)) (define FORMAT-PKCS7 (foreign-value "CRYPT_FORMAT_PKCS7" int)) (define FORMAT-SMIME (foreign-value "CRYPT_FORMAT_SMIME" int)) (define FORMAT-PGP (foreign-value "CRYPT_FORMAT_PGP" int)) (define FORMAT-LAST (foreign-value "CRYPT_FORMAT_LAST" int)) (define SESSION-NONE (foreign-value "CRYPT_SESSION_NONE" int)) (define SESSION-SSH (foreign-value "CRYPT_SESSION_SSH" int)) (define SESSION-SSH-SERVER (foreign-value "CRYPT_SESSION_SSH_SERVER" int)) (define SESSION-SSL (foreign-value "CRYPT_SESSION_SSL" int)) (define SESSION-SSL-SERVER (foreign-value "CRYPT_SESSION_SSL_SERVER" int)) (define SESSION-TLS (foreign-value "CRYPT_SESSION_TLS" int)) (define SESSION-TLS-SERVER (foreign-value "CRYPT_SESSION_TLS_SERVER" int)) (define SESSION-RTCS (foreign-value "CRYPT_SESSION_RTCS" int)) (define SESSION-RTCS-SERVER (foreign-value "CRYPT_SESSION_RTCS_SERVER" int)) (define SESSION-OCSP (foreign-value "CRYPT_SESSION_OCSP" int)) (define SESSION-OCSP-SERVER (foreign-value "CRYPT_SESSION_OCSP_SERVER" int)) (define SESSION-TSP (foreign-value "CRYPT_SESSION_TSP" int)) (define SESSION-TSP-SERVER (foreign-value "CRYPT_SESSION_TSP_SERVER" int)) (define SESSION-CMP (foreign-value "CRYPT_SESSION_CMP" int)) (define SESSION-CMP-SERVER (foreign-value "CRYPT_SESSION_CMP_SERVER" int)) (define SESSION-SCEP (foreign-value "CRYPT_SESSION_SCEP" int)) (define SESSION-SCEP-SERVER (foreign-value "CRYPT_SESSION_SCEP_SERVER" int)) (define SESSION-CERTSTORE-SERVER (foreign-value "CRYPT_SESSION_CERTSTORE_SERVER" int)) (define SESSION-LAST (foreign-value "CRYPT_SESSION_LAST" int)) (define USER-NONE (foreign-value "CRYPT_USER_NONE" int)) (define USER-NORMAL (foreign-value "CRYPT_USER_NORMAL" int)) (define USER-SO (foreign-value "CRYPT_USER_SO" int)) (define USER-CA (foreign-value "CRYPT_USER_CA" int)) (define USER-LAST (foreign-value "CRYPT_USER_LAST" int)) (define ATTRIBUTE-NONE (foreign-value "CRYPT_ATTRIBUTE_NONE" int)) (define PROPERTY-HIGHSECURITY (foreign-value "CRYPT_PROPERTY_HIGHSECURITY" int)) (define PROPERTY-OWNER (foreign-value "CRYPT_PROPERTY_OWNER" int)) (define PROPERTY-FORWARDCOUNT (foreign-value "CRYPT_PROPERTY_FORWARDCOUNT" int)) (define PROPERTY-LOCKED (foreign-value "CRYPT_PROPERTY_LOCKED" int)) (define PROPERTY-USAGECOUNT (foreign-value "CRYPT_PROPERTY_USAGECOUNT" int)) (define PROPERTY-NONEXPORTABLE (foreign-value "CRYPT_PROPERTY_NONEXPORTABLE" int)) (define ATTRIBUTE-ERRORTYPE (foreign-value "CRYPT_ATTRIBUTE_ERRORTYPE" int)) (define ATTRIBUTE-ERRORLOCUS (foreign-value "CRYPT_ATTRIBUTE_ERRORLOCUS" int)) (define ATTRIBUTE-ERRORMESSAGE (foreign-value "CRYPT_ATTRIBUTE_ERRORMESSAGE" int)) (define ATTRIBUTE-CURRENT-GROUP (foreign-value "CRYPT_ATTRIBUTE_CURRENT_GROUP" int)) (define ATTRIBUTE-CURRENT (foreign-value "CRYPT_ATTRIBUTE_CURRENT" int)) (define ATTRIBUTE-CURRENT-INSTANCE (foreign-value "CRYPT_ATTRIBUTE_CURRENT_INSTANCE" int)) (define ATTRIBUTE-BUFFERSIZE (foreign-value "CRYPT_ATTRIBUTE_BUFFERSIZE" int)) (define OPTION-INFO-DESCRIPTION (foreign-value "CRYPT_OPTION_INFO_DESCRIPTION" int)) (define OPTION-INFO-COPYRIGHT (foreign-value "CRYPT_OPTION_INFO_COPYRIGHT" int)) (define OPTION-INFO-MAJORVERSION (foreign-value "CRYPT_OPTION_INFO_MAJORVERSION" int)) (define OPTION-INFO-MINORVERSION (foreign-value "CRYPT_OPTION_INFO_MINORVERSION" int)) (define OPTION-INFO-STEPPING (foreign-value "CRYPT_OPTION_INFO_STEPPING" int)) (define OPTION-ENCR-ALGO (foreign-value "CRYPT_OPTION_ENCR_ALGO" int)) (define OPTION-ENCR-HASH (foreign-value "CRYPT_OPTION_ENCR_HASH" int)) (define OPTION-ENCR-MAC (foreign-value "CRYPT_OPTION_ENCR_MAC" int)) (define OPTION-PKC-ALGO (foreign-value "CRYPT_OPTION_PKC_ALGO" int)) (define OPTION-PKC-KEYSIZE (foreign-value "CRYPT_OPTION_PKC_KEYSIZE" int)) (define OPTION-SIG-ALGO (foreign-value "CRYPT_OPTION_SIG_ALGO" int)) (define OPTION-SIG-KEYSIZE (foreign-value "CRYPT_OPTION_SIG_KEYSIZE" int)) (define OPTION-KEYING-ALGO (foreign-value "CRYPT_OPTION_KEYING_ALGO" int)) (define OPTION-KEYING-ITERATIONS (foreign-value "CRYPT_OPTION_KEYING_ITERATIONS" int)) (define OPTION-CERT-SIGNUNRECOGNISEDATTRIBUTES (foreign-value "CRYPT_OPTION_CERT_SIGNUNRECOGNISEDATTRIBUTES" int)) (define OPTION-CERT-VALIDITY (foreign-value "CRYPT_OPTION_CERT_VALIDITY" int)) (define OPTION-CERT-UPDATEINTERVAL (foreign-value "CRYPT_OPTION_CERT_UPDATEINTERVAL" int)) (define OPTION-CERT-COMPLIANCELEVEL (foreign-value "CRYPT_OPTION_CERT_COMPLIANCELEVEL" int)) (define OPTION-CMS-DEFAULTATTRIBUTES (foreign-value "CRYPT_OPTION_CMS_DEFAULTATTRIBUTES" int)) (define OPTION-SMIME-DEFAULTATTRIBUTES (foreign-value "CRYPT_OPTION_SMIME_DEFAULTATTRIBUTES" int)) (define OPTION-KEYS-LDAP-OBJECTCLASS (foreign-value "CRYPT_OPTION_KEYS_LDAP_OBJECTCLASS" int)) (define OPTION-KEYS-LDAP-OBJECTTYPE (foreign-value "CRYPT_OPTION_KEYS_LDAP_OBJECTTYPE" int)) (define OPTION-KEYS-LDAP-FILTER (foreign-value "CRYPT_OPTION_KEYS_LDAP_FILTER" int)) (define OPTION-KEYS-LDAP-CACERTNAME (foreign-value "CRYPT_OPTION_KEYS_LDAP_CACERTNAME" int)) (define OPTION-KEYS-LDAP-CERTNAME (foreign-value "CRYPT_OPTION_KEYS_LDAP_CERTNAME" int)) (define OPTION-KEYS-LDAP-CRLNAME (foreign-value "CRYPT_OPTION_KEYS_LDAP_CRLNAME" int)) (define OPTION-KEYS-LDAP-EMAILNAME (foreign-value "CRYPT_OPTION_KEYS_LDAP_EMAILNAME" int)) (define OPTION-DEVICE-PKCS11-DVR01 (foreign-value "CRYPT_OPTION_DEVICE_PKCS11_DVR01" int)) (define OPTION-DEVICE-PKCS11-DVR02 (foreign-value "CRYPT_OPTION_DEVICE_PKCS11_DVR02" int)) (define OPTION-DEVICE-PKCS11-DVR03 (foreign-value "CRYPT_OPTION_DEVICE_PKCS11_DVR03" int)) (define OPTION-DEVICE-PKCS11-DVR04 (foreign-value "CRYPT_OPTION_DEVICE_PKCS11_DVR04" int)) (define OPTION-DEVICE-PKCS11-DVR05 (foreign-value "CRYPT_OPTION_DEVICE_PKCS11_DVR05" int)) (define OPTION-DEVICE-PKCS11-HARDWAREONLY (foreign-value "CRYPT_OPTION_DEVICE_PKCS11_HARDWAREONLY" int)) (define OPTION-NET-SOCKS-SERVER (foreign-value "CRYPT_OPTION_NET_SOCKS_SERVER" int)) (define OPTION-NET-SOCKS-USERNAME (foreign-value "CRYPT_OPTION_NET_SOCKS_USERNAME" int)) (define OPTION-NET-HTTP-PROXY (foreign-value "CRYPT_OPTION_NET_HTTP_PROXY" int)) (define OPTION-NET-CONNECTTIMEOUT (foreign-value "CRYPT_OPTION_NET_CONNECTTIMEOUT" int)) (define OPTION-NET-READTIMEOUT (foreign-value "CRYPT_OPTION_NET_READTIMEOUT" int)) (define OPTION-NET-WRITETIMEOUT (foreign-value "CRYPT_OPTION_NET_WRITETIMEOUT" int)) (define OPTION-MISC-ASYNCINIT (foreign-value "CRYPT_OPTION_MISC_ASYNCINIT" int)) (define OPTION-MISC-SIDECHANNELPROTECTION (foreign-value "CRYPT_OPTION_MISC_SIDECHANNELPROTECTION" int)) (define OPTION-CONFIGCHANGED (foreign-value "CRYPT_OPTION_CONFIGCHANGED" int)) (define OPTION-SELFTESTOK (foreign-value "CRYPT_OPTION_SELFTESTOK" int)) (define CTXINFO-ALGO (foreign-value "CRYPT_CTXINFO_ALGO" int)) (define CTXINFO-MODE (foreign-value "CRYPT_CTXINFO_MODE" int)) (define CTXINFO-NAME-ALGO (foreign-value "CRYPT_CTXINFO_NAME_ALGO" int)) (define CTXINFO-NAME-MODE (foreign-value "CRYPT_CTXINFO_NAME_MODE" int)) (define CTXINFO-KEYSIZE (foreign-value "CRYPT_CTXINFO_KEYSIZE" int)) (define CTXINFO-BLOCKSIZE (foreign-value "CRYPT_CTXINFO_BLOCKSIZE" int)) (define CTXINFO-IVSIZE (foreign-value "CRYPT_CTXINFO_IVSIZE" int)) (define CTXINFO-KEYING-ALGO (foreign-value "CRYPT_CTXINFO_KEYING_ALGO" int)) (define CTXINFO-KEYING-ITERATIONS (foreign-value "CRYPT_CTXINFO_KEYING_ITERATIONS" int)) (define CTXINFO-KEYING-SALT (foreign-value "CRYPT_CTXINFO_KEYING_SALT" int)) (define CTXINFO-KEYING-VALUE (foreign-value "CRYPT_CTXINFO_KEYING_VALUE" int)) (define CTXINFO-KEY (foreign-value "CRYPT_CTXINFO_KEY" int)) (define CTXINFO-KEY-COMPONENTS (foreign-value "CRYPT_CTXINFO_KEY_COMPONENTS" int)) (define CTXINFO-IV (foreign-value "CRYPT_CTXINFO_IV" int)) (define CTXINFO-HASHVALUE (foreign-value "CRYPT_CTXINFO_HASHVALUE" int)) (define CTXINFO-LABEL (foreign-value "CRYPT_CTXINFO_LABEL" int)) (define CTXINFO-PERSISTENT (foreign-value "CRYPT_CTXINFO_PERSISTENT" int)) (define CERTINFO-SELFSIGNED (foreign-value "CRYPT_CERTINFO_SELFSIGNED" int)) (define CERTINFO-IMMUTABLE (foreign-value "CRYPT_CERTINFO_IMMUTABLE" int)) (define CERTINFO-XYZZY (foreign-value "CRYPT_CERTINFO_XYZZY" int)) (define CERTINFO-CERTTYPE (foreign-value "CRYPT_CERTINFO_CERTTYPE" int)) (define CERTINFO-FINGERPRINT-SHA1 (foreign-value "CRYPT_CERTINFO_FINGERPRINT_SHA1" int)) (define CERTINFO-FINGERPRINT-SHA2 (foreign-value "CRYPT_CERTINFO_FINGERPRINT_SHA2" int)) (define CERTINFO-FINGERPRINT-SHAng (foreign-value "CRYPT_CERTINFO_FINGERPRINT_SHAng" int)) (define CERTINFO-CURRENT-CERTIFICATE (foreign-value "CRYPT_CERTINFO_CURRENT_CERTIFICATE" int)) (define CERTINFO-TRUSTED-USAGE (foreign-value "CRYPT_CERTINFO_TRUSTED_USAGE" int)) (define CERTINFO-TRUSTED-IMPLICIT (foreign-value "CRYPT_CERTINFO_TRUSTED_IMPLICIT" int)) (define CERTINFO-SIGNATURELEVEL (foreign-value "CRYPT_CERTINFO_SIGNATURELEVEL" int)) (define CERTINFO-VERSION (foreign-value "CRYPT_CERTINFO_VERSION" int)) (define CERTINFO-SERIALNUMBER (foreign-value "CRYPT_CERTINFO_SERIALNUMBER" int)) (define CERTINFO-SUBJECTPUBLICKEYINFO (foreign-value "CRYPT_CERTINFO_SUBJECTPUBLICKEYINFO" int)) (define CERTINFO-CERTIFICATE (foreign-value "CRYPT_CERTINFO_CERTIFICATE" int)) (define CERTINFO-USERCERTIFICATE (foreign-value "CRYPT_CERTINFO_USERCERTIFICATE" int)) (define CERTINFO-CACERTIFICATE (foreign-value "CRYPT_CERTINFO_CACERTIFICATE" int)) (define CERTINFO-ISSUERNAME (foreign-value "CRYPT_CERTINFO_ISSUERNAME" int)) (define CERTINFO-VALIDFROM (foreign-value "CRYPT_CERTINFO_VALIDFROM" int)) (define CERTINFO-VALIDTO (foreign-value "CRYPT_CERTINFO_VALIDTO" int)) (define CERTINFO-SUBJECTNAME (foreign-value "CRYPT_CERTINFO_SUBJECTNAME" int)) (define CERTINFO-ISSUERUNIQUEID (foreign-value "CRYPT_CERTINFO_ISSUERUNIQUEID" int)) (define CERTINFO-SUBJECTUNIQUEID (foreign-value "CRYPT_CERTINFO_SUBJECTUNIQUEID" int)) (define CERTINFO-CERTREQUEST (foreign-value "CRYPT_CERTINFO_CERTREQUEST" int)) (define CERTINFO-THISUPDATE (foreign-value "CRYPT_CERTINFO_THISUPDATE" int)) (define CERTINFO-NEXTUPDATE (foreign-value "CRYPT_CERTINFO_NEXTUPDATE" int)) (define CERTINFO-REVOCATIONDATE (foreign-value "CRYPT_CERTINFO_REVOCATIONDATE" int)) (define CERTINFO-REVOCATIONSTATUS (foreign-value "CRYPT_CERTINFO_REVOCATIONSTATUS" int)) (define CERTINFO-CERTSTATUS (foreign-value "CRYPT_CERTINFO_CERTSTATUS" int)) (define CERTINFO-DN (foreign-value "CRYPT_CERTINFO_DN" int)) (define CERTINFO-PKIUSER-ID (foreign-value "CRYPT_CERTINFO_PKIUSER_ID" int)) (define CERTINFO-PKIUSER-ISSUEPASSWORD (foreign-value "CRYPT_CERTINFO_PKIUSER_ISSUEPASSWORD" int)) (define CERTINFO-PKIUSER-REVPASSWORD (foreign-value "CRYPT_CERTINFO_PKIUSER_REVPASSWORD" int)) (define CERTINFO-PKIUSER-RA (foreign-value "CRYPT_CERTINFO_PKIUSER_RA" int)) (define CERTINFO-COUNTRYNAME (foreign-value "CRYPT_CERTINFO_COUNTRYNAME" int)) (define CERTINFO-STATEORPROVINCENAME (foreign-value "CRYPT_CERTINFO_STATEORPROVINCENAME" int)) (define CERTINFO-LOCALITYNAME (foreign-value "CRYPT_CERTINFO_LOCALITYNAME" int)) (define CERTINFO-ORGANIZATIONNAME (foreign-value "CRYPT_CERTINFO_ORGANIZATIONNAME" int)) (define CERTINFO-ORGANISATIONNAME (foreign-value "CRYPT_CERTINFO_ORGANISATIONNAME" int)) (define CERTINFO-ORGANIZATIONALUNITNAME (foreign-value "CRYPT_CERTINFO_ORGANIZATIONALUNITNAME" int)) (define CERTINFO-ORGANISATIONALUNITNAME (foreign-value "CRYPT_CERTINFO_ORGANISATIONALUNITNAME" int)) (define CERTINFO-COMMONNAME (foreign-value "CRYPT_CERTINFO_COMMONNAME" int)) (define CERTINFO-OTHERNAME-TYPEID (foreign-value "CRYPT_CERTINFO_OTHERNAME_TYPEID" int)) (define CERTINFO-OTHERNAME-VALUE (foreign-value "CRYPT_CERTINFO_OTHERNAME_VALUE" int)) (define CERTINFO-RFC822NAME (foreign-value "CRYPT_CERTINFO_RFC822NAME" int)) (define CERTINFO-EMAIL (foreign-value "CRYPT_CERTINFO_EMAIL" int)) (define CERTINFO-DNSNAME (foreign-value "CRYPT_CERTINFO_DNSNAME" int)) (define CERTINFO-DIRECTORYNAME (foreign-value "CRYPT_CERTINFO_DIRECTORYNAME" int)) (define CERTINFO-EDIPARTYNAME-NAMEASSIGNER (foreign-value "CRYPT_CERTINFO_EDIPARTYNAME_NAMEASSIGNER" int)) (define CERTINFO-EDIPARTYNAME-PARTYNAME (foreign-value "CRYPT_CERTINFO_EDIPARTYNAME_PARTYNAME" int)) (define CERTINFO-UNIFORMRESOURCEIDENTIFIER (foreign-value "CRYPT_CERTINFO_UNIFORMRESOURCEIDENTIFIER" int)) (define CERTINFO-URL (foreign-value "CRYPT_CERTINFO_URL" int)) (define CERTINFO-IPADDRESS (foreign-value "CRYPT_CERTINFO_IPADDRESS" int)) (define CERTINFO-REGISTEREDID (foreign-value "CRYPT_CERTINFO_REGISTEREDID" int)) (define CERTINFO-CHALLENGEPASSWORD (foreign-value "CRYPT_CERTINFO_CHALLENGEPASSWORD" int)) (define CERTINFO-CRLEXTREASON (foreign-value "CRYPT_CERTINFO_CRLEXTREASON" int)) (define CERTINFO-KEYFEATURES (foreign-value "CRYPT_CERTINFO_KEYFEATURES" int)) (define CERTINFO-AUTHORITYINFOACCESS (foreign-value "CRYPT_CERTINFO_AUTHORITYINFOACCESS" int)) (define CERTINFO-AUTHORITYINFO-RTCS (foreign-value "CRYPT_CERTINFO_AUTHORITYINFO_RTCS" int)) (define CERTINFO-AUTHORITYINFO-OCSP (foreign-value "CRYPT_CERTINFO_AUTHORITYINFO_OCSP" int)) (define CERTINFO-AUTHORITYINFO-CAISSUERS (foreign-value "CRYPT_CERTINFO_AUTHORITYINFO_CAISSUERS" int)) (define CERTINFO-AUTHORITYINFO-CERTSTORE (foreign-value "CRYPT_CERTINFO_AUTHORITYINFO_CERTSTORE" int)) (define CERTINFO-AUTHORITYINFO-CRLS (foreign-value "CRYPT_CERTINFO_AUTHORITYINFO_CRLS" int)) (define CERTINFO-BIOMETRICINFO (foreign-value "CRYPT_CERTINFO_BIOMETRICINFO" int)) (define CERTINFO-BIOMETRICINFO-TYPE (foreign-value "CRYPT_CERTINFO_BIOMETRICINFO_TYPE" int)) (define CERTINFO-BIOMETRICINFO-HASHALGO (foreign-value "CRYPT_CERTINFO_BIOMETRICINFO_HASHALGO" int)) (define CERTINFO-BIOMETRICINFO-HASH (foreign-value "CRYPT_CERTINFO_BIOMETRICINFO_HASH" int)) (define CERTINFO-BIOMETRICINFO-URL (foreign-value "CRYPT_CERTINFO_BIOMETRICINFO_URL" int)) (define CERTINFO-QCSTATEMENT (foreign-value "CRYPT_CERTINFO_QCSTATEMENT" int)) (define CERTINFO-QCSTATEMENT-SEMANTICS (foreign-value "CRYPT_CERTINFO_QCSTATEMENT_SEMANTICS" int)) (define CERTINFO-QCSTATEMENT-REGISTRATIONAUTHORITY (foreign-value "CRYPT_CERTINFO_QCSTATEMENT_REGISTRATIONAUTHORITY" int)) (define CERTINFO-IPADDRESSBLOCKS (foreign-value "CRYPT_CERTINFO_IPADDRESSBLOCKS" int)) (define CERTINFO-IPADDRESSBLOCKS-ADDRESSFAMILY (foreign-value "CRYPT_CERTINFO_IPADDRESSBLOCKS_ADDRESSFAMILY" int)) (define CERTINFO-IPADDRESSBLOCKS-PREFIX (foreign-value "CRYPT_CERTINFO_IPADDRESSBLOCKS_PREFIX" int)) (define CERTINFO-IPADDRESSBLOCKS-MIN (foreign-value "CRYPT_CERTINFO_IPADDRESSBLOCKS_MIN" int)) (define CERTINFO-IPADDRESSBLOCKS-MAX (foreign-value "CRYPT_CERTINFO_IPADDRESSBLOCKS_MAX" int)) (define CERTINFO-AUTONOMOUSSYSIDS (foreign-value "CRYPT_CERTINFO_AUTONOMOUSSYSIDS" int)) (define CERTINFO-AUTONOMOUSSYSIDS-ASNUM-ID (foreign-value "CRYPT_CERTINFO_AUTONOMOUSSYSIDS_ASNUM_ID" int)) (define CERTINFO-AUTONOMOUSSYSIDS-ASNUM-MIN (foreign-value "CRYPT_CERTINFO_AUTONOMOUSSYSIDS_ASNUM_MIN" int)) (define CERTINFO-AUTONOMOUSSYSIDS-ASNUM-MAX (foreign-value "CRYPT_CERTINFO_AUTONOMOUSSYSIDS_ASNUM_MAX" int)) (define CERTINFO-OCSP-NONCE (foreign-value "CRYPT_CERTINFO_OCSP_NONCE" int)) (define CERTINFO-OCSP-RESPONSE (foreign-value "CRYPT_CERTINFO_OCSP_RESPONSE" int)) (define CERTINFO-OCSP-RESPONSE-OCSP (foreign-value "CRYPT_CERTINFO_OCSP_RESPONSE_OCSP" int)) (define CERTINFO-OCSP-NOCHECK (foreign-value "CRYPT_CERTINFO_OCSP_NOCHECK" int)) (define CERTINFO-OCSP-ARCHIVECUTOFF (foreign-value "CRYPT_CERTINFO_OCSP_ARCHIVECUTOFF" int)) (define CERTINFO-SUBJECTINFOACCESS (foreign-value "CRYPT_CERTINFO_SUBJECTINFOACCESS" int)) (define CERTINFO-SUBJECTINFO-CAREPOSITORY (foreign-value "CRYPT_CERTINFO_SUBJECTINFO_CAREPOSITORY" int)) (define CERTINFO-SUBJECTINFO-TIMESTAMPING (foreign-value "CRYPT_CERTINFO_SUBJECTINFO_TIMESTAMPING" int)) (define CERTINFO-SUBJECTINFO-SIGNEDOBJECTREPOSITORY (foreign-value "CRYPT_CERTINFO_SUBJECTINFO_SIGNEDOBJECTREPOSITORY" int)) (define CERTINFO-SUBJECTINFO-RPKIMANIFEST (foreign-value "CRYPT_CERTINFO_SUBJECTINFO_RPKIMANIFEST" int)) (define CERTINFO-SUBJECTINFO-SIGNEDOBJECT (foreign-value "CRYPT_CERTINFO_SUBJECTINFO_SIGNEDOBJECT" int)) (define CERTINFO-SIGG-DATEOFCERTGEN (foreign-value "CRYPT_CERTINFO_SIGG_DATEOFCERTGEN" int)) (define CERTINFO-SIGG-PROCURATION (foreign-value "CRYPT_CERTINFO_SIGG_PROCURATION" int)) (define CERTINFO-SIGG-PROCURE-COUNTRY (foreign-value "CRYPT_CERTINFO_SIGG_PROCURE_COUNTRY" int)) (define CERTINFO-SIGG-PROCURE-TYPEOFSUBSTITUTION (foreign-value "CRYPT_CERTINFO_SIGG_PROCURE_TYPEOFSUBSTITUTION" int)) (define CERTINFO-SIGG-PROCURE-SIGNINGFOR (foreign-value "CRYPT_CERTINFO_SIGG_PROCURE_SIGNINGFOR" int)) (define CERTINFO-SIGG-ADMISSIONS (foreign-value "CRYPT_CERTINFO_SIGG_ADMISSIONS" int)) (define CERTINFO-SIGG-ADMISSIONS-AUTHORITY (foreign-value "CRYPT_CERTINFO_SIGG_ADMISSIONS_AUTHORITY" int)) (define CERTINFO-SIGG-ADMISSIONS-NAMINGAUTHID (foreign-value "CRYPT_CERTINFO_SIGG_ADMISSIONS_NAMINGAUTHID" int)) (define CERTINFO-SIGG-ADMISSIONS-NAMINGAUTHURL (foreign-value "CRYPT_CERTINFO_SIGG_ADMISSIONS_NAMINGAUTHURL" int)) (define CERTINFO-SIGG-ADMISSIONS-NAMINGAUTHTEXT (foreign-value "CRYPT_CERTINFO_SIGG_ADMISSIONS_NAMINGAUTHTEXT" int)) (define CERTINFO-SIGG-ADMISSIONS-PROFESSIONITEM (foreign-value "CRYPT_CERTINFO_SIGG_ADMISSIONS_PROFESSIONITEM" int)) (define CERTINFO-SIGG-ADMISSIONS-PROFESSIONOID (foreign-value "CRYPT_CERTINFO_SIGG_ADMISSIONS_PROFESSIONOID" int)) (define CERTINFO-SIGG-ADMISSIONS-REGISTRATIONNUMBER (foreign-value "CRYPT_CERTINFO_SIGG_ADMISSIONS_REGISTRATIONNUMBER" int)) (define CERTINFO-SIGG-MONETARYLIMIT (foreign-value "CRYPT_CERTINFO_SIGG_MONETARYLIMIT" int)) (define CERTINFO-SIGG-MONETARY-CURRENCY (foreign-value "CRYPT_CERTINFO_SIGG_MONETARY_CURRENCY" int)) (define CERTINFO-SIGG-MONETARY-AMOUNT (foreign-value "CRYPT_CERTINFO_SIGG_MONETARY_AMOUNT" int)) (define CERTINFO-SIGG-MONETARY-EXPONENT (foreign-value "CRYPT_CERTINFO_SIGG_MONETARY_EXPONENT" int)) (define CERTINFO-SIGG-DECLARATIONOFMAJORITY (foreign-value "CRYPT_CERTINFO_SIGG_DECLARATIONOFMAJORITY" int)) (define CERTINFO-SIGG-DECLARATIONOFMAJORITY-COUNTRY (foreign-value "CRYPT_CERTINFO_SIGG_DECLARATIONOFMAJORITY_COUNTRY" int)) (define CERTINFO-SIGG-RESTRICTION (foreign-value "CRYPT_CERTINFO_SIGG_RESTRICTION" int)) (define CERTINFO-SIGG-CERTHASH (foreign-value "CRYPT_CERTINFO_SIGG_CERTHASH" int)) (define CERTINFO-SIGG-ADDITIONALINFORMATION (foreign-value "CRYPT_CERTINFO_SIGG_ADDITIONALINFORMATION" int)) (define CERTINFO-STRONGEXTRANET (foreign-value "CRYPT_CERTINFO_STRONGEXTRANET" int)) (define CERTINFO-STRONGEXTRANET-ZONE (foreign-value "CRYPT_CERTINFO_STRONGEXTRANET_ZONE" int)) (define CERTINFO-STRONGEXTRANET-ID (foreign-value "CRYPT_CERTINFO_STRONGEXTRANET_ID" int)) (define CERTINFO-SUBJECTDIRECTORYATTRIBUTES (foreign-value "CRYPT_CERTINFO_SUBJECTDIRECTORYATTRIBUTES" int)) (define CERTINFO-SUBJECTDIR-TYPE (foreign-value "CRYPT_CERTINFO_SUBJECTDIR_TYPE" int)) (define CERTINFO-SUBJECTDIR-VALUES (foreign-value "CRYPT_CERTINFO_SUBJECTDIR_VALUES" int)) (define CERTINFO-SUBJECTKEYIDENTIFIER (foreign-value "CRYPT_CERTINFO_SUBJECTKEYIDENTIFIER" int)) (define CERTINFO-KEYUSAGE (foreign-value "CRYPT_CERTINFO_KEYUSAGE" int)) (define CERTINFO-PRIVATEKEYUSAGEPERIOD (foreign-value "CRYPT_CERTINFO_PRIVATEKEYUSAGEPERIOD" int)) (define CERTINFO-PRIVATEKEY-NOTBEFORE (foreign-value "CRYPT_CERTINFO_PRIVATEKEY_NOTBEFORE" int)) (define CERTINFO-PRIVATEKEY-NOTAFTER (foreign-value "CRYPT_CERTINFO_PRIVATEKEY_NOTAFTER" int)) (define CERTINFO-SUBJECTALTNAME (foreign-value "CRYPT_CERTINFO_SUBJECTALTNAME" int)) (define CERTINFO-ISSUERALTNAME (foreign-value "CRYPT_CERTINFO_ISSUERALTNAME" int)) (define CERTINFO-BASICCONSTRAINTS (foreign-value "CRYPT_CERTINFO_BASICCONSTRAINTS" int)) (define CERTINFO-CA (foreign-value "CRYPT_CERTINFO_CA" int)) (define CERTINFO-AUTHORITY (foreign-value "CRYPT_CERTINFO_AUTHORITY" int)) (define CERTINFO-PATHLENCONSTRAINT (foreign-value "CRYPT_CERTINFO_PATHLENCONSTRAINT" int)) (define CERTINFO-CRLNUMBER (foreign-value "CRYPT_CERTINFO_CRLNUMBER" int)) (define CERTINFO-CRLREASON (foreign-value "CRYPT_CERTINFO_CRLREASON" int)) (define CERTINFO-HOLDINSTRUCTIONCODE (foreign-value "CRYPT_CERTINFO_HOLDINSTRUCTIONCODE" int)) (define CERTINFO-INVALIDITYDATE (foreign-value "CRYPT_CERTINFO_INVALIDITYDATE" int)) (define CERTINFO-DELTACRLINDICATOR (foreign-value "CRYPT_CERTINFO_DELTACRLINDICATOR" int)) (define CERTINFO-ISSUINGDISTRIBUTIONPOINT (foreign-value "CRYPT_CERTINFO_ISSUINGDISTRIBUTIONPOINT" int)) (define CERTINFO-ISSUINGDIST-FULLNAME (foreign-value "CRYPT_CERTINFO_ISSUINGDIST_FULLNAME" int)) (define CERTINFO-ISSUINGDIST-USERCERTSONLY (foreign-value "CRYPT_CERTINFO_ISSUINGDIST_USERCERTSONLY" int)) (define CERTINFO-ISSUINGDIST-CACERTSONLY (foreign-value "CRYPT_CERTINFO_ISSUINGDIST_CACERTSONLY" int)) (define CERTINFO-ISSUINGDIST-SOMEREASONSONLY (foreign-value "CRYPT_CERTINFO_ISSUINGDIST_SOMEREASONSONLY" int)) (define CERTINFO-ISSUINGDIST-INDIRECTCRL (foreign-value "CRYPT_CERTINFO_ISSUINGDIST_INDIRECTCRL" int)) (define CERTINFO-CERTIFICATEISSUER (foreign-value "CRYPT_CERTINFO_CERTIFICATEISSUER" int)) (define CERTINFO-NAMECONSTRAINTS (foreign-value "CRYPT_CERTINFO_NAMECONSTRAINTS" int)) (define CERTINFO-PERMITTEDSUBTREES (foreign-value "CRYPT_CERTINFO_PERMITTEDSUBTREES" int)) (define CERTINFO-EXCLUDEDSUBTREES (foreign-value "CRYPT_CERTINFO_EXCLUDEDSUBTREES" int)) (define CERTINFO-CRLDISTRIBUTIONPOINT (foreign-value "CRYPT_CERTINFO_CRLDISTRIBUTIONPOINT" int)) (define CERTINFO-CRLDIST-FULLNAME (foreign-value "CRYPT_CERTINFO_CRLDIST_FULLNAME" int)) (define CERTINFO-CRLDIST-REASONS (foreign-value "CRYPT_CERTINFO_CRLDIST_REASONS" int)) (define CERTINFO-CRLDIST-CRLISSUER (foreign-value "CRYPT_CERTINFO_CRLDIST_CRLISSUER" int)) (define CERTINFO-CERTIFICATEPOLICIES (foreign-value "CRYPT_CERTINFO_CERTIFICATEPOLICIES" int)) (define CERTINFO-CERTPOLICYID (foreign-value "CRYPT_CERTINFO_CERTPOLICYID" int)) (define CERTINFO-CERTPOLICY-CPSURI (foreign-value "CRYPT_CERTINFO_CERTPOLICY_CPSURI" int)) (define CERTINFO-CERTPOLICY-ORGANIZATION (foreign-value "CRYPT_CERTINFO_CERTPOLICY_ORGANIZATION" int)) (define CERTINFO-CERTPOLICY-NOTICENUMBERS (foreign-value "CRYPT_CERTINFO_CERTPOLICY_NOTICENUMBERS" int)) (define CERTINFO-CERTPOLICY-EXPLICITTEXT (foreign-value "CRYPT_CERTINFO_CERTPOLICY_EXPLICITTEXT" int)) (define CERTINFO-POLICYMAPPINGS (foreign-value "CRYPT_CERTINFO_POLICYMAPPINGS" int)) (define CERTINFO-ISSUERDOMAINPOLICY (foreign-value "CRYPT_CERTINFO_ISSUERDOMAINPOLICY" int)) (define CERTINFO-SUBJECTDOMAINPOLICY (foreign-value "CRYPT_CERTINFO_SUBJECTDOMAINPOLICY" int)) (define CERTINFO-AUTHORITYKEYIDENTIFIER (foreign-value "CRYPT_CERTINFO_AUTHORITYKEYIDENTIFIER" int)) (define CERTINFO-AUTHORITY-KEYIDENTIFIER (foreign-value "CRYPT_CERTINFO_AUTHORITY_KEYIDENTIFIER" int)) (define CERTINFO-AUTHORITY-CERTISSUER (foreign-value "CRYPT_CERTINFO_AUTHORITY_CERTISSUER" int)) (define CERTINFO-AUTHORITY-CERTSERIALNUMBER (foreign-value "CRYPT_CERTINFO_AUTHORITY_CERTSERIALNUMBER" int)) (define CERTINFO-POLICYCONSTRAINTS (foreign-value "CRYPT_CERTINFO_POLICYCONSTRAINTS" int)) (define CERTINFO-REQUIREEXPLICITPOLICY (foreign-value "CRYPT_CERTINFO_REQUIREEXPLICITPOLICY" int)) (define CERTINFO-INHIBITPOLICYMAPPING (foreign-value "CRYPT_CERTINFO_INHIBITPOLICYMAPPING" int)) (define CERTINFO-EXTKEYUSAGE (foreign-value "CRYPT_CERTINFO_EXTKEYUSAGE" int)) (define CERTINFO-EXTKEY-MS-INDIVIDUALCODESIGNING (foreign-value "CRYPT_CERTINFO_EXTKEY_MS_INDIVIDUALCODESIGNING" int)) (define CERTINFO-EXTKEY-MS-COMMERCIALCODESIGNING (foreign-value "CRYPT_CERTINFO_EXTKEY_MS_COMMERCIALCODESIGNING" int)) (define CERTINFO-EXTKEY-MS-CERTTRUSTLISTSIGNING (foreign-value "CRYPT_CERTINFO_EXTKEY_MS_CERTTRUSTLISTSIGNING" int)) (define CERTINFO-EXTKEY-MS-TIMESTAMPSIGNING (foreign-value "CRYPT_CERTINFO_EXTKEY_MS_TIMESTAMPSIGNING" int)) (define CERTINFO-EXTKEY-MS-SERVERGATEDCRYPTO (foreign-value "CRYPT_CERTINFO_EXTKEY_MS_SERVERGATEDCRYPTO" int)) (define CERTINFO-EXTKEY-MS-ENCRYPTEDFILESYSTEM (foreign-value "CRYPT_CERTINFO_EXTKEY_MS_ENCRYPTEDFILESYSTEM" int)) (define CERTINFO-EXTKEY-SERVERAUTH (foreign-value "CRYPT_CERTINFO_EXTKEY_SERVERAUTH" int)) (define CERTINFO-EXTKEY-CLIENTAUTH (foreign-value "CRYPT_CERTINFO_EXTKEY_CLIENTAUTH" int)) (define CERTINFO-EXTKEY-CODESIGNING (foreign-value "CRYPT_CERTINFO_EXTKEY_CODESIGNING" int)) (define CERTINFO-EXTKEY-EMAILPROTECTION (foreign-value "CRYPT_CERTINFO_EXTKEY_EMAILPROTECTION" int)) (define CERTINFO-EXTKEY-IPSECENDSYSTEM (foreign-value "CRYPT_CERTINFO_EXTKEY_IPSECENDSYSTEM" int)) (define CERTINFO-EXTKEY-IPSECTUNNEL (foreign-value "CRYPT_CERTINFO_EXTKEY_IPSECTUNNEL" int)) (define CERTINFO-EXTKEY-IPSECUSER (foreign-value "CRYPT_CERTINFO_EXTKEY_IPSECUSER" int)) (define CERTINFO-EXTKEY-TIMESTAMPING (foreign-value "CRYPT_CERTINFO_EXTKEY_TIMESTAMPING" int)) (define CERTINFO-EXTKEY-OCSPSIGNING (foreign-value "CRYPT_CERTINFO_EXTKEY_OCSPSIGNING" int)) (define CERTINFO-EXTKEY-DIRECTORYSERVICE (foreign-value "CRYPT_CERTINFO_EXTKEY_DIRECTORYSERVICE" int)) (define CERTINFO-EXTKEY-ANYKEYUSAGE (foreign-value "CRYPT_CERTINFO_EXTKEY_ANYKEYUSAGE" int)) (define CERTINFO-EXTKEY-NS-SERVERGATEDCRYPTO (foreign-value "CRYPT_CERTINFO_EXTKEY_NS_SERVERGATEDCRYPTO" int)) (define CERTINFO-EXTKEY-VS-SERVERGATEDCRYPTO-CA (foreign-value "CRYPT_CERTINFO_EXTKEY_VS_SERVERGATEDCRYPTO_CA" int)) (define CERTINFO-CRLSTREAMIDENTIFIER (foreign-value "CRYPT_CERTINFO_CRLSTREAMIDENTIFIER" int)) (define CERTINFO-FRESHESTCRL (foreign-value "CRYPT_CERTINFO_FRESHESTCRL" int)) (define CERTINFO-FRESHESTCRL-FULLNAME (foreign-value "CRYPT_CERTINFO_FRESHESTCRL_FULLNAME" int)) (define CERTINFO-FRESHESTCRL-REASONS (foreign-value "CRYPT_CERTINFO_FRESHESTCRL_REASONS" int)) (define CERTINFO-FRESHESTCRL-CRLISSUER (foreign-value "CRYPT_CERTINFO_FRESHESTCRL_CRLISSUER" int)) (define CERTINFO-ORDEREDLIST (foreign-value "CRYPT_CERTINFO_ORDEREDLIST" int)) (define CERTINFO-BASEUPDATETIME (foreign-value "CRYPT_CERTINFO_BASEUPDATETIME" int)) (define CERTINFO-DELTAINFO (foreign-value "CRYPT_CERTINFO_DELTAINFO" int)) (define CERTINFO-DELTAINFO-LOCATION (foreign-value "CRYPT_CERTINFO_DELTAINFO_LOCATION" int)) (define CERTINFO-DELTAINFO-NEXTDELTA (foreign-value "CRYPT_CERTINFO_DELTAINFO_NEXTDELTA" int)) (define CERTINFO-INHIBITANYPOLICY (foreign-value "CRYPT_CERTINFO_INHIBITANYPOLICY" int)) (define CERTINFO-TOBEREVOKED (foreign-value "CRYPT_CERTINFO_TOBEREVOKED" int)) (define CERTINFO-TOBEREVOKED-CERTISSUER (foreign-value "CRYPT_CERTINFO_TOBEREVOKED_CERTISSUER" int)) (define CERTINFO-TOBEREVOKED-REASONCODE (foreign-value "CRYPT_CERTINFO_TOBEREVOKED_REASONCODE" int)) (define CERTINFO-TOBEREVOKED-REVOCATIONTIME (foreign-value "CRYPT_CERTINFO_TOBEREVOKED_REVOCATIONTIME" int)) (define CERTINFO-TOBEREVOKED-CERTSERIALNUMBER (foreign-value "CRYPT_CERTINFO_TOBEREVOKED_CERTSERIALNUMBER" int)) (define CERTINFO-REVOKEDGROUPS (foreign-value "CRYPT_CERTINFO_REVOKEDGROUPS" int)) (define CERTINFO-REVOKEDGROUPS-CERTISSUER (foreign-value "CRYPT_CERTINFO_REVOKEDGROUPS_CERTISSUER" int)) (define CERTINFO-REVOKEDGROUPS-REASONCODE (foreign-value "CRYPT_CERTINFO_REVOKEDGROUPS_REASONCODE" int)) (define CERTINFO-REVOKEDGROUPS-INVALIDITYDATE (foreign-value "CRYPT_CERTINFO_REVOKEDGROUPS_INVALIDITYDATE" int)) (define CERTINFO-REVOKEDGROUPS-STARTINGNUMBER (foreign-value "CRYPT_CERTINFO_REVOKEDGROUPS_STARTINGNUMBER" int)) (define CERTINFO-REVOKEDGROUPS-ENDINGNUMBER (foreign-value "CRYPT_CERTINFO_REVOKEDGROUPS_ENDINGNUMBER" int)) (define CERTINFO-EXPIREDCERTSONCRL (foreign-value "CRYPT_CERTINFO_EXPIREDCERTSONCRL" int)) (define CERTINFO-AAISSUINGDISTRIBUTIONPOINT (foreign-value "CRYPT_CERTINFO_AAISSUINGDISTRIBUTIONPOINT" int)) (define CERTINFO-AAISSUINGDIST-FULLNAME (foreign-value "CRYPT_CERTINFO_AAISSUINGDIST_FULLNAME" int)) (define CERTINFO-AAISSUINGDIST-SOMEREASONSONLY (foreign-value "CRYPT_CERTINFO_AAISSUINGDIST_SOMEREASONSONLY" int)) (define CERTINFO-AAISSUINGDIST-INDIRECTCRL (foreign-value "CRYPT_CERTINFO_AAISSUINGDIST_INDIRECTCRL" int)) (define CERTINFO-AAISSUINGDIST-USERATTRCERTS (foreign-value "CRYPT_CERTINFO_AAISSUINGDIST_USERATTRCERTS" int)) (define CERTINFO-AAISSUINGDIST-AACERTS (foreign-value "CRYPT_CERTINFO_AAISSUINGDIST_AACERTS" int)) (define CERTINFO-AAISSUINGDIST-SOACERTS (foreign-value "CRYPT_CERTINFO_AAISSUINGDIST_SOACERTS" int)) (define CERTINFO-NS-CERTTYPE (foreign-value "CRYPT_CERTINFO_NS_CERTTYPE" int)) (define CERTINFO-NS-BASEURL (foreign-value "CRYPT_CERTINFO_NS_BASEURL" int)) (define CERTINFO-NS-REVOCATIONURL (foreign-value "CRYPT_CERTINFO_NS_REVOCATIONURL" int)) (define CERTINFO-NS-CAREVOCATIONURL (foreign-value "CRYPT_CERTINFO_NS_CAREVOCATIONURL" int)) (define CERTINFO-NS-CERTRENEWALURL (foreign-value "CRYPT_CERTINFO_NS_CERTRENEWALURL" int)) (define CERTINFO-NS-CAPOLICYURL (foreign-value "CRYPT_CERTINFO_NS_CAPOLICYURL" int)) (define CERTINFO-NS-SSLSERVERNAME (foreign-value "CRYPT_CERTINFO_NS_SSLSERVERNAME" int)) (define CERTINFO-NS-COMMENT (foreign-value "CRYPT_CERTINFO_NS_COMMENT" int)) (define CERTINFO-SET-HASHEDROOTKEY (foreign-value "CRYPT_CERTINFO_SET_HASHEDROOTKEY" int)) (define CERTINFO-SET-ROOTKEYTHUMBPRINT (foreign-value "CRYPT_CERTINFO_SET_ROOTKEYTHUMBPRINT" int)) (define CERTINFO-SET-CERTIFICATETYPE (foreign-value "CRYPT_CERTINFO_SET_CERTIFICATETYPE" int)) (define CERTINFO-SET-MERCHANTDATA (foreign-value "CRYPT_CERTINFO_SET_MERCHANTDATA" int)) (define CERTINFO-SET-MERID (foreign-value "CRYPT_CERTINFO_SET_MERID" int)) (define CERTINFO-SET-MERACQUIRERBIN (foreign-value "CRYPT_CERTINFO_SET_MERACQUIRERBIN" int)) (define CERTINFO-SET-MERCHANTLANGUAGE (foreign-value "CRYPT_CERTINFO_SET_MERCHANTLANGUAGE" int)) (define CERTINFO-SET-MERCHANTNAME (foreign-value "CRYPT_CERTINFO_SET_MERCHANTNAME" int)) (define CERTINFO-SET-MERCHANTCITY (foreign-value "CRYPT_CERTINFO_SET_MERCHANTCITY" int)) (define CERTINFO-SET-MERCHANTSTATEPROVINCE (foreign-value "CRYPT_CERTINFO_SET_MERCHANTSTATEPROVINCE" int)) (define CERTINFO-SET-MERCHANTPOSTALCODE (foreign-value "CRYPT_CERTINFO_SET_MERCHANTPOSTALCODE" int)) (define CERTINFO-SET-MERCHANTCOUNTRYNAME (foreign-value "CRYPT_CERTINFO_SET_MERCHANTCOUNTRYNAME" int)) (define CERTINFO-SET-MERCOUNTRY (foreign-value "CRYPT_CERTINFO_SET_MERCOUNTRY" int)) (define CERTINFO-SET-MERAUTHFLAG (foreign-value "CRYPT_CERTINFO_SET_MERAUTHFLAG" int)) (define CERTINFO-SET-CERTCARDREQUIRED (foreign-value "CRYPT_CERTINFO_SET_CERTCARDREQUIRED" int)) (define CERTINFO-SET-TUNNELING (foreign-value "CRYPT_CERTINFO_SET_TUNNELING" int)) (define CERTINFO-SET-TUNNELLING (foreign-value "CRYPT_CERTINFO_SET_TUNNELLING" int)) (define CERTINFO-SET-TUNNELINGFLAG (foreign-value "CRYPT_CERTINFO_SET_TUNNELINGFLAG" int)) (define CERTINFO-SET-TUNNELLINGFLAG (foreign-value "CRYPT_CERTINFO_SET_TUNNELLINGFLAG" int)) (define CERTINFO-SET-TUNNELINGALGID (foreign-value "CRYPT_CERTINFO_SET_TUNNELINGALGID" int)) (define CERTINFO-SET-TUNNELLINGALGID (foreign-value "CRYPT_CERTINFO_SET_TUNNELLINGALGID" int)) (define CERTINFO-CMS-CONTENTTYPE (foreign-value "CRYPT_CERTINFO_CMS_CONTENTTYPE" int)) (define CERTINFO-CMS-MESSAGEDIGEST (foreign-value "CRYPT_CERTINFO_CMS_MESSAGEDIGEST" int)) (define CERTINFO-CMS-SIGNINGTIME (foreign-value "CRYPT_CERTINFO_CMS_SIGNINGTIME" int)) (define CERTINFO-CMS-COUNTERSIGNATURE (foreign-value "CRYPT_CERTINFO_CMS_COUNTERSIGNATURE" int)) (define CERTINFO-CMS-SIGNINGDESCRIPTION (foreign-value "CRYPT_CERTINFO_CMS_SIGNINGDESCRIPTION" int)) (define CERTINFO-CMS-SMIMECAPABILITIES (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAPABILITIES" int)) (define CERTINFO-CMS-SMIMECAP-3DES (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_3DES" int)) (define CERTINFO-CMS-SMIMECAP-AES (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_AES" int)) (define CERTINFO-CMS-SMIMECAP-CAST128 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_CAST128" int)) (define CERTINFO-CMS-SMIMECAP-SHAng (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_SHAng" int)) (define CERTINFO-CMS-SMIMECAP-SHA2 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_SHA2" int)) (define CERTINFO-CMS-SMIMECAP-SHA1 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_SHA1" int)) (define CERTINFO-CMS-SMIMECAP-HMAC-SHAng (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_HMAC_SHAng" int)) (define CERTINFO-CMS-SMIMECAP-HMAC-SHA2 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_HMAC_SHA2" int)) (define CERTINFO-CMS-SMIMECAP-HMAC-SHA1 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_HMAC_SHA1" int)) (define CERTINFO-CMS-SMIMECAP-AUTHENC256 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_AUTHENC256" int)) (define CERTINFO-CMS-SMIMECAP-AUTHENC128 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_AUTHENC128" int)) (define CERTINFO-CMS-SMIMECAP-RSA-SHAng (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_RSA_SHAng" int)) (define CERTINFO-CMS-SMIMECAP-RSA-SHA2 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_RSA_SHA2" int)) (define CERTINFO-CMS-SMIMECAP-RSA-SHA1 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_RSA_SHA1" int)) (define CERTINFO-CMS-SMIMECAP-DSA-SHA1 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_DSA_SHA1" int)) (define CERTINFO-CMS-SMIMECAP-ECDSA-SHAng (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_ECDSA_SHAng" int)) (define CERTINFO-CMS-SMIMECAP-ECDSA-SHA2 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_ECDSA_SHA2" int)) (define CERTINFO-CMS-SMIMECAP-ECDSA-SHA1 (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_ECDSA_SHA1" int)) (define CERTINFO-CMS-SMIMECAP-PREFERSIGNEDDATA (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_PREFERSIGNEDDATA" int)) (define CERTINFO-CMS-SMIMECAP-CANNOTDECRYPTANY (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_CANNOTDECRYPTANY" int)) (define CERTINFO-CMS-SMIMECAP-PREFERBINARYINSIDE (foreign-value "CRYPT_CERTINFO_CMS_SMIMECAP_PREFERBINARYINSIDE" int)) (define CERTINFO-CMS-RECEIPTREQUEST (foreign-value "CRYPT_CERTINFO_CMS_RECEIPTREQUEST" int)) (define CERTINFO-CMS-RECEIPT-CONTENTIDENTIFIER (foreign-value "CRYPT_CERTINFO_CMS_RECEIPT_CONTENTIDENTIFIER" int)) (define CERTINFO-CMS-RECEIPT-FROM (foreign-value "CRYPT_CERTINFO_CMS_RECEIPT_FROM" int)) (define CERTINFO-CMS-RECEIPT-TO (foreign-value "CRYPT_CERTINFO_CMS_RECEIPT_TO" int)) (define CERTINFO-CMS-SECURITYLABEL (foreign-value "CRYPT_CERTINFO_CMS_SECURITYLABEL" int)) (define CERTINFO-CMS-SECLABEL-CLASSIFICATION (foreign-value "CRYPT_CERTINFO_CMS_SECLABEL_CLASSIFICATION" int)) (define CERTINFO-CMS-SECLABEL-POLICY (foreign-value "CRYPT_CERTINFO_CMS_SECLABEL_POLICY" int)) (define CERTINFO-CMS-SECLABEL-PRIVACYMARK (foreign-value "CRYPT_CERTINFO_CMS_SECLABEL_PRIVACYMARK" int)) (define CERTINFO-CMS-SECLABEL-CATTYPE (foreign-value "CRYPT_CERTINFO_CMS_SECLABEL_CATTYPE" int)) (define CERTINFO-CMS-SECLABEL-CATVALUE (foreign-value "CRYPT_CERTINFO_CMS_SECLABEL_CATVALUE" int)) (define CERTINFO-CMS-MLEXPANSIONHISTORY (foreign-value "CRYPT_CERTINFO_CMS_MLEXPANSIONHISTORY" int)) (define CERTINFO-CMS-MLEXP-ENTITYIDENTIFIER (foreign-value "CRYPT_CERTINFO_CMS_MLEXP_ENTITYIDENTIFIER" int)) (define CERTINFO-CMS-MLEXP-TIME (foreign-value "CRYPT_CERTINFO_CMS_MLEXP_TIME" int)) (define CERTINFO-CMS-MLEXP-NONE (foreign-value "CRYPT_CERTINFO_CMS_MLEXP_NONE" int)) (define CERTINFO-CMS-MLEXP-INSTEADOF (foreign-value "CRYPT_CERTINFO_CMS_MLEXP_INSTEADOF" int)) (define CERTINFO-CMS-MLEXP-INADDITIONTO (foreign-value "CRYPT_CERTINFO_CMS_MLEXP_INADDITIONTO" int)) (define CERTINFO-CMS-CONTENTHINTS (foreign-value "CRYPT_CERTINFO_CMS_CONTENTHINTS" int)) (define CERTINFO-CMS-CONTENTHINT-DESCRIPTION (foreign-value "CRYPT_CERTINFO_CMS_CONTENTHINT_DESCRIPTION" int)) (define CERTINFO-CMS-CONTENTHINT-TYPE (foreign-value "CRYPT_CERTINFO_CMS_CONTENTHINT_TYPE" int)) (define CERTINFO-CMS-EQUIVALENTLABEL (foreign-value "CRYPT_CERTINFO_CMS_EQUIVALENTLABEL" int)) (define CERTINFO-CMS-EQVLABEL-POLICY (foreign-value "CRYPT_CERTINFO_CMS_EQVLABEL_POLICY" int)) (define CERTINFO-CMS-EQVLABEL-CLASSIFICATION (foreign-value "CRYPT_CERTINFO_CMS_EQVLABEL_CLASSIFICATION" int)) (define CERTINFO-CMS-EQVLABEL-PRIVACYMARK (foreign-value "CRYPT_CERTINFO_CMS_EQVLABEL_PRIVACYMARK" int)) (define CERTINFO-CMS-EQVLABEL-CATTYPE (foreign-value "CRYPT_CERTINFO_CMS_EQVLABEL_CATTYPE" int)) (define CERTINFO-CMS-EQVLABEL-CATVALUE (foreign-value "CRYPT_CERTINFO_CMS_EQVLABEL_CATVALUE" int)) (define CERTINFO-CMS-SIGNINGCERTIFICATE (foreign-value "CRYPT_CERTINFO_CMS_SIGNINGCERTIFICATE" int)) (define CERTINFO-CMS-SIGNINGCERT-ESSCERTID (foreign-value "CRYPT_CERTINFO_CMS_SIGNINGCERT_ESSCERTID" int)) (define CERTINFO-CMS-SIGNINGCERT-POLICIES (foreign-value "CRYPT_CERTINFO_CMS_SIGNINGCERT_POLICIES" int)) (define CERTINFO-CMS-SIGNINGCERTIFICATEV2 (foreign-value "CRYPT_CERTINFO_CMS_SIGNINGCERTIFICATEV2" int)) (define CERTINFO-CMS-SIGNINGCERTV2-ESSCERTIDV2 (foreign-value "CRYPT_CERTINFO_CMS_SIGNINGCERTV2_ESSCERTIDV2" int)) (define CERTINFO-CMS-SIGNINGCERTV2-POLICIES (foreign-value "CRYPT_CERTINFO_CMS_SIGNINGCERTV2_POLICIES" int)) (define CERTINFO-CMS-SIGNATUREPOLICYID (foreign-value "CRYPT_CERTINFO_CMS_SIGNATUREPOLICYID" int)) (define CERTINFO-CMS-SIGPOLICYID (foreign-value "CRYPT_CERTINFO_CMS_SIGPOLICYID" int)) (define CERTINFO-CMS-SIGPOLICYHASH (foreign-value "CRYPT_CERTINFO_CMS_SIGPOLICYHASH" int)) (define CERTINFO-CMS-SIGPOLICY-CPSURI (foreign-value "CRYPT_CERTINFO_CMS_SIGPOLICY_CPSURI" int)) (define CERTINFO-CMS-SIGPOLICY-ORGANIZATION (foreign-value "CRYPT_CERTINFO_CMS_SIGPOLICY_ORGANIZATION" int)) (define CERTINFO-CMS-SIGPOLICY-NOTICENUMBERS (foreign-value "CRYPT_CERTINFO_CMS_SIGPOLICY_NOTICENUMBERS" int)) (define CERTINFO-CMS-SIGPOLICY-EXPLICITTEXT (foreign-value "CRYPT_CERTINFO_CMS_SIGPOLICY_EXPLICITTEXT" int)) (define CERTINFO-CMS-SIGTYPEIDENTIFIER (foreign-value "CRYPT_CERTINFO_CMS_SIGTYPEIDENTIFIER" int)) (define CERTINFO-CMS-SIGTYPEID-ORIGINATORSIG (foreign-value "CRYPT_CERTINFO_CMS_SIGTYPEID_ORIGINATORSIG" int)) (define CERTINFO-CMS-SIGTYPEID-DOMAINSIG (foreign-value "CRYPT_CERTINFO_CMS_SIGTYPEID_DOMAINSIG" int)) (define CERTINFO-CMS-SIGTYPEID-ADDITIONALATTRIBUTES (foreign-value "CRYPT_CERTINFO_CMS_SIGTYPEID_ADDITIONALATTRIBUTES" int)) (define CERTINFO-CMS-SIGTYPEID-REVIEWSIG (foreign-value "CRYPT_CERTINFO_CMS_SIGTYPEID_REVIEWSIG" int)) (define CERTINFO-CMS-NONCE (foreign-value "CRYPT_CERTINFO_CMS_NONCE" int)) (define CERTINFO-SCEP-MESSAGETYPE (foreign-value "CRYPT_CERTINFO_SCEP_MESSAGETYPE" int)) (define CERTINFO-SCEP-PKISTATUS (foreign-value "CRYPT_CERTINFO_SCEP_PKISTATUS" int)) (define CERTINFO-SCEP-FAILINFO (foreign-value "CRYPT_CERTINFO_SCEP_FAILINFO" int)) (define CERTINFO-SCEP-SENDERNONCE (foreign-value "CRYPT_CERTINFO_SCEP_SENDERNONCE" int)) (define CERTINFO-SCEP-RECIPIENTNONCE (foreign-value "CRYPT_CERTINFO_SCEP_RECIPIENTNONCE" int)) (define CERTINFO-SCEP-TRANSACTIONID (foreign-value "CRYPT_CERTINFO_SCEP_TRANSACTIONID" int)) (define CERTINFO-CMS-SPCAGENCYINFO (foreign-value "CRYPT_CERTINFO_CMS_SPCAGENCYINFO" int)) (define CERTINFO-CMS-SPCAGENCYURL (foreign-value "CRYPT_CERTINFO_CMS_SPCAGENCYURL" int)) (define CERTINFO-CMS-SPCSTATEMENTTYPE (foreign-value "CRYPT_CERTINFO_CMS_SPCSTATEMENTTYPE" int)) (define CERTINFO-CMS-SPCSTMT-INDIVIDUALCODESIGNING (foreign-value "CRYPT_CERTINFO_CMS_SPCSTMT_INDIVIDUALCODESIGNING" int)) (define CERTINFO-CMS-SPCSTMT-COMMERCIALCODESIGNING (foreign-value "CRYPT_CERTINFO_CMS_SPCSTMT_COMMERCIALCODESIGNING" int)) (define CERTINFO-CMS-SPCOPUSINFO (foreign-value "CRYPT_CERTINFO_CMS_SPCOPUSINFO" int)) (define CERTINFO-CMS-SPCOPUSINFO-NAME (foreign-value "CRYPT_CERTINFO_CMS_SPCOPUSINFO_NAME" int)) (define CERTINFO-CMS-SPCOPUSINFO-URL (foreign-value "CRYPT_CERTINFO_CMS_SPCOPUSINFO_URL" int)) (define KEYINFO-QUERY (foreign-value "CRYPT_KEYINFO_QUERY" int)) (define KEYINFO-QUERY-REQUESTS (foreign-value "CRYPT_KEYINFO_QUERY_REQUESTS" int)) (define DEVINFO-INITIALISE (foreign-value "CRYPT_DEVINFO_INITIALISE" int)) (define DEVINFO-INITIALIZE (foreign-value "CRYPT_DEVINFO_INITIALIZE" int)) (define DEVINFO-AUTHENT-USER (foreign-value "CRYPT_DEVINFO_AUTHENT_USER" int)) (define DEVINFO-AUTHENT-SUPERVISOR (foreign-value "CRYPT_DEVINFO_AUTHENT_SUPERVISOR" int)) (define DEVINFO-SET-AUTHENT-USER (foreign-value "CRYPT_DEVINFO_SET_AUTHENT_USER" int)) (define DEVINFO-SET-AUTHENT-SUPERVISOR (foreign-value "CRYPT_DEVINFO_SET_AUTHENT_SUPERVISOR" int)) (define DEVINFO-ZEROISE (foreign-value "CRYPT_DEVINFO_ZEROISE" int)) (define DEVINFO-ZEROIZE (foreign-value "CRYPT_DEVINFO_ZEROIZE" int)) (define DEVINFO-LOGGEDIN (foreign-value "CRYPT_DEVINFO_LOGGEDIN" int)) (define DEVINFO-LABEL (foreign-value "CRYPT_DEVINFO_LABEL" int)) (define ENVINFO-DATASIZE (foreign-value "CRYPT_ENVINFO_DATASIZE" int)) (define ENVINFO-COMPRESSION (foreign-value "CRYPT_ENVINFO_COMPRESSION" int)) (define ENVINFO-CONTENTTYPE (foreign-value "CRYPT_ENVINFO_CONTENTTYPE" int)) (define ENVINFO-DETACHEDSIGNATURE (foreign-value "CRYPT_ENVINFO_DETACHEDSIGNATURE" int)) (define ENVINFO-SIGNATURE-RESULT (foreign-value "CRYPT_ENVINFO_SIGNATURE_RESULT" int)) (define ENVINFO-INTEGRITY (foreign-value "CRYPT_ENVINFO_INTEGRITY" int)) (define ENVINFO-PASSWORD (foreign-value "CRYPT_ENVINFO_PASSWORD" int)) (define ENVINFO-KEY (foreign-value "CRYPT_ENVINFO_KEY" int)) (define ENVINFO-SIGNATURE (foreign-value "CRYPT_ENVINFO_SIGNATURE" int)) (define ENVINFO-SIGNATURE-EXTRADATA (foreign-value "CRYPT_ENVINFO_SIGNATURE_EXTRADATA" int)) (define ENVINFO-RECIPIENT (foreign-value "CRYPT_ENVINFO_RECIPIENT" int)) (define ENVINFO-PUBLICKEY (foreign-value "CRYPT_ENVINFO_PUBLICKEY" int)) (define ENVINFO-PRIVATEKEY (foreign-value "CRYPT_ENVINFO_PRIVATEKEY" int)) (define ENVINFO-PRIVATEKEY-LABEL (foreign-value "CRYPT_ENVINFO_PRIVATEKEY_LABEL" int)) (define ENVINFO-ORIGINATOR (foreign-value "CRYPT_ENVINFO_ORIGINATOR" int)) (define ENVINFO-SESSIONKEY (foreign-value "CRYPT_ENVINFO_SESSIONKEY" int)) (define ENVINFO-HASH (foreign-value "CRYPT_ENVINFO_HASH" int)) (define ENVINFO-TIMESTAMP (foreign-value "CRYPT_ENVINFO_TIMESTAMP" int)) (define ENVINFO-KEYSET-SIGCHECK (foreign-value "CRYPT_ENVINFO_KEYSET_SIGCHECK" int)) (define ENVINFO-KEYSET-ENCRYPT (foreign-value "CRYPT_ENVINFO_KEYSET_ENCRYPT" int)) (define ENVINFO-KEYSET-DECRYPT (foreign-value "CRYPT_ENVINFO_KEYSET_DECRYPT" int)) (define SESSINFO-ACTIVE (foreign-value "CRYPT_SESSINFO_ACTIVE" int)) (define SESSINFO-CONNECTIONACTIVE (foreign-value "CRYPT_SESSINFO_CONNECTIONACTIVE" int)) (define SESSINFO-USERNAME (foreign-value "CRYPT_SESSINFO_USERNAME" int)) (define SESSINFO-PASSWORD (foreign-value "CRYPT_SESSINFO_PASSWORD" int)) (define SESSINFO-PRIVATEKEY (foreign-value "CRYPT_SESSINFO_PRIVATEKEY" int)) (define SESSINFO-AUTHRESPONSE (foreign-value "CRYPT_SESSINFO_AUTHRESPONSE" int)) (define SESSINFO-KEYSET (foreign-value "CRYPT_SESSINFO_KEYSET" int)) (define SESSINFO-SERVER-NAME (foreign-value "CRYPT_SESSINFO_SERVER_NAME" int)) (define SESSINFO-SERVER-PORT (foreign-value "CRYPT_SESSINFO_SERVER_PORT" int)) (define SESSINFO-SERVER-FINGERPRINT-SHA1 (foreign-value "CRYPT_SESSINFO_SERVER_FINGERPRINT_SHA1" int)) (define SESSINFO-CLIENT-NAME (foreign-value "CRYPT_SESSINFO_CLIENT_NAME" int)) (define SESSINFO-CLIENT-PORT (foreign-value "CRYPT_SESSINFO_CLIENT_PORT" int)) (define SESSINFO-SESSION (foreign-value "CRYPT_SESSINFO_SESSION" int)) (define SESSINFO-NETWORKSOCKET (foreign-value "CRYPT_SESSINFO_NETWORKSOCKET" int)) (define SESSINFO-VERSION (foreign-value "CRYPT_SESSINFO_VERSION" int)) (define SESSINFO-REQUEST (foreign-value "CRYPT_SESSINFO_REQUEST" int)) (define SESSINFO-RESPONSE (foreign-value "CRYPT_SESSINFO_RESPONSE" int)) (define SESSINFO-CACERTIFICATE (foreign-value "CRYPT_SESSINFO_CACERTIFICATE" int)) (define SESSINFO-TSP-MSGIMPRINT (foreign-value "CRYPT_SESSINFO_TSP_MSGIMPRINT" int)) (define SESSINFO-CMP-REQUESTTYPE (foreign-value "CRYPT_SESSINFO_CMP_REQUESTTYPE" int)) (define SESSINFO-CMP-PRIVKEYSET (foreign-value "CRYPT_SESSINFO_CMP_PRIVKEYSET" int)) (define SESSINFO-SSH-CHANNEL (foreign-value "CRYPT_SESSINFO_SSH_CHANNEL" int)) (define SESSINFO-SSH-CHANNEL-TYPE (foreign-value "CRYPT_SESSINFO_SSH_CHANNEL_TYPE" int)) (define SESSINFO-SSH-CHANNEL-ARG1 (foreign-value "CRYPT_SESSINFO_SSH_CHANNEL_ARG1" int)) (define SESSINFO-SSH-CHANNEL-ARG2 (foreign-value "CRYPT_SESSINFO_SSH_CHANNEL_ARG2" int)) (define SESSINFO-SSH-CHANNEL-ACTIVE (foreign-value "CRYPT_SESSINFO_SSH_CHANNEL_ACTIVE" int)) (define SESSINFO-SSL-OPTIONS (foreign-value "CRYPT_SESSINFO_SSL_OPTIONS" int)) (define USERINFO-PASSWORD (foreign-value "CRYPT_USERINFO_PASSWORD" int)) (define USERINFO-CAKEY-CERTSIGN (foreign-value "CRYPT_USERINFO_CAKEY_CERTSIGN" int)) (define USERINFO-CAKEY-CRLSIGN (foreign-value "CRYPT_USERINFO_CAKEY_CRLSIGN" int)) (define USERINFO-CAKEY-RTCSSIGN (foreign-value "CRYPT_USERINFO_CAKEY_RTCSSIGN" int)) (define USERINFO-CAKEY-OCSPSIGN (foreign-value "CRYPT_USERINFO_CAKEY_OCSPSIGN" int)) (define KEYUSAGE-NONE (foreign-value "CRYPT_KEYUSAGE_NONE" int)) (define KEYUSAGE-DIGITALSIGNATURE (foreign-value "CRYPT_KEYUSAGE_DIGITALSIGNATURE" int)) (define KEYUSAGE-NONREPUDIATION (foreign-value "CRYPT_KEYUSAGE_NONREPUDIATION" int)) (define KEYUSAGE-KEYENCIPHERMENT (foreign-value "CRYPT_KEYUSAGE_KEYENCIPHERMENT" int)) (define KEYUSAGE-DATAENCIPHERMENT (foreign-value "CRYPT_KEYUSAGE_DATAENCIPHERMENT" int)) (define KEYUSAGE-KEYAGREEMENT (foreign-value "CRYPT_KEYUSAGE_KEYAGREEMENT" int)) (define KEYUSAGE-KEYCERTSIGN (foreign-value "CRYPT_KEYUSAGE_KEYCERTSIGN" int)) (define KEYUSAGE-CRLSIGN (foreign-value "CRYPT_KEYUSAGE_CRLSIGN" int)) (define KEYUSAGE-ENCIPHERONLY (foreign-value "CRYPT_KEYUSAGE_ENCIPHERONLY" int)) (define KEYUSAGE-DECIPHERONLY (foreign-value "CRYPT_KEYUSAGE_DECIPHERONLY" int)) (define KEYUSAGE-LAST (foreign-value "CRYPT_KEYUSAGE_LAST" int)) (define CRLREASON-UNSPECIFIED (foreign-value "CRYPT_CRLREASON_UNSPECIFIED" int)) (define CRLREASON-KEYCOMPROMISE (foreign-value "CRYPT_CRLREASON_KEYCOMPROMISE" int)) (define CRLREASON-CACOMPROMISE (foreign-value "CRYPT_CRLREASON_CACOMPROMISE" int)) (define CRLREASON-AFFILIATIONCHANGED (foreign-value "CRYPT_CRLREASON_AFFILIATIONCHANGED" int)) (define CRLREASON-SUPERSEDED (foreign-value "CRYPT_CRLREASON_SUPERSEDED" int)) (define CRLREASON-CESSATIONOFOPERATION (foreign-value "CRYPT_CRLREASON_CESSATIONOFOPERATION" int)) (define CRLREASON-CERTIFICATEHOLD (foreign-value "CRYPT_CRLREASON_CERTIFICATEHOLD" int)) (define CRLREASON-REMOVEFROMCRL (foreign-value "CRYPT_CRLREASON_REMOVEFROMCRL" int)) (define CRLREASON-PRIVILEGEWITHDRAWN (foreign-value "CRYPT_CRLREASON_PRIVILEGEWITHDRAWN" int)) (define CRLREASON-AACOMPROMISE (foreign-value "CRYPT_CRLREASON_AACOMPROMISE" int)) (define CRLREASON-LAST (foreign-value "CRYPT_CRLREASON_LAST" int)) (define CRLREASON-NEVERVALID (foreign-value "CRYPT_CRLREASON_NEVERVALID" int)) (define CRLEXTREASON-LAST (foreign-value "CRYPT_CRLEXTREASON_LAST" int)) (define CRLREASONFLAG-UNUSED (foreign-value "CRYPT_CRLREASONFLAG_UNUSED" int)) (define CRLREASONFLAG-KEYCOMPROMISE (foreign-value "CRYPT_CRLREASONFLAG_KEYCOMPROMISE" int)) (define CRLREASONFLAG-CACOMPROMISE (foreign-value "CRYPT_CRLREASONFLAG_CACOMPROMISE" int)) (define CRLREASONFLAG-AFFILIATIONCHANGED (foreign-value "CRYPT_CRLREASONFLAG_AFFILIATIONCHANGED" int)) (define CRLREASONFLAG-SUPERSEDED (foreign-value "CRYPT_CRLREASONFLAG_SUPERSEDED" int)) (define CRLREASONFLAG-CESSATIONOFOPERATION (foreign-value "CRYPT_CRLREASONFLAG_CESSATIONOFOPERATION" int)) (define CRLREASONFLAG-CERTIFICATEHOLD (foreign-value "CRYPT_CRLREASONFLAG_CERTIFICATEHOLD" int)) (define CRLREASONFLAG-LAST (foreign-value "CRYPT_CRLREASONFLAG_LAST" int)) (define HOLDINSTRUCTION-NONE (foreign-value "CRYPT_HOLDINSTRUCTION_NONE" int)) (define HOLDINSTRUCTION-CALLISSUER (foreign-value "CRYPT_HOLDINSTRUCTION_CALLISSUER" int)) (define HOLDINSTRUCTION-REJECT (foreign-value "CRYPT_HOLDINSTRUCTION_REJECT" int)) (define HOLDINSTRUCTION-PICKUPTOKEN (foreign-value "CRYPT_HOLDINSTRUCTION_PICKUPTOKEN" int)) (define HOLDINSTRUCTION-LAST (foreign-value "CRYPT_HOLDINSTRUCTION_LAST" int)) (define COMPLIANCELEVEL-OBLIVIOUS (foreign-value "CRYPT_COMPLIANCELEVEL_OBLIVIOUS" int)) (define COMPLIANCELEVEL-REDUCED (foreign-value "CRYPT_COMPLIANCELEVEL_REDUCED" int)) (define COMPLIANCELEVEL-STANDARD (foreign-value "CRYPT_COMPLIANCELEVEL_STANDARD" int)) (define COMPLIANCELEVEL-PKIX-PARTIAL (foreign-value "CRYPT_COMPLIANCELEVEL_PKIX_PARTIAL" int)) (define COMPLIANCELEVEL-PKIX-FULL (foreign-value "CRYPT_COMPLIANCELEVEL_PKIX_FULL" int)) (define COMPLIANCELEVEL-LAST (foreign-value "CRYPT_COMPLIANCELEVEL_LAST" int)) (define NS-CERTTYPE-SSLCLIENT (foreign-value "CRYPT_NS_CERTTYPE_SSLCLIENT" int)) (define NS-CERTTYPE-SSLSERVER (foreign-value "CRYPT_NS_CERTTYPE_SSLSERVER" int)) (define NS-CERTTYPE-SMIME (foreign-value "CRYPT_NS_CERTTYPE_SMIME" int)) (define NS-CERTTYPE-OBJECTSIGNING (foreign-value "CRYPT_NS_CERTTYPE_OBJECTSIGNING" int)) (define NS-CERTTYPE-SSLCA (foreign-value "CRYPT_NS_CERTTYPE_SSLCA" int)) (define NS-CERTTYPE-SMIMECA (foreign-value "CRYPT_NS_CERTTYPE_SMIMECA" int)) (define NS-CERTTYPE-OBJECTSIGNINGCA (foreign-value "CRYPT_NS_CERTTYPE_OBJECTSIGNINGCA" int)) (define NS-CERTTYPE-LAST (foreign-value "CRYPT_NS_CERTTYPE_LAST" int)) (define SET-CERTTYPE-CARD (foreign-value "CRYPT_SET_CERTTYPE_CARD" int)) (define SET-CERTTYPE-MER (foreign-value "CRYPT_SET_CERTTYPE_MER" int)) (define SET-CERTTYPE-PGWY (foreign-value "CRYPT_SET_CERTTYPE_PGWY" int)) (define SET-CERTTYPE-CCA (foreign-value "CRYPT_SET_CERTTYPE_CCA" int)) (define SET-CERTTYPE-MCA (foreign-value "CRYPT_SET_CERTTYPE_MCA" int)) (define SET-CERTTYPE-PCA (foreign-value "CRYPT_SET_CERTTYPE_PCA" int)) (define SET-CERTTYPE-GCA (foreign-value "CRYPT_SET_CERTTYPE_GCA" int)) (define SET-CERTTYPE-BCA (foreign-value "CRYPT_SET_CERTTYPE_BCA" int)) (define SET-CERTTYPE-RCA (foreign-value "CRYPT_SET_CERTTYPE_RCA" int)) (define SET-CERTTYPE-ACQ (foreign-value "CRYPT_SET_CERTTYPE_ACQ" int)) (define SET-CERTTYPE-LAST (foreign-value "CRYPT_SET_CERTTYPE_LAST" int)) (define CONTENT-NONE (foreign-value "CRYPT_CONTENT_NONE" int)) (define CONTENT-DATA (foreign-value "CRYPT_CONTENT_DATA" int)) (define CONTENT-SIGNEDDATA (foreign-value "CRYPT_CONTENT_SIGNEDDATA" int)) (define CONTENT-ENVELOPEDDATA (foreign-value "CRYPT_CONTENT_ENVELOPEDDATA" int)) (define CONTENT-SIGNEDANDENVELOPEDDATA (foreign-value "CRYPT_CONTENT_SIGNEDANDENVELOPEDDATA" int)) (define CONTENT-DIGESTEDDATA (foreign-value "CRYPT_CONTENT_DIGESTEDDATA" int)) (define CONTENT-ENCRYPTEDDATA (foreign-value "CRYPT_CONTENT_ENCRYPTEDDATA" int)) (define CONTENT-COMPRESSEDDATA (foreign-value "CRYPT_CONTENT_COMPRESSEDDATA" int)) (define CONTENT-AUTHDATA (foreign-value "CRYPT_CONTENT_AUTHDATA" int)) (define CONTENT-AUTHENVDATA (foreign-value "CRYPT_CONTENT_AUTHENVDATA" int)) (define CONTENT-TSTINFO (foreign-value "CRYPT_CONTENT_TSTINFO" int)) (define CONTENT-SPCINDIRECTDATACONTEXT (foreign-value "CRYPT_CONTENT_SPCINDIRECTDATACONTEXT" int)) (define CONTENT-RTCSREQUEST (foreign-value "CRYPT_CONTENT_RTCSREQUEST" int)) (define CONTENT-RTCSRESPONSE (foreign-value "CRYPT_CONTENT_RTCSRESPONSE" int)) (define CONTENT-RTCSRESPONSE-EXT (foreign-value "CRYPT_CONTENT_RTCSRESPONSE_EXT" int)) (define CONTENT-MRTD (foreign-value "CRYPT_CONTENT_MRTD" int)) (define CONTENT-LAST (foreign-value "CRYPT_CONTENT_LAST" int)) (define CLASSIFICATION-UNMARKED (foreign-value "CRYPT_CLASSIFICATION_UNMARKED" int)) (define CLASSIFICATION-UNCLASSIFIED (foreign-value "CRYPT_CLASSIFICATION_UNCLASSIFIED" int)) (define CLASSIFICATION-RESTRICTED (foreign-value "CRYPT_CLASSIFICATION_RESTRICTED" int)) (define CLASSIFICATION-CONFIDENTIAL (foreign-value "CRYPT_CLASSIFICATION_CONFIDENTIAL" int)) (define CLASSIFICATION-SECRET (foreign-value "CRYPT_CLASSIFICATION_SECRET" int)) (define CLASSIFICATION-TOP-SECRET (foreign-value "CRYPT_CLASSIFICATION_TOP_SECRET" int)) (define CLASSIFICATION-LAST (foreign-value "CRYPT_CLASSIFICATION_LAST" int)) (define CERTSTATUS-VALID (foreign-value "CRYPT_CERTSTATUS_VALID" int)) (define CERTSTATUS-NOTVALID (foreign-value "CRYPT_CERTSTATUS_NOTVALID" int)) (define CERTSTATUS-NONAUTHORITATIVE (foreign-value "CRYPT_CERTSTATUS_NONAUTHORITATIVE" int)) (define CERTSTATUS-UNKNOWN (foreign-value "CRYPT_CERTSTATUS_UNKNOWN" int)) (define OCSPSTATUS-NOTREVOKED (foreign-value "CRYPT_OCSPSTATUS_NOTREVOKED" int)) (define OCSPSTATUS-REVOKED (foreign-value "CRYPT_OCSPSTATUS_REVOKED" int)) (define OCSPSTATUS-UNKNOWN (foreign-value "CRYPT_OCSPSTATUS_UNKNOWN" int)) (define SIGNATURELEVEL-NONE (foreign-value "CRYPT_SIGNATURELEVEL_NONE" int)) (define SIGNATURELEVEL-SIGNERCERT (foreign-value "CRYPT_SIGNATURELEVEL_SIGNERCERT" int)) (define SIGNATURELEVEL-ALL (foreign-value "CRYPT_SIGNATURELEVEL_ALL" int)) (define SIGNATURELEVEL-LAST (foreign-value "CRYPT_SIGNATURELEVEL_LAST" int)) (define INTEGRITY-NONE (foreign-value "CRYPT_INTEGRITY_NONE" int)) (define INTEGRITY-MACONLY (foreign-value "CRYPT_INTEGRITY_MACONLY" int)) (define INTEGRITY-FULL (foreign-value "CRYPT_INTEGRITY_FULL" int)) (define CERTFORMAT-NONE (foreign-value "CRYPT_CERTFORMAT_NONE" int)) (define CERTFORMAT-CERTIFICATE (foreign-value "CRYPT_CERTFORMAT_CERTIFICATE" int)) (define CERTFORMAT-CERTCHAIN (foreign-value "CRYPT_CERTFORMAT_CERTCHAIN" int)) (define CERTFORMAT-TEXT-CERTIFICATE (foreign-value "CRYPT_CERTFORMAT_TEXT_CERTIFICATE" int)) (define CERTFORMAT-TEXT-CERTCHAIN (foreign-value "CRYPT_CERTFORMAT_TEXT_CERTCHAIN" int)) (define CERTFORMAT-XML-CERTIFICATE (foreign-value "CRYPT_CERTFORMAT_XML_CERTIFICATE" int)) (define CERTFORMAT-XML-CERTCHAIN (foreign-value "CRYPT_CERTFORMAT_XML_CERTCHAIN" int)) (define CERTFORMAT-LAST (foreign-value "CRYPT_CERTFORMAT_LAST" int)) (define REQUESTTYPE-NONE (foreign-value "CRYPT_REQUESTTYPE_NONE" int)) (define REQUESTTYPE-INITIALISATION (foreign-value "CRYPT_REQUESTTYPE_INITIALISATION" int)) (define REQUESTTYPE-INITIALIZATION (foreign-value "CRYPT_REQUESTTYPE_INITIALIZATION" int)) (define REQUESTTYPE-CERTIFICATE (foreign-value "CRYPT_REQUESTTYPE_CERTIFICATE" int)) (define REQUESTTYPE-KEYUPDATE (foreign-value "CRYPT_REQUESTTYPE_KEYUPDATE" int)) (define REQUESTTYPE-REVOCATION (foreign-value "CRYPT_REQUESTTYPE_REVOCATION" int)) (define REQUESTTYPE-PKIBOOT (foreign-value "CRYPT_REQUESTTYPE_PKIBOOT" int)) (define REQUESTTYPE-LAST (foreign-value "CRYPT_REQUESTTYPE_LAST" int)) (define KEYID-NONE (foreign-value "CRYPT_KEYID_NONE" int)) (define KEYID-NAME (foreign-value "CRYPT_KEYID_NAME" int)) (define KEYID-URI (foreign-value "CRYPT_KEYID_URI" int)) (define KEYID-EMAIL (foreign-value "CRYPT_KEYID_EMAIL" int)) (define KEYID-LAST (foreign-value "CRYPT_KEYID_LAST" int)) (define OBJECT-NONE (foreign-value "CRYPT_OBJECT_NONE" int)) (define OBJECT-ENCRYPTED-KEY (foreign-value "CRYPT_OBJECT_ENCRYPTED_KEY" int)) (define OBJECT-PKCENCRYPTED-KEY (foreign-value "CRYPT_OBJECT_PKCENCRYPTED_KEY" int)) (define OBJECT-KEYAGREEMENT (foreign-value "CRYPT_OBJECT_KEYAGREEMENT" int)) (define OBJECT-SIGNATURE (foreign-value "CRYPT_OBJECT_SIGNATURE" int)) (define OBJECT-LAST (foreign-value "CRYPT_OBJECT_LAST" int)) (define ERRTYPE-NONE (foreign-value "CRYPT_ERRTYPE_NONE" int)) (define ERRTYPE-ATTR-SIZE (foreign-value "CRYPT_ERRTYPE_ATTR_SIZE" int)) (define ERRTYPE-ATTR-VALUE (foreign-value "CRYPT_ERRTYPE_ATTR_VALUE" int)) (define ERRTYPE-ATTR-ABSENT (foreign-value "CRYPT_ERRTYPE_ATTR_ABSENT" int)) (define ERRTYPE-ATTR-PRESENT (foreign-value "CRYPT_ERRTYPE_ATTR_PRESENT" int)) (define ERRTYPE-CONSTRAINT (foreign-value "CRYPT_ERRTYPE_CONSTRAINT" int)) (define ERRTYPE-ISSUERCONSTRAINT (foreign-value "CRYPT_ERRTYPE_ISSUERCONSTRAINT" int)) (define ERRTYPE-LAST (foreign-value "CRYPT_ERRTYPE_LAST" int)) (define CERTACTION-NONE (foreign-value "CRYPT_CERTACTION_NONE" int)) (define CERTACTION-CREATE (foreign-value "CRYPT_CERTACTION_CREATE" int)) (define CERTACTION-CONNECT (foreign-value "CRYPT_CERTACTION_CONNECT" int)) (define CERTACTION-DISCONNECT (foreign-value "CRYPT_CERTACTION_DISCONNECT" int)) (define CERTACTION-ERROR (foreign-value "CRYPT_CERTACTION_ERROR" int)) (define CERTACTION-ADDUSER (foreign-value "CRYPT_CERTACTION_ADDUSER" int)) (define CERTACTION-DELETEUSER (foreign-value "CRYPT_CERTACTION_DELETEUSER" int)) (define CERTACTION-REQUEST-CERT (foreign-value "CRYPT_CERTACTION_REQUEST_CERT" int)) (define CERTACTION-REQUEST-RENEWAL (foreign-value "CRYPT_CERTACTION_REQUEST_RENEWAL" int)) (define CERTACTION-REQUEST-REVOCATION (foreign-value "CRYPT_CERTACTION_REQUEST_REVOCATION" int)) (define CERTACTION-CERT-CREATION (foreign-value "CRYPT_CERTACTION_CERT_CREATION" int)) (define CERTACTION-CERT-CREATION-COMPLETE (foreign-value "CRYPT_CERTACTION_CERT_CREATION_COMPLETE" int)) (define CERTACTION-CERT-CREATION-DROP (foreign-value "CRYPT_CERTACTION_CERT_CREATION_DROP" int)) (define CERTACTION-CERT-CREATION-REVERSE (foreign-value "CRYPT_CERTACTION_CERT_CREATION_REVERSE" int)) (define CERTACTION-RESTART-CLEANUP (foreign-value "CRYPT_CERTACTION_RESTART_CLEANUP" int)) (define CERTACTION-RESTART-REVOKE-CERT (foreign-value "CRYPT_CERTACTION_RESTART_REVOKE_CERT" int)) (define CERTACTION-ISSUE-CERT (foreign-value "CRYPT_CERTACTION_ISSUE_CERT" int)) (define CERTACTION-ISSUE-CRL (foreign-value "CRYPT_CERTACTION_ISSUE_CRL" int)) (define CERTACTION-REVOKE-CERT (foreign-value "CRYPT_CERTACTION_REVOKE_CERT" int)) (define CERTACTION-EXPIRE-CERT (foreign-value "CRYPT_CERTACTION_EXPIRE_CERT" int)) (define CERTACTION-CLEANUP (foreign-value "CRYPT_CERTACTION_CLEANUP" int)) (define CERTACTION-LAST (foreign-value "CRYPT_CERTACTION_LAST" int)) (define SSLOPTION-NONE (foreign-value "CRYPT_SSLOPTION_NONE" int)) (define SSLOPTION-MINVER-SSLV3 (foreign-value "CRYPT_SSLOPTION_MINVER_SSLV3" int)) (define SSLOPTION-MINVER-TLS10 (foreign-value "CRYPT_SSLOPTION_MINVER_TLS10" int)) (define SSLOPTION-MINVER-TLS11 (foreign-value "CRYPT_SSLOPTION_MINVER_TLS11" int)) (define SSLOPTION-MINVER-TLS12 (foreign-value "CRYPT_SSLOPTION_MINVER_TLS12" int)) (define SSLOPTION-MINVER-TLS13 (foreign-value "CRYPT_SSLOPTION_MINVER_TLS13" int)) (define SSLOPTION-MANUAL-CERTCHECK (foreign-value "CRYPT_SSLOPTION_MANUAL_CERTCHECK" int)) (define SSLOPTION-DISABLE-NAMEVERIFY (foreign-value "CRYPT_SSLOPTION_DISABLE_NAMEVERIFY" int)) (define SSLOPTION-DISABLE-CERTVERIFY (foreign-value "CRYPT_SSLOPTION_DISABLE_CERTVERIFY" int)) (define SSLOPTION-SUITEB-128 (foreign-value "CRYPT_SSLOPTION_SUITEB_128" int)) (define SSLOPTION-SUITEB-256 (foreign-value "CRYPT_SSLOPTION_SUITEB_256" int)) (define MAX-KEYSIZE (foreign-value "CRYPT_MAX_KEYSIZE" int)) (define MAX-IVSIZE (foreign-value "CRYPT_MAX_IVSIZE" int)) (define MAX-PKCSIZE (foreign-value "CRYPT_MAX_PKCSIZE" int)) (define MAX-PKCSIZE-ECC (foreign-value "CRYPT_MAX_PKCSIZE_ECC" int)) (define MAX-HASHSIZE (foreign-value "CRYPT_MAX_HASHSIZE" int)) (define MAX-TEXTSIZE (foreign-value "CRYPT_MAX_TEXTSIZE" int)) (define USE-DEFAULT (foreign-value "CRYPT_USE_DEFAULT" int)) (define UNUSED (foreign-value "CRYPT_UNUSED" int)) (define KEYTYPE-PRIVATE (foreign-value "CRYPT_KEYTYPE_PRIVATE" int)) (define KEYTYPE-PUBLIC (foreign-value "CRYPT_KEYTYPE_PUBLIC" int)) (define RANDOM-FASTPOLL (foreign-value "CRYPT_RANDOM_FASTPOLL" int)) (define RANDOM-SLOWPOLL (foreign-value "CRYPT_RANDOM_SLOWPOLL" int)) (define CURSOR-FIRST (foreign-value "CRYPT_CURSOR_FIRST" int)) (define CURSOR-PREVIOUS (foreign-value "CRYPT_CURSOR_PREVIOUS" int)) (define CURSOR-NEXT (foreign-value "CRYPT_CURSOR_NEXT" int)) (define CURSOR-LAST (foreign-value "CRYPT_CURSOR_LAST" int)) (define KEYOPT-NONE (foreign-value "CRYPT_KEYOPT_NONE" int)) (define KEYOPT-READONLY (foreign-value "CRYPT_KEYOPT_READONLY" int)) (define KEYOPT-CREATE (foreign-value "CRYPT_KEYOPT_CREATE" int)) (define KEYOPT-LAST (foreign-value "CRYPT_KEYOPT_LAST" int)) (define OK (foreign-value "CRYPT_OK" int)) (define ERROR-PARAM1 (foreign-value "CRYPT_ERROR_PARAM1" int)) (define ERROR-PARAM2 (foreign-value "CRYPT_ERROR_PARAM2" int)) (define ERROR-PARAM3 (foreign-value "CRYPT_ERROR_PARAM3" int)) (define ERROR-PARAM4 (foreign-value "CRYPT_ERROR_PARAM4" int)) (define ERROR-PARAM5 (foreign-value "CRYPT_ERROR_PARAM5" int)) (define ERROR-PARAM6 (foreign-value "CRYPT_ERROR_PARAM6" int)) (define ERROR-PARAM7 (foreign-value "CRYPT_ERROR_PARAM7" int)) (define ERROR-MEMORY (foreign-value "CRYPT_ERROR_MEMORY" int)) (define ERROR-NOTINITED (foreign-value "CRYPT_ERROR_NOTINITED" int)) (define ERROR-INITED (foreign-value "CRYPT_ERROR_INITED" int)) (define ERROR-NOSECURE (foreign-value "CRYPT_ERROR_NOSECURE" int)) (define ERROR-RANDOM (foreign-value "CRYPT_ERROR_RANDOM" int)) (define ERROR-FAILED (foreign-value "CRYPT_ERROR_FAILED" int)) (define ERROR-INTERNAL (foreign-value "CRYPT_ERROR_INTERNAL" int)) (define ERROR-NOTAVAIL (foreign-value "CRYPT_ERROR_NOTAVAIL" int)) (define ERROR-PERMISSION (foreign-value "CRYPT_ERROR_PERMISSION" int)) (define ERROR-WRONGKEY (foreign-value "CRYPT_ERROR_WRONGKEY" int)) (define ERROR-INCOMPLETE (foreign-value "CRYPT_ERROR_INCOMPLETE" int)) (define ERROR-COMPLETE (foreign-value "CRYPT_ERROR_COMPLETE" int)) (define ERROR-TIMEOUT (foreign-value "CRYPT_ERROR_TIMEOUT" int)) (define ERROR-INVALID (foreign-value "CRYPT_ERROR_INVALID" int)) (define ERROR-SIGNALLED (foreign-value "CRYPT_ERROR_SIGNALLED" int)) (define ERROR-OVERFLOW (foreign-value "CRYPT_ERROR_OVERFLOW" int)) (define ERROR-UNDERFLOW (foreign-value "CRYPT_ERROR_UNDERFLOW" int)) (define ERROR-BADDATA (foreign-value "CRYPT_ERROR_BADDATA" int)) (define ERROR-SIGNATURE (foreign-value "CRYPT_ERROR_SIGNATURE" int)) (define ERROR-OPEN (foreign-value "CRYPT_ERROR_OPEN" int)) (define ERROR-READ (foreign-value "CRYPT_ERROR_READ" int)) (define ERROR-WRITE (foreign-value "CRYPT_ERROR_WRITE" int)) (define ERROR-NOTFOUND (foreign-value "CRYPT_ERROR_NOTFOUND" int)) (define ERROR-DUPLICATE (foreign-value "CRYPT_ERROR_DUPLICATE" int)) (define ENVELOPE-RESOURCE (foreign-value "CRYPT_ENVELOPE_RESOURCE" int)) (define error-codes (alist->hash-table `((,OK . "no error") (,ERROR-PARAM1 . "parameter 1 in function call was invalid") (,ERROR-PARAM2 . "parameter 2 in function call was invalid") (,ERROR-PARAM3 . "parameter 3 in function call was invalid") (,ERROR-PARAM4 . "parameter 4 in function call was invalid") (,ERROR-PARAM5 . "parameter 5 in function call was invalid") (,ERROR-PARAM6 . "parameter 6 in function call was invalid") (,ERROR-PARAM7 . "parameter 7 in function call was invalid") (,ERROR-FAILED . "the operation failed") (,ERROR-INTERNAL . "an internal consistency check failed") (,ERROR-INITED . "an object or attribute has already been initialized") (,ERROR-MEMORY . "insufficient memory resources to perform the operation") (,ERROR-NOSECURE . "the operation could not be performed at the requested security level") (,ERROR-NOTINITED . "an object or attribute has not been initialized yet") (,ERROR-RANDOM . "insufficient entropy to perform the operation") (,ERROR-COMPLETE . "this operation has been finished and cannot be continued") (,ERROR-INCOMPLETE . "an operation requiring several steps has not been completed yet") (,ERROR-INVALID . "the key context, certificate or attribute is invalid for this type of operation") (,ERROR-NOTAVAIL . "the requested operation cannot be applied to this object") (,ERROR-PERMISSION . "you don't have permission to perform this type of operation") (,ERROR-SIGNALLED . "an object has been rendered useless due to an external event.") (,ERROR-TIMEOUT . "the operation timed out") (,ERROR-WRONGKEY . "the key used for the decrypt or verify operation is incorrect") (,ERROR-BADDATA . "the data item was corrupt or not all of the data needed to process it was present") (,ERROR-OVERFLOW . "there is too much data for this function to work with") (,ERROR-SIGNATURE . "the signature or integrity check did not match the data") (,ERROR-UNDERFLOW . "there is too little data in the envelope or session for cryptlib to process") (,ERROR-DUPLICATE . "the given item is already present in the container object") (,ERROR-NOTFOUND . "the requested item is not present in the container object") (,ERROR-OPEN . "the container object could not be opened") (,ERROR-READ . "the requested item could not be read from the container object") (,ERROR-WRITE . "the item could not be written to the container object or the data could not be updated") (,ENVELOPE-RESOURCE . "a relevant resource must be added to the envelope before the data in it can be processed")) #:test = #:hash number-hash)) (define (check-error loc s) (cond ((fx= s OK) (void)) ((fx= s ENVELOPE-RESOURCE) (raise (make-property-condition 'crypt 'code s))) (else (abort (make-composite-condition (make-property-condition 'exn 'message (hash-table-ref/default error-codes s "Unknown error") 'location loc) (make-property-condition 'crypt 'code s)))))) (define (data-length loc data) (cond ((string? data) (string-length data)) ((blob? data) (blob-size data)) (else (error loc "unknown data type, cannot obtain length" data)))) (define (add-random! random-data #!optional (random-data-length #f)) (check-error 'add-random! ((foreign-lambda int "cryptAddRandom" scheme-pointer int) random-data (or random-data-length (data-length 'add-random! random-data))))) (define current-user (make-parameter UNUSED)) (define (login name password) (let-location ((user int)) (check-error 'login ((foreign-lambda int "cryptLogin" (nonnull-c-pointer int) nonnull-c-string nonnull-c-string) (location user) name password)) (current-user user))) (define (logout) (check-error 'logout ((foreign-lambda int "cryptLogout" int) (current-user))) (current-user UNUSED)) (define (destroy-object object) (check-error 'destroy-object ((foreign-lambda int "cryptDestroyObject" int) object))) ;;; device-open returns the result retrieved in the first ;;; parameter to the cryptlib call (define (open-device device-type name) (let-location ((device int)) (check-error 'open-device ((foreign-lambda int "cryptDeviceOpen" (nonnull-c-pointer int) int int c-string) (location device) (current-user) device-type name)) device)) ;;; query-capability returns the following values ;;; - name of the algorithm ;;; - block size ;;; - minimum key size ;;; - standard key size ;;; - maximum key size (define (query-capability algo #!optional device) (let-location ((algo-name c-string) (block-size int) (min-key-size int) (key-size int) (max-key-size int)) (check-error 'device-query-capability ((foreign-lambda* int ((int algo) (int device) ((nonnull-c-pointer c-string) algoName) ((nonnull-c-pointer int) blockSize) ((nonnull-c-pointer int) minKeySize) ((nonnull-c-pointer int) keySize) ((nonnull-c-pointer int) maxKeySize)) "int s;\n" "CRYPT_QUERY_INFO qi;\n" "if (device == CRYPT_UNUSED)\n" " s = cryptQueryCapability(algo, &qi);\n" "else\n" " s = cryptDeviceQueryCapability(device, algo, &qi);\n" "if (cryptStatusOK(s)) {\n" " *algoName = qi.algoName;\n" " *blockSize = qi.blockSize;\n" " *minKeySize = qi.minKeySize;\n" " *keySize = qi.keySize;\n" " *maxKeySize = qi.maxKeySize;\n" "}\n" "C_return(s);\n") algo (or device UNUSED) (location algo-name) (location block-size) (location min-key-size) (location key-size) (location max-key-size))) (values algo-name block-size min-key-size key-size max-key-size))) ;;; query-object returns the following values ;;; - the object type ;;; - the encryption algorithm ;;; - the encryption mode ;;; - the hash algorithm ;;; - the salt for derived keys ;;; - the size of the salt (define (query-object object-data #!optional object-data-length) (let ((salt (make-string MAX-HASHSIZE))) (let-location ((object-type int) (algo int) (mode int) (hash-algo int) (salt-length int)) (check-error 'query-object ((foreign-lambda* int ((nonnull-scheme-pointer objectData) (int objectDataLength) ((nonnull-c-pointer int) objectType) ((nonnull-c-pointer int) cryptAlgo) ((nonnull-c-pointer int) cryptMode) ((nonnull-c-pointer int) hashAlgo) (nonnull-scheme-pointer salt) ((nonnull-c-pointer int) saltLength)) "int s;\n" "CRYPT_OBJECT_INFO oi;\n" "s = cryptQueryObject(objectData, objectDataLength, &oi);\n" "if (cryptStatusOK(s)) {\n" " *objectType = oi.objectType;\n" " *cryptAlgo = oi.cryptAlgo;\n" " *cryptMode = oi.cryptMode;\n" " *hashAlgo = oi.hashAlgo;\n" " memcpy(salt, oi.salt, CRYPT_MAX_HASHSIZE);\n" " *saltLength = oi.saltSize;\n" "}\n" "C_return(s);\n") object-data (or object-data-length (data-length 'query-object object-data)) (location object-type) (location algo) (location mode) (location hash-algo) salt (location salt-length))) (values object-type algo mode hash-algo (substring/shared salt 0 salt-length))))) ;;; create-context returns the result retrieved in the first ;;; parameter to the cryptlib call (define (create-context algo #!optional device) (let-location ((context int)) (check-error 'create-context ((foreign-lambda* int (((nonnull-c-pointer int) context) (int algo) (int device) (int user)) "if (device == CRYPT_UNUSED)\n" " C_return(cryptCreateContext(context, user, algo));\n" "else\n" " C_return(cryptDeviceCreateContext(device, context, algo));\n") (location context) algo (or device UNUSED) (current-user))) context)) (define (generate-key context) (check-error 'generate-key ((foreign-lambda int "cryptGenerateKey" int) context))) (define (encrypt context buffer #!optional buffer-length) (check-error 'encrypt ((foreign-lambda int "cryptEncrypt" int nonnull-scheme-pointer int) context buffer (or buffer-length (data-length 'encrypt buffer))))) (define (decrypt context buffer #!optional buffer-length) (check-error 'decrypt ((foreign-lambda int "cryptDecrypt" int nonnull-scheme-pointer int) context buffer (or buffer-length (data-length 'decrypt buffer))))) (define-values (attribute attribute-set!) (letrec ((attribute (lambda (object attribute-type) (let-location ((value int)) (check-error 'attribute ((foreign-lambda int "cryptGetAttribute" int int (nonnull-c-pointer int)) object attribute-type (location value))) value))) (attribute-set! (lambda (object attribute-type value) (check-error 'attribute-set! ((foreign-lambda int "cryptSetAttribute" int int int) object attribute-type value))))) (values (getter-with-setter attribute attribute-set!) attribute-set!))) (define-values (attribute/string attribute-set!/string) (letrec ((attribute/string (lambda (object attribute-type) (let ((%attribute/string (cut (foreign-lambda int "cryptGetAttributeString" int int scheme-pointer (nonnull-c-pointer int)) object attribute-type <> <>))) (let-location ((value-length int)) (check-error 'attribute/string (%attribute/string #f (location value-length))) (let ((value (make-string value-length))) (check-error 'attribute/string (%attribute/string value (location value-length))) (substring/shared value 0 value-length)))))) (attribute-set!/string (lambda (object attribute-type value #!optional value-length) (check-error 'attribute-set!/string ((foreign-lambda int "cryptSetAttributeString" int int nonnull-scheme-pointer int) object attribute-type value (or value-length (data-length 'attribute-set!/string value))))))) (values (getter-with-setter attribute/string attribute-set!/string) attribute-set!/string))) (define (attribute-delete! object attribute-type) (check-error 'attribute-delete! ((foreign-lambda int "cryptDeleteAttribute" int int) object attribute-type))) ;;; export-key returns the result retrieved in the first two ;;; parameters to the cryptlib call as a string (define (export-key export-key session-key-context) (let ((%export-key (cut (foreign-lambda int "cryptExportKey" scheme-pointer int (nonnull-c-pointer int) int int) <> <> <> export-key session-key-context))) (let-location ((size int)) (check-error 'export-key (%export-key #f 0 (location size))) (let ((buf (make-string size))) (check-error 'export-key (%export-key buf (string-length buf) (location size))) (substring/shared buf 0 size))))) (define (import-key import-context session-key-context key-data #!optional key-data-length) (check-error 'import-key ((foreign-lambda int "cryptImportKey" nonnull-scheme-pointer int int int) key-data (or key-data-length (data-length 'import-key key-data)) import-context session-key-context))) ;;; create-signature returns the result retrieved in the first ;;; parameter to the cryptlib call as a string (define (create-signature sign-context hash-context #!optional format-type extra-data) (let ((%create-signature (cute (foreign-lambda int "cryptCreateSignatureEx" scheme-pointer int (nonnull-c-pointer int) int int int int) <> <> <> (or format-type FORMAT-CRYPTLIB) sign-context hash-context (if format-type (or extra-data USE-DEFAULT) UNUSED)))) (let-location ((size int)) (check-error 'create-signature (%create-signature #f 0 (location size))) (let ((buf (make-string size))) (check-error 'create-signature (%create-signature buf (string-length buf) (location size))) (substring/shared buf 0 size))))) ;;; check-signature returns the result retrieved in the last ;;; parameter to the cryptlib call if its optional argument is true (define (check-signature sig-check-key hash-context signature #!optional signature-length get-extra-data?) (let-location ((extra-data int)) (check-error 'check-signature ((foreign-lambda int "cryptCheckSignatureEx" nonnull-scheme-pointer int int int (c-pointer int)) signature (or signature-length (data-length 'check-signature signature)) sig-check-key hash-context (and get-extra-data? (location extra-data)))) (if get-extra-data? extra-data (void)))) ;;; open-keyset returns the data retrieved in the first ;;; parameter to the cryptlib call. (define (open-keyset keyset-type keyset-name #!optional (keyset-options KEYOPT-NONE)) (let-location ((keyset int)) (check-error 'open-keyset ((foreign-lambda int "cryptKeysetOpen" (nonnull-c-pointer int) int int nonnull-c-string int) (location keyset) (current-user) keyset-type keyset-name keyset-options)) keyset)) ;;; get-public-key returns the data retrieved in the second ;;; parameter to the cryptlib call (define (get-public-key keyset keyid-type keyid) (let-location ((handle int)) (check-error 'get-public-key ((foreign-lambda int "cryptGetPublicKey" int (nonnull-c-pointer int) int nonnull-c-string) keyset (location handle) keyid-type keyid)) handle)) ;;; get-private-key returns the data retrieved in the second ;;; parameter to the cryptlib call (define (get-private-key keyset keyid-type keyid #!optional password) (let-location ((context int)) (check-error 'get-private-key ((foreign-lambda int "cryptGetPrivateKey" int (nonnull-c-pointer int) int nonnull-c-string c-string) keyset (location context) keyid-type keyid password)) context)) ;;; get-key returns the data retrieved in the second ;;; parameter to the cryptlib call (define (get-key keyset keyid-type keyid #!optional password) (let-location ((context int)) (check-error 'get-key ((foreign-lambda int "cryptGetKey" int (nonnull-c-pointer int) int nonnull-c-string c-string) keyset (location context) keyid-type keyid password)) context)) (define (add-public-key! keyset certificate) (check-error 'add-public-key! ((foreign-lambda int "cryptAddPublicKey" int int) keyset certificate))) (define (add-private-key! keyset key password) (check-error 'add-private-key! ((foreign-lambda int "cryptAddPrivateKey" int int c-string) keyset key password))) (define (delete-key! object keyid-type keyid) (check-error 'delete-key! ((foreign-lambda int "cryptDeleteKey" int int nonnull-c-string) object keyid-type keyid))) ;;; create-cert returns the result retrieved in the first ;;; parameter to the cryptlib call (define (create-cert cert-type) (let-location ((certificate int)) (check-error 'create-cert ((foreign-lambda int "cryptCreateCert" (nonnull-c-pointer int) int int) (location certificate) (current-user) cert-type)) certificate)) (define (sign-cert! certificate sign-context) (check-error 'sign-cert! ((foreign-lambda int "cryptSignCert" int int) certificate sign-context))) (define (check-cert certificate sig-check-key) (check-error 'check-cert ((foreign-lambda int "cryptCheckCert" int int) certificate sig-check-key))) ;;; export-cert returns the result retrieved in the first two ;;; parameters to the cryptlib call as a string (define (export-cert cert-format-type certificate) (let ((%export-cert (cut (foreign-lambda int "cryptExportCert" scheme-pointer int (nonnull-c-pointer int) int int) <> <> <> cert-format-type certificate))) (let-location ((size int)) (check-error 'export-cert (%export-cert #f 0 (location size))) (let ((buf (make-string size))) (check-error 'export-cert (%export-cert buf (string-length buf) (location size))) (substring/shared buf 0 size))))) ;;; import-cert returns the data retrieved in the last parameter ;;; to the cryptlib call. Also note that the parameters have been ;;; reordered (user is the first now) to let the length parameter be ;;; optional (define (import-cert cert-data #!optional cert-data-length) (let-location ((certificate int)) (check-error 'import-cert ((foreign-lambda int "cryptImportCert" nonnull-scheme-pointer int int (nonnull-c-pointer int)) cert-data (or cert-data-length (data-length 'import-cert cert-data)) (current-user) (location certificate))) certificate)) ;;; ca-get-item returns the result retrieved in the second ;;; parameter to the cryptlib call (define (ca-get-item keyset cert-type id-type id) (let-location ((cert int)) (check-error 'ca-get-item ((foreign-lambda int "cryptCAGetItem" int (nonnull-c-pointer int) int int nonnull-c-string) keyset (location cert) cert-type id-type id)) cert)) (define (ca-add-item! keyset certificate) (check-error 'ca-add-item! ((foreign-lambda int "cryptCAAddItem" int int) keyset certificate))) (define (ca-delete-item! keyset cert-type id-type id) (check-error 'ca-delete-item! ((foreign-lambda int "cryptCADeleteItem" int int int nonnull-c-string) keyset cert-type id-type id))) ;;; ca-cert-management gets one parameter less than the normal ;;; cryptlib function call, but an additional optional parameter ;;; indicates whether the first argument of the cryptlib call should ;;; be used (and the retrieved value returned) or not. (define (ca-cert-management action keyset ca-key cert-request #!optional get-certificate?) (let-location ((certificate int)) (check-error 'ca-cert-management ((foreign-lambda int "cryptCACertManagement" (c-pointer int) int int int int) (and get-certificate? (location certificate)) action keyset ca-key cert-request)) (if get-certificate? certificate (void)))) ;;; create-envelope returns the result retrieved in the first ;;; parameter to the cryptlib call (define (create-envelope format-type) (let-location ((envelope int)) (check-error 'create-envelope ((foreign-lambda int "cryptCreateEnvelope" (nonnull-c-pointer int) int int) (location envelope) (current-user) format-type)) envelope)) ;;; create-session returns the result retrieved in the first ;;; parameter to the cryptlib call (define (create-session session-type) (let-location ((session int)) (check-error 'create-session ((foreign-lambda int "cryptCreateSession" (nonnull-c-pointer int) int int) (location session) (current-user) session-type)) session)) (define (push-data handle buffer #!optional buffer-length silent-eof?) (let-location ((copied-length int)) (let ((s ((foreign-lambda int "cryptPushData" int nonnull-scheme-pointer int (nonnull-c-pointer int)) handle buffer (or buffer-length (data-length 'push-data buffer)) (location copied-length)))) (if (and silent-eof? (fx= s ERROR-WRITE)) #f (begin (check-error 'push-data s) copied-length))))) (define (pop-data handle buffer #!optional buffer-length silent-eof?) (let-location ((copied-length int)) (let ((s ((foreign-lambda int "cryptPopData" int nonnull-scheme-pointer int (nonnull-c-pointer int)) handle buffer (or buffer-length (data-length 'push-data buffer)) (location copied-length)))) (if (and silent-eof? (fx= s ERROR-READ)) #f (begin (check-error 'pop-data s) copied-length))))) (define (flush-data handle) (check-error 'flush-data ((foreign-lambda int "cryptFlushData" int) handle))) (define (object-port? v) (and (port? v) (eq? (##sys#slot v 10) 'crypt:object))) (define (port->object port) (ensure object-port? port) (##sys#slot port 11)) (define (open-input-object handle #!optional destroy-on-close? eof-when-empty?) (letrec ((char #f) (char-ready? (lambda () (unless char (let ((buffer (make-string 1))) (cond ((pop-data handle buffer 1 (not eof-when-empty?)) => (lambda (fill) (cond ((fx> fill 0) (set! char (string-ref buffer 0))) (eof-when-empty? (set! char #!eof))))) (else (set! char #!eof))))) (and char #t))) (peek-char (lambda () (if (char-ready?) char (begin (thread-yield!) (peek-char))))) (read-char (lambda () (if (char-ready?) (let ((temp char)) (unless (eof-object? temp) (set! char #f)) temp) (begin (thread-yield!) (read-char))))) (close (lambda () (set! char #!eof) (when destroy-on-close? (destroy-object handle))))) (let ((port (make-input-port read-char char-ready? close peek-char))) (##sys#setslot port 3 "(object)") (##sys#setslot port 10 'crypt:object) (##sys#setslot port 11 handle) port))) (define (open-output-object handle #!optional destroy-on-close?) (letrec ((write-string (lambda (data) (let ((mark (push-data handle data))) (when (< mark (string-length data)) (thread-yield!) (write-string (substring/shared data mark)))))) (flush (lambda () (flush-data handle))) (close (lambda () (flush) (when destroy-on-close? (destroy-object handle))))) (let ((port (make-output-port write-string close flush))) (##sys#setslot port 3 "(object)") (##sys#setslot port 10 'crypt:object) (##sys#setslot port 11 handle) port))) (define initialize! (set-finalizer! (lambda () (check-error #f ((foreign-lambda int "cryptInit")))) (lambda (init) (check-error #f ((foreign-lambda int "cryptEnd")))))) (initialize!) )