From bc44e9af9de8eb44276225c1c5ece9130c83319d Mon Sep 17 00:00:00 2001 From: mathieu poux Date: Fri, 3 Feb 2017 00:29:55 +0100 Subject: [PATCH] First commit - sources --- CURRENT.txt | 23 + External/include/openssl/aes.h | 149 + External/include/openssl/asn1.h | 1419 ++++++ External/include/openssl/asn1_mac.h | 579 +++ External/include/openssl/asn1t.h | 973 ++++ External/include/openssl/bio.h | 883 ++++ External/include/openssl/blowfish.h | 130 + External/include/openssl/bn.h | 949 ++++ External/include/openssl/buffer.h | 125 + External/include/openssl/camellia.h | 132 + External/include/openssl/cast.h | 107 + External/include/openssl/cmac.h | 82 + External/include/openssl/cms.h | 555 +++ External/include/openssl/comp.h | 83 + External/include/openssl/conf.h | 267 ++ External/include/openssl/conf_api.h | 89 + External/include/openssl/crypto.h | 661 +++ External/include/openssl/des.h | 257 + External/include/openssl/des_old.h | 497 ++ External/include/openssl/dh.h | 393 ++ External/include/openssl/dsa.h | 332 ++ External/include/openssl/dso.h | 451 ++ External/include/openssl/dtls1.h | 272 ++ External/include/openssl/e_os2.h | 328 ++ External/include/openssl/ebcdic.h | 26 + External/include/openssl/ec.h | 1282 +++++ External/include/openssl/ecdh.h | 134 + External/include/openssl/ecdsa.h | 335 ++ External/include/openssl/engine.h | 960 ++++ External/include/openssl/err.h | 389 ++ External/include/openssl/evp.h | 1534 ++++++ External/include/openssl/hmac.h | 109 + External/include/openssl/idea.h | 105 + External/include/openssl/krb5_asn.h | 240 + External/include/openssl/kssl.h | 197 + External/include/openssl/lhash.h | 240 + External/include/openssl/md4.h | 119 + External/include/openssl/md5.h | 119 + External/include/openssl/mdc2.h | 94 + External/include/openssl/modes.h | 163 + External/include/openssl/obj_mac.h | 4194 +++++++++++++++++ External/include/openssl/objects.h | 1143 +++++ External/include/openssl/ocsp.h | 637 +++ External/include/openssl/opensslconf.h | 271 ++ External/include/openssl/opensslv.h | 97 + External/include/openssl/ossl_typ.h | 211 + External/include/openssl/pem.h | 615 +++ External/include/openssl/pem2.h | 70 + External/include/openssl/pkcs12.h | 342 ++ External/include/openssl/pkcs7.h | 481 ++ External/include/openssl/pqueue.h | 99 + External/include/openssl/rand.h | 150 + External/include/openssl/rc2.h | 103 + External/include/openssl/rc4.h | 88 + External/include/openssl/ripemd.h | 105 + External/include/openssl/rsa.h | 664 +++ External/include/openssl/safestack.h | 2672 +++++++++++ External/include/openssl/seed.h | 149 + External/include/openssl/sha.h | 214 + External/include/openssl/srp.h | 179 + External/include/openssl/srtp.h | 147 + External/include/openssl/ssl.h | 3169 +++++++++++++ External/include/openssl/ssl2.h | 265 ++ External/include/openssl/ssl23.h | 84 + External/include/openssl/ssl3.h | 774 +++ External/include/openssl/stack.h | 107 + External/include/openssl/symhacks.h | 516 ++ External/include/openssl/tls1.h | 810 ++++ External/include/openssl/ts.h | 862 ++++ External/include/openssl/txt_db.h | 112 + External/include/openssl/ui.h | 415 ++ External/include/openssl/ui_compat.h | 88 + External/include/openssl/whrlpool.h | 41 + External/include/openssl/x509.h | 1328 ++++++ External/include/openssl/x509_vfy.h | 647 +++ External/include/openssl/x509v3.h | 1055 +++++ External/include64/openssl/aes.h | 149 + External/include64/openssl/asn1.h | 1419 ++++++ External/include64/openssl/asn1_mac.h | 579 +++ External/include64/openssl/asn1t.h | 973 ++++ External/include64/openssl/bio.h | 883 ++++ External/include64/openssl/blowfish.h | 130 + External/include64/openssl/bn.h | 949 ++++ External/include64/openssl/buffer.h | 125 + External/include64/openssl/camellia.h | 132 + External/include64/openssl/cast.h | 107 + External/include64/openssl/cmac.h | 82 + External/include64/openssl/cms.h | 555 +++ External/include64/openssl/comp.h | 83 + External/include64/openssl/conf.h | 267 ++ External/include64/openssl/conf_api.h | 89 + External/include64/openssl/crypto.h | 661 +++ External/include64/openssl/des.h | 257 + External/include64/openssl/des_old.h | 497 ++ External/include64/openssl/dh.h | 393 ++ External/include64/openssl/dsa.h | 332 ++ External/include64/openssl/dso.h | 451 ++ External/include64/openssl/dtls1.h | 272 ++ External/include64/openssl/e_os2.h | 328 ++ External/include64/openssl/ebcdic.h | 26 + External/include64/openssl/ec.h | 1282 +++++ External/include64/openssl/ecdh.h | 134 + External/include64/openssl/ecdsa.h | 335 ++ External/include64/openssl/engine.h | 960 ++++ External/include64/openssl/err.h | 389 ++ External/include64/openssl/evp.h | 1534 ++++++ External/include64/openssl/hmac.h | 109 + External/include64/openssl/idea.h | 105 + External/include64/openssl/krb5_asn.h | 240 + External/include64/openssl/kssl.h | 197 + External/include64/openssl/lhash.h | 240 + External/include64/openssl/md4.h | 119 + External/include64/openssl/md5.h | 119 + External/include64/openssl/mdc2.h | 94 + External/include64/openssl/modes.h | 163 + External/include64/openssl/obj_mac.h | 4194 +++++++++++++++++ External/include64/openssl/objects.h | 1143 +++++ External/include64/openssl/ocsp.h | 637 +++ External/include64/openssl/opensslconf.h | 271 ++ External/include64/openssl/opensslv.h | 97 + External/include64/openssl/ossl_typ.h | 211 + External/include64/openssl/pem.h | 615 +++ External/include64/openssl/pem2.h | 70 + External/include64/openssl/pkcs12.h | 342 ++ External/include64/openssl/pkcs7.h | 481 ++ External/include64/openssl/pqueue.h | 99 + External/include64/openssl/rand.h | 150 + External/include64/openssl/rc2.h | 103 + External/include64/openssl/rc4.h | 88 + External/include64/openssl/ripemd.h | 105 + External/include64/openssl/rsa.h | 664 +++ External/include64/openssl/safestack.h | 2672 +++++++++++ External/include64/openssl/seed.h | 149 + External/include64/openssl/sha.h | 214 + External/include64/openssl/srp.h | 179 + External/include64/openssl/srtp.h | 147 + External/include64/openssl/ssl.h | 3169 +++++++++++++ External/include64/openssl/ssl2.h | 265 ++ External/include64/openssl/ssl23.h | 84 + External/include64/openssl/ssl3.h | 774 +++ External/include64/openssl/stack.h | 107 + External/include64/openssl/symhacks.h | 516 ++ External/include64/openssl/tls1.h | 810 ++++ External/include64/openssl/ts.h | 862 ++++ External/include64/openssl/txt_db.h | 112 + External/include64/openssl/ui.h | 415 ++ External/include64/openssl/ui_compat.h | 88 + External/include64/openssl/whrlpool.h | 41 + External/include64/openssl/x509.h | 1328 ++++++ External/include64/openssl/x509_vfy.h | 647 +++ External/include64/openssl/x509v3.h | 1055 +++++ External/lib/lib.pdb | Bin 0 -> 798720 bytes External/lib/libeay.lib | Bin 0 -> 12372456 bytes External/lib/libeayd.lib | Bin 0 -> 10186622 bytes External/lib/ssleay.lib | Bin 0 -> 2058228 bytes External/lib/ssleayd.lib | Bin 0 -> 1768264 bytes External/lib64/lib.pdb | Bin 0 -> 815104 bytes External/lib64/libeay.lib | Bin 0 -> 14052598 bytes External/lib64/libeayd.lib | Bin 0 -> 12084744 bytes External/lib64/ssleay.lib | Bin 0 -> 2013298 bytes External/lib64/ssleayd.lib | Bin 0 -> 1797700 bytes LICENSE | 674 +++ Makefile | 9 + Mona.sln | 71 + MonaBase/Makefile | 53 + MonaBase/MonaBase.vcxproj | 332 ++ MonaBase/MonaBase.vcxproj.filters | 365 ++ MonaBase/include/Mona/Allocator.h | 31 + MonaBase/include/Mona/Application.h | 104 + MonaBase/include/Mona/Binary.h | 36 + MonaBase/include/Mona/BinaryReader.h | 79 + MonaBase/include/Mona/BinaryWriter.h | 80 + MonaBase/include/Mona/Buffer.h | 73 + MonaBase/include/Mona/BufferPool.h | 47 + MonaBase/include/Mona/Byte.h | 87 + MonaBase/include/Mona/ByteRate.h | 59 + MonaBase/include/Mona/Cache.h | 46 + MonaBase/include/Mona/Congestion.h | 47 + MonaBase/include/Mona/Crypto.h | 87 + MonaBase/include/Mona/DNS.h | 65 + MonaBase/include/Mona/Date.h | 169 + MonaBase/include/Mona/DiffieHellman.h | 54 + MonaBase/include/Mona/Event.h | 104 + MonaBase/include/Mona/Exceptions.h | 141 + MonaBase/include/Mona/File.h | 107 + MonaBase/include/Mona/FileReader.h | 54 + MonaBase/include/Mona/FileSystem.h | 174 + MonaBase/include/Mona/FileWatcher.h | 42 + MonaBase/include/Mona/FileWriter.h | 56 + MonaBase/include/Mona/Handler.h | 69 + MonaBase/include/Mona/HelpFormatter.h | 52 + MonaBase/include/Mona/HostEntry.h | 57 + MonaBase/include/Mona/IOFile.h | 72 + MonaBase/include/Mona/IOSocket.h | 88 + MonaBase/include/Mona/IPAddress.h | 221 + MonaBase/include/Mona/Logger.h | 43 + MonaBase/include/Mona/Logs.h | 122 + MonaBase/include/Mona/LostRate.h | 45 + MonaBase/include/Mona/Mona.h | 378 ++ MonaBase/include/Mona/Net.h | 255 + MonaBase/include/Mona/Option.h | 111 + MonaBase/include/Mona/Options.h | 78 + MonaBase/include/Mona/Packet.h | 219 + MonaBase/include/Mona/Parameters.h | 132 + MonaBase/include/Mona/Path.h | 128 + MonaBase/include/Mona/PersistentData.h | 80 + MonaBase/include/Mona/Process.h | 34 + MonaBase/include/Mona/Runner.h | 36 + MonaBase/include/Mona/ServerApplication.h | 69 + MonaBase/include/Mona/Signal.h | 43 + MonaBase/include/Mona/Socket.h | 226 + MonaBase/include/Mona/SocketAddress.h | 115 + MonaBase/include/Mona/Stopwatch.h | 40 + MonaBase/include/Mona/StreamData.h | 66 + MonaBase/include/Mona/String.h | 344 ++ MonaBase/include/Mona/TCPClient.h | 85 + MonaBase/include/Mona/TCPServer.h | 55 + MonaBase/include/Mona/TLS.h | 116 + MonaBase/include/Mona/TerminateSignal.h | 45 + MonaBase/include/Mona/Thread.h | 82 + MonaBase/include/Mona/ThreadPool.h | 61 + MonaBase/include/Mona/ThreadQueue.h | 51 + MonaBase/include/Mona/Time.h | 83 + MonaBase/include/Mona/Timer.h | 83 + MonaBase/include/Mona/Timezone.h | 172 + MonaBase/include/Mona/UDPSocket.h | 82 + MonaBase/include/Mona/Util.h | 259 + MonaBase/include/Mona/WinRegistryKey.h | 140 + MonaBase/include/Mona/WinService.h | 108 + MonaBase/include/Mona/XMLParser.h | 106 + MonaBase/sources/Application.cpp | 264 ++ MonaBase/sources/BinaryReader.cpp | 154 + MonaBase/sources/BinaryWriter.cpp | 135 + MonaBase/sources/Buffer.cpp | 128 + MonaBase/sources/BufferPool.cpp | 101 + MonaBase/sources/Cache.cpp | 76 + MonaBase/sources/Congestion.cpp | 37 + MonaBase/sources/Crypto.cpp | 154 + MonaBase/sources/DNS.cpp | 93 + MonaBase/sources/Date.cpp | 821 ++++ MonaBase/sources/DiffieHellman.cpp | 84 + MonaBase/sources/File.cpp | 195 + MonaBase/sources/FileSystem.cpp | 664 +++ MonaBase/sources/FileWatcher.cpp | 36 + MonaBase/sources/Handler.cpp | 74 + MonaBase/sources/HelpFormatter.cpp | 192 + MonaBase/sources/HostEntry.cpp | 68 + MonaBase/sources/IOFile.cpp | 281 ++ MonaBase/sources/IOSocket.cpp | 695 +++ MonaBase/sources/IPAddress.cpp | 746 +++ MonaBase/sources/Logger.cpp | 75 + MonaBase/sources/Logs.cpp | 68 + MonaBase/sources/Mona.cpp | 291 ++ MonaBase/sources/Net.cpp | 110 + MonaBase/sources/Option.cpp | 91 + MonaBase/sources/Options.cpp | 136 + MonaBase/sources/Packet.cpp | 121 + MonaBase/sources/Parameters.cpp | 101 + MonaBase/sources/Path.cpp | 103 + MonaBase/sources/PersistentData.cpp | 209 + MonaBase/sources/Process.cpp | 33 + MonaBase/sources/ServerApplication.cpp | 330 ++ MonaBase/sources/Signal.cpp | 63 + MonaBase/sources/Socket.cpp | 452 ++ MonaBase/sources/SocketAddress.cpp | 80 + MonaBase/sources/String.cpp | 291 ++ MonaBase/sources/TCPClient.cpp | 110 + MonaBase/sources/TCPServer.cpp | 67 + MonaBase/sources/TLS.cpp | 207 + MonaBase/sources/TerminateSignal.cpp | 64 + MonaBase/sources/Thread.cpp | 177 + MonaBase/sources/ThreadQueue.cpp | 58 + MonaBase/sources/Timer.cpp | 86 + MonaBase/sources/Timezone.cpp | 632 +++ MonaBase/sources/UDPSocket.cpp | 85 + MonaBase/sources/Util.cpp | 374 ++ MonaBase/sources/WinRegistryKey.cpp | 346 ++ MonaBase/sources/WinService.cpp | 266 ++ MonaBase/sources/XMLParser.cpp | 439 ++ MonaCore/Makefile | 49 + MonaCore/MonaCore.vcxproj | 412 ++ MonaCore/MonaCore.vcxproj.filters | 504 ++ MonaCore/include/Mona/ADTSReader.h | 52 + MonaCore/include/Mona/ADTSWriter.h | 52 + MonaCore/include/Mona/AMF.h | 81 + MonaCore/include/Mona/AMFReader.h | 66 + MonaCore/include/Mona/AMFWriter.h | 73 + MonaCore/include/Mona/Client.h | 69 + MonaCore/include/Mona/DataReader.h | 169 + MonaCore/include/Mona/DataWriter.h | 80 + MonaCore/include/Mona/Entities.h | 83 + MonaCore/include/Mona/Entity.h | 42 + MonaCore/include/Mona/FLVReader.h | 53 + MonaCore/include/Mona/FLVWriter.h | 59 + MonaCore/include/Mona/FlashMainStream.h | 47 + MonaCore/include/Mona/FlashStream.h | 77 + MonaCore/include/Mona/FlashWriter.h | 109 + MonaCore/include/Mona/Group.h | 34 + MonaCore/include/Mona/H264NALReader.h | 47 + MonaCore/include/Mona/H264NALWriter.h | 45 + MonaCore/include/Mona/HTTP/HTTP.h | 228 + MonaCore/include/Mona/HTTP/HTTPDataSender.h | 63 + MonaCore/include/Mona/HTTP/HTTPDecoder.h | 77 + MonaCore/include/Mona/HTTP/HTTPFileSender.h | 62 + MonaCore/include/Mona/HTTP/HTTPMediaSender.h | 52 + MonaCore/include/Mona/HTTP/HTTPSender.h | 81 + MonaCore/include/Mona/HTTP/HTTPSession.h | 70 + MonaCore/include/Mona/HTTP/HTTPWriter.h | 117 + MonaCore/include/Mona/HTTP/HTTProtocol.h | 43 + MonaCore/include/Mona/ICE.h | 70 + MonaCore/include/Mona/JSONReader.h | 57 + MonaCore/include/Mona/JSONWriter.h | 65 + MonaCore/include/Mona/MIME.h | 51 + MonaCore/include/Mona/MP3Reader.h | 43 + MonaCore/include/Mona/MapReader.h | 97 + MonaCore/include/Mona/MapWriter.h | 91 + MonaCore/include/Mona/Media.h | 347 ++ MonaCore/include/Mona/MediaFile.h | 167 + MonaCore/include/Mona/MediaReader.h | 72 + MonaCore/include/Mona/MediaSocket.h | 184 + MonaCore/include/Mona/MediaWriter.h | 70 + MonaCore/include/Mona/MonaReader.h | 50 + MonaCore/include/Mona/MonaWriter.h | 59 + MonaCore/include/Mona/PacketWriter.h | 53 + MonaCore/include/Mona/Peer.h | 112 + MonaCore/include/Mona/Protocol.h | 54 + MonaCore/include/Mona/Protocols.h | 161 + MonaCore/include/Mona/Publication.h | 139 + MonaCore/include/Mona/QueryReader.h | 56 + MonaCore/include/Mona/QueryWriter.h | 59 + MonaCore/include/Mona/RTMFP/RTMFP.h | 134 + MonaCore/include/Mona/RTMFP/RTMFPDecoder.h | 47 + MonaCore/include/Mona/RTMFP/RTMFPReceiver.h | 80 + MonaCore/include/Mona/RTMFP/RTMFPSender.h | 126 + MonaCore/include/Mona/RTMFP/RTMFPSession.h | 93 + MonaCore/include/Mona/RTMFP/RTMFPWriter.h | 74 + MonaCore/include/Mona/RTMFP/RTMFProtocol.h | 47 + MonaCore/include/Mona/RTMP/RTMP.h | 76 + MonaCore/include/Mona/RTMP/RTMPDecoder.h | 73 + MonaCore/include/Mona/RTMP/RTMPSender.h | 56 + MonaCore/include/Mona/RTMP/RTMPSession.h | 49 + MonaCore/include/Mona/RTMP/RTMPWriter.h | 58 + MonaCore/include/Mona/RTMP/RTMProtocol.h | 44 + MonaCore/include/Mona/RTPReader.h | 99 + MonaCore/include/Mona/RTPWriter.h | 168 + MonaCore/include/Mona/RTP_H264.h | 52 + MonaCore/include/Mona/RTP_MPEG.h | 47 + MonaCore/include/Mona/ReferableReader.h | 69 + MonaCore/include/Mona/SDP.h | 86 + MonaCore/include/Mona/Server.h | 55 + MonaCore/include/Mona/ServerAPI.h | 156 + MonaCore/include/Mona/Session.h | 96 + MonaCore/include/Mona/Sessions.h | 116 + MonaCore/include/Mona/SplitWriter.h | 75 + MonaCore/include/Mona/StringReader.h | 45 + MonaCore/include/Mona/StringWriter.h | 71 + MonaCore/include/Mona/Subscription.h | 145 + MonaCore/include/Mona/TCPSession.h | 68 + MonaCore/include/Mona/TCProtocol.h | 44 + MonaCore/include/Mona/TSReader.h | 94 + MonaCore/include/Mona/TSWriter.h | 81 + MonaCore/include/Mona/UDProtocol.h | 41 + MonaCore/include/Mona/WS/WS.h | 67 + MonaCore/include/Mona/WS/WSDecoder.h | 44 + MonaCore/include/Mona/WS/WSProtocol.h | 34 + MonaCore/include/Mona/WS/WSSender.h | 60 + MonaCore/include/Mona/WS/WSSession.h | 63 + MonaCore/include/Mona/WS/WSWriter.h | 73 + MonaCore/include/Mona/Writer.h | 78 + MonaCore/include/Mona/XMLRPCReader.h | 87 + MonaCore/include/Mona/XMLRPCWriter.h | 73 + MonaCore/sources/ADTSReader.cpp | 154 + MonaCore/sources/ADTSWriter.cpp | 120 + MonaCore/sources/AMFReader.cpp | 690 +++ MonaCore/sources/AMFWriter.cpp | 270 ++ MonaCore/sources/DataReader.cpp | 84 + MonaCore/sources/FLVReader.cpp | 204 + MonaCore/sources/FLVWriter.cpp | 189 + MonaCore/sources/FlashMainStream.cpp | 218 + MonaCore/sources/FlashStream.cpp | 419 ++ MonaCore/sources/FlashWriter.cpp | 188 + MonaCore/sources/H264NALReader.cpp | 162 + MonaCore/sources/H264NALWriter.cpp | 106 + MonaCore/sources/HTTP/HTTP.cpp | 379 ++ MonaCore/sources/HTTP/HTTPDecoder.cpp | 231 + MonaCore/sources/HTTP/HTTPFileSender.cpp | 268 ++ MonaCore/sources/HTTP/HTTPMediaSender.cpp | 49 + MonaCore/sources/HTTP/HTTPSender.cpp | 100 + MonaCore/sources/HTTP/HTTPSession.cpp | 377 ++ MonaCore/sources/HTTP/HTTPWriter.cpp | 203 + MonaCore/sources/ICE.cpp | 294 ++ MonaCore/sources/JSONReader.cpp | 429 ++ MonaCore/sources/JSONWriter.cpp | 170 + MonaCore/sources/MIME.cpp | 159 + MonaCore/sources/MP3Reader.cpp | 118 + MonaCore/sources/Media.cpp | 387 ++ MonaCore/sources/MediaFile.cpp | 120 + MonaCore/sources/MediaReader.cpp | 131 + MonaCore/sources/MediaSocket.cpp | 273 ++ MonaCore/sources/MediaWriter.cpp | 109 + MonaCore/sources/MonaReader.cpp | 97 + MonaCore/sources/Peer.cpp | 328 ++ MonaCore/sources/Protocol.cpp | 71 + MonaCore/sources/Protocols.cpp | 46 + MonaCore/sources/Publication.cpp | 389 ++ MonaCore/sources/QueryReader.cpp | 143 + MonaCore/sources/QueryWriter.cpp | 58 + MonaCore/sources/RTMFP/RTMFP.cpp | 132 + MonaCore/sources/RTMFP/RTMFPDecoder.cpp | 317 ++ MonaCore/sources/RTMFP/RTMFPReceiver.cpp | 328 ++ MonaCore/sources/RTMFP/RTMFPSender.cpp | 234 + MonaCore/sources/RTMFP/RTMFPSession.cpp | 330 ++ MonaCore/sources/RTMFP/RTMFPWriter.cpp | 139 + MonaCore/sources/RTMFP/RTMFProtocol.cpp | 146 + MonaCore/sources/RTMP/RTMP.cpp | 146 + MonaCore/sources/RTMP/RTMPDecoder.cpp | 301 ++ MonaCore/sources/RTMP/RTMPSender.cpp | 144 + MonaCore/sources/RTMP/RTMPSession.cpp | 130 + MonaCore/sources/RTMP/RTMPWriter.cpp | 58 + MonaCore/sources/RTP_H264.cpp | 100 + MonaCore/sources/RTP_MPEG.cpp | 52 + MonaCore/sources/ReferableReader.cpp | 112 + MonaCore/sources/SDP.cpp | 264 ++ MonaCore/sources/Server.cpp | 255 + MonaCore/sources/ServerAPI.cpp | 248 + MonaCore/sources/Session.cpp | 127 + MonaCore/sources/Sessions.cpp | 151 + MonaCore/sources/Subscription.cpp | 328 ++ MonaCore/sources/TCPSession.cpp | 108 + MonaCore/sources/TCProtocol.cpp | 55 + MonaCore/sources/TSReader.cpp | 327 ++ MonaCore/sources/TSWriter.cpp | 417 ++ MonaCore/sources/UDProtocol.cpp | 35 + MonaCore/sources/WS/WS.cpp | 70 + MonaCore/sources/WS/WSDecoder.cpp | 75 + MonaCore/sources/WS/WSSender.cpp | 85 + MonaCore/sources/WS/WSSession.cpp | 262 + MonaCore/sources/WS/WSWriter.cpp | 118 + MonaCore/sources/Writer.cpp | 63 + MonaCore/sources/XMLRPCReader.cpp | 355 ++ MonaCore/sources/XMLRPCWriter.cpp | 136 + MonaServer/Makefile | 58 + MonaServer/MonaServer.vcxproj | 301 ++ MonaServer/MonaServer.vcxproj.filters | 155 + MonaServer/sources/Broadcaster.h | 56 + MonaServer/sources/LUABroadcaster.cpp | 118 + MonaServer/sources/LUABroadcaster.h | 40 + MonaServer/sources/LUAClient.cpp | 121 + MonaServer/sources/LUAClient.h | 35 + MonaServer/sources/LUAFile.cpp | 164 + MonaServer/sources/LUAFile.h | 47 + MonaServer/sources/LUAGroup.cpp | 103 + MonaServer/sources/LUAGroup.h | 45 + MonaServer/sources/LUAIPAddress.cpp | 117 + MonaServer/sources/LUAIPAddress.h | 36 + MonaServer/sources/LUAInvoker.cpp | 500 ++ MonaServer/sources/LUAInvoker.h | 147 + MonaServer/sources/LUAListener.cpp | 102 + MonaServer/sources/LUAListener.cpp.bak | 81 + MonaServer/sources/LUAListener.h | 36 + MonaServer/sources/LUAMediaWriter.cpp | 51 + MonaServer/sources/LUAMediaWriter.h | 51 + MonaServer/sources/LUAMember.cpp | 77 + MonaServer/sources/LUAMember.h | 39 + MonaServer/sources/LUANetStats.cpp | 102 + MonaServer/sources/LUANetStats.h | 96 + MonaServer/sources/LUAPersistentTable.cpp | 156 + MonaServer/sources/LUAPersistentTable.h | 51 + MonaServer/sources/LUAPublication.cpp | 194 + MonaServer/sources/LUAPublication.cpp.bak | 222 + MonaServer/sources/LUAPublication.h | 81 + MonaServer/sources/LUAQualityOfService.cpp | 39 + .../sources/LUAQualityOfService.cpp.bak | 49 + MonaServer/sources/LUAQualityOfService.h | 33 + MonaServer/sources/LUAServer.cpp | 72 + MonaServer/sources/LUAServer.h | 36 + MonaServer/sources/LUASocketAddress.cpp | 118 + MonaServer/sources/LUASocketAddress.h | 35 + MonaServer/sources/LUATCPClient.cpp | 163 + MonaServer/sources/LUATCPClient.cpp.bak | 147 + MonaServer/sources/LUATCPClient.h | 52 + MonaServer/sources/LUATCPServer.cpp | 102 + MonaServer/sources/LUATCPServer.h | 45 + MonaServer/sources/LUAUDPSocket.cpp | 175 + MonaServer/sources/LUAUDPSocket.h | 51 + MonaServer/sources/LUAWriter.cpp | 139 + MonaServer/sources/LUAWriter.h | 51 + MonaServer/sources/LUAXML.cpp | 230 + MonaServer/sources/LUAXML.h | 85 + MonaServer/sources/MonaServer.cpp | 809 ++++ MonaServer/sources/MonaServer.h | 100 + MonaServer/sources/Script.cpp | 559 +++ MonaServer/sources/Script.h | 638 +++ MonaServer/sources/ScriptReader.cpp | 263 ++ MonaServer/sources/ScriptReader.h | 46 + MonaServer/sources/ScriptWriter.cpp | 186 + MonaServer/sources/ScriptWriter.h | 67 + MonaServer/sources/ServerConnection.cpp | 214 + MonaServer/sources/ServerConnection.h | 80 + MonaServer/sources/Servers.cpp | 146 + MonaServer/sources/Servers.h | 56 + MonaServer/sources/Service.cpp | 518 ++ MonaServer/sources/Service.h | 75 + MonaServer/sources/main.cpp | 60 + MonaTiny/Makefile | 58 + MonaTiny/MonaTiny.vcxproj | 250 + MonaTiny/cert.pem | 37 + MonaTiny/include/Mona/App.h | 43 + MonaTiny/include/Mona/MonaTiny.h | 73 + MonaTiny/key.pem | 32 + MonaTiny/sources/MonaTiny.cpp | 157 + MonaTiny/sources/main.cpp | 51 + PersistentDataTODatabase.txt | 22 + .../StressUnicasting/.actionScriptProperties | 72 + StressTests/StressUnicasting/.flexProperties | 2 + StressTests/StressUnicasting/.project | 18 + .../StressUnicasting/bin/history/history.css | 6 + .../StressUnicasting/bin/history/history.js | 678 +++ .../bin/history/historyFrame.html | 29 + StressTests/StressUnicasting/bin/index.html | 159 + StressTests/StressUnicasting/bin/index.swf | Bin 0 -> 516892 bytes .../bin/playerProductInstall.swf | Bin 0 -> 657 bytes .../StressUnicasting/bin/stress-rtmfp.html | 8 + .../StressUnicasting/bin/stress-rtmp.html | 8 + .../StressUnicasting/bin/stress-rtmpe.html | 8 + StressTests/StressUnicasting/bin/swfobject.js | 777 +++ .../html-template/history/history.css | 6 + .../html-template/history/history.js | 678 +++ .../html-template/history/historyFrame.html | 29 + .../html-template/index.template.html | 159 + .../html-template/playerProductInstall.swf | Bin 0 -> 657 bytes .../html-template/swfobject.js | 777 +++ .../StressUnicasting/src/Unicasting.as | 104 + StressTests/StressUnicasting/src/index.mxml | 86 + TODO.txt | 66 + UnitTests/Makefile | 55 + UnitTests/UnitTests | Bin 0 -> 6398533 bytes UnitTests/UnitTests.vcxproj | 236 + UnitTests/cert.pem | 37 + UnitTests/key.pem | 32 + UnitTests/sources/BaseTest.cpp | 63 + UnitTests/sources/BinaryTest.cpp | 151 + UnitTests/sources/BufferTest.cpp | 80 + UnitTests/sources/DNSTest.cpp | 60 + UnitTests/sources/DateTest.cpp | 330 ++ UnitTests/sources/DecoderTest.cpp | 177 + UnitTests/sources/FileSystemTest.cpp | 393 ++ UnitTests/sources/FileTest.cpp | 116 + UnitTests/sources/IPAddressTest.cpp | 618 +++ UnitTests/sources/OptionsTest.cpp | 218 + UnitTests/sources/PacketTest.cpp | 106 + UnitTests/sources/ParametersTest.cpp | 82 + UnitTests/sources/PathTest.cpp | 77 + UnitTests/sources/PersistentDataTest.cpp | 81 + UnitTests/sources/SocketAddressTest.cpp | 212 + UnitTests/sources/SocketTest.cpp | 383 ++ UnitTests/sources/StopwatchTest.cpp | 43 + UnitTests/sources/StringTest.cpp | 357 ++ UnitTests/sources/Test.cpp | 64 + UnitTests/sources/Test.h | 105 + UnitTests/sources/TimeTest.cpp | 101 + UnitTests/sources/TimerTest.cpp | 71 + UnitTests/sources/UtilTest.cpp | 155 + UnitTests/sources/XMLParserTest.cpp | 170 + UnitTests/sources/main.cpp | 105 + Version.h | 1 + git.hooks.pre-commit | 2 + 567 files changed, 135682 insertions(+) create mode 100644 CURRENT.txt create mode 100644 External/include/openssl/aes.h create mode 100644 External/include/openssl/asn1.h create mode 100644 External/include/openssl/asn1_mac.h create mode 100644 External/include/openssl/asn1t.h create mode 100644 External/include/openssl/bio.h create mode 100644 External/include/openssl/blowfish.h create mode 100644 External/include/openssl/bn.h create mode 100644 External/include/openssl/buffer.h create mode 100644 External/include/openssl/camellia.h create mode 100644 External/include/openssl/cast.h create mode 100644 External/include/openssl/cmac.h create mode 100644 External/include/openssl/cms.h create mode 100644 External/include/openssl/comp.h create mode 100644 External/include/openssl/conf.h create mode 100644 External/include/openssl/conf_api.h create mode 100644 External/include/openssl/crypto.h create mode 100644 External/include/openssl/des.h create mode 100644 External/include/openssl/des_old.h create mode 100644 External/include/openssl/dh.h create mode 100644 External/include/openssl/dsa.h create mode 100644 External/include/openssl/dso.h create mode 100644 External/include/openssl/dtls1.h create mode 100644 External/include/openssl/e_os2.h create mode 100644 External/include/openssl/ebcdic.h create mode 100644 External/include/openssl/ec.h create mode 100644 External/include/openssl/ecdh.h create mode 100644 External/include/openssl/ecdsa.h create mode 100644 External/include/openssl/engine.h create mode 100644 External/include/openssl/err.h create mode 100644 External/include/openssl/evp.h create mode 100644 External/include/openssl/hmac.h create mode 100644 External/include/openssl/idea.h create mode 100644 External/include/openssl/krb5_asn.h create mode 100644 External/include/openssl/kssl.h create mode 100644 External/include/openssl/lhash.h create mode 100644 External/include/openssl/md4.h create mode 100644 External/include/openssl/md5.h create mode 100644 External/include/openssl/mdc2.h create mode 100644 External/include/openssl/modes.h create mode 100644 External/include/openssl/obj_mac.h create mode 100644 External/include/openssl/objects.h create mode 100644 External/include/openssl/ocsp.h create mode 100644 External/include/openssl/opensslconf.h create mode 100644 External/include/openssl/opensslv.h create mode 100644 External/include/openssl/ossl_typ.h create mode 100644 External/include/openssl/pem.h create mode 100644 External/include/openssl/pem2.h create mode 100644 External/include/openssl/pkcs12.h create mode 100644 External/include/openssl/pkcs7.h create mode 100644 External/include/openssl/pqueue.h create mode 100644 External/include/openssl/rand.h create mode 100644 External/include/openssl/rc2.h create mode 100644 External/include/openssl/rc4.h create mode 100644 External/include/openssl/ripemd.h create mode 100644 External/include/openssl/rsa.h create mode 100644 External/include/openssl/safestack.h create mode 100644 External/include/openssl/seed.h create mode 100644 External/include/openssl/sha.h create mode 100644 External/include/openssl/srp.h create mode 100644 External/include/openssl/srtp.h create mode 100644 External/include/openssl/ssl.h create mode 100644 External/include/openssl/ssl2.h create mode 100644 External/include/openssl/ssl23.h create mode 100644 External/include/openssl/ssl3.h create mode 100644 External/include/openssl/stack.h create mode 100644 External/include/openssl/symhacks.h create mode 100644 External/include/openssl/tls1.h create mode 100644 External/include/openssl/ts.h create mode 100644 External/include/openssl/txt_db.h create mode 100644 External/include/openssl/ui.h create mode 100644 External/include/openssl/ui_compat.h create mode 100644 External/include/openssl/whrlpool.h create mode 100644 External/include/openssl/x509.h create mode 100644 External/include/openssl/x509_vfy.h create mode 100644 External/include/openssl/x509v3.h create mode 100644 External/include64/openssl/aes.h create mode 100644 External/include64/openssl/asn1.h create mode 100644 External/include64/openssl/asn1_mac.h create mode 100644 External/include64/openssl/asn1t.h create mode 100644 External/include64/openssl/bio.h create mode 100644 External/include64/openssl/blowfish.h create mode 100644 External/include64/openssl/bn.h create mode 100644 External/include64/openssl/buffer.h create mode 100644 External/include64/openssl/camellia.h create mode 100644 External/include64/openssl/cast.h create mode 100644 External/include64/openssl/cmac.h create mode 100644 External/include64/openssl/cms.h create mode 100644 External/include64/openssl/comp.h create mode 100644 External/include64/openssl/conf.h create mode 100644 External/include64/openssl/conf_api.h create mode 100644 External/include64/openssl/crypto.h create mode 100644 External/include64/openssl/des.h create mode 100644 External/include64/openssl/des_old.h create mode 100644 External/include64/openssl/dh.h create mode 100644 External/include64/openssl/dsa.h create mode 100644 External/include64/openssl/dso.h create mode 100644 External/include64/openssl/dtls1.h create mode 100644 External/include64/openssl/e_os2.h create mode 100644 External/include64/openssl/ebcdic.h create mode 100644 External/include64/openssl/ec.h create mode 100644 External/include64/openssl/ecdh.h create mode 100644 External/include64/openssl/ecdsa.h create mode 100644 External/include64/openssl/engine.h create mode 100644 External/include64/openssl/err.h create mode 100644 External/include64/openssl/evp.h create mode 100644 External/include64/openssl/hmac.h create mode 100644 External/include64/openssl/idea.h create mode 100644 External/include64/openssl/krb5_asn.h create mode 100644 External/include64/openssl/kssl.h create mode 100644 External/include64/openssl/lhash.h create mode 100644 External/include64/openssl/md4.h create mode 100644 External/include64/openssl/md5.h create mode 100644 External/include64/openssl/mdc2.h create mode 100644 External/include64/openssl/modes.h create mode 100644 External/include64/openssl/obj_mac.h create mode 100644 External/include64/openssl/objects.h create mode 100644 External/include64/openssl/ocsp.h create mode 100644 External/include64/openssl/opensslconf.h create mode 100644 External/include64/openssl/opensslv.h create mode 100644 External/include64/openssl/ossl_typ.h create mode 100644 External/include64/openssl/pem.h create mode 100644 External/include64/openssl/pem2.h create mode 100644 External/include64/openssl/pkcs12.h create mode 100644 External/include64/openssl/pkcs7.h create mode 100644 External/include64/openssl/pqueue.h create mode 100644 External/include64/openssl/rand.h create mode 100644 External/include64/openssl/rc2.h create mode 100644 External/include64/openssl/rc4.h create mode 100644 External/include64/openssl/ripemd.h create mode 100644 External/include64/openssl/rsa.h create mode 100644 External/include64/openssl/safestack.h create mode 100644 External/include64/openssl/seed.h create mode 100644 External/include64/openssl/sha.h create mode 100644 External/include64/openssl/srp.h create mode 100644 External/include64/openssl/srtp.h create mode 100644 External/include64/openssl/ssl.h create mode 100644 External/include64/openssl/ssl2.h create mode 100644 External/include64/openssl/ssl23.h create mode 100644 External/include64/openssl/ssl3.h create mode 100644 External/include64/openssl/stack.h create mode 100644 External/include64/openssl/symhacks.h create mode 100644 External/include64/openssl/tls1.h create mode 100644 External/include64/openssl/ts.h create mode 100644 External/include64/openssl/txt_db.h create mode 100644 External/include64/openssl/ui.h create mode 100644 External/include64/openssl/ui_compat.h create mode 100644 External/include64/openssl/whrlpool.h create mode 100644 External/include64/openssl/x509.h create mode 100644 External/include64/openssl/x509_vfy.h create mode 100644 External/include64/openssl/x509v3.h create mode 100644 External/lib/lib.pdb create mode 100644 External/lib/libeay.lib create mode 100644 External/lib/libeayd.lib create mode 100644 External/lib/ssleay.lib create mode 100644 External/lib/ssleayd.lib create mode 100644 External/lib64/lib.pdb create mode 100644 External/lib64/libeay.lib create mode 100644 External/lib64/libeayd.lib create mode 100644 External/lib64/ssleay.lib create mode 100644 External/lib64/ssleayd.lib create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 Mona.sln create mode 100644 MonaBase/Makefile create mode 100644 MonaBase/MonaBase.vcxproj create mode 100644 MonaBase/MonaBase.vcxproj.filters create mode 100644 MonaBase/include/Mona/Allocator.h create mode 100644 MonaBase/include/Mona/Application.h create mode 100644 MonaBase/include/Mona/Binary.h create mode 100644 MonaBase/include/Mona/BinaryReader.h create mode 100644 MonaBase/include/Mona/BinaryWriter.h create mode 100644 MonaBase/include/Mona/Buffer.h create mode 100644 MonaBase/include/Mona/BufferPool.h create mode 100644 MonaBase/include/Mona/Byte.h create mode 100644 MonaBase/include/Mona/ByteRate.h create mode 100644 MonaBase/include/Mona/Cache.h create mode 100644 MonaBase/include/Mona/Congestion.h create mode 100644 MonaBase/include/Mona/Crypto.h create mode 100644 MonaBase/include/Mona/DNS.h create mode 100644 MonaBase/include/Mona/Date.h create mode 100644 MonaBase/include/Mona/DiffieHellman.h create mode 100644 MonaBase/include/Mona/Event.h create mode 100644 MonaBase/include/Mona/Exceptions.h create mode 100644 MonaBase/include/Mona/File.h create mode 100644 MonaBase/include/Mona/FileReader.h create mode 100644 MonaBase/include/Mona/FileSystem.h create mode 100644 MonaBase/include/Mona/FileWatcher.h create mode 100644 MonaBase/include/Mona/FileWriter.h create mode 100644 MonaBase/include/Mona/Handler.h create mode 100644 MonaBase/include/Mona/HelpFormatter.h create mode 100644 MonaBase/include/Mona/HostEntry.h create mode 100644 MonaBase/include/Mona/IOFile.h create mode 100644 MonaBase/include/Mona/IOSocket.h create mode 100644 MonaBase/include/Mona/IPAddress.h create mode 100644 MonaBase/include/Mona/Logger.h create mode 100644 MonaBase/include/Mona/Logs.h create mode 100644 MonaBase/include/Mona/LostRate.h create mode 100644 MonaBase/include/Mona/Mona.h create mode 100644 MonaBase/include/Mona/Net.h create mode 100644 MonaBase/include/Mona/Option.h create mode 100644 MonaBase/include/Mona/Options.h create mode 100644 MonaBase/include/Mona/Packet.h create mode 100644 MonaBase/include/Mona/Parameters.h create mode 100644 MonaBase/include/Mona/Path.h create mode 100644 MonaBase/include/Mona/PersistentData.h create mode 100644 MonaBase/include/Mona/Process.h create mode 100644 MonaBase/include/Mona/Runner.h create mode 100644 MonaBase/include/Mona/ServerApplication.h create mode 100644 MonaBase/include/Mona/Signal.h create mode 100644 MonaBase/include/Mona/Socket.h create mode 100644 MonaBase/include/Mona/SocketAddress.h create mode 100644 MonaBase/include/Mona/Stopwatch.h create mode 100644 MonaBase/include/Mona/StreamData.h create mode 100644 MonaBase/include/Mona/String.h create mode 100644 MonaBase/include/Mona/TCPClient.h create mode 100644 MonaBase/include/Mona/TCPServer.h create mode 100644 MonaBase/include/Mona/TLS.h create mode 100644 MonaBase/include/Mona/TerminateSignal.h create mode 100644 MonaBase/include/Mona/Thread.h create mode 100644 MonaBase/include/Mona/ThreadPool.h create mode 100644 MonaBase/include/Mona/ThreadQueue.h create mode 100644 MonaBase/include/Mona/Time.h create mode 100644 MonaBase/include/Mona/Timer.h create mode 100644 MonaBase/include/Mona/Timezone.h create mode 100644 MonaBase/include/Mona/UDPSocket.h create mode 100644 MonaBase/include/Mona/Util.h create mode 100644 MonaBase/include/Mona/WinRegistryKey.h create mode 100644 MonaBase/include/Mona/WinService.h create mode 100644 MonaBase/include/Mona/XMLParser.h create mode 100644 MonaBase/sources/Application.cpp create mode 100644 MonaBase/sources/BinaryReader.cpp create mode 100644 MonaBase/sources/BinaryWriter.cpp create mode 100644 MonaBase/sources/Buffer.cpp create mode 100644 MonaBase/sources/BufferPool.cpp create mode 100644 MonaBase/sources/Cache.cpp create mode 100644 MonaBase/sources/Congestion.cpp create mode 100644 MonaBase/sources/Crypto.cpp create mode 100644 MonaBase/sources/DNS.cpp create mode 100644 MonaBase/sources/Date.cpp create mode 100644 MonaBase/sources/DiffieHellman.cpp create mode 100644 MonaBase/sources/File.cpp create mode 100644 MonaBase/sources/FileSystem.cpp create mode 100644 MonaBase/sources/FileWatcher.cpp create mode 100644 MonaBase/sources/Handler.cpp create mode 100644 MonaBase/sources/HelpFormatter.cpp create mode 100644 MonaBase/sources/HostEntry.cpp create mode 100644 MonaBase/sources/IOFile.cpp create mode 100644 MonaBase/sources/IOSocket.cpp create mode 100644 MonaBase/sources/IPAddress.cpp create mode 100644 MonaBase/sources/Logger.cpp create mode 100644 MonaBase/sources/Logs.cpp create mode 100644 MonaBase/sources/Mona.cpp create mode 100644 MonaBase/sources/Net.cpp create mode 100644 MonaBase/sources/Option.cpp create mode 100644 MonaBase/sources/Options.cpp create mode 100644 MonaBase/sources/Packet.cpp create mode 100644 MonaBase/sources/Parameters.cpp create mode 100644 MonaBase/sources/Path.cpp create mode 100644 MonaBase/sources/PersistentData.cpp create mode 100644 MonaBase/sources/Process.cpp create mode 100644 MonaBase/sources/ServerApplication.cpp create mode 100644 MonaBase/sources/Signal.cpp create mode 100644 MonaBase/sources/Socket.cpp create mode 100644 MonaBase/sources/SocketAddress.cpp create mode 100644 MonaBase/sources/String.cpp create mode 100644 MonaBase/sources/TCPClient.cpp create mode 100644 MonaBase/sources/TCPServer.cpp create mode 100644 MonaBase/sources/TLS.cpp create mode 100644 MonaBase/sources/TerminateSignal.cpp create mode 100644 MonaBase/sources/Thread.cpp create mode 100644 MonaBase/sources/ThreadQueue.cpp create mode 100644 MonaBase/sources/Timer.cpp create mode 100644 MonaBase/sources/Timezone.cpp create mode 100644 MonaBase/sources/UDPSocket.cpp create mode 100644 MonaBase/sources/Util.cpp create mode 100644 MonaBase/sources/WinRegistryKey.cpp create mode 100644 MonaBase/sources/WinService.cpp create mode 100644 MonaBase/sources/XMLParser.cpp create mode 100644 MonaCore/Makefile create mode 100644 MonaCore/MonaCore.vcxproj create mode 100644 MonaCore/MonaCore.vcxproj.filters create mode 100644 MonaCore/include/Mona/ADTSReader.h create mode 100644 MonaCore/include/Mona/ADTSWriter.h create mode 100644 MonaCore/include/Mona/AMF.h create mode 100644 MonaCore/include/Mona/AMFReader.h create mode 100644 MonaCore/include/Mona/AMFWriter.h create mode 100644 MonaCore/include/Mona/Client.h create mode 100644 MonaCore/include/Mona/DataReader.h create mode 100644 MonaCore/include/Mona/DataWriter.h create mode 100644 MonaCore/include/Mona/Entities.h create mode 100644 MonaCore/include/Mona/Entity.h create mode 100644 MonaCore/include/Mona/FLVReader.h create mode 100644 MonaCore/include/Mona/FLVWriter.h create mode 100644 MonaCore/include/Mona/FlashMainStream.h create mode 100644 MonaCore/include/Mona/FlashStream.h create mode 100644 MonaCore/include/Mona/FlashWriter.h create mode 100644 MonaCore/include/Mona/Group.h create mode 100644 MonaCore/include/Mona/H264NALReader.h create mode 100644 MonaCore/include/Mona/H264NALWriter.h create mode 100644 MonaCore/include/Mona/HTTP/HTTP.h create mode 100644 MonaCore/include/Mona/HTTP/HTTPDataSender.h create mode 100644 MonaCore/include/Mona/HTTP/HTTPDecoder.h create mode 100644 MonaCore/include/Mona/HTTP/HTTPFileSender.h create mode 100644 MonaCore/include/Mona/HTTP/HTTPMediaSender.h create mode 100644 MonaCore/include/Mona/HTTP/HTTPSender.h create mode 100644 MonaCore/include/Mona/HTTP/HTTPSession.h create mode 100644 MonaCore/include/Mona/HTTP/HTTPWriter.h create mode 100644 MonaCore/include/Mona/HTTP/HTTProtocol.h create mode 100644 MonaCore/include/Mona/ICE.h create mode 100644 MonaCore/include/Mona/JSONReader.h create mode 100644 MonaCore/include/Mona/JSONWriter.h create mode 100644 MonaCore/include/Mona/MIME.h create mode 100644 MonaCore/include/Mona/MP3Reader.h create mode 100644 MonaCore/include/Mona/MapReader.h create mode 100644 MonaCore/include/Mona/MapWriter.h create mode 100644 MonaCore/include/Mona/Media.h create mode 100644 MonaCore/include/Mona/MediaFile.h create mode 100644 MonaCore/include/Mona/MediaReader.h create mode 100644 MonaCore/include/Mona/MediaSocket.h create mode 100644 MonaCore/include/Mona/MediaWriter.h create mode 100644 MonaCore/include/Mona/MonaReader.h create mode 100644 MonaCore/include/Mona/MonaWriter.h create mode 100644 MonaCore/include/Mona/PacketWriter.h create mode 100644 MonaCore/include/Mona/Peer.h create mode 100644 MonaCore/include/Mona/Protocol.h create mode 100644 MonaCore/include/Mona/Protocols.h create mode 100644 MonaCore/include/Mona/Publication.h create mode 100644 MonaCore/include/Mona/QueryReader.h create mode 100644 MonaCore/include/Mona/QueryWriter.h create mode 100644 MonaCore/include/Mona/RTMFP/RTMFP.h create mode 100644 MonaCore/include/Mona/RTMFP/RTMFPDecoder.h create mode 100644 MonaCore/include/Mona/RTMFP/RTMFPReceiver.h create mode 100644 MonaCore/include/Mona/RTMFP/RTMFPSender.h create mode 100644 MonaCore/include/Mona/RTMFP/RTMFPSession.h create mode 100644 MonaCore/include/Mona/RTMFP/RTMFPWriter.h create mode 100644 MonaCore/include/Mona/RTMFP/RTMFProtocol.h create mode 100644 MonaCore/include/Mona/RTMP/RTMP.h create mode 100644 MonaCore/include/Mona/RTMP/RTMPDecoder.h create mode 100644 MonaCore/include/Mona/RTMP/RTMPSender.h create mode 100644 MonaCore/include/Mona/RTMP/RTMPSession.h create mode 100644 MonaCore/include/Mona/RTMP/RTMPWriter.h create mode 100644 MonaCore/include/Mona/RTMP/RTMProtocol.h create mode 100644 MonaCore/include/Mona/RTPReader.h create mode 100644 MonaCore/include/Mona/RTPWriter.h create mode 100644 MonaCore/include/Mona/RTP_H264.h create mode 100644 MonaCore/include/Mona/RTP_MPEG.h create mode 100644 MonaCore/include/Mona/ReferableReader.h create mode 100644 MonaCore/include/Mona/SDP.h create mode 100644 MonaCore/include/Mona/Server.h create mode 100644 MonaCore/include/Mona/ServerAPI.h create mode 100644 MonaCore/include/Mona/Session.h create mode 100644 MonaCore/include/Mona/Sessions.h create mode 100644 MonaCore/include/Mona/SplitWriter.h create mode 100644 MonaCore/include/Mona/StringReader.h create mode 100644 MonaCore/include/Mona/StringWriter.h create mode 100644 MonaCore/include/Mona/Subscription.h create mode 100644 MonaCore/include/Mona/TCPSession.h create mode 100644 MonaCore/include/Mona/TCProtocol.h create mode 100644 MonaCore/include/Mona/TSReader.h create mode 100644 MonaCore/include/Mona/TSWriter.h create mode 100644 MonaCore/include/Mona/UDProtocol.h create mode 100644 MonaCore/include/Mona/WS/WS.h create mode 100644 MonaCore/include/Mona/WS/WSDecoder.h create mode 100644 MonaCore/include/Mona/WS/WSProtocol.h create mode 100644 MonaCore/include/Mona/WS/WSSender.h create mode 100644 MonaCore/include/Mona/WS/WSSession.h create mode 100644 MonaCore/include/Mona/WS/WSWriter.h create mode 100644 MonaCore/include/Mona/Writer.h create mode 100644 MonaCore/include/Mona/XMLRPCReader.h create mode 100644 MonaCore/include/Mona/XMLRPCWriter.h create mode 100644 MonaCore/sources/ADTSReader.cpp create mode 100644 MonaCore/sources/ADTSWriter.cpp create mode 100644 MonaCore/sources/AMFReader.cpp create mode 100644 MonaCore/sources/AMFWriter.cpp create mode 100644 MonaCore/sources/DataReader.cpp create mode 100644 MonaCore/sources/FLVReader.cpp create mode 100644 MonaCore/sources/FLVWriter.cpp create mode 100644 MonaCore/sources/FlashMainStream.cpp create mode 100644 MonaCore/sources/FlashStream.cpp create mode 100644 MonaCore/sources/FlashWriter.cpp create mode 100644 MonaCore/sources/H264NALReader.cpp create mode 100644 MonaCore/sources/H264NALWriter.cpp create mode 100644 MonaCore/sources/HTTP/HTTP.cpp create mode 100644 MonaCore/sources/HTTP/HTTPDecoder.cpp create mode 100644 MonaCore/sources/HTTP/HTTPFileSender.cpp create mode 100644 MonaCore/sources/HTTP/HTTPMediaSender.cpp create mode 100644 MonaCore/sources/HTTP/HTTPSender.cpp create mode 100644 MonaCore/sources/HTTP/HTTPSession.cpp create mode 100644 MonaCore/sources/HTTP/HTTPWriter.cpp create mode 100644 MonaCore/sources/ICE.cpp create mode 100644 MonaCore/sources/JSONReader.cpp create mode 100644 MonaCore/sources/JSONWriter.cpp create mode 100644 MonaCore/sources/MIME.cpp create mode 100644 MonaCore/sources/MP3Reader.cpp create mode 100644 MonaCore/sources/Media.cpp create mode 100644 MonaCore/sources/MediaFile.cpp create mode 100644 MonaCore/sources/MediaReader.cpp create mode 100644 MonaCore/sources/MediaSocket.cpp create mode 100644 MonaCore/sources/MediaWriter.cpp create mode 100644 MonaCore/sources/MonaReader.cpp create mode 100644 MonaCore/sources/Peer.cpp create mode 100644 MonaCore/sources/Protocol.cpp create mode 100644 MonaCore/sources/Protocols.cpp create mode 100644 MonaCore/sources/Publication.cpp create mode 100644 MonaCore/sources/QueryReader.cpp create mode 100644 MonaCore/sources/QueryWriter.cpp create mode 100644 MonaCore/sources/RTMFP/RTMFP.cpp create mode 100644 MonaCore/sources/RTMFP/RTMFPDecoder.cpp create mode 100644 MonaCore/sources/RTMFP/RTMFPReceiver.cpp create mode 100644 MonaCore/sources/RTMFP/RTMFPSender.cpp create mode 100644 MonaCore/sources/RTMFP/RTMFPSession.cpp create mode 100644 MonaCore/sources/RTMFP/RTMFPWriter.cpp create mode 100644 MonaCore/sources/RTMFP/RTMFProtocol.cpp create mode 100644 MonaCore/sources/RTMP/RTMP.cpp create mode 100644 MonaCore/sources/RTMP/RTMPDecoder.cpp create mode 100644 MonaCore/sources/RTMP/RTMPSender.cpp create mode 100644 MonaCore/sources/RTMP/RTMPSession.cpp create mode 100644 MonaCore/sources/RTMP/RTMPWriter.cpp create mode 100644 MonaCore/sources/RTP_H264.cpp create mode 100644 MonaCore/sources/RTP_MPEG.cpp create mode 100644 MonaCore/sources/ReferableReader.cpp create mode 100644 MonaCore/sources/SDP.cpp create mode 100644 MonaCore/sources/Server.cpp create mode 100644 MonaCore/sources/ServerAPI.cpp create mode 100644 MonaCore/sources/Session.cpp create mode 100644 MonaCore/sources/Sessions.cpp create mode 100644 MonaCore/sources/Subscription.cpp create mode 100644 MonaCore/sources/TCPSession.cpp create mode 100644 MonaCore/sources/TCProtocol.cpp create mode 100644 MonaCore/sources/TSReader.cpp create mode 100644 MonaCore/sources/TSWriter.cpp create mode 100644 MonaCore/sources/UDProtocol.cpp create mode 100644 MonaCore/sources/WS/WS.cpp create mode 100644 MonaCore/sources/WS/WSDecoder.cpp create mode 100644 MonaCore/sources/WS/WSSender.cpp create mode 100644 MonaCore/sources/WS/WSSession.cpp create mode 100644 MonaCore/sources/WS/WSWriter.cpp create mode 100644 MonaCore/sources/Writer.cpp create mode 100644 MonaCore/sources/XMLRPCReader.cpp create mode 100644 MonaCore/sources/XMLRPCWriter.cpp create mode 100644 MonaServer/Makefile create mode 100644 MonaServer/MonaServer.vcxproj create mode 100644 MonaServer/MonaServer.vcxproj.filters create mode 100644 MonaServer/sources/Broadcaster.h create mode 100644 MonaServer/sources/LUABroadcaster.cpp create mode 100644 MonaServer/sources/LUABroadcaster.h create mode 100644 MonaServer/sources/LUAClient.cpp create mode 100644 MonaServer/sources/LUAClient.h create mode 100644 MonaServer/sources/LUAFile.cpp create mode 100644 MonaServer/sources/LUAFile.h create mode 100644 MonaServer/sources/LUAGroup.cpp create mode 100644 MonaServer/sources/LUAGroup.h create mode 100644 MonaServer/sources/LUAIPAddress.cpp create mode 100644 MonaServer/sources/LUAIPAddress.h create mode 100644 MonaServer/sources/LUAInvoker.cpp create mode 100644 MonaServer/sources/LUAInvoker.h create mode 100644 MonaServer/sources/LUAListener.cpp create mode 100644 MonaServer/sources/LUAListener.cpp.bak create mode 100644 MonaServer/sources/LUAListener.h create mode 100644 MonaServer/sources/LUAMediaWriter.cpp create mode 100644 MonaServer/sources/LUAMediaWriter.h create mode 100644 MonaServer/sources/LUAMember.cpp create mode 100644 MonaServer/sources/LUAMember.h create mode 100644 MonaServer/sources/LUANetStats.cpp create mode 100644 MonaServer/sources/LUANetStats.h create mode 100644 MonaServer/sources/LUAPersistentTable.cpp create mode 100644 MonaServer/sources/LUAPersistentTable.h create mode 100644 MonaServer/sources/LUAPublication.cpp create mode 100644 MonaServer/sources/LUAPublication.cpp.bak create mode 100644 MonaServer/sources/LUAPublication.h create mode 100644 MonaServer/sources/LUAQualityOfService.cpp create mode 100644 MonaServer/sources/LUAQualityOfService.cpp.bak create mode 100644 MonaServer/sources/LUAQualityOfService.h create mode 100644 MonaServer/sources/LUAServer.cpp create mode 100644 MonaServer/sources/LUAServer.h create mode 100644 MonaServer/sources/LUASocketAddress.cpp create mode 100644 MonaServer/sources/LUASocketAddress.h create mode 100644 MonaServer/sources/LUATCPClient.cpp create mode 100644 MonaServer/sources/LUATCPClient.cpp.bak create mode 100644 MonaServer/sources/LUATCPClient.h create mode 100644 MonaServer/sources/LUATCPServer.cpp create mode 100644 MonaServer/sources/LUATCPServer.h create mode 100644 MonaServer/sources/LUAUDPSocket.cpp create mode 100644 MonaServer/sources/LUAUDPSocket.h create mode 100644 MonaServer/sources/LUAWriter.cpp create mode 100644 MonaServer/sources/LUAWriter.h create mode 100644 MonaServer/sources/LUAXML.cpp create mode 100644 MonaServer/sources/LUAXML.h create mode 100644 MonaServer/sources/MonaServer.cpp create mode 100644 MonaServer/sources/MonaServer.h create mode 100644 MonaServer/sources/Script.cpp create mode 100644 MonaServer/sources/Script.h create mode 100644 MonaServer/sources/ScriptReader.cpp create mode 100644 MonaServer/sources/ScriptReader.h create mode 100644 MonaServer/sources/ScriptWriter.cpp create mode 100644 MonaServer/sources/ScriptWriter.h create mode 100644 MonaServer/sources/ServerConnection.cpp create mode 100644 MonaServer/sources/ServerConnection.h create mode 100644 MonaServer/sources/Servers.cpp create mode 100644 MonaServer/sources/Servers.h create mode 100644 MonaServer/sources/Service.cpp create mode 100644 MonaServer/sources/Service.h create mode 100644 MonaServer/sources/main.cpp create mode 100644 MonaTiny/Makefile create mode 100644 MonaTiny/MonaTiny.vcxproj create mode 100644 MonaTiny/cert.pem create mode 100644 MonaTiny/include/Mona/App.h create mode 100644 MonaTiny/include/Mona/MonaTiny.h create mode 100644 MonaTiny/key.pem create mode 100644 MonaTiny/sources/MonaTiny.cpp create mode 100644 MonaTiny/sources/main.cpp create mode 100644 PersistentDataTODatabase.txt create mode 100644 StressTests/StressUnicasting/.actionScriptProperties create mode 100644 StressTests/StressUnicasting/.flexProperties create mode 100644 StressTests/StressUnicasting/.project create mode 100644 StressTests/StressUnicasting/bin/history/history.css create mode 100644 StressTests/StressUnicasting/bin/history/history.js create mode 100644 StressTests/StressUnicasting/bin/history/historyFrame.html create mode 100644 StressTests/StressUnicasting/bin/index.html create mode 100644 StressTests/StressUnicasting/bin/index.swf create mode 100644 StressTests/StressUnicasting/bin/playerProductInstall.swf create mode 100644 StressTests/StressUnicasting/bin/stress-rtmfp.html create mode 100644 StressTests/StressUnicasting/bin/stress-rtmp.html create mode 100644 StressTests/StressUnicasting/bin/stress-rtmpe.html create mode 100644 StressTests/StressUnicasting/bin/swfobject.js create mode 100644 StressTests/StressUnicasting/html-template/history/history.css create mode 100644 StressTests/StressUnicasting/html-template/history/history.js create mode 100644 StressTests/StressUnicasting/html-template/history/historyFrame.html create mode 100644 StressTests/StressUnicasting/html-template/index.template.html create mode 100644 StressTests/StressUnicasting/html-template/playerProductInstall.swf create mode 100644 StressTests/StressUnicasting/html-template/swfobject.js create mode 100644 StressTests/StressUnicasting/src/Unicasting.as create mode 100644 StressTests/StressUnicasting/src/index.mxml create mode 100644 TODO.txt create mode 100644 UnitTests/Makefile create mode 100644 UnitTests/UnitTests create mode 100644 UnitTests/UnitTests.vcxproj create mode 100644 UnitTests/cert.pem create mode 100644 UnitTests/key.pem create mode 100644 UnitTests/sources/BaseTest.cpp create mode 100644 UnitTests/sources/BinaryTest.cpp create mode 100644 UnitTests/sources/BufferTest.cpp create mode 100644 UnitTests/sources/DNSTest.cpp create mode 100644 UnitTests/sources/DateTest.cpp create mode 100644 UnitTests/sources/DecoderTest.cpp create mode 100644 UnitTests/sources/FileSystemTest.cpp create mode 100644 UnitTests/sources/FileTest.cpp create mode 100644 UnitTests/sources/IPAddressTest.cpp create mode 100644 UnitTests/sources/OptionsTest.cpp create mode 100644 UnitTests/sources/PacketTest.cpp create mode 100644 UnitTests/sources/ParametersTest.cpp create mode 100644 UnitTests/sources/PathTest.cpp create mode 100644 UnitTests/sources/PersistentDataTest.cpp create mode 100644 UnitTests/sources/SocketAddressTest.cpp create mode 100644 UnitTests/sources/SocketTest.cpp create mode 100644 UnitTests/sources/StopwatchTest.cpp create mode 100644 UnitTests/sources/StringTest.cpp create mode 100644 UnitTests/sources/Test.cpp create mode 100644 UnitTests/sources/Test.h create mode 100644 UnitTests/sources/TimeTest.cpp create mode 100644 UnitTests/sources/TimerTest.cpp create mode 100644 UnitTests/sources/UtilTest.cpp create mode 100644 UnitTests/sources/XMLParserTest.cpp create mode 100644 UnitTests/sources/main.cpp create mode 100644 Version.h create mode 100644 git.hooks.pre-commit diff --git a/CURRENT.txt b/CURRENT.txt new file mode 100644 index 00000000..8bfec9ad --- /dev/null +++ b/CURRENT.txt @@ -0,0 +1,23 @@ +RTMFP=> +- Multihreadé RTMFPFlow +- Writer => Congestion + Net::Stats + _ouput.killing()? +- Ban + Auth dans RTMFPDecoder, comment faire? +- Ping, remove time parameter in system? +- killing() dans RTMFPSession? +- Raccourcir RTMFPDecoder en déplaçant vers RTMFPHandshake +- Address change!? +- check ping! +RTMFP BUG=> +- Recording, looks not started on keyframe (RTMP is smooth, not RTMFP) +- Metadata, strange metadata displaid with FMLE and RTMFP subscriber + + + +- WebSocket => @join, return log truc ips + @relay, send messages to every members? +- HTTP with mime=application/sdp + upgrade=WebRTC => WebRTC(sdp)!!!!! +- WebSocket-SIP => https://tools.ietf.org/html/rfc7118 - https://en.wikipedia.org/wiki/JsSIP - http://www.jssip.net/ +- https://webrtc.github.io/samples/src/content/peerconnection/munge-sdp/ + +C:\Program Files\VideoLAN\VLC>vlc -vvv C:\Users\mathieu\Documents\Marc\SintelJS.ts --sout "#udp{dst=127.0.0.1:1234}" + + diff --git a/External/include/openssl/aes.h b/External/include/openssl/aes.h new file mode 100644 index 00000000..faa66c49 --- /dev/null +++ b/External/include/openssl/aes.h @@ -0,0 +1,149 @@ +/* crypto/aes/aes.h */ +/* ==================================================================== + * Copyright (c) 1998-2002 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + */ + +#ifndef HEADER_AES_H +# define HEADER_AES_H + +# include + +# ifdef OPENSSL_NO_AES +# error AES is disabled. +# endif + +# include + +# define AES_ENCRYPT 1 +# define AES_DECRYPT 0 + +/* + * Because array size can't be a const in C, the following two are macros. + * Both sizes are in bytes. + */ +# define AES_MAXNR 14 +# define AES_BLOCK_SIZE 16 + +#ifdef __cplusplus +extern "C" { +#endif + +/* This should be a hidden type, but EVP requires that the size be known */ +struct aes_key_st { +# ifdef AES_LONG + unsigned long rd_key[4 * (AES_MAXNR + 1)]; +# else + unsigned int rd_key[4 * (AES_MAXNR + 1)]; +# endif + int rounds; +}; +typedef struct aes_key_st AES_KEY; + +const char *AES_options(void); + +int AES_set_encrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); +int AES_set_decrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); + +int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); +int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); + +void AES_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); +void AES_decrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); + +void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key, const int enc); +void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, const int enc); +void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num); +void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char ivec[AES_BLOCK_SIZE], + unsigned char ecount_buf[AES_BLOCK_SIZE], + unsigned int *num); +/* NB: the IV is _two_ blocks long */ +void AES_ige_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, const int enc); +/* NB: the IV is _four_ blocks long */ +void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + const AES_KEY *key2, const unsigned char *ivec, + const int enc); + +int AES_wrap_key(AES_KEY *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, unsigned int inlen); +int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, unsigned int inlen); + + +#ifdef __cplusplus +} +#endif + +#endif /* !HEADER_AES_H */ diff --git a/External/include/openssl/asn1.h b/External/include/openssl/asn1.h new file mode 100644 index 00000000..68e791fc --- /dev/null +++ b/External/include/openssl/asn1.h @@ -0,0 +1,1419 @@ +/* crypto/asn1/asn1.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_ASN1_H +# define HEADER_ASN1_H + +# include +# include +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include + +# include + +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define V_ASN1_UNIVERSAL 0x00 +# define V_ASN1_APPLICATION 0x40 +# define V_ASN1_CONTEXT_SPECIFIC 0x80 +# define V_ASN1_PRIVATE 0xc0 + +# define V_ASN1_CONSTRUCTED 0x20 +# define V_ASN1_PRIMITIVE_TAG 0x1f +# define V_ASN1_PRIMATIVE_TAG 0x1f + +# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ +# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ +# define V_ASN1_ANY -4/* used in ASN1 template code */ + +# define V_ASN1_NEG 0x100/* negative flag */ + +# define V_ASN1_UNDEF -1 +# define V_ASN1_EOC 0 +# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_INTEGER 2 +# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) +# define V_ASN1_BIT_STRING 3 +# define V_ASN1_OCTET_STRING 4 +# define V_ASN1_NULL 5 +# define V_ASN1_OBJECT 6 +# define V_ASN1_OBJECT_DESCRIPTOR 7 +# define V_ASN1_EXTERNAL 8 +# define V_ASN1_REAL 9 +# define V_ASN1_ENUMERATED 10 +# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) +# define V_ASN1_UTF8STRING 12 +# define V_ASN1_SEQUENCE 16 +# define V_ASN1_SET 17 +# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_PRINTABLESTRING 19 +# define V_ASN1_T61STRING 20 +# define V_ASN1_TELETEXSTRING 20/* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_IA5STRING 22 +# define V_ASN1_UTCTIME 23 +# define V_ASN1_GENERALIZEDTIME 24 /**/ +# define V_ASN1_GRAPHICSTRING 25 /**/ +# define V_ASN1_ISO64STRING 26 /**/ +# define V_ASN1_VISIBLESTRING 26/* alias */ +# define V_ASN1_GENERALSTRING 27 /**/ +# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_BMPSTRING 30 +/* For use with d2i_ASN1_type_bytes() */ +# define B_ASN1_NUMERICSTRING 0x0001 +# define B_ASN1_PRINTABLESTRING 0x0002 +# define B_ASN1_T61STRING 0x0004 +# define B_ASN1_TELETEXSTRING 0x0004 +# define B_ASN1_VIDEOTEXSTRING 0x0008 +# define B_ASN1_IA5STRING 0x0010 +# define B_ASN1_GRAPHICSTRING 0x0020 +# define B_ASN1_ISO64STRING 0x0040 +# define B_ASN1_VISIBLESTRING 0x0040 +# define B_ASN1_GENERALSTRING 0x0080 +# define B_ASN1_UNIVERSALSTRING 0x0100 +# define B_ASN1_OCTET_STRING 0x0200 +# define B_ASN1_BIT_STRING 0x0400 +# define B_ASN1_BMPSTRING 0x0800 +# define B_ASN1_UNKNOWN 0x1000 +# define B_ASN1_UTF8STRING 0x2000 +# define B_ASN1_UTCTIME 0x4000 +# define B_ASN1_GENERALIZEDTIME 0x8000 +# define B_ASN1_SEQUENCE 0x10000 +/* For use with ASN1_mbstring_copy() */ +# define MBSTRING_FLAG 0x1000 +# define MBSTRING_UTF8 (MBSTRING_FLAG) +# define MBSTRING_ASC (MBSTRING_FLAG|1) +# define MBSTRING_BMP (MBSTRING_FLAG|2) +# define MBSTRING_UNIV (MBSTRING_FLAG|4) +# define SMIME_OLDMIME 0x400 +# define SMIME_CRLFEOL 0x800 +# define SMIME_STREAM 0x1000 + struct X509_algor_st; +DECLARE_STACK_OF(X509_ALGOR) + +# define DECLARE_ASN1_SET_OF(type)/* filled in by mkstack.pl */ +# define IMPLEMENT_ASN1_SET_OF(type)/* nothing, no longer needed */ + +/* + * We MUST make sure that, except for constness, asn1_ctx_st and + * asn1_const_ctx are exactly the same. Fortunately, as soon as the old ASN1 + * parsing macros are gone, we can throw this away as well... + */ +typedef struct asn1_ctx_st { + unsigned char *p; /* work char pointer */ + int eos; /* end of sequence read for indefinite + * encoding */ + int error; /* error code to use when returning an error */ + int inf; /* constructed if 0x20, indefinite is 0x21 */ + int tag; /* tag from last 'get object' */ + int xclass; /* class from last 'get object' */ + long slen; /* length of last 'get object' */ + unsigned char *max; /* largest value of p allowed */ + unsigned char *q; /* temporary variable */ + unsigned char **pp; /* variable */ + int line; /* used in error processing */ +} ASN1_CTX; + +typedef struct asn1_const_ctx_st { + const unsigned char *p; /* work char pointer */ + int eos; /* end of sequence read for indefinite + * encoding */ + int error; /* error code to use when returning an error */ + int inf; /* constructed if 0x20, indefinite is 0x21 */ + int tag; /* tag from last 'get object' */ + int xclass; /* class from last 'get object' */ + long slen; /* length of last 'get object' */ + const unsigned char *max; /* largest value of p allowed */ + const unsigned char *q; /* temporary variable */ + const unsigned char **pp; /* variable */ + int line; /* used in error processing */ +} ASN1_const_CTX; + +/* + * These are used internally in the ASN1_OBJECT to keep track of whether the + * names and data need to be free()ed + */ +# define ASN1_OBJECT_FLAG_DYNAMIC 0x01/* internal use */ +# define ASN1_OBJECT_FLAG_CRITICAL 0x02/* critical x509v3 object id */ +# define ASN1_OBJECT_FLAG_DYNAMIC_STRINGS 0x04/* internal use */ +# define ASN1_OBJECT_FLAG_DYNAMIC_DATA 0x08/* internal use */ +struct asn1_object_st { + const char *sn, *ln; + int nid; + int length; + const unsigned char *data; /* data remains const after init */ + int flags; /* Should we free this one */ +}; + +# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +/* + * This indicates that the ASN1_STRING is not a real value but just a place + * holder for the location where indefinite length constructed data should be + * inserted in the memory buffer + */ +# define ASN1_STRING_FLAG_NDEF 0x010 + +/* + * This flag is used by the CMS code to indicate that a string is not + * complete and is a place holder for content when it had all been accessed. + * The flag will be reset when content has been written to it. + */ + +# define ASN1_STRING_FLAG_CONT 0x020 +/* + * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING + * type. + */ +# define ASN1_STRING_FLAG_MSTRING 0x040 +/* This is the base type that holds just about everything :-) */ +struct asn1_string_st { + int length; + int type; + unsigned char *data; + /* + * The value of the following field depends on the type being held. It + * is mostly being used for BIT_STRING so if the input data has a + * non-zero 'unused bits' value, it will be handled correctly + */ + long flags; +}; + +/* + * ASN1_ENCODING structure: this is used to save the received encoding of an + * ASN1 type. This is useful to get round problems with invalid encodings + * which can break signatures. + */ + +typedef struct ASN1_ENCODING_st { + unsigned char *enc; /* DER encoding */ + long len; /* Length of encoding */ + int modified; /* set to 1 if 'enc' is invalid */ +} ASN1_ENCODING; + +/* Used with ASN1 LONG type: if a long is set to this it is omitted */ +# define ASN1_LONG_UNDEF 0x7fffffffL + +# define STABLE_FLAGS_MALLOC 0x01 +# define STABLE_NO_MASK 0x02 +# define DIRSTRING_TYPE \ + (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) +# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) + +typedef struct asn1_string_table_st { + int nid; + long minsize; + long maxsize; + unsigned long mask; + unsigned long flags; +} ASN1_STRING_TABLE; + +DECLARE_STACK_OF(ASN1_STRING_TABLE) + +/* size limits: this stuff is taken straight from RFC2459 */ + +# define ub_name 32768 +# define ub_common_name 64 +# define ub_locality_name 128 +# define ub_state_name 128 +# define ub_organization_name 64 +# define ub_organization_unit_name 64 +# define ub_title 64 +# define ub_email_address 128 + +/* + * Declarations for template structures: for full definitions see asn1t.h + */ +typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; +typedef struct ASN1_TLC_st ASN1_TLC; +/* This is just an opaque pointer */ +typedef struct ASN1_VALUE_st ASN1_VALUE; + +/* Declare ASN1 functions: the implement macro in in asn1t.h */ + +# define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) + +# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type) + +# define DECLARE_ASN1_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) + +# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) + +# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ + type *d2i_##name(type **a, const unsigned char **in, long len); \ + int i2d_##name(type *a, unsigned char **out); \ + DECLARE_ASN1_ITEM(itname) + +# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ + type *d2i_##name(type **a, const unsigned char **in, long len); \ + int i2d_##name(const type *a, unsigned char **out); \ + DECLARE_ASN1_ITEM(name) + +# define DECLARE_ASN1_NDEF_FUNCTION(name) \ + int i2d_##name##_NDEF(name *a, unsigned char **out); + +# define DECLARE_ASN1_FUNCTIONS_const(name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS(name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) + +# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + type *name##_new(void); \ + void name##_free(type *a); + +# define DECLARE_ASN1_PRINT_FUNCTION(stname) \ + DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname) + +# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ + int fname##_print_ctx(BIO *out, stname *x, int indent, \ + const ASN1_PCTX *pctx); + +# define D2I_OF(type) type *(*)(type **,const unsigned char **,long) +# define I2D_OF(type) int (*)(type *,unsigned char **) +# define I2D_OF_const(type) int (*)(const type *,unsigned char **) + +# define CHECKED_D2I_OF(type, d2i) \ + ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) +# define CHECKED_I2D_OF(type, i2d) \ + ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) +# define CHECKED_NEW_OF(type, xnew) \ + ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) +# define CHECKED_PTR_OF(type, p) \ + ((void*) (1 ? p : (type*)0)) +# define CHECKED_PPTR_OF(type, p) \ + ((void**) (1 ? p : (type**)0)) + +# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) +# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **) +# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) + +TYPEDEF_D2I2D_OF(void); + +/*- + * The following macros and typedefs allow an ASN1_ITEM + * to be embedded in a structure and referenced. Since + * the ASN1_ITEM pointers need to be globally accessible + * (possibly from shared libraries) they may exist in + * different forms. On platforms that support it the + * ASN1_ITEM structure itself will be globally exported. + * Other platforms will export a function that returns + * an ASN1_ITEM pointer. + * + * To handle both cases transparently the macros below + * should be used instead of hard coding an ASN1_ITEM + * pointer in a structure. + * + * The structure will look like this: + * + * typedef struct SOMETHING_st { + * ... + * ASN1_ITEM_EXP *iptr; + * ... + * } SOMETHING; + * + * It would be initialised as e.g.: + * + * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; + * + * and the actual pointer extracted with: + * + * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); + * + * Finally an ASN1_ITEM pointer can be extracted from an + * appropriate reference with: ASN1_ITEM_rptr(X509). This + * would be used when a function takes an ASN1_ITEM * argument. + * + */ + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* ASN1_ITEM pointer exported type */ +typedef const ASN1_ITEM ASN1_ITEM_EXP; + +/* Macro to obtain ASN1_ITEM pointer from exported type */ +# define ASN1_ITEM_ptr(iptr) (iptr) + +/* Macro to include ASN1_ITEM pointer from base type */ +# define ASN1_ITEM_ref(iptr) (&(iptr##_it)) + +# define ASN1_ITEM_rptr(ref) (&(ref##_it)) + +# define DECLARE_ASN1_ITEM(name) \ + OPENSSL_EXTERN const ASN1_ITEM name##_it; + +# else + +/* + * Platforms that can't easily handle shared global variables are declared as + * functions returning ASN1_ITEM pointers. + */ + +/* ASN1_ITEM pointer exported type */ +typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); + +/* Macro to obtain ASN1_ITEM pointer from exported type */ +# define ASN1_ITEM_ptr(iptr) (iptr()) + +/* Macro to include ASN1_ITEM pointer from base type */ +# define ASN1_ITEM_ref(iptr) (iptr##_it) + +# define ASN1_ITEM_rptr(ref) (ref##_it()) + +# define DECLARE_ASN1_ITEM(name) \ + const ASN1_ITEM * name##_it(void); + +# endif + +/* Parameters used by ASN1_STRING_print_ex() */ + +/* + * These determine which characters to escape: RFC2253 special characters, + * control characters and MSB set characters + */ + +# define ASN1_STRFLGS_ESC_2253 1 +# define ASN1_STRFLGS_ESC_CTRL 2 +# define ASN1_STRFLGS_ESC_MSB 4 + +/* + * This flag determines how we do escaping: normally RC2253 backslash only, + * set this to use backslash and quote. + */ + +# define ASN1_STRFLGS_ESC_QUOTE 8 + +/* These three flags are internal use only. */ + +/* Character is a valid PrintableString character */ +# define CHARTYPE_PRINTABLESTRING 0x10 +/* Character needs escaping if it is the first character */ +# define CHARTYPE_FIRST_ESC_2253 0x20 +/* Character needs escaping if it is the last character */ +# define CHARTYPE_LAST_ESC_2253 0x40 + +/* + * NB the internal flags are safely reused below by flags handled at the top + * level. + */ + +/* + * If this is set we convert all character strings to UTF8 first + */ + +# define ASN1_STRFLGS_UTF8_CONVERT 0x10 + +/* + * If this is set we don't attempt to interpret content: just assume all + * strings are 1 byte per character. This will produce some pretty odd + * looking output! + */ + +# define ASN1_STRFLGS_IGNORE_TYPE 0x20 + +/* If this is set we include the string type in the output */ +# define ASN1_STRFLGS_SHOW_TYPE 0x40 + +/* + * This determines which strings to display and which to 'dump' (hex dump of + * content octets or DER encoding). We can only dump non character strings or + * everything. If we don't dump 'unknown' they are interpreted as character + * strings with 1 octet per character and are subject to the usual escaping + * options. + */ + +# define ASN1_STRFLGS_DUMP_ALL 0x80 +# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 + +/* + * These determine what 'dumping' does, we can dump the content octets or the + * DER encoding: both use the RFC2253 #XXXXX notation. + */ + +# define ASN1_STRFLGS_DUMP_DER 0x200 + +/* + * All the string flags consistent with RFC2253, escaping control characters + * isn't essential in RFC2253 but it is advisable anyway. + */ + +# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ + ASN1_STRFLGS_ESC_CTRL | \ + ASN1_STRFLGS_ESC_MSB | \ + ASN1_STRFLGS_UTF8_CONVERT | \ + ASN1_STRFLGS_DUMP_UNKNOWN | \ + ASN1_STRFLGS_DUMP_DER) + +DECLARE_STACK_OF(ASN1_INTEGER) +DECLARE_ASN1_SET_OF(ASN1_INTEGER) + +DECLARE_STACK_OF(ASN1_GENERALSTRING) + +typedef struct asn1_type_st { + int type; + union { + char *ptr; + ASN1_BOOLEAN boolean; + ASN1_STRING *asn1_string; + ASN1_OBJECT *object; + ASN1_INTEGER *integer; + ASN1_ENUMERATED *enumerated; + ASN1_BIT_STRING *bit_string; + ASN1_OCTET_STRING *octet_string; + ASN1_PRINTABLESTRING *printablestring; + ASN1_T61STRING *t61string; + ASN1_IA5STRING *ia5string; + ASN1_GENERALSTRING *generalstring; + ASN1_BMPSTRING *bmpstring; + ASN1_UNIVERSALSTRING *universalstring; + ASN1_UTCTIME *utctime; + ASN1_GENERALIZEDTIME *generalizedtime; + ASN1_VISIBLESTRING *visiblestring; + ASN1_UTF8STRING *utf8string; + /* + * set and sequence are left complete and still contain the set or + * sequence bytes + */ + ASN1_STRING *set; + ASN1_STRING *sequence; + ASN1_VALUE *asn1_value; + } value; +} ASN1_TYPE; + +DECLARE_STACK_OF(ASN1_TYPE) +DECLARE_ASN1_SET_OF(ASN1_TYPE) + +typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; + +DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) +DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) + +typedef struct NETSCAPE_X509_st { + ASN1_OCTET_STRING *header; + X509 *cert; +} NETSCAPE_X509; + +/* This is used to contain a list of bit names */ +typedef struct BIT_STRING_BITNAME_st { + int bitnum; + const char *lname; + const char *sname; +} BIT_STRING_BITNAME; + +# define M_ASN1_STRING_length(x) ((x)->length) +# define M_ASN1_STRING_length_set(x, n) ((x)->length = (n)) +# define M_ASN1_STRING_type(x) ((x)->type) +# define M_ASN1_STRING_data(x) ((x)->data) + +/* Macros for string operations */ +# define M_ASN1_BIT_STRING_new() (ASN1_BIT_STRING *)\ + ASN1_STRING_type_new(V_ASN1_BIT_STRING) +# define M_ASN1_BIT_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_BIT_STRING_dup(a) (ASN1_BIT_STRING *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) +# define M_ASN1_BIT_STRING_cmp(a,b) ASN1_STRING_cmp(\ + (const ASN1_STRING *)a,(const ASN1_STRING *)b) +# define M_ASN1_BIT_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c) + +# define M_ASN1_INTEGER_new() (ASN1_INTEGER *)\ + ASN1_STRING_type_new(V_ASN1_INTEGER) +# define M_ASN1_INTEGER_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_INTEGER_dup(a) (ASN1_INTEGER *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) +# define M_ASN1_INTEGER_cmp(a,b) ASN1_STRING_cmp(\ + (const ASN1_STRING *)a,(const ASN1_STRING *)b) + +# define M_ASN1_ENUMERATED_new() (ASN1_ENUMERATED *)\ + ASN1_STRING_type_new(V_ASN1_ENUMERATED) +# define M_ASN1_ENUMERATED_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_ENUMERATED_dup(a) (ASN1_ENUMERATED *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) +# define M_ASN1_ENUMERATED_cmp(a,b) ASN1_STRING_cmp(\ + (const ASN1_STRING *)a,(const ASN1_STRING *)b) + +# define M_ASN1_OCTET_STRING_new() (ASN1_OCTET_STRING *)\ + ASN1_STRING_type_new(V_ASN1_OCTET_STRING) +# define M_ASN1_OCTET_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_OCTET_STRING_dup(a) (ASN1_OCTET_STRING *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) +# define M_ASN1_OCTET_STRING_cmp(a,b) ASN1_STRING_cmp(\ + (const ASN1_STRING *)a,(const ASN1_STRING *)b) +# define M_ASN1_OCTET_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c) +# define M_ASN1_OCTET_STRING_print(a,b) ASN1_STRING_print(a,(ASN1_STRING *)b) +# define M_i2d_ASN1_OCTET_STRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_OCTET_STRING,\ + V_ASN1_UNIVERSAL) + +# define B_ASN1_TIME \ + B_ASN1_UTCTIME | \ + B_ASN1_GENERALIZEDTIME + +# define B_ASN1_PRINTABLE \ + B_ASN1_NUMERICSTRING| \ + B_ASN1_PRINTABLESTRING| \ + B_ASN1_T61STRING| \ + B_ASN1_IA5STRING| \ + B_ASN1_BIT_STRING| \ + B_ASN1_UNIVERSALSTRING|\ + B_ASN1_BMPSTRING|\ + B_ASN1_UTF8STRING|\ + B_ASN1_SEQUENCE|\ + B_ASN1_UNKNOWN + +# define B_ASN1_DIRECTORYSTRING \ + B_ASN1_PRINTABLESTRING| \ + B_ASN1_TELETEXSTRING|\ + B_ASN1_BMPSTRING|\ + B_ASN1_UNIVERSALSTRING|\ + B_ASN1_UTF8STRING + +# define B_ASN1_DISPLAYTEXT \ + B_ASN1_IA5STRING| \ + B_ASN1_VISIBLESTRING| \ + B_ASN1_BMPSTRING|\ + B_ASN1_UTF8STRING + +# define M_ASN1_PRINTABLE_new() ASN1_STRING_type_new(V_ASN1_T61STRING) +# define M_ASN1_PRINTABLE_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_PRINTABLE(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ + pp,a->type,V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_PRINTABLE(a,pp,l) \ + d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ + B_ASN1_PRINTABLE) + +# define M_DIRECTORYSTRING_new() ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING) +# define M_DIRECTORYSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_DIRECTORYSTRING(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ + pp,a->type,V_ASN1_UNIVERSAL) +# define M_d2i_DIRECTORYSTRING(a,pp,l) \ + d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ + B_ASN1_DIRECTORYSTRING) + +# define M_DISPLAYTEXT_new() ASN1_STRING_type_new(V_ASN1_VISIBLESTRING) +# define M_DISPLAYTEXT_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_DISPLAYTEXT(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ + pp,a->type,V_ASN1_UNIVERSAL) +# define M_d2i_DISPLAYTEXT(a,pp,l) \ + d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ + B_ASN1_DISPLAYTEXT) + +# define M_ASN1_PRINTABLESTRING_new() (ASN1_PRINTABLESTRING *)\ + ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING) +# define M_ASN1_PRINTABLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_PRINTABLESTRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_PRINTABLESTRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_PRINTABLESTRING(a,pp,l) \ + (ASN1_PRINTABLESTRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_PRINTABLESTRING) + +# define M_ASN1_T61STRING_new() (ASN1_T61STRING *)\ + ASN1_STRING_type_new(V_ASN1_T61STRING) +# define M_ASN1_T61STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_T61STRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_T61STRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_T61STRING(a,pp,l) \ + (ASN1_T61STRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_T61STRING) + +# define M_ASN1_IA5STRING_new() (ASN1_IA5STRING *)\ + ASN1_STRING_type_new(V_ASN1_IA5STRING) +# define M_ASN1_IA5STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_IA5STRING_dup(a) \ + (ASN1_IA5STRING *)ASN1_STRING_dup((const ASN1_STRING *)a) +# define M_i2d_ASN1_IA5STRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_IA5STRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_IA5STRING(a,pp,l) \ + (ASN1_IA5STRING *)d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l,\ + B_ASN1_IA5STRING) + +# define M_ASN1_UTCTIME_new() (ASN1_UTCTIME *)\ + ASN1_STRING_type_new(V_ASN1_UTCTIME) +# define M_ASN1_UTCTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_UTCTIME_dup(a) (ASN1_UTCTIME *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) + +# define M_ASN1_GENERALIZEDTIME_new() (ASN1_GENERALIZEDTIME *)\ + ASN1_STRING_type_new(V_ASN1_GENERALIZEDTIME) +# define M_ASN1_GENERALIZEDTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_GENERALIZEDTIME_dup(a) (ASN1_GENERALIZEDTIME *)ASN1_STRING_dup(\ + (const ASN1_STRING *)a) + +# define M_ASN1_TIME_new() (ASN1_TIME *)\ + ASN1_STRING_type_new(V_ASN1_UTCTIME) +# define M_ASN1_TIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_TIME_dup(a) (ASN1_TIME *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) + +# define M_ASN1_GENERALSTRING_new() (ASN1_GENERALSTRING *)\ + ASN1_STRING_type_new(V_ASN1_GENERALSTRING) +# define M_ASN1_GENERALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_GENERALSTRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_GENERALSTRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_GENERALSTRING(a,pp,l) \ + (ASN1_GENERALSTRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_GENERALSTRING) + +# define M_ASN1_UNIVERSALSTRING_new() (ASN1_UNIVERSALSTRING *)\ + ASN1_STRING_type_new(V_ASN1_UNIVERSALSTRING) +# define M_ASN1_UNIVERSALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_UNIVERSALSTRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_UNIVERSALSTRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_UNIVERSALSTRING(a,pp,l) \ + (ASN1_UNIVERSALSTRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_UNIVERSALSTRING) + +# define M_ASN1_BMPSTRING_new() (ASN1_BMPSTRING *)\ + ASN1_STRING_type_new(V_ASN1_BMPSTRING) +# define M_ASN1_BMPSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_BMPSTRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_BMPSTRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_BMPSTRING(a,pp,l) \ + (ASN1_BMPSTRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_BMPSTRING) + +# define M_ASN1_VISIBLESTRING_new() (ASN1_VISIBLESTRING *)\ + ASN1_STRING_type_new(V_ASN1_VISIBLESTRING) +# define M_ASN1_VISIBLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_VISIBLESTRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_VISIBLESTRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_VISIBLESTRING(a,pp,l) \ + (ASN1_VISIBLESTRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_VISIBLESTRING) + +# define M_ASN1_UTF8STRING_new() (ASN1_UTF8STRING *)\ + ASN1_STRING_type_new(V_ASN1_UTF8STRING) +# define M_ASN1_UTF8STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_UTF8STRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_UTF8STRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_UTF8STRING(a,pp,l) \ + (ASN1_UTF8STRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_UTF8STRING) + + /* for the is_set parameter to i2d_ASN1_SET */ +# define IS_SEQUENCE 0 +# define IS_SET 1 + +DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) + +int ASN1_TYPE_get(ASN1_TYPE *a); +void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); +int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); +int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); + +ASN1_OBJECT *ASN1_OBJECT_new(void); +void ASN1_OBJECT_free(ASN1_OBJECT *a); +int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp); +ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, + long length); +ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, + long length); + +DECLARE_ASN1_ITEM(ASN1_OBJECT) + +DECLARE_STACK_OF(ASN1_OBJECT) +DECLARE_ASN1_SET_OF(ASN1_OBJECT) + +ASN1_STRING *ASN1_STRING_new(void); +void ASN1_STRING_free(ASN1_STRING *a); +void ASN1_STRING_clear_free(ASN1_STRING *a); +int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); +ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); +ASN1_STRING *ASN1_STRING_type_new(int type); +int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); + /* + * Since this is used to store all sorts of things, via macros, for now, + * make its data void * + */ +int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); +void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); +int ASN1_STRING_length(const ASN1_STRING *x); +void ASN1_STRING_length_set(ASN1_STRING *x, int n); +int ASN1_STRING_type(ASN1_STRING *x); +unsigned char *ASN1_STRING_data(ASN1_STRING *x); + +DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) +int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp); +ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, + const unsigned char **pp, long length); +int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); +int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); +int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n); +int ASN1_BIT_STRING_check(ASN1_BIT_STRING *a, + unsigned char *flags, int flags_len); + +# ifndef OPENSSL_NO_BIO +int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, + BIT_STRING_BITNAME *tbl, int indent); +# endif +int ASN1_BIT_STRING_num_asc(char *name, BIT_STRING_BITNAME *tbl); +int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value, + BIT_STRING_BITNAME *tbl); + +int i2d_ASN1_BOOLEAN(int a, unsigned char **pp); +int d2i_ASN1_BOOLEAN(int *a, const unsigned char **pp, long length); + +DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) +int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp); +ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, + long length); +ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, + long length); +ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); +int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); + +DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) + +int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); +ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); +ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, + int offset_day, long offset_sec); +int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); +int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); +# if 0 +time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s); +# endif + +int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, + time_t t); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, + time_t t, int offset_day, + long offset_sec); +int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); +int ASN1_TIME_diff(int *pday, int *psec, + const ASN1_TIME *from, const ASN1_TIME *to); + +DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) +ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); +int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, + const ASN1_OCTET_STRING *b); +int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, + int len); + +DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_NULL) +DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) + +int UTF8_getc(const unsigned char *str, int len, unsigned long *val); +int UTF8_putc(unsigned char *str, int len, unsigned long value); + +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) + +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) +DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) +DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) +DECLARE_ASN1_FUNCTIONS(ASN1_TIME) + +DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) + +ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); +ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, + int offset_day, long offset_sec); +int ASN1_TIME_check(ASN1_TIME *t); +ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME + **out); +int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); + +int i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp, + i2d_of_void *i2d, int ex_tag, int ex_class, int is_set); +STACK_OF(OPENSSL_BLOCK) *d2i_ASN1_SET(STACK_OF(OPENSSL_BLOCK) **a, + const unsigned char **pp, + long length, d2i_of_void *d2i, + void (*free_func) (OPENSSL_BLOCK), + int ex_tag, int ex_class); + +# ifndef OPENSSL_NO_BIO +int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a); +int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); +int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a); +int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); +int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a); +int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); +int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type); +# endif +int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a); + +int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); +ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, + const char *sn, const char *ln); + +int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); +long ASN1_INTEGER_get(const ASN1_INTEGER *a); +ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); +BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); + +int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); +long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a); +ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai); +BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai, BIGNUM *bn); + +/* General */ +/* given a string, return the correct type, max is the maximum length */ +int ASN1_PRINTABLE_type(const unsigned char *s, int max); + +int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass); +ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp, + long length, int Ptag, int Pclass); +unsigned long ASN1_tag2bit(int tag); +/* type is one or more of the B_ASN1_ values. */ +ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a, const unsigned char **pp, + long length, int type); + +/* PARSING */ +int asn1_Finish(ASN1_CTX *c); +int asn1_const_Finish(ASN1_const_CTX *c); + +/* SPECIALS */ +int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, + int *pclass, long omax); +int ASN1_check_infinite_end(unsigned char **p, long len); +int ASN1_const_check_infinite_end(const unsigned char **p, long len); +void ASN1_put_object(unsigned char **pp, int constructed, int length, + int tag, int xclass); +int ASN1_put_eoc(unsigned char **pp); +int ASN1_object_size(int constructed, int length, int tag); + +/* Used to implement other functions */ +void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); + +# define ASN1_dup_of(type,i2d,d2i,x) \ + ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ + CHECKED_D2I_OF(type, d2i), \ + CHECKED_PTR_OF(type, x))) + +# define ASN1_dup_of_const(type,i2d,d2i,x) \ + ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \ + CHECKED_D2I_OF(type, d2i), \ + CHECKED_PTR_OF(const type, x))) + +void *ASN1_item_dup(const ASN1_ITEM *it, void *x); + +/* ASN1 alloc/free macros for when a type is only used internally */ + +# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) +# define M_ASN1_free_of(x, type) \ + ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) + +# ifndef OPENSSL_NO_FP_API +void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); + +# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ + ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ + CHECKED_D2I_OF(type, d2i), \ + in, \ + CHECKED_PPTR_OF(type, x))) + +void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); +int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); + +# define ASN1_i2d_fp_of(type,i2d,out,x) \ + (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ + out, \ + CHECKED_PTR_OF(type, x))) + +# define ASN1_i2d_fp_of_const(type,i2d,out,x) \ + (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \ + out, \ + CHECKED_PTR_OF(const type, x))) + +int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); +int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); +# endif + +int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); + +# ifndef OPENSSL_NO_BIO +void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); + +# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ + ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ + CHECKED_D2I_OF(type, d2i), \ + in, \ + CHECKED_PPTR_OF(type, x))) + +void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); +int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); + +# define ASN1_i2d_bio_of(type,i2d,out,x) \ + (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ + out, \ + CHECKED_PTR_OF(type, x))) + +# define ASN1_i2d_bio_of_const(type,i2d,out,x) \ + (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \ + out, \ + CHECKED_PTR_OF(const type, x))) + +int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); +int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); +int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); +int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); +int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); +int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); +int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, + unsigned char *buf, int off); +int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); +int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, + int dump); +# endif +const char *ASN1_tag2str(int tag); + +/* Used to load and write netscape format cert */ + +DECLARE_ASN1_FUNCTIONS(NETSCAPE_X509) + +int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); + +int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); +int ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data, int max_len); +int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, + unsigned char *data, int len); +int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num, + unsigned char *data, int max_len); + +STACK_OF(OPENSSL_BLOCK) *ASN1_seq_unpack(const unsigned char *buf, int len, + d2i_of_void *d2i, + void (*free_func) (OPENSSL_BLOCK)); +unsigned char *ASN1_seq_pack(STACK_OF(OPENSSL_BLOCK) *safes, i2d_of_void *i2d, + unsigned char **buf, int *len); +void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i); +void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it); +ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, + ASN1_OCTET_STRING **oct); + +# define ASN1_pack_string_of(type,obj,i2d,oct) \ + (ASN1_pack_string(CHECKED_PTR_OF(type, obj), \ + CHECKED_I2D_OF(type, i2d), \ + oct)) + +ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, + ASN1_OCTET_STRING **oct); + +void ASN1_STRING_set_default_mask(unsigned long mask); +int ASN1_STRING_set_default_mask_asc(const char *p); +unsigned long ASN1_STRING_get_default_mask(void); +int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, + int inform, unsigned long mask); +int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, + int inform, unsigned long mask, + long minsize, long maxsize); + +ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, + const unsigned char *in, int inlen, + int inform, int nid); +ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); +int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); +void ASN1_STRING_TABLE_cleanup(void); + +/* ASN1 template functions */ + +/* Old API compatible functions */ +ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); +void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); +ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, + long len, const ASN1_ITEM *it); +int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); +int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, + const ASN1_ITEM *it); + +void ASN1_add_oid_module(void); + +ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); +ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); + +/* ASN1 Print flags */ + +/* Indicate missing OPTIONAL fields */ +# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 +/* Mark start and end of SEQUENCE */ +# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 +/* Mark start and end of SEQUENCE/SET OF */ +# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 +/* Show the ASN1 type of primitives */ +# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 +/* Don't show ASN1 type of ANY */ +# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 +/* Don't show ASN1 type of MSTRINGs */ +# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 +/* Don't show field names in SEQUENCE */ +# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 +/* Show structure names of each SEQUENCE field */ +# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 +/* Don't show structure name even at top level */ +# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 + +int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, + const ASN1_ITEM *it, const ASN1_PCTX *pctx); +ASN1_PCTX *ASN1_PCTX_new(void); +void ASN1_PCTX_free(ASN1_PCTX *p); +unsigned long ASN1_PCTX_get_flags(ASN1_PCTX *p); +void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_nm_flags(ASN1_PCTX *p); +void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_cert_flags(ASN1_PCTX *p); +void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_oid_flags(ASN1_PCTX *p); +void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_str_flags(ASN1_PCTX *p); +void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); + +BIO_METHOD *BIO_f_asn1(void); + +BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); + +int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, + const ASN1_ITEM *it); +int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, + const char *hdr, const ASN1_ITEM *it); +int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, + int ctype_nid, int econt_nid, + STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it); +ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); +int SMIME_crlf_copy(BIO *in, BIO *out, int flags); +int SMIME_text(BIO *in, BIO *out); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_ASN1_strings(void); + +/* Error codes for the ASN1 functions. */ + +/* Function codes. */ +# define ASN1_F_A2D_ASN1_OBJECT 100 +# define ASN1_F_A2I_ASN1_ENUMERATED 101 +# define ASN1_F_A2I_ASN1_INTEGER 102 +# define ASN1_F_A2I_ASN1_STRING 103 +# define ASN1_F_APPEND_EXP 176 +# define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 +# define ASN1_F_ASN1_CB 177 +# define ASN1_F_ASN1_CHECK_TLEN 104 +# define ASN1_F_ASN1_COLLATE_PRIMITIVE 105 +# define ASN1_F_ASN1_COLLECT 106 +# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 +# define ASN1_F_ASN1_D2I_FP 109 +# define ASN1_F_ASN1_D2I_READ_BIO 107 +# define ASN1_F_ASN1_DIGEST 184 +# define ASN1_F_ASN1_DO_ADB 110 +# define ASN1_F_ASN1_DUP 111 +# define ASN1_F_ASN1_ENUMERATED_SET 112 +# define ASN1_F_ASN1_ENUMERATED_TO_BN 113 +# define ASN1_F_ASN1_EX_C2I 204 +# define ASN1_F_ASN1_FIND_END 190 +# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 +# define ASN1_F_ASN1_GENERALIZEDTIME_SET 185 +# define ASN1_F_ASN1_GENERATE_V3 178 +# define ASN1_F_ASN1_GET_OBJECT 114 +# define ASN1_F_ASN1_HEADER_NEW 115 +# define ASN1_F_ASN1_I2D_BIO 116 +# define ASN1_F_ASN1_I2D_FP 117 +# define ASN1_F_ASN1_INTEGER_SET 118 +# define ASN1_F_ASN1_INTEGER_TO_BN 119 +# define ASN1_F_ASN1_ITEM_D2I_FP 206 +# define ASN1_F_ASN1_ITEM_DUP 191 +# define ASN1_F_ASN1_ITEM_EX_COMBINE_NEW 121 +# define ASN1_F_ASN1_ITEM_EX_D2I 120 +# define ASN1_F_ASN1_ITEM_I2D_BIO 192 +# define ASN1_F_ASN1_ITEM_I2D_FP 193 +# define ASN1_F_ASN1_ITEM_PACK 198 +# define ASN1_F_ASN1_ITEM_SIGN 195 +# define ASN1_F_ASN1_ITEM_SIGN_CTX 220 +# define ASN1_F_ASN1_ITEM_UNPACK 199 +# define ASN1_F_ASN1_ITEM_VERIFY 197 +# define ASN1_F_ASN1_MBSTRING_NCOPY 122 +# define ASN1_F_ASN1_OBJECT_NEW 123 +# define ASN1_F_ASN1_OUTPUT_DATA 214 +# define ASN1_F_ASN1_PACK_STRING 124 +# define ASN1_F_ASN1_PCTX_NEW 205 +# define ASN1_F_ASN1_PKCS5_PBE_SET 125 +# define ASN1_F_ASN1_SEQ_PACK 126 +# define ASN1_F_ASN1_SEQ_UNPACK 127 +# define ASN1_F_ASN1_SIGN 128 +# define ASN1_F_ASN1_STR2TYPE 179 +# define ASN1_F_ASN1_STRING_SET 186 +# define ASN1_F_ASN1_STRING_TABLE_ADD 129 +# define ASN1_F_ASN1_STRING_TYPE_NEW 130 +# define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 +# define ASN1_F_ASN1_TEMPLATE_NEW 133 +# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 +# define ASN1_F_ASN1_TIME_ADJ 217 +# define ASN1_F_ASN1_TIME_SET 175 +# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 +# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 +# define ASN1_F_ASN1_UNPACK_STRING 136 +# define ASN1_F_ASN1_UTCTIME_ADJ 218 +# define ASN1_F_ASN1_UTCTIME_SET 187 +# define ASN1_F_ASN1_VERIFY 137 +# define ASN1_F_B64_READ_ASN1 209 +# define ASN1_F_B64_WRITE_ASN1 210 +# define ASN1_F_BIO_NEW_NDEF 208 +# define ASN1_F_BITSTR_CB 180 +# define ASN1_F_BN_TO_ASN1_ENUMERATED 138 +# define ASN1_F_BN_TO_ASN1_INTEGER 139 +# define ASN1_F_C2I_ASN1_BIT_STRING 189 +# define ASN1_F_C2I_ASN1_INTEGER 194 +# define ASN1_F_C2I_ASN1_OBJECT 196 +# define ASN1_F_COLLECT_DATA 140 +# define ASN1_F_D2I_ASN1_BIT_STRING 141 +# define ASN1_F_D2I_ASN1_BOOLEAN 142 +# define ASN1_F_D2I_ASN1_BYTES 143 +# define ASN1_F_D2I_ASN1_GENERALIZEDTIME 144 +# define ASN1_F_D2I_ASN1_HEADER 145 +# define ASN1_F_D2I_ASN1_INTEGER 146 +# define ASN1_F_D2I_ASN1_OBJECT 147 +# define ASN1_F_D2I_ASN1_SET 148 +# define ASN1_F_D2I_ASN1_TYPE_BYTES 149 +# define ASN1_F_D2I_ASN1_UINTEGER 150 +# define ASN1_F_D2I_ASN1_UTCTIME 151 +# define ASN1_F_D2I_AUTOPRIVATEKEY 207 +# define ASN1_F_D2I_NETSCAPE_RSA 152 +# define ASN1_F_D2I_NETSCAPE_RSA_2 153 +# define ASN1_F_D2I_PRIVATEKEY 154 +# define ASN1_F_D2I_PUBLICKEY 155 +# define ASN1_F_D2I_RSA_NET 200 +# define ASN1_F_D2I_RSA_NET_2 201 +# define ASN1_F_D2I_X509 156 +# define ASN1_F_D2I_X509_CINF 157 +# define ASN1_F_D2I_X509_PKEY 159 +# define ASN1_F_I2D_ASN1_BIO_STREAM 211 +# define ASN1_F_I2D_ASN1_SET 188 +# define ASN1_F_I2D_ASN1_TIME 160 +# define ASN1_F_I2D_DSA_PUBKEY 161 +# define ASN1_F_I2D_EC_PUBKEY 181 +# define ASN1_F_I2D_PRIVATEKEY 163 +# define ASN1_F_I2D_PUBLICKEY 164 +# define ASN1_F_I2D_RSA_NET 162 +# define ASN1_F_I2D_RSA_PUBKEY 165 +# define ASN1_F_LONG_C2I 166 +# define ASN1_F_OID_MODULE_INIT 174 +# define ASN1_F_PARSE_TAGGING 182 +# define ASN1_F_PKCS5_PBE2_SET_IV 167 +# define ASN1_F_PKCS5_PBE_SET 202 +# define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 +# define ASN1_F_PKCS5_PBKDF2_SET 219 +# define ASN1_F_SMIME_READ_ASN1 212 +# define ASN1_F_SMIME_TEXT 213 +# define ASN1_F_X509_CINF_NEW 168 +# define ASN1_F_X509_CRL_ADD0_REVOKED 169 +# define ASN1_F_X509_INFO_NEW 170 +# define ASN1_F_X509_NAME_ENCODE 203 +# define ASN1_F_X509_NAME_EX_D2I 158 +# define ASN1_F_X509_NAME_EX_NEW 171 +# define ASN1_F_X509_NEW 172 +# define ASN1_F_X509_PKEY_NEW 173 + +/* Reason codes. */ +# define ASN1_R_ADDING_OBJECT 171 +# define ASN1_R_ASN1_PARSE_ERROR 203 +# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 +# define ASN1_R_AUX_ERROR 100 +# define ASN1_R_BAD_CLASS 101 +# define ASN1_R_BAD_OBJECT_HEADER 102 +# define ASN1_R_BAD_PASSWORD_READ 103 +# define ASN1_R_BAD_TAG 104 +# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 +# define ASN1_R_BN_LIB 105 +# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 +# define ASN1_R_BUFFER_TOO_SMALL 107 +# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 +# define ASN1_R_CONTEXT_NOT_INITIALISED 217 +# define ASN1_R_DATA_IS_WRONG 109 +# define ASN1_R_DECODE_ERROR 110 +# define ASN1_R_DECODING_ERROR 111 +# define ASN1_R_DEPTH_EXCEEDED 174 +# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 +# define ASN1_R_ENCODE_ERROR 112 +# define ASN1_R_ERROR_GETTING_TIME 173 +# define ASN1_R_ERROR_LOADING_SECTION 172 +# define ASN1_R_ERROR_PARSING_SET_ELEMENT 113 +# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 +# define ASN1_R_EXPECTING_AN_INTEGER 115 +# define ASN1_R_EXPECTING_AN_OBJECT 116 +# define ASN1_R_EXPECTING_A_BOOLEAN 117 +# define ASN1_R_EXPECTING_A_TIME 118 +# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 +# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 +# define ASN1_R_FIELD_MISSING 121 +# define ASN1_R_FIRST_NUM_TOO_LARGE 122 +# define ASN1_R_HEADER_TOO_LONG 123 +# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 +# define ASN1_R_ILLEGAL_BOOLEAN 176 +# define ASN1_R_ILLEGAL_CHARACTERS 124 +# define ASN1_R_ILLEGAL_FORMAT 177 +# define ASN1_R_ILLEGAL_HEX 178 +# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 +# define ASN1_R_ILLEGAL_INTEGER 180 +# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 +# define ASN1_R_ILLEGAL_NULL 125 +# define ASN1_R_ILLEGAL_NULL_VALUE 182 +# define ASN1_R_ILLEGAL_OBJECT 183 +# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 +# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 +# define ASN1_R_ILLEGAL_TAGGED_ANY 127 +# define ASN1_R_ILLEGAL_TIME_VALUE 184 +# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 +# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 +# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 +# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 +# define ASN1_R_INVALID_DIGIT 130 +# define ASN1_R_INVALID_MIME_TYPE 205 +# define ASN1_R_INVALID_MODIFIER 186 +# define ASN1_R_INVALID_NUMBER 187 +# define ASN1_R_INVALID_OBJECT_ENCODING 216 +# define ASN1_R_INVALID_SEPARATOR 131 +# define ASN1_R_INVALID_TIME_FORMAT 132 +# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 +# define ASN1_R_INVALID_UTF8STRING 134 +# define ASN1_R_IV_TOO_LARGE 135 +# define ASN1_R_LENGTH_ERROR 136 +# define ASN1_R_LIST_ERROR 188 +# define ASN1_R_MIME_NO_CONTENT_TYPE 206 +# define ASN1_R_MIME_PARSE_ERROR 207 +# define ASN1_R_MIME_SIG_PARSE_ERROR 208 +# define ASN1_R_MISSING_EOC 137 +# define ASN1_R_MISSING_SECOND_NUMBER 138 +# define ASN1_R_MISSING_VALUE 189 +# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 +# define ASN1_R_MSTRING_WRONG_TAG 140 +# define ASN1_R_NESTED_ASN1_STRING 197 +# define ASN1_R_NON_HEX_CHARACTERS 141 +# define ASN1_R_NOT_ASCII_FORMAT 190 +# define ASN1_R_NOT_ENOUGH_DATA 142 +# define ASN1_R_NO_CONTENT_TYPE 209 +# define ASN1_R_NO_DEFAULT_DIGEST 201 +# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 +# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 +# define ASN1_R_NO_MULTIPART_BOUNDARY 211 +# define ASN1_R_NO_SIG_CONTENT_TYPE 212 +# define ASN1_R_NULL_IS_WRONG_LENGTH 144 +# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 +# define ASN1_R_ODD_NUMBER_OF_CHARS 145 +# define ASN1_R_PRIVATE_KEY_HEADER_MISSING 146 +# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 +# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 +# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 +# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 +# define ASN1_R_SHORT_LINE 150 +# define ASN1_R_SIG_INVALID_MIME_TYPE 213 +# define ASN1_R_STREAMING_NOT_SUPPORTED 202 +# define ASN1_R_STRING_TOO_LONG 151 +# define ASN1_R_STRING_TOO_SHORT 152 +# define ASN1_R_TAG_VALUE_TOO_HIGH 153 +# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 +# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 +# define ASN1_R_TOO_LONG 155 +# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 +# define ASN1_R_TYPE_NOT_PRIMITIVE 218 +# define ASN1_R_UNABLE_TO_DECODE_RSA_KEY 157 +# define ASN1_R_UNABLE_TO_DECODE_RSA_PRIVATE_KEY 158 +# define ASN1_R_UNEXPECTED_EOC 159 +# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 +# define ASN1_R_UNKNOWN_FORMAT 160 +# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 +# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 +# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 +# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 +# define ASN1_R_UNKNOWN_TAG 194 +# define ASN1_R_UNKOWN_FORMAT 195 +# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 +# define ASN1_R_UNSUPPORTED_CIPHER 165 +# define ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM 166 +# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 +# define ASN1_R_UNSUPPORTED_TYPE 196 +# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 +# define ASN1_R_WRONG_TAG 168 +# define ASN1_R_WRONG_TYPE 169 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/asn1_mac.h b/External/include/openssl/asn1_mac.h new file mode 100644 index 00000000..abc6dc35 --- /dev/null +++ b/External/include/openssl/asn1_mac.h @@ -0,0 +1,579 @@ +/* crypto/asn1/asn1_mac.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_ASN1_MAC_H +# define HEADER_ASN1_MAC_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef ASN1_MAC_ERR_LIB +# define ASN1_MAC_ERR_LIB ERR_LIB_ASN1 +# endif + +# define ASN1_MAC_H_err(f,r,line) \ + ERR_PUT_error(ASN1_MAC_ERR_LIB,(f),(r),__FILE__,(line)) + +# define M_ASN1_D2I_vars(a,type,func) \ + ASN1_const_CTX c; \ + type ret=NULL; \ + \ + c.pp=(const unsigned char **)pp; \ + c.q= *(const unsigned char **)pp; \ + c.error=ERR_R_NESTED_ASN1_ERROR; \ + if ((a == NULL) || ((*a) == NULL)) \ + { if ((ret=(type)func()) == NULL) \ + { c.line=__LINE__; goto err; } } \ + else ret=(*a); + +# define M_ASN1_D2I_Init() \ + c.p= *(const unsigned char **)pp; \ + c.max=(length == 0)?0:(c.p+length); + +# define M_ASN1_D2I_Finish_2(a) \ + if (!asn1_const_Finish(&c)) \ + { c.line=__LINE__; goto err; } \ + *(const unsigned char **)pp=c.p; \ + if (a != NULL) (*a)=ret; \ + return(ret); + +# define M_ASN1_D2I_Finish(a,func,e) \ + M_ASN1_D2I_Finish_2(a); \ +err:\ + ASN1_MAC_H_err((e),c.error,c.line); \ + asn1_add_error(*(const unsigned char **)pp,(int)(c.q- *pp)); \ + if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \ + return(NULL) + +# define M_ASN1_D2I_start_sequence() \ + if (!asn1_GetSequence(&c,&length)) \ + { c.line=__LINE__; goto err; } +/* Begin reading ASN1 without a surrounding sequence */ +# define M_ASN1_D2I_begin() \ + c.slen = length; + +/* End reading ASN1 with no check on length */ +# define M_ASN1_D2I_Finish_nolen(a, func, e) \ + *pp=c.p; \ + if (a != NULL) (*a)=ret; \ + return(ret); \ +err:\ + ASN1_MAC_H_err((e),c.error,c.line); \ + asn1_add_error(*pp,(int)(c.q- *pp)); \ + if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \ + return(NULL) + +# define M_ASN1_D2I_end_sequence() \ + (((c.inf&1) == 0)?(c.slen <= 0): \ + (c.eos=ASN1_const_check_infinite_end(&c.p,c.slen))) + +/* Don't use this with d2i_ASN1_BOOLEAN() */ +# define M_ASN1_D2I_get(b, func) \ + c.q=c.p; \ + if (func(&(b),&c.p,c.slen) == NULL) \ + {c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +/* Don't use this with d2i_ASN1_BOOLEAN() */ +# define M_ASN1_D2I_get_x(type,b,func) \ + c.q=c.p; \ + if (((D2I_OF(type))func)(&(b),&c.p,c.slen) == NULL) \ + {c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +/* use this instead () */ +# define M_ASN1_D2I_get_int(b,func) \ + c.q=c.p; \ + if (func(&(b),&c.p,c.slen) < 0) \ + {c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +# define M_ASN1_D2I_get_opt(b,func,type) \ + if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \ + == (V_ASN1_UNIVERSAL|(type)))) \ + { \ + M_ASN1_D2I_get(b,func); \ + } + +# define M_ASN1_D2I_get_int_opt(b,func,type) \ + if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \ + == (V_ASN1_UNIVERSAL|(type)))) \ + { \ + M_ASN1_D2I_get_int(b,func); \ + } + +# define M_ASN1_D2I_get_imp(b,func, type) \ + M_ASN1_next=(_tmp& V_ASN1_CONSTRUCTED)|type; \ + c.q=c.p; \ + if (func(&(b),&c.p,c.slen) == NULL) \ + {c.line=__LINE__; M_ASN1_next_prev = _tmp; goto err; } \ + c.slen-=(c.p-c.q);\ + M_ASN1_next_prev=_tmp; + +# define M_ASN1_D2I_get_IMP_opt(b,func,tag,type) \ + if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) == \ + (V_ASN1_CONTEXT_SPECIFIC|(tag)))) \ + { \ + unsigned char _tmp = M_ASN1_next; \ + M_ASN1_D2I_get_imp(b,func, type);\ + } + +# define M_ASN1_D2I_get_set(r,func,free_func) \ + M_ASN1_D2I_get_imp_set(r,func,free_func, \ + V_ASN1_SET,V_ASN1_UNIVERSAL); + +# define M_ASN1_D2I_get_set_type(type,r,func,free_func) \ + M_ASN1_D2I_get_imp_set_type(type,r,func,free_func, \ + V_ASN1_SET,V_ASN1_UNIVERSAL); + +# define M_ASN1_D2I_get_set_opt(r,func,free_func) \ + if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ + V_ASN1_CONSTRUCTED|V_ASN1_SET)))\ + { M_ASN1_D2I_get_set(r,func,free_func); } + +# define M_ASN1_D2I_get_set_opt_type(type,r,func,free_func) \ + if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ + V_ASN1_CONSTRUCTED|V_ASN1_SET)))\ + { M_ASN1_D2I_get_set_type(type,r,func,free_func); } + +# define M_ASN1_I2D_len_SET_opt(a,f) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + M_ASN1_I2D_len_SET(a,f); + +# define M_ASN1_I2D_put_SET_opt(a,f) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + M_ASN1_I2D_put_SET(a,f); + +# define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + M_ASN1_I2D_put_SEQUENCE(a,f); + +# define M_ASN1_I2D_put_SEQUENCE_opt_type(type,a,f) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + M_ASN1_I2D_put_SEQUENCE_type(type,a,f); + +# define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \ + if ((c.slen != 0) && \ + (M_ASN1_next == \ + (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\ + { \ + M_ASN1_D2I_get_imp_set(b,func,free_func,\ + tag,V_ASN1_CONTEXT_SPECIFIC); \ + } + +# define M_ASN1_D2I_get_IMP_set_opt_type(type,b,func,free_func,tag) \ + if ((c.slen != 0) && \ + (M_ASN1_next == \ + (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\ + { \ + M_ASN1_D2I_get_imp_set_type(type,b,func,free_func,\ + tag,V_ASN1_CONTEXT_SPECIFIC); \ + } + +# define M_ASN1_D2I_get_seq(r,func,free_func) \ + M_ASN1_D2I_get_imp_set(r,func,free_func,\ + V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL); + +# define M_ASN1_D2I_get_seq_type(type,r,func,free_func) \ + M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\ + V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL) + +# define M_ASN1_D2I_get_seq_opt(r,func,free_func) \ + if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ + V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ + { M_ASN1_D2I_get_seq(r,func,free_func); } + +# define M_ASN1_D2I_get_seq_opt_type(type,r,func,free_func) \ + if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ + V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ + { M_ASN1_D2I_get_seq_type(type,r,func,free_func); } + +# define M_ASN1_D2I_get_IMP_set(r,func,free_func,x) \ + M_ASN1_D2I_get_imp_set(r,func,free_func,\ + x,V_ASN1_CONTEXT_SPECIFIC); + +# define M_ASN1_D2I_get_IMP_set_type(type,r,func,free_func,x) \ + M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\ + x,V_ASN1_CONTEXT_SPECIFIC); + +# define M_ASN1_D2I_get_imp_set(r,func,free_func,a,b) \ + c.q=c.p; \ + if (d2i_ASN1_SET(&(r),&c.p,c.slen,(char *(*)())func,\ + (void (*)())free_func,a,b) == NULL) \ + { c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +# define M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,a,b) \ + c.q=c.p; \ + if (d2i_ASN1_SET_OF_##type(&(r),&c.p,c.slen,func,\ + free_func,a,b) == NULL) \ + { c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +# define M_ASN1_D2I_get_set_strings(r,func,a,b) \ + c.q=c.p; \ + if (d2i_ASN1_STRING_SET(&(r),&c.p,c.slen,a,b) == NULL) \ + { c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +# define M_ASN1_D2I_get_EXP_opt(r,func,tag) \ + if ((c.slen != 0L) && (M_ASN1_next == \ + (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ + { \ + int Tinf,Ttag,Tclass; \ + long Tlen; \ + \ + c.q=c.p; \ + Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ + if (Tinf & 0x80) \ + { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ + c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ + Tlen = c.slen - (c.p - c.q) - 2; \ + if (func(&(r),&c.p,Tlen) == NULL) \ + { c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ + Tlen = c.slen - (c.p - c.q); \ + if(!ASN1_const_check_infinite_end(&c.p, Tlen)) \ + { c.error=ERR_R_MISSING_ASN1_EOS; \ + c.line=__LINE__; goto err; } \ + }\ + c.slen-=(c.p-c.q); \ + } + +# define M_ASN1_D2I_get_EXP_set_opt(r,func,free_func,tag,b) \ + if ((c.slen != 0) && (M_ASN1_next == \ + (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ + { \ + int Tinf,Ttag,Tclass; \ + long Tlen; \ + \ + c.q=c.p; \ + Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ + if (Tinf & 0x80) \ + { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ + c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ + Tlen = c.slen - (c.p - c.q) - 2; \ + if (d2i_ASN1_SET(&(r),&c.p,Tlen,(char *(*)())func, \ + (void (*)())free_func, \ + b,V_ASN1_UNIVERSAL) == NULL) \ + { c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ + Tlen = c.slen - (c.p - c.q); \ + if(!ASN1_check_infinite_end(&c.p, Tlen)) \ + { c.error=ERR_R_MISSING_ASN1_EOS; \ + c.line=__LINE__; goto err; } \ + }\ + c.slen-=(c.p-c.q); \ + } + +# define M_ASN1_D2I_get_EXP_set_opt_type(type,r,func,free_func,tag,b) \ + if ((c.slen != 0) && (M_ASN1_next == \ + (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ + { \ + int Tinf,Ttag,Tclass; \ + long Tlen; \ + \ + c.q=c.p; \ + Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ + if (Tinf & 0x80) \ + { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ + c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ + Tlen = c.slen - (c.p - c.q) - 2; \ + if (d2i_ASN1_SET_OF_##type(&(r),&c.p,Tlen,func, \ + free_func,b,V_ASN1_UNIVERSAL) == NULL) \ + { c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ + Tlen = c.slen - (c.p - c.q); \ + if(!ASN1_check_infinite_end(&c.p, Tlen)) \ + { c.error=ERR_R_MISSING_ASN1_EOS; \ + c.line=__LINE__; goto err; } \ + }\ + c.slen-=(c.p-c.q); \ + } + +/* New macros */ +# define M_ASN1_New_Malloc(ret,type) \ + if ((ret=(type *)OPENSSL_malloc(sizeof(type))) == NULL) \ + { c.line=__LINE__; goto err2; } + +# define M_ASN1_New(arg,func) \ + if (((arg)=func()) == NULL) return(NULL) + +# define M_ASN1_New_Error(a) \ +/*- err: ASN1_MAC_H_err((a),ERR_R_NESTED_ASN1_ERROR,c.line); \ + return(NULL);*/ \ + err2: ASN1_MAC_H_err((a),ERR_R_MALLOC_FAILURE,c.line); \ + return(NULL) + +/* + * BIG UGLY WARNING! This is so damn ugly I wanna puke. Unfortunately, some + * macros that use ASN1_const_CTX still insist on writing in the input + * stream. ARGH! ARGH! ARGH! Let's get rid of this macro package. Please? -- + * Richard Levitte + */ +# define M_ASN1_next (*((unsigned char *)(c.p))) +# define M_ASN1_next_prev (*((unsigned char *)(c.q))) + +/*************************************************/ + +# define M_ASN1_I2D_vars(a) int r=0,ret=0; \ + unsigned char *p; \ + if (a == NULL) return(0) + +/* Length Macros */ +# define M_ASN1_I2D_len(a,f) ret+=f(a,NULL) +# define M_ASN1_I2D_len_IMP_opt(a,f) if (a != NULL) M_ASN1_I2D_len(a,f) + +# define M_ASN1_I2D_len_SET(a,f) \ + ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET); + +# define M_ASN1_I2D_len_SET_type(type,a,f) \ + ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SET, \ + V_ASN1_UNIVERSAL,IS_SET); + +# define M_ASN1_I2D_len_SEQUENCE(a,f) \ + ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \ + IS_SEQUENCE); + +# define M_ASN1_I2D_len_SEQUENCE_type(type,a,f) \ + ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SEQUENCE, \ + V_ASN1_UNIVERSAL,IS_SEQUENCE) + +# define M_ASN1_I2D_len_SEQUENCE_opt(a,f) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + M_ASN1_I2D_len_SEQUENCE(a,f); + +# define M_ASN1_I2D_len_SEQUENCE_opt_type(type,a,f) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + M_ASN1_I2D_len_SEQUENCE_type(type,a,f); + +# define M_ASN1_I2D_len_IMP_SET(a,f,x) \ + ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET); + +# define M_ASN1_I2D_len_IMP_SET_type(type,a,f,x) \ + ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ + V_ASN1_CONTEXT_SPECIFIC,IS_SET); + +# define M_ASN1_I2D_len_IMP_SET_opt(a,f,x) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ + IS_SET); + +# define M_ASN1_I2D_len_IMP_SET_opt_type(type,a,f,x) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ + V_ASN1_CONTEXT_SPECIFIC,IS_SET); + +# define M_ASN1_I2D_len_IMP_SEQUENCE(a,f,x) \ + ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ + IS_SEQUENCE); + +# define M_ASN1_I2D_len_IMP_SEQUENCE_opt(a,f,x) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ + IS_SEQUENCE); + +# define M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(type,a,f,x) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ + V_ASN1_CONTEXT_SPECIFIC, \ + IS_SEQUENCE); + +# define M_ASN1_I2D_len_EXP_opt(a,f,mtag,v) \ + if (a != NULL)\ + { \ + v=f(a,NULL); \ + ret+=ASN1_object_size(1,v,mtag); \ + } + +# define M_ASN1_I2D_len_EXP_SET_opt(a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_num(a) != 0))\ + { \ + v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL,IS_SET); \ + ret+=ASN1_object_size(1,v,mtag); \ + } + +# define M_ASN1_I2D_len_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_num(a) != 0))\ + { \ + v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL, \ + IS_SEQUENCE); \ + ret+=ASN1_object_size(1,v,mtag); \ + } + +# define M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_##type##_num(a) != 0))\ + { \ + v=i2d_ASN1_SET_OF_##type(a,NULL,f,tag, \ + V_ASN1_UNIVERSAL, \ + IS_SEQUENCE); \ + ret+=ASN1_object_size(1,v,mtag); \ + } + +/* Put Macros */ +# define M_ASN1_I2D_put(a,f) f(a,&p) + +# define M_ASN1_I2D_put_IMP_opt(a,f,t) \ + if (a != NULL) \ + { \ + unsigned char *q=p; \ + f(a,&p); \ + *q=(V_ASN1_CONTEXT_SPECIFIC|t|(*q&V_ASN1_CONSTRUCTED));\ + } + +# define M_ASN1_I2D_put_SET(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SET,\ + V_ASN1_UNIVERSAL,IS_SET) +# define M_ASN1_I2D_put_SET_type(type,a,f) \ + i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET) +# define M_ASN1_I2D_put_IMP_SET(a,f,x) i2d_ASN1_SET(a,&p,f,x,\ + V_ASN1_CONTEXT_SPECIFIC,IS_SET) +# define M_ASN1_I2D_put_IMP_SET_type(type,a,f,x) \ + i2d_ASN1_SET_OF_##type(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET) +# define M_ASN1_I2D_put_IMP_SEQUENCE(a,f,x) i2d_ASN1_SET(a,&p,f,x,\ + V_ASN1_CONTEXT_SPECIFIC,IS_SEQUENCE) + +# define M_ASN1_I2D_put_SEQUENCE(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SEQUENCE,\ + V_ASN1_UNIVERSAL,IS_SEQUENCE) + +# define M_ASN1_I2D_put_SEQUENCE_type(type,a,f) \ + i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \ + IS_SEQUENCE) + +# define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + M_ASN1_I2D_put_SEQUENCE(a,f); + +# define M_ASN1_I2D_put_IMP_SET_opt(a,f,x) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \ + IS_SET); } + +# define M_ASN1_I2D_put_IMP_SET_opt_type(type,a,f,x) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + { i2d_ASN1_SET_OF_##type(a,&p,f,x, \ + V_ASN1_CONTEXT_SPECIFIC, \ + IS_SET); } + +# define M_ASN1_I2D_put_IMP_SEQUENCE_opt(a,f,x) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \ + IS_SEQUENCE); } + +# define M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(type,a,f,x) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + { i2d_ASN1_SET_OF_##type(a,&p,f,x, \ + V_ASN1_CONTEXT_SPECIFIC, \ + IS_SEQUENCE); } + +# define M_ASN1_I2D_put_EXP_opt(a,f,tag,v) \ + if (a != NULL) \ + { \ + ASN1_put_object(&p,1,v,tag,V_ASN1_CONTEXT_SPECIFIC); \ + f(a,&p); \ + } + +# define M_ASN1_I2D_put_EXP_SET_opt(a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + { \ + ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ + i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SET); \ + } + +# define M_ASN1_I2D_put_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + { \ + ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ + i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \ + } + +# define M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + { \ + ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ + i2d_ASN1_SET_OF_##type(a,&p,f,tag,V_ASN1_UNIVERSAL, \ + IS_SEQUENCE); \ + } + +# define M_ASN1_I2D_seq_total() \ + r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \ + if (pp == NULL) return(r); \ + p= *pp; \ + ASN1_put_object(&p,1,ret,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL) + +# define M_ASN1_I2D_INF_seq_start(tag,ctx) \ + *(p++)=(V_ASN1_CONSTRUCTED|(tag)|(ctx)); \ + *(p++)=0x80 + +# define M_ASN1_I2D_INF_seq_end() *(p++)=0x00; *(p++)=0x00 + +# define M_ASN1_I2D_finish() *pp=p; \ + return(r); + +int asn1_GetSequence(ASN1_const_CTX *c, long *length); +void asn1_add_error(const unsigned char *address, int offset); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/asn1t.h b/External/include/openssl/asn1t.h new file mode 100644 index 00000000..99bc0eec --- /dev/null +++ b/External/include/openssl/asn1t.h @@ -0,0 +1,973 @@ +/* asn1t.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project + * 2000. + */ +/* ==================================================================== + * Copyright (c) 2000-2005 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +#ifndef HEADER_ASN1T_H +# define HEADER_ASN1T_H + +# include +# include +# include + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +/* ASN1 template defines, structures and functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ +# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr)) + +/* Macros for start and end of ASN1_ITEM definition */ + +# define ASN1_ITEM_start(itname) \ + OPENSSL_GLOBAL const ASN1_ITEM itname##_it = { + +# define ASN1_ITEM_end(itname) \ + }; + +# else + +/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ +# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr())) + +/* Macros for start and end of ASN1_ITEM definition */ + +# define ASN1_ITEM_start(itname) \ + const ASN1_ITEM * itname##_it(void) \ + { \ + static const ASN1_ITEM local_it = { + +# define ASN1_ITEM_end(itname) \ + }; \ + return &local_it; \ + } + +# endif + +/* Macros to aid ASN1 template writing */ + +# define ASN1_ITEM_TEMPLATE(tname) \ + static const ASN1_TEMPLATE tname##_item_tt + +# define ASN1_ITEM_TEMPLATE_END(tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_PRIMITIVE,\ + -1,\ + &tname##_item_tt,\ + 0,\ + NULL,\ + 0,\ + #tname \ + ASN1_ITEM_end(tname) + +/* This is a ASN1 type which just embeds a template */ + +/*- + * This pair helps declare a SEQUENCE. We can do: + * + * ASN1_SEQUENCE(stname) = { + * ... SEQUENCE components ... + * } ASN1_SEQUENCE_END(stname) + * + * This will produce an ASN1_ITEM called stname_it + * for a structure called stname. + * + * If you want the same structure but a different + * name then use: + * + * ASN1_SEQUENCE(itname) = { + * ... SEQUENCE components ... + * } ASN1_SEQUENCE_END_name(stname, itname) + * + * This will create an item called itname_it using + * a structure called stname. + */ + +# define ASN1_SEQUENCE(tname) \ + static const ASN1_TEMPLATE tname##_seq_tt[] + +# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) + +# define ASN1_SEQUENCE_END_name(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_NDEF_SEQUENCE(tname) \ + ASN1_SEQUENCE(tname) + +# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ + ASN1_SEQUENCE_cb(tname, cb) + +# define ASN1_SEQUENCE_cb(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_BROKEN_SEQUENCE(tname) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_BROKEN, 0, 0, 0, 0}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_SEQUENCE_ref(tname, cb, lck) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), lck, cb, 0}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_SEQUENCE_enc(tname, enc, cb) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc)}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_NDEF_SEQUENCE_END(tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(tname),\ + #tname \ + ASN1_ITEM_end(tname) + +# define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname) + +# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) + +# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) + +# define ASN1_SEQUENCE_END_ref(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +/*- + * This pair helps declare a CHOICE type. We can do: + * + * ASN1_CHOICE(chname) = { + * ... CHOICE options ... + * ASN1_CHOICE_END(chname) + * + * This will produce an ASN1_ITEM called chname_it + * for a structure called chname. The structure + * definition must look like this: + * typedef struct { + * int type; + * union { + * ASN1_SOMETHING *opt1; + * ASN1_SOMEOTHER *opt2; + * } value; + * } chname; + * + * the name of the selector must be 'type'. + * to use an alternative selector name use the + * ASN1_CHOICE_END_selector() version. + */ + +# define ASN1_CHOICE(tname) \ + static const ASN1_TEMPLATE tname##_ch_tt[] + +# define ASN1_CHOICE_cb(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ + ASN1_CHOICE(tname) + +# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) + +# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) + +# define ASN1_CHOICE_END_selector(stname, tname, selname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_CHOICE_END_cb(stname, tname, selname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +/* This helps with the template wrapper form of ASN1_ITEM */ + +# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ + (flags), (tag), 0,\ + #name, ASN1_ITEM_ref(type) } + +/* These help with SEQUENCE or CHOICE components */ + +/* used to declare other types */ + +# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ + (flags), (tag), offsetof(stname, field),\ + #field, ASN1_ITEM_ref(type) } + +/* used when the structure is combined with the parent */ + +# define ASN1_EX_COMBINE(flags, tag, type) { \ + (flags)|ASN1_TFLG_COMBINE, (tag), 0, NULL, ASN1_ITEM_ref(type) } + +/* implicit and explicit helper macros */ + +# define ASN1_IMP_EX(stname, field, type, tag, ex) \ + ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | ex, tag, stname, field, type) + +# define ASN1_EXP_EX(stname, field, type, tag, ex) \ + ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | ex, tag, stname, field, type) + +/* Any defined by macros: the field used is in the table itself */ + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION +# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } +# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } +# else +# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } +# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } +# endif +/* Plain simple type */ +# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) + +/* OPTIONAL simple type */ +# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) + +/* IMPLICIT tagged simple type */ +# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) + +/* IMPLICIT tagged OPTIONAL simple type */ +# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) + +/* Same as above but EXPLICIT */ + +# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) +# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) + +/* SEQUENCE OF type */ +# define ASN1_SEQUENCE_OF(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) + +/* OPTIONAL SEQUENCE OF */ +# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) + +/* Same as above but for SET OF */ + +# define ASN1_SET_OF(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) + +# define ASN1_SET_OF_OPT(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) + +/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ + +# define ASN1_IMP_SET_OF(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) + +# define ASN1_EXP_SET_OF(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) + +# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) + +# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) + +# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) + +/* EXPLICIT using indefinite length constructed form */ +# define ASN1_NDEF_EXP(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) + +/* EXPLICIT OPTIONAL using indefinite length constructed form */ +# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) + +/* Macros for the ASN1_ADB structure */ + +# define ASN1_ADB(name) \ + static const ASN1_ADB_TABLE name##_adbtbl[] + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION + +# define ASN1_ADB_END(name, flags, field, app_table, def, none) \ + ;\ + static const ASN1_ADB name##_adb = {\ + flags,\ + offsetof(name, field),\ + app_table,\ + name##_adbtbl,\ + sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ + def,\ + none\ + } + +# else + +# define ASN1_ADB_END(name, flags, field, app_table, def, none) \ + ;\ + static const ASN1_ITEM *name##_adb(void) \ + { \ + static const ASN1_ADB internal_adb = \ + {\ + flags,\ + offsetof(name, field),\ + app_table,\ + name##_adbtbl,\ + sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ + def,\ + none\ + }; \ + return (const ASN1_ITEM *) &internal_adb; \ + } \ + void dummy_function(void) + +# endif + +# define ADB_ENTRY(val, template) {val, template} + +# define ASN1_ADB_TEMPLATE(name) \ + static const ASN1_TEMPLATE name##_tt + +/* + * This is the ASN1 template structure that defines a wrapper round the + * actual type. It determines the actual position of the field in the value + * structure, various flags such as OPTIONAL and the field name. + */ + +struct ASN1_TEMPLATE_st { + unsigned long flags; /* Various flags */ + long tag; /* tag, not used if no tagging */ + unsigned long offset; /* Offset of this field in structure */ +# ifndef NO_ASN1_FIELD_NAMES + const char *field_name; /* Field name */ +# endif + ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ +}; + +/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ + +# define ASN1_TEMPLATE_item(t) (t->item_ptr) +# define ASN1_TEMPLATE_adb(t) (t->item_ptr) + +typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; +typedef struct ASN1_ADB_st ASN1_ADB; + +struct ASN1_ADB_st { + unsigned long flags; /* Various flags */ + unsigned long offset; /* Offset of selector field */ + STACK_OF(ASN1_ADB_TABLE) **app_items; /* Application defined items */ + const ASN1_ADB_TABLE *tbl; /* Table of possible types */ + long tblcount; /* Number of entries in tbl */ + const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ + const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ +}; + +struct ASN1_ADB_TABLE_st { + long value; /* NID for an object or value for an int */ + const ASN1_TEMPLATE tt; /* item for this value */ +}; + +/* template flags */ + +/* Field is optional */ +# define ASN1_TFLG_OPTIONAL (0x1) + +/* Field is a SET OF */ +# define ASN1_TFLG_SET_OF (0x1 << 1) + +/* Field is a SEQUENCE OF */ +# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) + +/* + * Special case: this refers to a SET OF that will be sorted into DER order + * when encoded *and* the corresponding STACK will be modified to match the + * new order. + */ +# define ASN1_TFLG_SET_ORDER (0x3 << 1) + +/* Mask for SET OF or SEQUENCE OF */ +# define ASN1_TFLG_SK_MASK (0x3 << 1) + +/* + * These flags mean the tag should be taken from the tag field. If EXPLICIT + * then the underlying type is used for the inner tag. + */ + +/* IMPLICIT tagging */ +# define ASN1_TFLG_IMPTAG (0x1 << 3) + +/* EXPLICIT tagging, inner tag from underlying type */ +# define ASN1_TFLG_EXPTAG (0x2 << 3) + +# define ASN1_TFLG_TAG_MASK (0x3 << 3) + +/* context specific IMPLICIT */ +# define ASN1_TFLG_IMPLICIT ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT + +/* context specific EXPLICIT */ +# define ASN1_TFLG_EXPLICIT ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT + +/* + * If tagging is in force these determine the type of tag to use. Otherwise + * the tag is determined by the underlying type. These values reflect the + * actual octet format. + */ + +/* Universal tag */ +# define ASN1_TFLG_UNIVERSAL (0x0<<6) +/* Application tag */ +# define ASN1_TFLG_APPLICATION (0x1<<6) +/* Context specific tag */ +# define ASN1_TFLG_CONTEXT (0x2<<6) +/* Private tag */ +# define ASN1_TFLG_PRIVATE (0x3<<6) + +# define ASN1_TFLG_TAG_CLASS (0x3<<6) + +/* + * These are for ANY DEFINED BY type. In this case the 'item' field points to + * an ASN1_ADB structure which contains a table of values to decode the + * relevant type + */ + +# define ASN1_TFLG_ADB_MASK (0x3<<8) + +# define ASN1_TFLG_ADB_OID (0x1<<8) + +# define ASN1_TFLG_ADB_INT (0x1<<9) + +/* + * This flag means a parent structure is passed instead of the field: this is + * useful is a SEQUENCE is being combined with a CHOICE for example. Since + * this means the structure and item name will differ we need to use the + * ASN1_CHOICE_END_name() macro for example. + */ + +# define ASN1_TFLG_COMBINE (0x1<<10) + +/* + * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes + * indefinite length constructed encoding to be used if required. + */ + +# define ASN1_TFLG_NDEF (0x1<<11) + +/* This is the actual ASN1 item itself */ + +struct ASN1_ITEM_st { + char itype; /* The item type, primitive, SEQUENCE, CHOICE + * or extern */ + long utype; /* underlying type */ + const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains + * the contents */ + long tcount; /* Number of templates if SEQUENCE or CHOICE */ + const void *funcs; /* functions that handle this type */ + long size; /* Structure size (usually) */ +# ifndef NO_ASN1_FIELD_NAMES + const char *sname; /* Structure name */ +# endif +}; + +/*- + * These are values for the itype field and + * determine how the type is interpreted. + * + * For PRIMITIVE types the underlying type + * determines the behaviour if items is NULL. + * + * Otherwise templates must contain a single + * template and the type is treated in the + * same way as the type specified in the template. + * + * For SEQUENCE types the templates field points + * to the members, the size field is the + * structure size. + * + * For CHOICE types the templates field points + * to each possible member (typically a union) + * and the 'size' field is the offset of the + * selector. + * + * The 'funcs' field is used for application + * specific functions. + * + * For COMPAT types the funcs field gives a + * set of functions that handle this type, this + * supports the old d2i, i2d convention. + * + * The EXTERN type uses a new style d2i/i2d. + * The new style should be used where possible + * because it avoids things like the d2i IMPLICIT + * hack. + * + * MSTRING is a multiple string type, it is used + * for a CHOICE of character strings where the + * actual strings all occupy an ASN1_STRING + * structure. In this case the 'utype' field + * has a special meaning, it is used as a mask + * of acceptable types using the B_ASN1 constants. + * + * NDEF_SEQUENCE is the same as SEQUENCE except + * that it will use indefinite length constructed + * encoding if requested. + * + */ + +# define ASN1_ITYPE_PRIMITIVE 0x0 + +# define ASN1_ITYPE_SEQUENCE 0x1 + +# define ASN1_ITYPE_CHOICE 0x2 + +# define ASN1_ITYPE_COMPAT 0x3 + +# define ASN1_ITYPE_EXTERN 0x4 + +# define ASN1_ITYPE_MSTRING 0x5 + +# define ASN1_ITYPE_NDEF_SEQUENCE 0x6 + +/* + * Cache for ASN1 tag and length, so we don't keep re-reading it for things + * like CHOICE + */ + +struct ASN1_TLC_st { + char valid; /* Values below are valid */ + int ret; /* return value */ + long plen; /* length */ + int ptag; /* class value */ + int pclass; /* class value */ + int hdrlen; /* header length */ +}; + +/* Typedefs for ASN1 function pointers */ + +typedef ASN1_VALUE *ASN1_new_func(void); +typedef void ASN1_free_func(ASN1_VALUE *a); +typedef ASN1_VALUE *ASN1_d2i_func(ASN1_VALUE **a, const unsigned char **in, + long length); +typedef int ASN1_i2d_func(ASN1_VALUE *a, unsigned char **in); + +typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, + const ASN1_ITEM *it, int tag, int aclass, char opt, + ASN1_TLC *ctx); + +typedef int ASN1_ex_i2d(ASN1_VALUE **pval, unsigned char **out, + const ASN1_ITEM *it, int tag, int aclass); +typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); +typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); + +typedef int ASN1_ex_print_func(BIO *out, ASN1_VALUE **pval, + int indent, const char *fname, + const ASN1_PCTX *pctx); + +typedef int ASN1_primitive_i2c(ASN1_VALUE **pval, unsigned char *cont, + int *putype, const ASN1_ITEM *it); +typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, + int len, int utype, char *free_cont, + const ASN1_ITEM *it); +typedef int ASN1_primitive_print(BIO *out, ASN1_VALUE **pval, + const ASN1_ITEM *it, int indent, + const ASN1_PCTX *pctx); + +typedef struct ASN1_COMPAT_FUNCS_st { + ASN1_new_func *asn1_new; + ASN1_free_func *asn1_free; + ASN1_d2i_func *asn1_d2i; + ASN1_i2d_func *asn1_i2d; +} ASN1_COMPAT_FUNCS; + +typedef struct ASN1_EXTERN_FUNCS_st { + void *app_data; + ASN1_ex_new_func *asn1_ex_new; + ASN1_ex_free_func *asn1_ex_free; + ASN1_ex_free_func *asn1_ex_clear; + ASN1_ex_d2i *asn1_ex_d2i; + ASN1_ex_i2d *asn1_ex_i2d; + ASN1_ex_print_func *asn1_ex_print; +} ASN1_EXTERN_FUNCS; + +typedef struct ASN1_PRIMITIVE_FUNCS_st { + void *app_data; + unsigned long flags; + ASN1_ex_new_func *prim_new; + ASN1_ex_free_func *prim_free; + ASN1_ex_free_func *prim_clear; + ASN1_primitive_c2i *prim_c2i; + ASN1_primitive_i2c *prim_i2c; + ASN1_primitive_print *prim_print; +} ASN1_PRIMITIVE_FUNCS; + +/* + * This is the ASN1_AUX structure: it handles various miscellaneous + * requirements. For example the use of reference counts and an informational + * callback. The "informational callback" is called at various points during + * the ASN1 encoding and decoding. It can be used to provide minor + * customisation of the structures used. This is most useful where the + * supplied routines *almost* do the right thing but need some extra help at + * a few points. If the callback returns zero then it is assumed a fatal + * error has occurred and the main operation should be abandoned. If major + * changes in the default behaviour are required then an external type is + * more appropriate. + */ + +typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, + void *exarg); + +typedef struct ASN1_AUX_st { + void *app_data; + int flags; + int ref_offset; /* Offset of reference value */ + int ref_lock; /* Lock type to use */ + ASN1_aux_cb *asn1_cb; + int enc_offset; /* Offset of ASN1_ENCODING structure */ +} ASN1_AUX; + +/* For print related callbacks exarg points to this structure */ +typedef struct ASN1_PRINT_ARG_st { + BIO *out; + int indent; + const ASN1_PCTX *pctx; +} ASN1_PRINT_ARG; + +/* For streaming related callbacks exarg points to this structure */ +typedef struct ASN1_STREAM_ARG_st { + /* BIO to stream through */ + BIO *out; + /* BIO with filters appended */ + BIO *ndef_bio; + /* Streaming I/O boundary */ + unsigned char **boundary; +} ASN1_STREAM_ARG; + +/* Flags in ASN1_AUX */ + +/* Use a reference count */ +# define ASN1_AFLG_REFCOUNT 1 +/* Save the encoding of structure (useful for signatures) */ +# define ASN1_AFLG_ENCODING 2 +/* The Sequence length is invalid */ +# define ASN1_AFLG_BROKEN 4 + +/* operation values for asn1_cb */ + +# define ASN1_OP_NEW_PRE 0 +# define ASN1_OP_NEW_POST 1 +# define ASN1_OP_FREE_PRE 2 +# define ASN1_OP_FREE_POST 3 +# define ASN1_OP_D2I_PRE 4 +# define ASN1_OP_D2I_POST 5 +# define ASN1_OP_I2D_PRE 6 +# define ASN1_OP_I2D_POST 7 +# define ASN1_OP_PRINT_PRE 8 +# define ASN1_OP_PRINT_POST 9 +# define ASN1_OP_STREAM_PRE 10 +# define ASN1_OP_STREAM_POST 11 +# define ASN1_OP_DETACHED_PRE 12 +# define ASN1_OP_DETACHED_POST 13 + +/* Macro to implement a primitive type */ +# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) +# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ + ASN1_ITEM_start(itname) \ + ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ + ASN1_ITEM_end(itname) + +/* Macro to implement a multi string type */ +# define IMPLEMENT_ASN1_MSTRING(itname, mask) \ + ASN1_ITEM_start(itname) \ + ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ + ASN1_ITEM_end(itname) + +/* Macro to implement an ASN1_ITEM in terms of old style funcs */ + +# define IMPLEMENT_COMPAT_ASN1(sname) IMPLEMENT_COMPAT_ASN1_type(sname, V_ASN1_SEQUENCE) + +# define IMPLEMENT_COMPAT_ASN1_type(sname, tag) \ + static const ASN1_COMPAT_FUNCS sname##_ff = { \ + (ASN1_new_func *)sname##_new, \ + (ASN1_free_func *)sname##_free, \ + (ASN1_d2i_func *)d2i_##sname, \ + (ASN1_i2d_func *)i2d_##sname, \ + }; \ + ASN1_ITEM_start(sname) \ + ASN1_ITYPE_COMPAT, \ + tag, \ + NULL, \ + 0, \ + &sname##_ff, \ + 0, \ + #sname \ + ASN1_ITEM_end(sname) + +# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ + ASN1_ITEM_start(sname) \ + ASN1_ITYPE_EXTERN, \ + tag, \ + NULL, \ + 0, \ + &fptrs, \ + 0, \ + #sname \ + ASN1_ITEM_end(sname) + +/* Macro to implement standard functions in terms of ASN1_ITEM structures */ + +# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) + +# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ + IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) + +# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ + pre stname *fname##_new(void) \ + { \ + return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ + } \ + pre void fname##_free(stname *a) \ + { \ + ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ + } + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ + stname *fname##_new(void) \ + { \ + return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ + } \ + void fname##_free(stname *a) \ + { \ + ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ + } + +# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) + +# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ + stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ + { \ + return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ + } \ + int i2d_##fname(stname *a, unsigned char **out) \ + { \ + return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ + } + +# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ + int i2d_##stname##_NDEF(stname *a, unsigned char **out) \ + { \ + return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ + } + +/* + * This includes evil casts to remove const: they will go away when full ASN1 + * constification is done. + */ +# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ + stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ + { \ + return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ + } \ + int i2d_##fname(const stname *a, unsigned char **out) \ + { \ + return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ + } + +# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ + stname * stname##_dup(stname *x) \ + { \ + return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ + } + +# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ + IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ + int fname##_print_ctx(BIO *out, stname *x, int indent, \ + const ASN1_PCTX *pctx) \ + { \ + return ASN1_item_print(out, (ASN1_VALUE *)x, indent, \ + ASN1_ITEM_rptr(itname), pctx); \ + } + +# define IMPLEMENT_ASN1_FUNCTIONS_const(name) \ + IMPLEMENT_ASN1_FUNCTIONS_const_fname(name, name, name) + +# define IMPLEMENT_ASN1_FUNCTIONS_const_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) + +/* external definitions for primitive types */ + +DECLARE_ASN1_ITEM(ASN1_BOOLEAN) +DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) +DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) +DECLARE_ASN1_ITEM(ASN1_SEQUENCE) +DECLARE_ASN1_ITEM(CBIGNUM) +DECLARE_ASN1_ITEM(BIGNUM) +DECLARE_ASN1_ITEM(LONG) +DECLARE_ASN1_ITEM(ZLONG) + +DECLARE_STACK_OF(ASN1_VALUE) + +/* Functions used internally by the ASN1 code */ + +int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); +void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); +int ASN1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); +int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it); + +void ASN1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); +int ASN1_template_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, + const ASN1_TEMPLATE *tt); +int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, + const ASN1_ITEM *it, int tag, int aclass, char opt, + ASN1_TLC *ctx); + +int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out, + const ASN1_ITEM *it, int tag, int aclass); +int ASN1_template_i2d(ASN1_VALUE **pval, unsigned char **out, + const ASN1_TEMPLATE *tt); +void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it); + +int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype, + const ASN1_ITEM *it); +int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, + int utype, char *free_cont, const ASN1_ITEM *it); + +int asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM *it); +int asn1_set_choice_selector(ASN1_VALUE **pval, int value, + const ASN1_ITEM *it); + +ASN1_VALUE **asn1_get_field_ptr(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); + +const ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt, + int nullerr); + +int asn1_do_lock(ASN1_VALUE **pval, int op, const ASN1_ITEM *it); + +void asn1_enc_init(ASN1_VALUE **pval, const ASN1_ITEM *it); +void asn1_enc_free(ASN1_VALUE **pval, const ASN1_ITEM *it); +int asn1_enc_restore(int *len, unsigned char **out, ASN1_VALUE **pval, + const ASN1_ITEM *it); +int asn1_enc_save(ASN1_VALUE **pval, const unsigned char *in, int inlen, + const ASN1_ITEM *it); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/bio.h b/External/include/openssl/bio.h new file mode 100644 index 00000000..6790aed2 --- /dev/null +++ b/External/include/openssl/bio.h @@ -0,0 +1,883 @@ +/* crypto/bio/bio.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_BIO_H +# define HEADER_BIO_H + +# include + +# ifndef OPENSSL_NO_FP_API +# include +# endif +# include + +# include + +# ifndef OPENSSL_NO_SCTP +# ifndef OPENSSL_SYS_VMS +# include +# else +# include +# endif +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* These are the 'types' of BIOs */ +# define BIO_TYPE_NONE 0 +# define BIO_TYPE_MEM (1|0x0400) +# define BIO_TYPE_FILE (2|0x0400) + +# define BIO_TYPE_FD (4|0x0400|0x0100) +# define BIO_TYPE_SOCKET (5|0x0400|0x0100) +# define BIO_TYPE_NULL (6|0x0400) +# define BIO_TYPE_SSL (7|0x0200) +# define BIO_TYPE_MD (8|0x0200)/* passive filter */ +# define BIO_TYPE_BUFFER (9|0x0200)/* filter */ +# define BIO_TYPE_CIPHER (10|0x0200)/* filter */ +# define BIO_TYPE_BASE64 (11|0x0200)/* filter */ +# define BIO_TYPE_CONNECT (12|0x0400|0x0100)/* socket - connect */ +# define BIO_TYPE_ACCEPT (13|0x0400|0x0100)/* socket for accept */ +# define BIO_TYPE_PROXY_CLIENT (14|0x0200)/* client proxy BIO */ +# define BIO_TYPE_PROXY_SERVER (15|0x0200)/* server proxy BIO */ +# define BIO_TYPE_NBIO_TEST (16|0x0200)/* server proxy BIO */ +# define BIO_TYPE_NULL_FILTER (17|0x0200) +# define BIO_TYPE_BER (18|0x0200)/* BER -> bin filter */ +# define BIO_TYPE_BIO (19|0x0400)/* (half a) BIO pair */ +# define BIO_TYPE_LINEBUFFER (20|0x0200)/* filter */ +# define BIO_TYPE_DGRAM (21|0x0400|0x0100) +# ifndef OPENSSL_NO_SCTP +# define BIO_TYPE_DGRAM_SCTP (24|0x0400|0x0100) +# endif +# define BIO_TYPE_ASN1 (22|0x0200)/* filter */ +# define BIO_TYPE_COMP (23|0x0200)/* filter */ + +# define BIO_TYPE_DESCRIPTOR 0x0100/* socket, fd, connect or accept */ +# define BIO_TYPE_FILTER 0x0200 +# define BIO_TYPE_SOURCE_SINK 0x0400 + +/* + * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. + * BIO_set_fp(in,stdin,BIO_NOCLOSE); + */ +# define BIO_NOCLOSE 0x00 +# define BIO_CLOSE 0x01 + +/* + * These are used in the following macros and are passed to BIO_ctrl() + */ +# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */ +# define BIO_CTRL_EOF 2/* opt - are we at the eof */ +# define BIO_CTRL_INFO 3/* opt - extra tit-bits */ +# define BIO_CTRL_SET 4/* man - set the 'IO' type */ +# define BIO_CTRL_GET 5/* man - get the 'IO' type */ +# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */ +# define BIO_CTRL_POP 7/* opt - internal, used to signify change */ +# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */ +# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */ +# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */ +# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ +# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ +# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ +/* callback is int cb(BIO *bio,state,ret); */ +# define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */ +# define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */ + +# define BIO_CTRL_SET_FILENAME 30/* BIO_s_file special */ + +/* dgram BIO stuff */ +# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */ +# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected + * socket to be passed in */ +# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */ +# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */ +# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */ +# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */ + +# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */ +# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation tiemd out */ + +/* #ifdef IP_MTU_DISCOVER */ +# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */ +/* #endif */ + +# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */ +# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 +# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */ +# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU. + * want to use this if asking + * the kernel fails */ + +# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was + * exceed in the previous write + * operation */ + +# define BIO_CTRL_DGRAM_GET_PEER 46 +# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */ + +# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout + * to adjust socket timeouts */ +# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 + +# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 + +# ifndef OPENSSL_NO_SCTP +/* SCTP stuff */ +# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 +# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 +# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 +# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 +# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 +# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 +# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 +# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 +# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 +# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 +# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 +# endif + +/* modifiers */ +# define BIO_FP_READ 0x02 +# define BIO_FP_WRITE 0x04 +# define BIO_FP_APPEND 0x08 +# define BIO_FP_TEXT 0x10 + +# define BIO_FLAGS_READ 0x01 +# define BIO_FLAGS_WRITE 0x02 +# define BIO_FLAGS_IO_SPECIAL 0x04 +# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) +# define BIO_FLAGS_SHOULD_RETRY 0x08 +# ifndef BIO_FLAGS_UPLINK +/* + * "UPLINK" flag denotes file descriptors provided by application. It + * defaults to 0, as most platforms don't require UPLINK interface. + */ +# define BIO_FLAGS_UPLINK 0 +# endif + +/* Used in BIO_gethostbyname() */ +# define BIO_GHBN_CTRL_HITS 1 +# define BIO_GHBN_CTRL_MISSES 2 +# define BIO_GHBN_CTRL_CACHE_SIZE 3 +# define BIO_GHBN_CTRL_GET_ENTRY 4 +# define BIO_GHBN_CTRL_FLUSH 5 + +/* Mostly used in the SSL BIO */ +/*- + * Not used anymore + * #define BIO_FLAGS_PROTOCOL_DELAYED_READ 0x10 + * #define BIO_FLAGS_PROTOCOL_DELAYED_WRITE 0x20 + * #define BIO_FLAGS_PROTOCOL_STARTUP 0x40 + */ + +# define BIO_FLAGS_BASE64_NO_NL 0x100 + +/* + * This is used with memory BIOs: it means we shouldn't free up or change the + * data in any way. + */ +# define BIO_FLAGS_MEM_RDONLY 0x200 + +typedef struct bio_st BIO; + +void BIO_set_flags(BIO *b, int flags); +int BIO_test_flags(const BIO *b, int flags); +void BIO_clear_flags(BIO *b, int flags); + +# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) +# define BIO_set_retry_special(b) \ + BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_set_retry_read(b) \ + BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_set_retry_write(b) \ + BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) + +/* These are normally used internally in BIOs */ +# define BIO_clear_retry_flags(b) \ + BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_get_retry_flags(b) \ + BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) + +/* These should be used by the application to tell why we should retry */ +# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) +# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) +# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) +# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) +# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) + +/* + * The next three are used in conjunction with the BIO_should_io_special() + * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int + * *reason); will walk the BIO stack and return the 'reason' for the special + * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return + * the code. + */ +/* + * Returned from the SSL bio when the certificate retrieval code had an error + */ +# define BIO_RR_SSL_X509_LOOKUP 0x01 +/* Returned from the connect BIO when a connect would have blocked */ +# define BIO_RR_CONNECT 0x02 +/* Returned from the accept BIO when an accept would have blocked */ +# define BIO_RR_ACCEPT 0x03 + +/* These are passed by the BIO callback */ +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 + +/* + * The callback is called before and after the underling operation, The + * BIO_CB_RETURN flag indicates if it is after the call + */ +# define BIO_CB_RETURN 0x80 +# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) +# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) +# define BIO_cb_post(a) ((a)&BIO_CB_RETURN) + +long (*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const char *, + int, long, long); +void BIO_set_callback(BIO *b, + long (*callback) (struct bio_st *, int, const char *, + int, long, long)); +char *BIO_get_callback_arg(const BIO *b); +void BIO_set_callback_arg(BIO *b, char *arg); + +const char *BIO_method_name(const BIO *b); +int BIO_method_type(const BIO *b); + +typedef void bio_info_cb (struct bio_st *, int, const char *, int, long, + long); + +typedef struct bio_method_st { + int type; + const char *name; + int (*bwrite) (BIO *, const char *, int); + int (*bread) (BIO *, char *, int); + int (*bputs) (BIO *, const char *); + int (*bgets) (BIO *, char *, int); + long (*ctrl) (BIO *, int, long, void *); + int (*create) (BIO *); + int (*destroy) (BIO *); + long (*callback_ctrl) (BIO *, int, bio_info_cb *); +} BIO_METHOD; + +struct bio_st { + BIO_METHOD *method; + /* bio, mode, argp, argi, argl, ret */ + long (*callback) (struct bio_st *, int, const char *, int, long, long); + char *cb_arg; /* first argument for the callback */ + int init; + int shutdown; + int flags; /* extra storage */ + int retry_reason; + int num; + void *ptr; + struct bio_st *next_bio; /* used by filter BIOs */ + struct bio_st *prev_bio; /* used by filter BIOs */ + int references; + unsigned long num_read; + unsigned long num_write; + CRYPTO_EX_DATA ex_data; +}; + +DECLARE_STACK_OF(BIO) + +typedef struct bio_f_buffer_ctx_struct { + /*- + * Buffers are setup like this: + * + * <---------------------- size -----------------------> + * +---------------------------------------------------+ + * | consumed | remaining | free space | + * +---------------------------------------------------+ + * <-- off --><------- len -------> + */ + /*- BIO *bio; *//* + * this is now in the BIO struct + */ + int ibuf_size; /* how big is the input buffer */ + int obuf_size; /* how big is the output buffer */ + char *ibuf; /* the char array */ + int ibuf_len; /* how many bytes are in it */ + int ibuf_off; /* write/read offset */ + char *obuf; /* the char array */ + int obuf_len; /* how many bytes are in it */ + int obuf_off; /* write/read offset */ +} BIO_F_BUFFER_CTX; + +/* Prefix and suffix callback in ASN1 BIO */ +typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, + void *parg); + +# ifndef OPENSSL_NO_SCTP +/* SCTP parameter structs */ +struct bio_dgram_sctp_sndinfo { + uint16_t snd_sid; + uint16_t snd_flags; + uint32_t snd_ppid; + uint32_t snd_context; +}; + +struct bio_dgram_sctp_rcvinfo { + uint16_t rcv_sid; + uint16_t rcv_ssn; + uint16_t rcv_flags; + uint32_t rcv_ppid; + uint32_t rcv_tsn; + uint32_t rcv_cumtsn; + uint32_t rcv_context; +}; + +struct bio_dgram_sctp_prinfo { + uint16_t pr_policy; + uint32_t pr_value; +}; +# endif + +/* connect BIO stuff */ +# define BIO_CONN_S_BEFORE 1 +# define BIO_CONN_S_GET_IP 2 +# define BIO_CONN_S_GET_PORT 3 +# define BIO_CONN_S_CREATE_SOCKET 4 +# define BIO_CONN_S_CONNECT 5 +# define BIO_CONN_S_OK 6 +# define BIO_CONN_S_BLOCKED_CONNECT 7 +# define BIO_CONN_S_NBIO 8 +/* + * #define BIO_CONN_get_param_hostname BIO_ctrl + */ + +# define BIO_C_SET_CONNECT 100 +# define BIO_C_DO_STATE_MACHINE 101 +# define BIO_C_SET_NBIO 102 +# define BIO_C_SET_PROXY_PARAM 103 +# define BIO_C_SET_FD 104 +# define BIO_C_GET_FD 105 +# define BIO_C_SET_FILE_PTR 106 +# define BIO_C_GET_FILE_PTR 107 +# define BIO_C_SET_FILENAME 108 +# define BIO_C_SET_SSL 109 +# define BIO_C_GET_SSL 110 +# define BIO_C_SET_MD 111 +# define BIO_C_GET_MD 112 +# define BIO_C_GET_CIPHER_STATUS 113 +# define BIO_C_SET_BUF_MEM 114 +# define BIO_C_GET_BUF_MEM_PTR 115 +# define BIO_C_GET_BUFF_NUM_LINES 116 +# define BIO_C_SET_BUFF_SIZE 117 +# define BIO_C_SET_ACCEPT 118 +# define BIO_C_SSL_MODE 119 +# define BIO_C_GET_MD_CTX 120 +# define BIO_C_GET_PROXY_PARAM 121 +# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ +# define BIO_C_GET_CONNECT 123 +# define BIO_C_GET_ACCEPT 124 +# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 +# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 +# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 +# define BIO_C_FILE_SEEK 128 +# define BIO_C_GET_CIPHER_CTX 129 +# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input + * value */ +# define BIO_C_SET_BIND_MODE 131 +# define BIO_C_GET_BIND_MODE 132 +# define BIO_C_FILE_TELL 133 +# define BIO_C_GET_SOCKS 134 +# define BIO_C_SET_SOCKS 135 + +# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ +# define BIO_C_GET_WRITE_BUF_SIZE 137 +# define BIO_C_MAKE_BIO_PAIR 138 +# define BIO_C_DESTROY_BIO_PAIR 139 +# define BIO_C_GET_WRITE_GUARANTEE 140 +# define BIO_C_GET_READ_REQUEST 141 +# define BIO_C_SHUTDOWN_WR 142 +# define BIO_C_NREAD0 143 +# define BIO_C_NREAD 144 +# define BIO_C_NWRITE0 145 +# define BIO_C_NWRITE 146 +# define BIO_C_RESET_READ_REQUEST 147 +# define BIO_C_SET_MD_CTX 148 + +# define BIO_C_SET_PREFIX 149 +# define BIO_C_GET_PREFIX 150 +# define BIO_C_SET_SUFFIX 151 +# define BIO_C_GET_SUFFIX 152 + +# define BIO_C_SET_EX_ARG 153 +# define BIO_C_GET_EX_ARG 154 + +# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) +# define BIO_get_app_data(s) BIO_get_ex_data(s,0) + +/* BIO_s_connect() and BIO_s_socks4a_connect() */ +# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0,(char *)name) +# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1,(char *)port) +# define BIO_set_conn_ip(b,ip) BIO_ctrl(b,BIO_C_SET_CONNECT,2,(char *)ip) +# define BIO_set_conn_int_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,3,(char *)port) +# define BIO_get_conn_hostname(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0) +# define BIO_get_conn_port(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1) +# define BIO_get_conn_ip(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2) +# define BIO_get_conn_int_port(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) + +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) + +/* BIO_s_accept() */ +# define BIO_set_accept_port(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) +# define BIO_get_accept_port(b) BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0) +/* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ +# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,1,(n)?(void *)"a":NULL) +# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(char *)bio) + +# define BIO_BIND_NORMAL 0 +# define BIO_BIND_REUSEADDR_IF_UNUSED 1 +# define BIO_BIND_REUSEADDR 2 +# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) +# define BIO_get_bind_mode(b,mode) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) + +/* BIO_s_accept() and BIO_s_connect() */ +# define BIO_do_connect(b) BIO_do_handshake(b) +# define BIO_do_accept(b) BIO_do_handshake(b) +# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) + +/* BIO_s_proxy_client() */ +# define BIO_set_url(b,url) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,0,(char *)(url)) +# define BIO_set_proxies(b,p) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,1,(char *)(p)) +/* BIO_set_nbio(b,n) */ +# define BIO_set_filter_bio(b,s) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,2,(char *)(s)) +/* BIO *BIO_get_filter_bio(BIO *bio); */ +# define BIO_set_proxy_cb(b,cb) BIO_callback_ctrl(b,BIO_C_SET_PROXY_PARAM,3,(void *(*cb)())) +# define BIO_set_proxy_header(b,sk) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,4,(char *)sk) +# define BIO_set_no_connect_return(b,bool) BIO_int_ctrl(b,BIO_C_SET_PROXY_PARAM,5,bool) + +# define BIO_get_proxy_header(b,skp) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,0,(char *)skp) +# define BIO_get_proxies(b,pxy_p) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,1,(char *)(pxy_p)) +# define BIO_get_url(b,url) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,2,(char *)(url)) +# define BIO_get_no_connect_return(b) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,5,NULL) + +/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ +# define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) +# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) + +/* BIO_s_file() */ +# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp) +# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp) + +/* BIO_s_fd() and BIO_s_file() */ +# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) +# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) + +/* + * name is cast to lose const, but might be better to route through a + * function so we can do it safely + */ +# ifdef CONST_STRICT +/* + * If you are wondering why this isn't defined, its because CONST_STRICT is + * purely a compile-time kludge to allow const to be checked. + */ +int BIO_read_filename(BIO *b, const char *name); +# else +# define BIO_read_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_READ,(char *)name) +# endif +# define BIO_write_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_WRITE,name) +# define BIO_append_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_APPEND,name) +# define BIO_rw_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) + +/* + * WARNING WARNING, this ups the reference count on the read bio of the SSL + * structure. This is because the ssl read BIO is now pointed to by the + * next_bio field in the bio. So when you free the BIO, make sure you are + * doing a BIO_free_all() to catch the underlying BIO. + */ +# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)ssl) +# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)sslp) +# define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) +# define BIO_set_ssl_renegotiate_bytes(b,num) \ + BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL); +# define BIO_get_num_renegotiates(b) \ + BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL); +# define BIO_set_ssl_renegotiate_timeout(b,seconds) \ + BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL); + +/* defined in evp.h */ +/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)md) */ + +# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp) +# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)bm) +# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0,(char *)pp) +# define BIO_set_mem_eof_return(b,v) \ + BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) + +/* For the BIO_f_buffer() type */ +# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) +# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) +# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) +# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) +# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) + +/* Don't use the next one unless you know what you are doing :-) */ +# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) + +# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) +# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) +# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) +# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) +# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) +# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) +/* ...pending macros have inappropriate return type */ +size_t BIO_ctrl_pending(BIO *b); +size_t BIO_ctrl_wpending(BIO *b); +# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) +# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ + cbp) +# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) + +/* For the BIO_f_buffer() type */ +# define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) + +/* For BIO_s_bio() */ +# define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) +# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) +# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) +# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) +# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) +/* macros with inappropriate type -- but ...pending macros use int too: */ +# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) +# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) +size_t BIO_ctrl_get_write_guarantee(BIO *b); +size_t BIO_ctrl_get_read_request(BIO *b); +int BIO_ctrl_reset_read_request(BIO *b); + +/* ctrl macros for dgram */ +# define BIO_ctrl_dgram_connect(b,peer) \ + (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)peer) +# define BIO_ctrl_set_connected(b, state, peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, state, (char *)peer) +# define BIO_dgram_recv_timedout(b) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) +# define BIO_dgram_send_timedout(b) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) +# define BIO_dgram_get_peer(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)peer) +# define BIO_dgram_set_peer(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)peer) +# define BIO_dgram_get_mtu_overhead(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) + +/* These two aren't currently implemented */ +/* int BIO_get_ex_num(BIO *bio); */ +/* void BIO_set_ex_free_func(BIO *bio,int idx,void (*cb)()); */ +int BIO_set_ex_data(BIO *bio, int idx, void *data); +void *BIO_get_ex_data(BIO *bio, int idx); +int BIO_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +unsigned long BIO_number_read(BIO *bio); +unsigned long BIO_number_written(BIO *bio); + +/* For BIO_f_asn1() */ +int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, + asn1_ps_func *prefix_free); +int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, + asn1_ps_func **pprefix_free); +int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, + asn1_ps_func *suffix_free); +int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, + asn1_ps_func **psuffix_free); + +# ifndef OPENSSL_NO_FP_API +BIO_METHOD *BIO_s_file(void); +BIO *BIO_new_file(const char *filename, const char *mode); +BIO *BIO_new_fp(FILE *stream, int close_flag); +# define BIO_s_file_internal BIO_s_file +# endif +BIO *BIO_new(BIO_METHOD *type); +int BIO_set(BIO *a, BIO_METHOD *type); +int BIO_free(BIO *a); +void BIO_vfree(BIO *a); +int BIO_read(BIO *b, void *data, int len); +int BIO_gets(BIO *bp, char *buf, int size); +int BIO_write(BIO *b, const void *data, int len); +int BIO_puts(BIO *bp, const char *buf); +int BIO_indent(BIO *b, int indent, int max); +long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); +long BIO_callback_ctrl(BIO *b, int cmd, + void (*fp) (struct bio_st *, int, const char *, int, + long, long)); +char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); +long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); +BIO *BIO_push(BIO *b, BIO *append); +BIO *BIO_pop(BIO *b); +void BIO_free_all(BIO *a); +BIO *BIO_find_type(BIO *b, int bio_type); +BIO *BIO_next(BIO *b); +BIO *BIO_get_retry_BIO(BIO *bio, int *reason); +int BIO_get_retry_reason(BIO *bio); +BIO *BIO_dup_chain(BIO *in); + +int BIO_nread0(BIO *bio, char **buf); +int BIO_nread(BIO *bio, char **buf, int num); +int BIO_nwrite0(BIO *bio, char **buf); +int BIO_nwrite(BIO *bio, char **buf, int num); + +long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, + long argl, long ret); + +BIO_METHOD *BIO_s_mem(void); +BIO *BIO_new_mem_buf(const void *buf, int len); +BIO_METHOD *BIO_s_socket(void); +BIO_METHOD *BIO_s_connect(void); +BIO_METHOD *BIO_s_accept(void); +BIO_METHOD *BIO_s_fd(void); +# ifndef OPENSSL_SYS_OS2 +BIO_METHOD *BIO_s_log(void); +# endif +BIO_METHOD *BIO_s_bio(void); +BIO_METHOD *BIO_s_null(void); +BIO_METHOD *BIO_f_null(void); +BIO_METHOD *BIO_f_buffer(void); +# ifdef OPENSSL_SYS_VMS +BIO_METHOD *BIO_f_linebuffer(void); +# endif +BIO_METHOD *BIO_f_nbio_test(void); +# ifndef OPENSSL_NO_DGRAM +BIO_METHOD *BIO_s_datagram(void); +# ifndef OPENSSL_NO_SCTP +BIO_METHOD *BIO_s_datagram_sctp(void); +# endif +# endif + +/* BIO_METHOD *BIO_f_ber(void); */ + +int BIO_sock_should_retry(int i); +int BIO_sock_non_fatal_error(int error); +int BIO_dgram_non_fatal_error(int error); + +int BIO_fd_should_retry(int i); +int BIO_fd_non_fatal_error(int error); +int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), + void *u, const char *s, int len); +int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), + void *u, const char *s, int len, int indent); +int BIO_dump(BIO *b, const char *bytes, int len); +int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); +# ifndef OPENSSL_NO_FP_API +int BIO_dump_fp(FILE *fp, const char *s, int len); +int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); +# endif +int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, + int datalen); + +struct hostent *BIO_gethostbyname(const char *name); +/*- + * We might want a thread-safe interface too: + * struct hostent *BIO_gethostbyname_r(const char *name, + * struct hostent *result, void *buffer, size_t buflen); + * or something similar (caller allocates a struct hostent, + * pointed to by "result", and additional buffer space for the various + * substructures; if the buffer does not suffice, NULL is returned + * and an appropriate error code is set). + */ +int BIO_sock_error(int sock); +int BIO_socket_ioctl(int fd, long type, void *arg); +int BIO_socket_nbio(int fd, int mode); +int BIO_get_port(const char *str, unsigned short *port_ptr); +int BIO_get_host_ip(const char *str, unsigned char *ip); +int BIO_get_accept_socket(char *host_port, int mode); +int BIO_accept(int sock, char **ip_port); +int BIO_sock_init(void); +void BIO_sock_cleanup(void); +int BIO_set_tcp_ndelay(int sock, int turn_on); + +BIO *BIO_new_socket(int sock, int close_flag); +BIO *BIO_new_dgram(int fd, int close_flag); +# ifndef OPENSSL_NO_SCTP +BIO *BIO_new_dgram_sctp(int fd, int close_flag); +int BIO_dgram_is_sctp(BIO *bio); +int BIO_dgram_sctp_notification_cb(BIO *b, + void (*handle_notifications) (BIO *bio, + void + *context, + void *buf), + void *context); +int BIO_dgram_sctp_wait_for_dry(BIO *b); +int BIO_dgram_sctp_msg_waiting(BIO *b); +# endif +BIO *BIO_new_fd(int fd, int close_flag); +BIO *BIO_new_connect(const char *host_port); +BIO *BIO_new_accept(const char *host_port); + +int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +/* + * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. + * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default + * value. + */ + +void BIO_copy_next_retry(BIO *b); + +/* + * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); + */ + +# ifdef __GNUC__ +# define __bio_h__attr__ __attribute__ +# else +# define __bio_h__attr__(x) +# endif +int BIO_printf(BIO *bio, const char *format, ...) +__bio_h__attr__((__format__(__printf__, 2, 3))); +int BIO_vprintf(BIO *bio, const char *format, va_list args) +__bio_h__attr__((__format__(__printf__, 2, 0))); +int BIO_snprintf(char *buf, size_t n, const char *format, ...) +__bio_h__attr__((__format__(__printf__, 3, 4))); +int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) +__bio_h__attr__((__format__(__printf__, 3, 0))); +# undef __bio_h__attr__ + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_BIO_strings(void); + +/* Error codes for the BIO functions. */ + +/* Function codes. */ +# define BIO_F_ACPT_STATE 100 +# define BIO_F_BIO_ACCEPT 101 +# define BIO_F_BIO_BER_GET_HEADER 102 +# define BIO_F_BIO_CALLBACK_CTRL 131 +# define BIO_F_BIO_CTRL 103 +# define BIO_F_BIO_GETHOSTBYNAME 120 +# define BIO_F_BIO_GETS 104 +# define BIO_F_BIO_GET_ACCEPT_SOCKET 105 +# define BIO_F_BIO_GET_HOST_IP 106 +# define BIO_F_BIO_GET_PORT 107 +# define BIO_F_BIO_MAKE_PAIR 121 +# define BIO_F_BIO_NEW 108 +# define BIO_F_BIO_NEW_FILE 109 +# define BIO_F_BIO_NEW_MEM_BUF 126 +# define BIO_F_BIO_NREAD 123 +# define BIO_F_BIO_NREAD0 124 +# define BIO_F_BIO_NWRITE 125 +# define BIO_F_BIO_NWRITE0 122 +# define BIO_F_BIO_PUTS 110 +# define BIO_F_BIO_READ 111 +# define BIO_F_BIO_SOCK_INIT 112 +# define BIO_F_BIO_WRITE 113 +# define BIO_F_BUFFER_CTRL 114 +# define BIO_F_CONN_CTRL 127 +# define BIO_F_CONN_STATE 115 +# define BIO_F_DGRAM_SCTP_READ 132 +# define BIO_F_DGRAM_SCTP_WRITE 133 +# define BIO_F_FILE_CTRL 116 +# define BIO_F_FILE_READ 130 +# define BIO_F_LINEBUFFER_CTRL 129 +# define BIO_F_MEM_READ 128 +# define BIO_F_MEM_WRITE 117 +# define BIO_F_SSL_NEW 118 +# define BIO_F_WSASTARTUP 119 + +/* Reason codes. */ +# define BIO_R_ACCEPT_ERROR 100 +# define BIO_R_BAD_FOPEN_MODE 101 +# define BIO_R_BAD_HOSTNAME_LOOKUP 102 +# define BIO_R_BROKEN_PIPE 124 +# define BIO_R_CONNECT_ERROR 103 +# define BIO_R_EOF_ON_MEMORY_BIO 127 +# define BIO_R_ERROR_SETTING_NBIO 104 +# define BIO_R_ERROR_SETTING_NBIO_ON_ACCEPTED_SOCKET 105 +# define BIO_R_ERROR_SETTING_NBIO_ON_ACCEPT_SOCKET 106 +# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 +# define BIO_R_INVALID_ARGUMENT 125 +# define BIO_R_INVALID_IP_ADDRESS 108 +# define BIO_R_IN_USE 123 +# define BIO_R_KEEPALIVE 109 +# define BIO_R_NBIO_CONNECT_ERROR 110 +# define BIO_R_NO_ACCEPT_PORT_SPECIFIED 111 +# define BIO_R_NO_HOSTNAME_SPECIFIED 112 +# define BIO_R_NO_PORT_DEFINED 113 +# define BIO_R_NO_PORT_SPECIFIED 114 +# define BIO_R_NO_SUCH_FILE 128 +# define BIO_R_NULL_PARAMETER 115 +# define BIO_R_TAG_MISMATCH 116 +# define BIO_R_UNABLE_TO_BIND_SOCKET 117 +# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 +# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 +# define BIO_R_UNINITIALIZED 120 +# define BIO_R_UNSUPPORTED_METHOD 121 +# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 +# define BIO_R_WSASTARTUP 122 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/blowfish.h b/External/include/openssl/blowfish.h new file mode 100644 index 00000000..83293027 --- /dev/null +++ b/External/include/openssl/blowfish.h @@ -0,0 +1,130 @@ +/* crypto/bf/blowfish.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_BLOWFISH_H +# define HEADER_BLOWFISH_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_NO_BF +# error BF is disabled. +# endif + +# define BF_ENCRYPT 1 +# define BF_DECRYPT 0 + +/*- + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! BF_LONG has to be at least 32 bits wide. If it's wider, then ! + * ! BF_LONG_LOG2 has to be defined along. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ + +# if defined(__LP32__) +# define BF_LONG unsigned long +# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) +# define BF_LONG unsigned long +# define BF_LONG_LOG2 3 +/* + * _CRAY note. I could declare short, but I have no idea what impact + * does it have on performance on none-T3E machines. I could declare + * int, but at least on C90 sizeof(int) can be chosen at compile time. + * So I've chosen long... + * + */ +# else +# define BF_LONG unsigned int +# endif + +# define BF_ROUNDS 16 +# define BF_BLOCK 8 + +typedef struct bf_key_st { + BF_LONG P[BF_ROUNDS + 2]; + BF_LONG S[4 * 256]; +} BF_KEY; + +# ifdef OPENSSL_FIPS +void private_BF_set_key(BF_KEY *key, int len, const unsigned char *data); +# endif +void BF_set_key(BF_KEY *key, int len, const unsigned char *data); + +void BF_encrypt(BF_LONG *data, const BF_KEY *key); +void BF_decrypt(BF_LONG *data, const BF_KEY *key); + +void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, + const BF_KEY *key, int enc); +void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, + const BF_KEY *schedule, unsigned char *ivec, int enc); +void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const BF_KEY *schedule, + unsigned char *ivec, int *num, int enc); +void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const BF_KEY *schedule, + unsigned char *ivec, int *num); +const char *BF_options(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/bn.h b/External/include/openssl/bn.h new file mode 100644 index 00000000..86264ae6 --- /dev/null +++ b/External/include/openssl/bn.h @@ -0,0 +1,949 @@ +/* crypto/bn/bn.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * + * Portions of the attached software ("Contribution") are developed by + * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. + * + * The Contribution is licensed pursuant to the Eric Young open source + * license provided above. + * + * The binary polynomial arithmetic software is originally written by + * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. + * + */ + +#ifndef HEADER_BN_H +# define HEADER_BN_H + +# include +# include +# ifndef OPENSSL_NO_FP_API +# include /* FILE */ +# endif +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * These preprocessor symbols control various aspects of the bignum headers + * and library code. They're not defined by any "normal" configuration, as + * they are intended for development and testing purposes. NB: defining all + * three can be useful for debugging application code as well as openssl + * itself. BN_DEBUG - turn on various debugging alterations to the bignum + * code BN_DEBUG_RAND - uses random poisoning of unused words to trip up + * mismanagement of bignum internals. You must also define BN_DEBUG. + */ +/* #define BN_DEBUG */ +/* #define BN_DEBUG_RAND */ + +# ifndef OPENSSL_SMALL_FOOTPRINT +# define BN_MUL_COMBA +# define BN_SQR_COMBA +# define BN_RECURSION +# endif + +/* + * This next option uses the C libraries (2 word)/(1 word) function. If it is + * not defined, I use my C version (which is slower). The reason for this + * flag is that when the particular C compiler library routine is used, and + * the library is linked with a different compiler, the library is missing. + * This mostly happens when the library is built with gcc and then linked + * using normal cc. This would be a common occurrence because gcc normally + * produces code that is 2 times faster than system compilers for the big + * number stuff. For machines with only one compiler (or shared libraries), + * this should be on. Again this in only really a problem on machines using + * "long long's", are 32bit, and are not using my assembler code. + */ +# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || \ + defined(OPENSSL_SYS_WIN32) || defined(linux) +# ifndef BN_DIV2W +# define BN_DIV2W +# endif +# endif + +/* + * assuming long is 64bit - this is the DEC Alpha unsigned long long is only + * 64 bits :-(, don't define BN_LLONG for the DEC Alpha + */ +# ifdef SIXTY_FOUR_BIT_LONG +# define BN_ULLONG unsigned long long +# define BN_ULONG unsigned long +# define BN_LONG long +# define BN_BITS 128 +# define BN_BYTES 8 +# define BN_BITS2 64 +# define BN_BITS4 32 +# define BN_MASK (0xffffffffffffffffffffffffffffffffLL) +# define BN_MASK2 (0xffffffffffffffffL) +# define BN_MASK2l (0xffffffffL) +# define BN_MASK2h (0xffffffff00000000L) +# define BN_MASK2h1 (0xffffffff80000000L) +# define BN_TBIT (0x8000000000000000L) +# define BN_DEC_CONV (10000000000000000000UL) +# define BN_DEC_FMT1 "%lu" +# define BN_DEC_FMT2 "%019lu" +# define BN_DEC_NUM 19 +# define BN_HEX_FMT1 "%lX" +# define BN_HEX_FMT2 "%016lX" +# endif + +/* + * This is where the long long data type is 64 bits, but long is 32. For + * machines where there are 64bit registers, this is the mode to use. IRIX, + * on R4000 and above should use this mode, along with the relevant assembler + * code :-). Do NOT define BN_LLONG. + */ +# ifdef SIXTY_FOUR_BIT +# undef BN_LLONG +# undef BN_ULLONG +# define BN_ULONG unsigned long long +# define BN_LONG long long +# define BN_BITS 128 +# define BN_BYTES 8 +# define BN_BITS2 64 +# define BN_BITS4 32 +# define BN_MASK2 (0xffffffffffffffffLL) +# define BN_MASK2l (0xffffffffL) +# define BN_MASK2h (0xffffffff00000000LL) +# define BN_MASK2h1 (0xffffffff80000000LL) +# define BN_TBIT (0x8000000000000000LL) +# define BN_DEC_CONV (10000000000000000000ULL) +# define BN_DEC_FMT1 "%llu" +# define BN_DEC_FMT2 "%019llu" +# define BN_DEC_NUM 19 +# define BN_HEX_FMT1 "%llX" +# define BN_HEX_FMT2 "%016llX" +# endif + +# ifdef THIRTY_TWO_BIT +# ifdef BN_LLONG +# if defined(_WIN32) && !defined(__GNUC__) +# define BN_ULLONG unsigned __int64 +# define BN_MASK (0xffffffffffffffffI64) +# else +# define BN_ULLONG unsigned long long +# define BN_MASK (0xffffffffffffffffLL) +# endif +# endif +# define BN_ULONG unsigned int +# define BN_LONG int +# define BN_BITS 64 +# define BN_BYTES 4 +# define BN_BITS2 32 +# define BN_BITS4 16 +# define BN_MASK2 (0xffffffffL) +# define BN_MASK2l (0xffff) +# define BN_MASK2h1 (0xffff8000L) +# define BN_MASK2h (0xffff0000L) +# define BN_TBIT (0x80000000L) +# define BN_DEC_CONV (1000000000L) +# define BN_DEC_FMT1 "%u" +# define BN_DEC_FMT2 "%09u" +# define BN_DEC_NUM 9 +# define BN_HEX_FMT1 "%X" +# define BN_HEX_FMT2 "%08X" +# endif + +# define BN_DEFAULT_BITS 1280 + +# define BN_FLG_MALLOCED 0x01 +# define BN_FLG_STATIC_DATA 0x02 + +/* + * avoid leaking exponent information through timing, + * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, + * BN_div() will call BN_div_no_branch, + * BN_mod_inverse() will call BN_mod_inverse_no_branch. + */ +# define BN_FLG_CONSTTIME 0x04 + +# ifdef OPENSSL_NO_DEPRECATED +/* deprecated name for the flag */ +# define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME +/* + * avoid leaking exponent information through timings + * (BN_mod_exp_mont() will call BN_mod_exp_mont_consttime) + */ +# endif + +# ifndef OPENSSL_NO_DEPRECATED +# define BN_FLG_FREE 0x8000 + /* used for debuging */ +# endif +# define BN_set_flags(b,n) ((b)->flags|=(n)) +# define BN_get_flags(b,n) ((b)->flags&(n)) + +/* + * get a clone of a BIGNUM with changed flags, for *temporary* use only (the + * two BIGNUMs cannot not be used in parallel!) + */ +# define BN_with_flags(dest,b,n) ((dest)->d=(b)->d, \ + (dest)->top=(b)->top, \ + (dest)->dmax=(b)->dmax, \ + (dest)->neg=(b)->neg, \ + (dest)->flags=(((dest)->flags & BN_FLG_MALLOCED) \ + | ((b)->flags & ~BN_FLG_MALLOCED) \ + | BN_FLG_STATIC_DATA \ + | (n))) + +/* Already declared in ossl_typ.h */ +# if 0 +typedef struct bignum_st BIGNUM; +/* Used for temp variables (declaration hidden in bn_lcl.h) */ +typedef struct bignum_ctx BN_CTX; +typedef struct bn_blinding_st BN_BLINDING; +typedef struct bn_mont_ctx_st BN_MONT_CTX; +typedef struct bn_recp_ctx_st BN_RECP_CTX; +typedef struct bn_gencb_st BN_GENCB; +# endif + +struct bignum_st { + BN_ULONG *d; /* Pointer to an array of 'BN_BITS2' bit + * chunks. */ + int top; /* Index of last used d +1. */ + /* The next are internal book keeping for bn_expand. */ + int dmax; /* Size of the d array. */ + int neg; /* one if the number is negative */ + int flags; +}; + +/* Used for montgomery multiplication */ +struct bn_mont_ctx_st { + int ri; /* number of bits in R */ + BIGNUM RR; /* used to convert to montgomery form */ + BIGNUM N; /* The modulus */ + BIGNUM Ni; /* R*(1/R mod N) - N*Ni = 1 (Ni is only + * stored for bignum algorithm) */ + BN_ULONG n0[2]; /* least significant word(s) of Ni; (type + * changed with 0.9.9, was "BN_ULONG n0;" + * before) */ + int flags; +}; + +/* + * Used for reciprocal division/mod functions It cannot be shared between + * threads + */ +struct bn_recp_ctx_st { + BIGNUM N; /* the divisor */ + BIGNUM Nr; /* the reciprocal */ + int num_bits; + int shift; + int flags; +}; + +/* Used for slow "generation" functions. */ +struct bn_gencb_st { + unsigned int ver; /* To handle binary (in)compatibility */ + void *arg; /* callback-specific data */ + union { + /* if(ver==1) - handles old style callbacks */ + void (*cb_1) (int, int, void *); + /* if(ver==2) - new callback style */ + int (*cb_2) (int, int, BN_GENCB *); + } cb; +}; +/* Wrapper function to make using BN_GENCB easier, */ +int BN_GENCB_call(BN_GENCB *cb, int a, int b); +/* Macro to populate a BN_GENCB structure with an "old"-style callback */ +# define BN_GENCB_set_old(gencb, callback, cb_arg) { \ + BN_GENCB *tmp_gencb = (gencb); \ + tmp_gencb->ver = 1; \ + tmp_gencb->arg = (cb_arg); \ + tmp_gencb->cb.cb_1 = (callback); } +/* Macro to populate a BN_GENCB structure with a "new"-style callback */ +# define BN_GENCB_set(gencb, callback, cb_arg) { \ + BN_GENCB *tmp_gencb = (gencb); \ + tmp_gencb->ver = 2; \ + tmp_gencb->arg = (cb_arg); \ + tmp_gencb->cb.cb_2 = (callback); } + +# define BN_prime_checks 0 /* default: select number of iterations based + * on the size of the number */ + +/* + * number of Miller-Rabin iterations for an error rate of less than 2^-80 for + * random 'b'-bit input, b >= 100 (taken from table 4.4 in the Handbook of + * Applied Cryptography [Menezes, van Oorschot, Vanstone; CRC Press 1996]; + * original paper: Damgaard, Landrock, Pomerance: Average case error + * estimates for the strong probable prime test. -- Math. Comp. 61 (1993) + * 177-194) + */ +# define BN_prime_checks_for_size(b) ((b) >= 1300 ? 2 : \ + (b) >= 850 ? 3 : \ + (b) >= 650 ? 4 : \ + (b) >= 550 ? 5 : \ + (b) >= 450 ? 6 : \ + (b) >= 400 ? 7 : \ + (b) >= 350 ? 8 : \ + (b) >= 300 ? 9 : \ + (b) >= 250 ? 12 : \ + (b) >= 200 ? 15 : \ + (b) >= 150 ? 18 : \ + /* b >= 100 */ 27) + +# define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) + +/* Note that BN_abs_is_word didn't work reliably for w == 0 until 0.9.8 */ +# define BN_abs_is_word(a,w) ((((a)->top == 1) && ((a)->d[0] == (BN_ULONG)(w))) || \ + (((w) == 0) && ((a)->top == 0))) +# define BN_is_zero(a) ((a)->top == 0) +# define BN_is_one(a) (BN_abs_is_word((a),1) && !(a)->neg) +# define BN_is_word(a,w) (BN_abs_is_word((a),(w)) && (!(w) || !(a)->neg)) +# define BN_is_odd(a) (((a)->top > 0) && ((a)->d[0] & 1)) + +# define BN_one(a) (BN_set_word((a),1)) +# define BN_zero_ex(a) \ + do { \ + BIGNUM *_tmp_bn = (a); \ + _tmp_bn->top = 0; \ + _tmp_bn->neg = 0; \ + } while(0) +# ifdef OPENSSL_NO_DEPRECATED +# define BN_zero(a) BN_zero_ex(a) +# else +# define BN_zero(a) (BN_set_word((a),0)) +# endif + +const BIGNUM *BN_value_one(void); +char *BN_options(void); +BN_CTX *BN_CTX_new(void); +# ifndef OPENSSL_NO_DEPRECATED +void BN_CTX_init(BN_CTX *c); +# endif +void BN_CTX_free(BN_CTX *c); +void BN_CTX_start(BN_CTX *ctx); +BIGNUM *BN_CTX_get(BN_CTX *ctx); +void BN_CTX_end(BN_CTX *ctx); +int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_num_bits(const BIGNUM *a); +int BN_num_bits_word(BN_ULONG); +BIGNUM *BN_new(void); +void BN_init(BIGNUM *); +void BN_clear_free(BIGNUM *a); +BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); +void BN_swap(BIGNUM *a, BIGNUM *b); +BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2bin(const BIGNUM *a, unsigned char *to); +BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2mpi(const BIGNUM *a, unsigned char *to); +int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); +/** BN_set_negative sets sign of a BIGNUM + * \param b pointer to the BIGNUM object + * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise + */ +void BN_set_negative(BIGNUM *b, int n); +/** BN_is_negative returns 1 if the BIGNUM is negative + * \param a pointer to the BIGNUM object + * \return 1 if a < 0 and 0 otherwise + */ +# define BN_is_negative(a) ((a)->neg != 0) + +int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, + BN_CTX *ctx); +# define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) +int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); +int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *m); +int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *m); +int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); +int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); +int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); +int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); + +BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); +BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); +int BN_mul_word(BIGNUM *a, BN_ULONG w); +int BN_add_word(BIGNUM *a, BN_ULONG w); +int BN_sub_word(BIGNUM *a, BN_ULONG w); +int BN_set_word(BIGNUM *a, BN_ULONG w); +BN_ULONG BN_get_word(const BIGNUM *a); + +int BN_cmp(const BIGNUM *a, const BIGNUM *b); +void BN_free(BIGNUM *a); +int BN_is_bit_set(const BIGNUM *a, int n); +int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); +int BN_lshift1(BIGNUM *r, const BIGNUM *a); +int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); + +int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); +int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *in_mont); +int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, + const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, + BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); + +int BN_mask_bits(BIGNUM *a, int n); +# ifndef OPENSSL_NO_FP_API +int BN_print_fp(FILE *fp, const BIGNUM *a); +# endif +# ifdef HEADER_BIO_H +int BN_print(BIO *fp, const BIGNUM *a); +# else +int BN_print(void *fp, const BIGNUM *a); +# endif +int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); +int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); +int BN_rshift1(BIGNUM *r, const BIGNUM *a); +void BN_clear(BIGNUM *a); +BIGNUM *BN_dup(const BIGNUM *a); +int BN_ucmp(const BIGNUM *a, const BIGNUM *b); +int BN_set_bit(BIGNUM *a, int n); +int BN_clear_bit(BIGNUM *a, int n); +char *BN_bn2hex(const BIGNUM *a); +char *BN_bn2dec(const BIGNUM *a); +int BN_hex2bn(BIGNUM **a, const char *str); +int BN_dec2bn(BIGNUM **a, const char *str); +int BN_asc2bn(BIGNUM **a, const char *str); +int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns + * -2 for + * error */ +BIGNUM *BN_mod_inverse(BIGNUM *ret, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); +BIGNUM *BN_mod_sqrt(BIGNUM *ret, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); + +void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); + +/* Deprecated versions */ +# ifndef OPENSSL_NO_DEPRECATED +BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, + const BIGNUM *add, const BIGNUM *rem, + void (*callback) (int, int, void *), void *cb_arg); +int BN_is_prime(const BIGNUM *p, int nchecks, + void (*callback) (int, int, void *), + BN_CTX *ctx, void *cb_arg); +int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, + void (*callback) (int, int, void *), BN_CTX *ctx, + void *cb_arg, int do_trial_division); +# endif /* !defined(OPENSSL_NO_DEPRECATED) */ + +/* Newer versions */ +int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, + const BIGNUM *rem, BN_GENCB *cb); +int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); +int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, + int do_trial_division, BN_GENCB *cb); + +int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); + +int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, + const BIGNUM *Xp, const BIGNUM *Xp1, + const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, + BN_GENCB *cb); +int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, + BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, + BN_CTX *ctx, BN_GENCB *cb); + +BN_MONT_CTX *BN_MONT_CTX_new(void); +void BN_MONT_CTX_init(BN_MONT_CTX *ctx); +int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + BN_MONT_CTX *mont, BN_CTX *ctx); +# define BN_to_montgomery(r,a,mont,ctx) BN_mod_mul_montgomery(\ + (r),(a),&((mont)->RR),(mont),(ctx)) +int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, + BN_MONT_CTX *mont, BN_CTX *ctx); +void BN_MONT_CTX_free(BN_MONT_CTX *mont); +int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); +BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); +BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock, + const BIGNUM *mod, BN_CTX *ctx); + +/* BN_BLINDING flags */ +# define BN_BLINDING_NO_UPDATE 0x00000001 +# define BN_BLINDING_NO_RECREATE 0x00000002 + +BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); +void BN_BLINDING_free(BN_BLINDING *b); +int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); +int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, + BN_CTX *); +# ifndef OPENSSL_NO_DEPRECATED +unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); +void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); +# endif +CRYPTO_THREADID *BN_BLINDING_thread_id(BN_BLINDING *); +unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); +void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); +BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, + const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, + int (*bn_mod_exp) (BIGNUM *r, + const BIGNUM *a, + const BIGNUM *p, + const BIGNUM *m, + BN_CTX *ctx, + BN_MONT_CTX *m_ctx), + BN_MONT_CTX *m_ctx); + +# ifndef OPENSSL_NO_DEPRECATED +void BN_set_params(int mul, int high, int low, int mont); +int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */ +# endif + +void BN_RECP_CTX_init(BN_RECP_CTX *recp); +BN_RECP_CTX *BN_RECP_CTX_new(void); +void BN_RECP_CTX_free(BN_RECP_CTX *recp); +int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); +int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, + BN_RECP_CTX *recp, BN_CTX *ctx); +int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); +int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, + BN_RECP_CTX *recp, BN_CTX *ctx); + +# ifndef OPENSSL_NO_EC2M + +/* + * Functions for arithmetic over binary polynomials represented by BIGNUMs. + * The BIGNUM::neg property of BIGNUMs representing binary polynomials is + * ignored. Note that input arguments are not const so that their bit arrays + * can be expanded to the appropriate size if needed. + */ + +/* + * r = a + b + */ +int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +# define BN_GF2m_sub(r, a, b) BN_GF2m_add(r, a, b) +/* + * r=a mod p + */ +int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); +/* r = (a * b) mod p */ +int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +/* r = (a * a) mod p */ +int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +/* r = (1 / b) mod p */ +int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); +/* r = (a / b) mod p */ +int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +/* r = (a ^ b) mod p */ +int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +/* r = sqrt(a) mod p */ +int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + BN_CTX *ctx); +/* r^2 + r = a mod p */ +int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + BN_CTX *ctx); +# define BN_GF2m_cmp(a, b) BN_ucmp((a), (b)) +/*- + * Some functions allow for representation of the irreducible polynomials + * as an unsigned int[], say p. The irreducible f(t) is then of the form: + * t^p[0] + t^p[1] + ... + t^p[k] + * where m = p[0] > p[1] > ... > p[k] = 0. + */ +/* r = a mod p */ +int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); +/* r = (a * b) mod p */ +int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +/* r = (a * a) mod p */ +int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], + BN_CTX *ctx); +/* r = (1 / b) mod p */ +int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], + BN_CTX *ctx); +/* r = (a / b) mod p */ +int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +/* r = (a ^ b) mod p */ +int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +/* r = sqrt(a) mod p */ +int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, + const int p[], BN_CTX *ctx); +/* r^2 + r = a mod p */ +int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, + const int p[], BN_CTX *ctx); +int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); +int BN_GF2m_arr2poly(const int p[], BIGNUM *a); + +# endif + +/* + * faster mod functions for the 'NIST primes' 0 <= a < p^2 + */ +int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); + +const BIGNUM *BN_get0_nist_prime_192(void); +const BIGNUM *BN_get0_nist_prime_224(void); +const BIGNUM *BN_get0_nist_prime_256(void); +const BIGNUM *BN_get0_nist_prime_384(void); +const BIGNUM *BN_get0_nist_prime_521(void); + +/* library internal functions */ + +# define bn_expand(a,bits) \ + ( \ + bits > (INT_MAX - BN_BITS2 + 1) ? \ + NULL \ + : \ + (((bits+BN_BITS2-1)/BN_BITS2) <= (a)->dmax) ? \ + (a) \ + : \ + bn_expand2((a),(bits+BN_BITS2-1)/BN_BITS2) \ + ) + +# define bn_wexpand(a,words) (((words) <= (a)->dmax)?(a):bn_expand2((a),(words))) +BIGNUM *bn_expand2(BIGNUM *a, int words); +# ifndef OPENSSL_NO_DEPRECATED +BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ +# endif + +/*- + * Bignum consistency macros + * There is one "API" macro, bn_fix_top(), for stripping leading zeroes from + * bignum data after direct manipulations on the data. There is also an + * "internal" macro, bn_check_top(), for verifying that there are no leading + * zeroes. Unfortunately, some auditing is required due to the fact that + * bn_fix_top() has become an overabused duct-tape because bignum data is + * occasionally passed around in an inconsistent state. So the following + * changes have been made to sort this out; + * - bn_fix_top()s implementation has been moved to bn_correct_top() + * - if BN_DEBUG isn't defined, bn_fix_top() maps to bn_correct_top(), and + * bn_check_top() is as before. + * - if BN_DEBUG *is* defined; + * - bn_check_top() tries to pollute unused words even if the bignum 'top' is + * consistent. (ed: only if BN_DEBUG_RAND is defined) + * - bn_fix_top() maps to bn_check_top() rather than "fixing" anything. + * The idea is to have debug builds flag up inconsistent bignums when they + * occur. If that occurs in a bn_fix_top(), we examine the code in question; if + * the use of bn_fix_top() was appropriate (ie. it follows directly after code + * that manipulates the bignum) it is converted to bn_correct_top(), and if it + * was not appropriate, we convert it permanently to bn_check_top() and track + * down the cause of the bug. Eventually, no internal code should be using the + * bn_fix_top() macro. External applications and libraries should try this with + * their own code too, both in terms of building against the openssl headers + * with BN_DEBUG defined *and* linking with a version of OpenSSL built with it + * defined. This not only improves external code, it provides more test + * coverage for openssl's own code. + */ + +# ifdef BN_DEBUG + +/* We only need assert() when debugging */ +# include + +# ifdef BN_DEBUG_RAND +/* To avoid "make update" cvs wars due to BN_DEBUG, use some tricks */ +# ifndef RAND_pseudo_bytes +int RAND_pseudo_bytes(unsigned char *buf, int num); +# define BN_DEBUG_TRIX +# endif +# define bn_pollute(a) \ + do { \ + const BIGNUM *_bnum1 = (a); \ + if(_bnum1->top < _bnum1->dmax) { \ + unsigned char _tmp_char; \ + /* We cast away const without the compiler knowing, any \ + * *genuinely* constant variables that aren't mutable \ + * wouldn't be constructed with top!=dmax. */ \ + BN_ULONG *_not_const; \ + memcpy(&_not_const, &_bnum1->d, sizeof(BN_ULONG*)); \ + /* Debug only - safe to ignore error return */ \ + RAND_pseudo_bytes(&_tmp_char, 1); \ + memset((unsigned char *)(_not_const + _bnum1->top), _tmp_char, \ + (_bnum1->dmax - _bnum1->top) * sizeof(BN_ULONG)); \ + } \ + } while(0) +# ifdef BN_DEBUG_TRIX +# undef RAND_pseudo_bytes +# endif +# else +# define bn_pollute(a) +# endif +# define bn_check_top(a) \ + do { \ + const BIGNUM *_bnum2 = (a); \ + if (_bnum2 != NULL) { \ + assert((_bnum2->top == 0) || \ + (_bnum2->d[_bnum2->top - 1] != 0)); \ + bn_pollute(_bnum2); \ + } \ + } while(0) + +# define bn_fix_top(a) bn_check_top(a) + +# define bn_check_size(bn, bits) bn_wcheck_size(bn, ((bits+BN_BITS2-1))/BN_BITS2) +# define bn_wcheck_size(bn, words) \ + do { \ + const BIGNUM *_bnum2 = (bn); \ + assert((words) <= (_bnum2)->dmax && (words) >= (_bnum2)->top); \ + /* avoid unused variable warning with NDEBUG */ \ + (void)(_bnum2); \ + } while(0) + +# else /* !BN_DEBUG */ + +# define bn_pollute(a) +# define bn_check_top(a) +# define bn_fix_top(a) bn_correct_top(a) +# define bn_check_size(bn, bits) +# define bn_wcheck_size(bn, words) + +# endif + +# define bn_correct_top(a) \ + { \ + BN_ULONG *ftl; \ + int tmp_top = (a)->top; \ + if (tmp_top > 0) \ + { \ + for (ftl= &((a)->d[tmp_top-1]); tmp_top > 0; tmp_top--) \ + if (*(ftl--)) break; \ + (a)->top = tmp_top; \ + } \ + bn_pollute(a); \ + } + +BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num, + BN_ULONG w); +BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w); +void bn_sqr_words(BN_ULONG *rp, const BN_ULONG *ap, int num); +BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d); +BN_ULONG bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, + int num); +BN_ULONG bn_sub_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, + int num); + +/* Primes from RFC 2409 */ +BIGNUM *get_rfc2409_prime_768(BIGNUM *bn); +BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn); + +/* Primes from RFC 3526 */ +BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn); +BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn); +BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn); +BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn); +BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn); +BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn); + +int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_BN_strings(void); + +/* Error codes for the BN functions. */ + +/* Function codes. */ +# define BN_F_BNRAND 127 +# define BN_F_BN_BLINDING_CONVERT_EX 100 +# define BN_F_BN_BLINDING_CREATE_PARAM 128 +# define BN_F_BN_BLINDING_INVERT_EX 101 +# define BN_F_BN_BLINDING_NEW 102 +# define BN_F_BN_BLINDING_UPDATE 103 +# define BN_F_BN_BN2DEC 104 +# define BN_F_BN_BN2HEX 105 +# define BN_F_BN_CTX_GET 116 +# define BN_F_BN_CTX_NEW 106 +# define BN_F_BN_CTX_START 129 +# define BN_F_BN_DIV 107 +# define BN_F_BN_DIV_NO_BRANCH 138 +# define BN_F_BN_DIV_RECP 130 +# define BN_F_BN_EXP 123 +# define BN_F_BN_EXPAND2 108 +# define BN_F_BN_EXPAND_INTERNAL 120 +# define BN_F_BN_GF2M_MOD 131 +# define BN_F_BN_GF2M_MOD_EXP 132 +# define BN_F_BN_GF2M_MOD_MUL 133 +# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 +# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 +# define BN_F_BN_GF2M_MOD_SQR 136 +# define BN_F_BN_GF2M_MOD_SQRT 137 +# define BN_F_BN_LSHIFT 145 +# define BN_F_BN_MOD_EXP2_MONT 118 +# define BN_F_BN_MOD_EXP_MONT 109 +# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 +# define BN_F_BN_MOD_EXP_MONT_WORD 117 +# define BN_F_BN_MOD_EXP_RECP 125 +# define BN_F_BN_MOD_EXP_SIMPLE 126 +# define BN_F_BN_MOD_INVERSE 110 +# define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 +# define BN_F_BN_MOD_LSHIFT_QUICK 119 +# define BN_F_BN_MOD_MUL_RECIPROCAL 111 +# define BN_F_BN_MOD_SQRT 121 +# define BN_F_BN_MPI2BN 112 +# define BN_F_BN_NEW 113 +# define BN_F_BN_RAND 114 +# define BN_F_BN_RAND_RANGE 122 +# define BN_F_BN_RSHIFT 146 +# define BN_F_BN_USUB 115 + +/* Reason codes. */ +# define BN_R_ARG2_LT_ARG3 100 +# define BN_R_BAD_RECIPROCAL 101 +# define BN_R_BIGNUM_TOO_LONG 114 +# define BN_R_BITS_TOO_SMALL 118 +# define BN_R_CALLED_WITH_EVEN_MODULUS 102 +# define BN_R_DIV_BY_ZERO 103 +# define BN_R_ENCODING_ERROR 104 +# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 +# define BN_R_INPUT_NOT_REDUCED 110 +# define BN_R_INVALID_LENGTH 106 +# define BN_R_INVALID_RANGE 115 +# define BN_R_INVALID_SHIFT 119 +# define BN_R_NOT_A_SQUARE 111 +# define BN_R_NOT_INITIALIZED 107 +# define BN_R_NO_INVERSE 108 +# define BN_R_NO_SOLUTION 116 +# define BN_R_P_IS_NOT_PRIME 112 +# define BN_R_TOO_MANY_ITERATIONS 113 +# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/buffer.h b/External/include/openssl/buffer.h new file mode 100644 index 00000000..efd240a5 --- /dev/null +++ b/External/include/openssl/buffer.h @@ -0,0 +1,125 @@ +/* crypto/buffer/buffer.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_BUFFER_H +# define HEADER_BUFFER_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +# if !defined(NO_SYS_TYPES_H) +# include +# endif + +/* Already declared in ossl_typ.h */ +/* typedef struct buf_mem_st BUF_MEM; */ + +struct buf_mem_st { + size_t length; /* current number of bytes */ + char *data; + size_t max; /* size of buffer */ +}; + +BUF_MEM *BUF_MEM_new(void); +void BUF_MEM_free(BUF_MEM *a); +int BUF_MEM_grow(BUF_MEM *str, size_t len); +int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); +size_t BUF_strnlen(const char *str, size_t maxlen); +char *BUF_strdup(const char *str); + +/* + * Like strndup, but in addition, explicitly guarantees to never read past the + * first |siz| bytes of |str|. + */ +char *BUF_strndup(const char *str, size_t siz); + +void *BUF_memdup(const void *data, size_t siz); +void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); + +/* safe string functions */ +size_t BUF_strlcpy(char *dst, const char *src, size_t siz); +size_t BUF_strlcat(char *dst, const char *src, size_t siz); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_BUF_strings(void); + +/* Error codes for the BUF functions. */ + +/* Function codes. */ +# define BUF_F_BUF_MEMDUP 103 +# define BUF_F_BUF_MEM_GROW 100 +# define BUF_F_BUF_MEM_GROW_CLEAN 105 +# define BUF_F_BUF_MEM_NEW 101 +# define BUF_F_BUF_STRDUP 102 +# define BUF_F_BUF_STRNDUP 104 + +/* Reason codes. */ + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/camellia.h b/External/include/openssl/camellia.h new file mode 100644 index 00000000..45e8d25b --- /dev/null +++ b/External/include/openssl/camellia.h @@ -0,0 +1,132 @@ +/* crypto/camellia/camellia.h */ +/* ==================================================================== + * Copyright (c) 2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + */ + +#ifndef HEADER_CAMELLIA_H +# define HEADER_CAMELLIA_H + +# include + +# ifdef OPENSSL_NO_CAMELLIA +# error CAMELLIA is disabled. +# endif + +# include + +# define CAMELLIA_ENCRYPT 1 +# define CAMELLIA_DECRYPT 0 + +/* + * Because array size can't be a const in C, the following two are macros. + * Both sizes are in bytes. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* This should be a hidden type, but EVP requires that the size be known */ + +# define CAMELLIA_BLOCK_SIZE 16 +# define CAMELLIA_TABLE_BYTE_LEN 272 +# define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) + +typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match + * with WORD */ + +struct camellia_key_st { + union { + double d; /* ensures 64-bit align */ + KEY_TABLE_TYPE rd_key; + } u; + int grand_rounds; +}; +typedef struct camellia_key_st CAMELLIA_KEY; + +# ifdef OPENSSL_FIPS +int private_Camellia_set_key(const unsigned char *userKey, const int bits, + CAMELLIA_KEY *key); +# endif +int Camellia_set_key(const unsigned char *userKey, const int bits, + CAMELLIA_KEY *key); + +void Camellia_encrypt(const unsigned char *in, unsigned char *out, + const CAMELLIA_KEY *key); +void Camellia_decrypt(const unsigned char *in, unsigned char *out, + const CAMELLIA_KEY *key); + +void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, + const CAMELLIA_KEY *key, const int enc); +void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, const int enc); +void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num, const int enc); +void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num, const int enc); +void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num, const int enc); +void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num); +void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char ivec[CAMELLIA_BLOCK_SIZE], + unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], + unsigned int *num); + +#ifdef __cplusplus +} +#endif + +#endif /* !HEADER_Camellia_H */ diff --git a/External/include/openssl/cast.h b/External/include/openssl/cast.h new file mode 100644 index 00000000..0003ec9c --- /dev/null +++ b/External/include/openssl/cast.h @@ -0,0 +1,107 @@ +/* crypto/cast/cast.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_CAST_H +# define HEADER_CAST_H + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +# ifdef OPENSSL_NO_CAST +# error CAST is disabled. +# endif + +# define CAST_ENCRYPT 1 +# define CAST_DECRYPT 0 + +# define CAST_LONG unsigned int + +# define CAST_BLOCK 8 +# define CAST_KEY_LENGTH 16 + +typedef struct cast_key_st { + CAST_LONG data[32]; + int short_key; /* Use reduced rounds for short key */ +} CAST_KEY; + +# ifdef OPENSSL_FIPS +void private_CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); +# endif +void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); +void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, + const CAST_KEY *key, int enc); +void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); +void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); +void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, + long length, const CAST_KEY *ks, unsigned char *iv, + int enc); +void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const CAST_KEY *schedule, + unsigned char *ivec, int *num, int enc); +void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const CAST_KEY *schedule, + unsigned char *ivec, int *num); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/cmac.h b/External/include/openssl/cmac.h new file mode 100644 index 00000000..175be834 --- /dev/null +++ b/External/include/openssl/cmac.h @@ -0,0 +1,82 @@ +/* crypto/cmac/cmac.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2010 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + */ + +#ifndef HEADER_CMAC_H +# define HEADER_CMAC_H + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +/* Opaque */ +typedef struct CMAC_CTX_st CMAC_CTX; + +CMAC_CTX *CMAC_CTX_new(void); +void CMAC_CTX_cleanup(CMAC_CTX *ctx); +void CMAC_CTX_free(CMAC_CTX *ctx); +EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); +int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); + +int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen, + const EVP_CIPHER *cipher, ENGINE *impl); +int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen); +int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen); +int CMAC_resume(CMAC_CTX *ctx); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/cms.h b/External/include/openssl/cms.h new file mode 100644 index 00000000..e6c7f964 --- /dev/null +++ b/External/include/openssl/cms.h @@ -0,0 +1,555 @@ +/* crypto/cms/cms.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + */ + +#ifndef HEADER_CMS_H +# define HEADER_CMS_H + +# include + +# ifdef OPENSSL_NO_CMS +# error CMS is disabled. +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct CMS_ContentInfo_st CMS_ContentInfo; +typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_CertificateChoices CMS_CertificateChoices; +typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; +typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; +typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; +typedef struct CMS_Receipt_st CMS_Receipt; +typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; +typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; + +DECLARE_STACK_OF(CMS_SignerInfo) +DECLARE_STACK_OF(GENERAL_NAMES) +DECLARE_STACK_OF(CMS_RecipientEncryptedKey) +DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) +DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) +DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) + +# define CMS_SIGNERINFO_ISSUER_SERIAL 0 +# define CMS_SIGNERINFO_KEYIDENTIFIER 1 + +# define CMS_RECIPINFO_NONE -1 +# define CMS_RECIPINFO_TRANS 0 +# define CMS_RECIPINFO_AGREE 1 +# define CMS_RECIPINFO_KEK 2 +# define CMS_RECIPINFO_PASS 3 +# define CMS_RECIPINFO_OTHER 4 + +/* S/MIME related flags */ + +# define CMS_TEXT 0x1 +# define CMS_NOCERTS 0x2 +# define CMS_NO_CONTENT_VERIFY 0x4 +# define CMS_NO_ATTR_VERIFY 0x8 +# define CMS_NOSIGS \ + (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) +# define CMS_NOINTERN 0x10 +# define CMS_NO_SIGNER_CERT_VERIFY 0x20 +# define CMS_NOVERIFY 0x20 +# define CMS_DETACHED 0x40 +# define CMS_BINARY 0x80 +# define CMS_NOATTR 0x100 +# define CMS_NOSMIMECAP 0x200 +# define CMS_NOOLDMIMETYPE 0x400 +# define CMS_CRLFEOL 0x800 +# define CMS_STREAM 0x1000 +# define CMS_NOCRL 0x2000 +# define CMS_PARTIAL 0x4000 +# define CMS_REUSE_DIGEST 0x8000 +# define CMS_USE_KEYID 0x10000 +# define CMS_DEBUG_DECRYPT 0x20000 +# define CMS_KEY_PARAM 0x40000 + +const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms); + +BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); +int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); + +ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); +int CMS_is_detached(CMS_ContentInfo *cms); +int CMS_set_detached(CMS_ContentInfo *cms, int detached); + +# ifdef HEADER_PEM_H +DECLARE_PEM_rw_const(CMS, CMS_ContentInfo) +# endif +int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); +CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); +int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); + +BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); +int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); +int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, + int flags); +CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); +int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); + +int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, + unsigned int flags); + +CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, BIO *data, + unsigned int flags); + +CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, + X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, unsigned int flags); + +int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); +CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); + +int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags); +CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, + unsigned int flags); + +int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, + const unsigned char *key, size_t keylen, + BIO *dcont, BIO *out, unsigned int flags); + +CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, + const unsigned char *key, + size_t keylen, unsigned int flags); + +int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, + const unsigned char *key, size_t keylen); + +int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); + +int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, + STACK_OF(X509) *certs, + X509_STORE *store, unsigned int flags); + +STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); + +CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, + const EVP_CIPHER *cipher, unsigned int flags); + +int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, + BIO *dcont, BIO *out, unsigned int flags); + +int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); +int CMS_decrypt_set1_key(CMS_ContentInfo *cms, + unsigned char *key, size_t keylen, + unsigned char *id, size_t idlen); +int CMS_decrypt_set1_password(CMS_ContentInfo *cms, + unsigned char *pass, ossl_ssize_t passlen); + +STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); +int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); +EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); +CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); +CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, + X509 *recip, unsigned int flags); +int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); +int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); +int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, + EVP_PKEY **pk, X509 **recip, + X509_ALGOR **palg); +int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); + +CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, + unsigned char *key, size_t keylen, + unsigned char *id, size_t idlen, + ASN1_GENERALIZEDTIME *date, + ASN1_OBJECT *otherTypeId, + ASN1_TYPE *otherType); + +int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pid, + ASN1_GENERALIZEDTIME **pdate, + ASN1_OBJECT **potherid, + ASN1_TYPE **pothertype); + +int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, + unsigned char *key, size_t keylen); + +int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, + const unsigned char *id, size_t idlen); + +int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, + unsigned char *pass, + ossl_ssize_t passlen); + +CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, + int iter, int wrap_nid, + int pbe_nid, + unsigned char *pass, + ossl_ssize_t passlen, + const EVP_CIPHER *kekciph); + +int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); +int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); + +int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags); +CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); + +int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); +const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); + +CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); +int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); +int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); +STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); + +CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); +int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); +int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); +STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); + +int CMS_SignedData_init(CMS_ContentInfo *cms); +CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, + X509 *signer, EVP_PKEY *pk, const EVP_MD *md, + unsigned int flags); +EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); +EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); +STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); + +void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); +int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, ASN1_INTEGER **sno); +int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); +int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + unsigned int flags); +void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, + X509 **signer, X509_ALGOR **pdig, + X509_ALGOR **psig); +ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); +int CMS_SignerInfo_sign(CMS_SignerInfo *si); +int CMS_SignerInfo_verify(CMS_SignerInfo *si); +int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); + +int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); +int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, + int algnid, int keysize); +int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); + +int CMS_signed_get_attr_count(const CMS_SignerInfo *si); +int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos); +int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); +X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); +int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); +int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len); +int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len); +int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len); +void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, + int lastpos, int type); + +int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); +int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos); +int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); +X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); +int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); +int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len); +int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len); +int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len); +void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, + int lastpos, int type); + +# ifdef HEADER_X509V3_H + +int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); +CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, + int allorfirst, + STACK_OF(GENERAL_NAMES) + *receiptList, STACK_OF(GENERAL_NAMES) + *receiptsTo); +int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); +void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, + ASN1_STRING **pcid, + int *pallorfirst, + STACK_OF(GENERAL_NAMES) **plist, + STACK_OF(GENERAL_NAMES) **prto); +# endif +int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pukm); +STACK_OF(CMS_RecipientEncryptedKey) +*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); + +int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, + X509_ALGOR **pubalg, + ASN1_BIT_STRING **pubkey, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); + +int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); + +int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, + ASN1_OCTET_STRING **keyid, + ASN1_GENERALIZEDTIME **tm, + CMS_OtherKeyAttribute **other, + X509_NAME **issuer, ASN1_INTEGER **sno); +int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, + X509 *cert); +int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); +EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); +int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri, + CMS_RecipientEncryptedKey *rek); + +int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, + ASN1_OCTET_STRING *ukm, int keylen); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_CMS_strings(void); + +/* Error codes for the CMS functions. */ + +/* Function codes. */ +# define CMS_F_CHECK_CONTENT 99 +# define CMS_F_CMS_ADD0_CERT 164 +# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 +# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 +# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 +# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 +# define CMS_F_CMS_ADD1_SIGNER 102 +# define CMS_F_CMS_ADD1_SIGNINGTIME 103 +# define CMS_F_CMS_COMPRESS 104 +# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 +# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 +# define CMS_F_CMS_COPY_CONTENT 107 +# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 +# define CMS_F_CMS_DATA 109 +# define CMS_F_CMS_DATAFINAL 110 +# define CMS_F_CMS_DATAINIT 111 +# define CMS_F_CMS_DECRYPT 112 +# define CMS_F_CMS_DECRYPT_SET1_KEY 113 +# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 +# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 +# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 +# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 +# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 +# define CMS_F_CMS_DIGEST_VERIFY 118 +# define CMS_F_CMS_ENCODE_RECEIPT 161 +# define CMS_F_CMS_ENCRYPT 119 +# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 +# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 +# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 +# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 +# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 +# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 +# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 +# define CMS_F_CMS_ENV_ASN1_CTRL 171 +# define CMS_F_CMS_FINAL 127 +# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 +# define CMS_F_CMS_GET0_CONTENT 129 +# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 +# define CMS_F_CMS_GET0_ENVELOPED 131 +# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 +# define CMS_F_CMS_GET0_SIGNED 133 +# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 +# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 +# define CMS_F_CMS_RECEIPT_VERIFY 160 +# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 +# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 +# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 +# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 +# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 +# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 +# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 +# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 +# define CMS_F_CMS_SD_ASN1_CTRL 170 +# define CMS_F_CMS_SET1_IAS 176 +# define CMS_F_CMS_SET1_KEYID 177 +# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 +# define CMS_F_CMS_SET_DETACHED 147 +# define CMS_F_CMS_SIGN 148 +# define CMS_F_CMS_SIGNED_DATA_INIT 149 +# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 +# define CMS_F_CMS_SIGNERINFO_SIGN 151 +# define CMS_F_CMS_SIGNERINFO_VERIFY 152 +# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 +# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 +# define CMS_F_CMS_SIGN_RECEIPT 163 +# define CMS_F_CMS_STREAM 155 +# define CMS_F_CMS_UNCOMPRESS 156 +# define CMS_F_CMS_VERIFY 157 + +/* Reason codes. */ +# define CMS_R_ADD_SIGNER_ERROR 99 +# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 +# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 +# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 +# define CMS_R_CIPHER_INITIALISATION_ERROR 101 +# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 +# define CMS_R_CMS_DATAFINAL_ERROR 103 +# define CMS_R_CMS_LIB 104 +# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 +# define CMS_R_CONTENT_NOT_FOUND 105 +# define CMS_R_CONTENT_TYPE_MISMATCH 171 +# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 +# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 +# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 +# define CMS_R_CONTENT_VERIFY_ERROR 109 +# define CMS_R_CTRL_ERROR 110 +# define CMS_R_CTRL_FAILURE 111 +# define CMS_R_DECRYPT_ERROR 112 +# define CMS_R_DIGEST_ERROR 161 +# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 +# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 +# define CMS_R_ERROR_SETTING_KEY 115 +# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 +# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 +# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 +# define CMS_R_INVALID_KEY_LENGTH 118 +# define CMS_R_MD_BIO_INIT_ERROR 119 +# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 +# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 +# define CMS_R_MSGSIGDIGEST_ERROR 172 +# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 +# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 +# define CMS_R_NEED_ONE_SIGNER 164 +# define CMS_R_NOT_A_SIGNED_RECEIPT 165 +# define CMS_R_NOT_ENCRYPTED_DATA 122 +# define CMS_R_NOT_KEK 123 +# define CMS_R_NOT_KEY_AGREEMENT 181 +# define CMS_R_NOT_KEY_TRANSPORT 124 +# define CMS_R_NOT_PWRI 177 +# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 +# define CMS_R_NO_CIPHER 126 +# define CMS_R_NO_CONTENT 127 +# define CMS_R_NO_CONTENT_TYPE 173 +# define CMS_R_NO_DEFAULT_DIGEST 128 +# define CMS_R_NO_DIGEST_SET 129 +# define CMS_R_NO_KEY 130 +# define CMS_R_NO_KEY_OR_CERT 174 +# define CMS_R_NO_MATCHING_DIGEST 131 +# define CMS_R_NO_MATCHING_RECIPIENT 132 +# define CMS_R_NO_MATCHING_SIGNATURE 166 +# define CMS_R_NO_MSGSIGDIGEST 167 +# define CMS_R_NO_PASSWORD 178 +# define CMS_R_NO_PRIVATE_KEY 133 +# define CMS_R_NO_PUBLIC_KEY 134 +# define CMS_R_NO_RECEIPT_REQUEST 168 +# define CMS_R_NO_SIGNERS 135 +# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 +# define CMS_R_RECEIPT_DECODE_ERROR 169 +# define CMS_R_RECIPIENT_ERROR 137 +# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 +# define CMS_R_SIGNFINAL_ERROR 139 +# define CMS_R_SMIME_TEXT_ERROR 140 +# define CMS_R_STORE_INIT_ERROR 141 +# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 +# define CMS_R_TYPE_NOT_DATA 143 +# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 +# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 +# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 +# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 +# define CMS_R_UNKNOWN_CIPHER 148 +# define CMS_R_UNKNOWN_DIGEST_ALGORIHM 149 +# define CMS_R_UNKNOWN_ID 150 +# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 +# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 +# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 +# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 +# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 +# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE 155 +# define CMS_R_UNSUPPORTED_TYPE 156 +# define CMS_R_UNWRAP_ERROR 157 +# define CMS_R_UNWRAP_FAILURE 180 +# define CMS_R_VERIFICATION_FAILURE 158 +# define CMS_R_WRAP_ERROR 159 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/comp.h b/External/include/openssl/comp.h new file mode 100644 index 00000000..60a07340 --- /dev/null +++ b/External/include/openssl/comp.h @@ -0,0 +1,83 @@ + +#ifndef HEADER_COMP_H +# define HEADER_COMP_H + +# include + +# ifdef OPENSSL_NO_COMP +# error COMP is disabled. +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct comp_ctx_st COMP_CTX; + +typedef struct comp_method_st { + int type; /* NID for compression library */ + const char *name; /* A text string to identify the library */ + int (*init) (COMP_CTX *ctx); + void (*finish) (COMP_CTX *ctx); + int (*compress) (COMP_CTX *ctx, + unsigned char *out, unsigned int olen, + unsigned char *in, unsigned int ilen); + int (*expand) (COMP_CTX *ctx, + unsigned char *out, unsigned int olen, + unsigned char *in, unsigned int ilen); + /* + * The following two do NOTHING, but are kept for backward compatibility + */ + long (*ctrl) (void); + long (*callback_ctrl) (void); +} COMP_METHOD; + +struct comp_ctx_st { + COMP_METHOD *meth; + unsigned long compress_in; + unsigned long compress_out; + unsigned long expand_in; + unsigned long expand_out; + CRYPTO_EX_DATA ex_data; +}; + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +COMP_METHOD *COMP_rle(void); +COMP_METHOD *COMP_zlib(void); +void COMP_zlib_cleanup(void); + +# ifdef HEADER_BIO_H +# ifdef ZLIB +BIO_METHOD *BIO_f_zlib(void); +# endif +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_COMP_strings(void); + +/* Error codes for the COMP functions. */ + +/* Function codes. */ +# define COMP_F_BIO_ZLIB_FLUSH 99 +# define COMP_F_BIO_ZLIB_NEW 100 +# define COMP_F_BIO_ZLIB_READ 101 +# define COMP_F_BIO_ZLIB_WRITE 102 + +/* Reason codes. */ +# define COMP_R_ZLIB_DEFLATE_ERROR 99 +# define COMP_R_ZLIB_INFLATE_ERROR 100 +# define COMP_R_ZLIB_NOT_SUPPORTED 101 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/conf.h b/External/include/openssl/conf.h new file mode 100644 index 00000000..8d926d5d --- /dev/null +++ b/External/include/openssl/conf.h @@ -0,0 +1,267 @@ +/* crypto/conf/conf.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_CONF_H +# define HEADER_CONF_H + +# include +# include +# include +# include +# include + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + char *section; + char *name; + char *value; +} CONF_VALUE; + +DECLARE_STACK_OF(CONF_VALUE) +DECLARE_LHASH_OF(CONF_VALUE); + +struct conf_st; +struct conf_method_st; +typedef struct conf_method_st CONF_METHOD; + +struct conf_method_st { + const char *name; + CONF *(*create) (CONF_METHOD *meth); + int (*init) (CONF *conf); + int (*destroy) (CONF *conf); + int (*destroy_data) (CONF *conf); + int (*load_bio) (CONF *conf, BIO *bp, long *eline); + int (*dump) (const CONF *conf, BIO *bp); + int (*is_number) (const CONF *conf, char c); + int (*to_int) (const CONF *conf, char c); + int (*load) (CONF *conf, const char *name, long *eline); +}; + +/* Module definitions */ + +typedef struct conf_imodule_st CONF_IMODULE; +typedef struct conf_module_st CONF_MODULE; + +DECLARE_STACK_OF(CONF_MODULE) +DECLARE_STACK_OF(CONF_IMODULE) + +/* DSO module function typedefs */ +typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); +typedef void conf_finish_func (CONF_IMODULE *md); + +# define CONF_MFLAGS_IGNORE_ERRORS 0x1 +# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 +# define CONF_MFLAGS_SILENT 0x4 +# define CONF_MFLAGS_NO_DSO 0x8 +# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 +# define CONF_MFLAGS_DEFAULT_SECTION 0x20 + +int CONF_set_default_method(CONF_METHOD *meth); +void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); +LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, + long *eline); +# ifndef OPENSSL_NO_FP_API +LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, + long *eline); +# endif +LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, + long *eline); +STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, + const char *section); +char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, + const char *name); +long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, + const char *name); +void CONF_free(LHASH_OF(CONF_VALUE) *conf); +int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); +int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); + +void OPENSSL_config(const char *config_name); +void OPENSSL_no_config(void); + +/* + * New conf code. The semantics are different from the functions above. If + * that wasn't the case, the above functions would have been replaced + */ + +struct conf_st { + CONF_METHOD *meth; + void *meth_data; + LHASH_OF(CONF_VALUE) *data; +}; + +CONF *NCONF_new(CONF_METHOD *meth); +CONF_METHOD *NCONF_default(void); +CONF_METHOD *NCONF_WIN32(void); +# if 0 /* Just to give you an idea of what I have in + * mind */ +CONF_METHOD *NCONF_XML(void); +# endif +void NCONF_free(CONF *conf); +void NCONF_free_data(CONF *conf); + +int NCONF_load(CONF *conf, const char *file, long *eline); +# ifndef OPENSSL_NO_FP_API +int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); +# endif +int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); +STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, + const char *section); +char *NCONF_get_string(const CONF *conf, const char *group, const char *name); +int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, + long *result); +int NCONF_dump_fp(const CONF *conf, FILE *out); +int NCONF_dump_bio(const CONF *conf, BIO *out); + +# if 0 /* The following function has no error + * checking, and should therefore be avoided */ +long NCONF_get_number(CONF *conf, char *group, char *name); +# else +# define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) +# endif + +/* Module functions */ + +int CONF_modules_load(const CONF *cnf, const char *appname, + unsigned long flags); +int CONF_modules_load_file(const char *filename, const char *appname, + unsigned long flags); +void CONF_modules_unload(int all); +void CONF_modules_finish(void); +void CONF_modules_free(void); +int CONF_module_add(const char *name, conf_init_func *ifunc, + conf_finish_func *ffunc); + +const char *CONF_imodule_get_name(const CONF_IMODULE *md); +const char *CONF_imodule_get_value(const CONF_IMODULE *md); +void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); +void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); +CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); +unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); +void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); +void *CONF_module_get_usr_data(CONF_MODULE *pmod); +void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); + +char *CONF_get1_default_config_file(void); + +int CONF_parse_list(const char *list, int sep, int nospc, + int (*list_cb) (const char *elem, int len, void *usr), + void *arg); + +void OPENSSL_load_builtin_modules(void); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_CONF_strings(void); + +/* Error codes for the CONF functions. */ + +/* Function codes. */ +# define CONF_F_CONF_DUMP_FP 104 +# define CONF_F_CONF_LOAD 100 +# define CONF_F_CONF_LOAD_BIO 102 +# define CONF_F_CONF_LOAD_FP 103 +# define CONF_F_CONF_MODULES_LOAD 116 +# define CONF_F_CONF_PARSE_LIST 119 +# define CONF_F_DEF_LOAD 120 +# define CONF_F_DEF_LOAD_BIO 121 +# define CONF_F_MODULE_INIT 115 +# define CONF_F_MODULE_LOAD_DSO 117 +# define CONF_F_MODULE_RUN 118 +# define CONF_F_NCONF_DUMP_BIO 105 +# define CONF_F_NCONF_DUMP_FP 106 +# define CONF_F_NCONF_GET_NUMBER 107 +# define CONF_F_NCONF_GET_NUMBER_E 112 +# define CONF_F_NCONF_GET_SECTION 108 +# define CONF_F_NCONF_GET_STRING 109 +# define CONF_F_NCONF_LOAD 113 +# define CONF_F_NCONF_LOAD_BIO 110 +# define CONF_F_NCONF_LOAD_FP 114 +# define CONF_F_NCONF_NEW 111 +# define CONF_F_STR_COPY 101 + +/* Reason codes. */ +# define CONF_R_ERROR_LOADING_DSO 110 +# define CONF_R_LIST_CANNOT_BE_NULL 115 +# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 +# define CONF_R_MISSING_EQUAL_SIGN 101 +# define CONF_R_MISSING_FINISH_FUNCTION 111 +# define CONF_R_MISSING_INIT_FUNCTION 112 +# define CONF_R_MODULE_INITIALIZATION_ERROR 109 +# define CONF_R_NO_CLOSE_BRACE 102 +# define CONF_R_NO_CONF 105 +# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 +# define CONF_R_NO_SECTION 107 +# define CONF_R_NO_SUCH_FILE 114 +# define CONF_R_NO_VALUE 108 +# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 +# define CONF_R_UNKNOWN_MODULE_NAME 113 +# define CONF_R_VARIABLE_HAS_NO_VALUE 104 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/conf_api.h b/External/include/openssl/conf_api.h new file mode 100644 index 00000000..e478f7df --- /dev/null +++ b/External/include/openssl/conf_api.h @@ -0,0 +1,89 @@ +/* conf_api.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_CONF_API_H +# define HEADER_CONF_API_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Up until OpenSSL 0.9.5a, this was new_section */ +CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); +/* Up until OpenSSL 0.9.5a, this was get_section */ +CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); +/* Up until OpenSSL 0.9.5a, this was CONF_get_section */ +STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, + const char *section); + +int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); +char *_CONF_get_string(const CONF *conf, const char *section, + const char *name); +long _CONF_get_number(const CONF *conf, const char *section, + const char *name); + +int _CONF_new_data(CONF *conf); +void _CONF_free_data(CONF *conf); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/crypto.h b/External/include/openssl/crypto.h new file mode 100644 index 00000000..6c644ce1 --- /dev/null +++ b/External/include/openssl/crypto.h @@ -0,0 +1,661 @@ +/* crypto/crypto.h */ +/* ==================================================================== + * Copyright (c) 1998-2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * ECDH support in OpenSSL originally developed by + * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. + */ + +#ifndef HEADER_CRYPTO_H +# define HEADER_CRYPTO_H + +# include + +# include + +# ifndef OPENSSL_NO_FP_API +# include +# endif + +# include +# include +# include +# include + +# ifdef CHARSET_EBCDIC +# include +# endif + +/* + * Resolve problems on some operating systems with symbol names that clash + * one way or another + */ +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Backward compatibility to SSLeay */ +/* + * This is more to be used to check the correct DLL is being used in the MS + * world. + */ +# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER +# define SSLEAY_VERSION 0 +/* #define SSLEAY_OPTIONS 1 no longer supported */ +# define SSLEAY_CFLAGS 2 +# define SSLEAY_BUILT_ON 3 +# define SSLEAY_PLATFORM 4 +# define SSLEAY_DIR 5 + +/* Already declared in ossl_typ.h */ +# if 0 +typedef struct crypto_ex_data_st CRYPTO_EX_DATA; +/* Called when a new object is created */ +typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +/* Called when an object is free()ed */ +typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +/* Called when we need to dup an object */ +typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, + void *from_d, int idx, long argl, void *argp); +# endif + +/* A generic structure to pass assorted data in a expandable way */ +typedef struct openssl_item_st { + int code; + void *value; /* Not used for flag attributes */ + size_t value_size; /* Max size of value for output, length for + * input */ + size_t *value_length; /* Returned length of value for output */ +} OPENSSL_ITEM; + +/* + * When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock + * names in cryptlib.c + */ + +# define CRYPTO_LOCK_ERR 1 +# define CRYPTO_LOCK_EX_DATA 2 +# define CRYPTO_LOCK_X509 3 +# define CRYPTO_LOCK_X509_INFO 4 +# define CRYPTO_LOCK_X509_PKEY 5 +# define CRYPTO_LOCK_X509_CRL 6 +# define CRYPTO_LOCK_X509_REQ 7 +# define CRYPTO_LOCK_DSA 8 +# define CRYPTO_LOCK_RSA 9 +# define CRYPTO_LOCK_EVP_PKEY 10 +# define CRYPTO_LOCK_X509_STORE 11 +# define CRYPTO_LOCK_SSL_CTX 12 +# define CRYPTO_LOCK_SSL_CERT 13 +# define CRYPTO_LOCK_SSL_SESSION 14 +# define CRYPTO_LOCK_SSL_SESS_CERT 15 +# define CRYPTO_LOCK_SSL 16 +# define CRYPTO_LOCK_SSL_METHOD 17 +# define CRYPTO_LOCK_RAND 18 +# define CRYPTO_LOCK_RAND2 19 +# define CRYPTO_LOCK_MALLOC 20 +# define CRYPTO_LOCK_BIO 21 +# define CRYPTO_LOCK_GETHOSTBYNAME 22 +# define CRYPTO_LOCK_GETSERVBYNAME 23 +# define CRYPTO_LOCK_READDIR 24 +# define CRYPTO_LOCK_RSA_BLINDING 25 +# define CRYPTO_LOCK_DH 26 +# define CRYPTO_LOCK_MALLOC2 27 +# define CRYPTO_LOCK_DSO 28 +# define CRYPTO_LOCK_DYNLOCK 29 +# define CRYPTO_LOCK_ENGINE 30 +# define CRYPTO_LOCK_UI 31 +# define CRYPTO_LOCK_ECDSA 32 +# define CRYPTO_LOCK_EC 33 +# define CRYPTO_LOCK_ECDH 34 +# define CRYPTO_LOCK_BN 35 +# define CRYPTO_LOCK_EC_PRE_COMP 36 +# define CRYPTO_LOCK_STORE 37 +# define CRYPTO_LOCK_COMP 38 +# define CRYPTO_LOCK_FIPS 39 +# define CRYPTO_LOCK_FIPS2 40 +# define CRYPTO_NUM_LOCKS 41 + +# define CRYPTO_LOCK 1 +# define CRYPTO_UNLOCK 2 +# define CRYPTO_READ 4 +# define CRYPTO_WRITE 8 + +# ifndef OPENSSL_NO_LOCKING +# ifndef CRYPTO_w_lock +# define CRYPTO_w_lock(type) \ + CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) +# define CRYPTO_w_unlock(type) \ + CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) +# define CRYPTO_r_lock(type) \ + CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__) +# define CRYPTO_r_unlock(type) \ + CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__) +# define CRYPTO_add(addr,amount,type) \ + CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__) +# endif +# else +# define CRYPTO_w_lock(a) +# define CRYPTO_w_unlock(a) +# define CRYPTO_r_lock(a) +# define CRYPTO_r_unlock(a) +# define CRYPTO_add(a,b,c) ((*(a))+=(b)) +# endif + +/* + * Some applications as well as some parts of OpenSSL need to allocate and + * deallocate locks in a dynamic fashion. The following typedef makes this + * possible in a type-safe manner. + */ +/* struct CRYPTO_dynlock_value has to be defined by the application. */ +typedef struct { + int references; + struct CRYPTO_dynlock_value *data; +} CRYPTO_dynlock; + +/* + * The following can be used to detect memory leaks in the SSLeay library. It + * used, it turns on malloc checking + */ + +# define CRYPTO_MEM_CHECK_OFF 0x0/* an enume */ +# define CRYPTO_MEM_CHECK_ON 0x1/* a bit */ +# define CRYPTO_MEM_CHECK_ENABLE 0x2/* a bit */ +# define CRYPTO_MEM_CHECK_DISABLE 0x3/* an enume */ + +/* + * The following are bit values to turn on or off options connected to the + * malloc checking functionality + */ + +/* Adds time to the memory checking information */ +# define V_CRYPTO_MDEBUG_TIME 0x1/* a bit */ +/* Adds thread number to the memory checking information */ +# define V_CRYPTO_MDEBUG_THREAD 0x2/* a bit */ + +# define V_CRYPTO_MDEBUG_ALL (V_CRYPTO_MDEBUG_TIME | V_CRYPTO_MDEBUG_THREAD) + +/* predec of the BIO type */ +typedef struct bio_st BIO_dummy; + +struct crypto_ex_data_st { + STACK_OF(void) *sk; + /* gcc is screwing up this data structure :-( */ + int dummy; +}; +DECLARE_STACK_OF(void) + +/* + * This stuff is basically class callback functions The current classes are + * SSL_CTX, SSL, SSL_SESSION, and a few more + */ + +typedef struct crypto_ex_data_func_st { + long argl; /* Arbitary long */ + void *argp; /* Arbitary void * */ + CRYPTO_EX_new *new_func; + CRYPTO_EX_free *free_func; + CRYPTO_EX_dup *dup_func; +} CRYPTO_EX_DATA_FUNCS; + +DECLARE_STACK_OF(CRYPTO_EX_DATA_FUNCS) + +/* + * Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA + * entry. + */ + +# define CRYPTO_EX_INDEX_BIO 0 +# define CRYPTO_EX_INDEX_SSL 1 +# define CRYPTO_EX_INDEX_SSL_CTX 2 +# define CRYPTO_EX_INDEX_SSL_SESSION 3 +# define CRYPTO_EX_INDEX_X509_STORE 4 +# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 +# define CRYPTO_EX_INDEX_RSA 6 +# define CRYPTO_EX_INDEX_DSA 7 +# define CRYPTO_EX_INDEX_DH 8 +# define CRYPTO_EX_INDEX_ENGINE 9 +# define CRYPTO_EX_INDEX_X509 10 +# define CRYPTO_EX_INDEX_UI 11 +# define CRYPTO_EX_INDEX_ECDSA 12 +# define CRYPTO_EX_INDEX_ECDH 13 +# define CRYPTO_EX_INDEX_COMP 14 +# define CRYPTO_EX_INDEX_STORE 15 + +/* + * Dynamically assigned indexes start from this value (don't use directly, + * use via CRYPTO_ex_data_new_class). + */ +# define CRYPTO_EX_INDEX_USER 100 + +/* + * This is the default callbacks, but we can have others as well: this is + * needed in Win32 where the application malloc and the library malloc may + * not be the same. + */ +# define CRYPTO_malloc_init() CRYPTO_set_mem_functions(\ + malloc, realloc, free) + +# if defined CRYPTO_MDEBUG_ALL || defined CRYPTO_MDEBUG_TIME || defined CRYPTO_MDEBUG_THREAD +# ifndef CRYPTO_MDEBUG /* avoid duplicate #define */ +# define CRYPTO_MDEBUG +# endif +# endif + +/* + * Set standard debugging functions (not done by default unless CRYPTO_MDEBUG + * is defined) + */ +# define CRYPTO_malloc_debug_init() do {\ + CRYPTO_set_mem_debug_functions(\ + CRYPTO_dbg_malloc,\ + CRYPTO_dbg_realloc,\ + CRYPTO_dbg_free,\ + CRYPTO_dbg_set_options,\ + CRYPTO_dbg_get_options);\ + } while(0) + +int CRYPTO_mem_ctrl(int mode); +int CRYPTO_is_mem_check_on(void); + +/* for applications */ +# define MemCheck_start() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON) +# define MemCheck_stop() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF) + +/* for library-internal use */ +# define MemCheck_on() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ENABLE) +# define MemCheck_off() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE) +# define is_MemCheck_on() CRYPTO_is_mem_check_on() + +# define OPENSSL_malloc(num) CRYPTO_malloc((int)num,__FILE__,__LINE__) +# define OPENSSL_strdup(str) CRYPTO_strdup((str),__FILE__,__LINE__) +# define OPENSSL_realloc(addr,num) \ + CRYPTO_realloc((char *)addr,(int)num,__FILE__,__LINE__) +# define OPENSSL_realloc_clean(addr,old_num,num) \ + CRYPTO_realloc_clean(addr,old_num,num,__FILE__,__LINE__) +# define OPENSSL_remalloc(addr,num) \ + CRYPTO_remalloc((char **)addr,(int)num,__FILE__,__LINE__) +# define OPENSSL_freeFunc CRYPTO_free +# define OPENSSL_free(addr) CRYPTO_free(addr) + +# define OPENSSL_malloc_locked(num) \ + CRYPTO_malloc_locked((int)num,__FILE__,__LINE__) +# define OPENSSL_free_locked(addr) CRYPTO_free_locked(addr) + +const char *SSLeay_version(int type); +unsigned long SSLeay(void); + +int OPENSSL_issetugid(void); + +/* An opaque type representing an implementation of "ex_data" support */ +typedef struct st_CRYPTO_EX_DATA_IMPL CRYPTO_EX_DATA_IMPL; +/* Return an opaque pointer to the current "ex_data" implementation */ +const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void); +/* Sets the "ex_data" implementation to be used (if it's not too late) */ +int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i); +/* Get a new "ex_data" class, and return the corresponding "class_index" */ +int CRYPTO_ex_data_new_class(void); +/* Within a given class, get/register a new index */ +int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, + CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +/* + * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a + * given class (invokes whatever per-class callbacks are applicable) + */ +int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); +int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, + CRYPTO_EX_DATA *from); +void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); +/* + * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular + * index (relative to the class type involved) + */ +int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); +void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); +/* + * This function cleans up all "ex_data" state. It mustn't be called under + * potential race-conditions. + */ +void CRYPTO_cleanup_all_ex_data(void); + +int CRYPTO_get_new_lockid(char *name); + +int CRYPTO_num_locks(void); /* return CRYPTO_NUM_LOCKS (shared libs!) */ +void CRYPTO_lock(int mode, int type, const char *file, int line); +void CRYPTO_set_locking_callback(void (*func) (int mode, int type, + const char *file, int line)); +void (*CRYPTO_get_locking_callback(void)) (int mode, int type, + const char *file, int line); +void CRYPTO_set_add_lock_callback(int (*func) + (int *num, int mount, int type, + const char *file, int line)); +int (*CRYPTO_get_add_lock_callback(void)) (int *num, int mount, int type, + const char *file, int line); + +/* Don't use this structure directly. */ +typedef struct crypto_threadid_st { + void *ptr; + unsigned long val; +} CRYPTO_THREADID; +/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ +void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val); +void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr); +int CRYPTO_THREADID_set_callback(void (*threadid_func) (CRYPTO_THREADID *)); +void (*CRYPTO_THREADID_get_callback(void)) (CRYPTO_THREADID *); +void CRYPTO_THREADID_current(CRYPTO_THREADID *id); +int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b); +void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src); +unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); +# ifndef OPENSSL_NO_DEPRECATED +void CRYPTO_set_id_callback(unsigned long (*func) (void)); +unsigned long (*CRYPTO_get_id_callback(void)) (void); +unsigned long CRYPTO_thread_id(void); +# endif + +const char *CRYPTO_get_lock_name(int type); +int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file, + int line); + +int CRYPTO_get_new_dynlockid(void); +void CRYPTO_destroy_dynlockid(int i); +struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i); +void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value + *(*dyn_create_function) (const char + *file, + int line)); +void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function) + (int mode, + struct CRYPTO_dynlock_value *l, + const char *file, int line)); +void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function) + (struct CRYPTO_dynlock_value *l, + const char *file, int line)); +struct CRYPTO_dynlock_value +*(*CRYPTO_get_dynlock_create_callback(void)) (const char *file, int line); +void (*CRYPTO_get_dynlock_lock_callback(void)) (int mode, + struct CRYPTO_dynlock_value + *l, const char *file, + int line); +void (*CRYPTO_get_dynlock_destroy_callback(void)) (struct CRYPTO_dynlock_value + *l, const char *file, + int line); + +/* + * CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- call + * the latter last if you need different functions + */ +int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t), + void (*f) (void *)); +int CRYPTO_set_locked_mem_functions(void *(*m) (size_t), + void (*free_func) (void *)); +int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int), + void *(*r) (void *, size_t, const char *, + int), void (*f) (void *)); +int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int), + void (*free_func) (void *)); +int CRYPTO_set_mem_debug_functions(void (*m) + (void *, int, const char *, int, int), + void (*r) (void *, void *, int, + const char *, int, int), + void (*f) (void *, int), void (*so) (long), + long (*go) (void)); +void CRYPTO_get_mem_functions(void *(**m) (size_t), + void *(**r) (void *, size_t), + void (**f) (void *)); +void CRYPTO_get_locked_mem_functions(void *(**m) (size_t), + void (**f) (void *)); +void CRYPTO_get_mem_ex_functions(void *(**m) (size_t, const char *, int), + void *(**r) (void *, size_t, const char *, + int), void (**f) (void *)); +void CRYPTO_get_locked_mem_ex_functions(void + *(**m) (size_t, const char *, int), + void (**f) (void *)); +void CRYPTO_get_mem_debug_functions(void (**m) + (void *, int, const char *, int, int), + void (**r) (void *, void *, int, + const char *, int, int), + void (**f) (void *, int), + void (**so) (long), long (**go) (void)); + +void *CRYPTO_malloc_locked(int num, const char *file, int line); +void CRYPTO_free_locked(void *ptr); +void *CRYPTO_malloc(int num, const char *file, int line); +char *CRYPTO_strdup(const char *str, const char *file, int line); +void CRYPTO_free(void *ptr); +void *CRYPTO_realloc(void *addr, int num, const char *file, int line); +void *CRYPTO_realloc_clean(void *addr, int old_num, int num, const char *file, + int line); +void *CRYPTO_remalloc(void *addr, int num, const char *file, int line); + +void OPENSSL_cleanse(void *ptr, size_t len); + +void CRYPTO_set_mem_debug_options(long bits); +long CRYPTO_get_mem_debug_options(void); + +# define CRYPTO_push_info(info) \ + CRYPTO_push_info_(info, __FILE__, __LINE__); +int CRYPTO_push_info_(const char *info, const char *file, int line); +int CRYPTO_pop_info(void); +int CRYPTO_remove_all_info(void); + +/* + * Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro; + * used as default in CRYPTO_MDEBUG compilations): + */ +/*- + * The last argument has the following significance: + * + * 0: called before the actual memory allocation has taken place + * 1: called after the actual memory allocation has taken place + */ +void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line, + int before_p); +void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, const char *file, + int line, int before_p); +void CRYPTO_dbg_free(void *addr, int before_p); +/*- + * Tell the debugging code about options. By default, the following values + * apply: + * + * 0: Clear all options. + * V_CRYPTO_MDEBUG_TIME (1): Set the "Show Time" option. + * V_CRYPTO_MDEBUG_THREAD (2): Set the "Show Thread Number" option. + * V_CRYPTO_MDEBUG_ALL (3): 1 + 2 + */ +void CRYPTO_dbg_set_options(long bits); +long CRYPTO_dbg_get_options(void); + +# ifndef OPENSSL_NO_FP_API +void CRYPTO_mem_leaks_fp(FILE *); +# endif +void CRYPTO_mem_leaks(struct bio_st *bio); +/* unsigned long order, char *file, int line, int num_bytes, char *addr */ +typedef void *CRYPTO_MEM_LEAK_CB (unsigned long, const char *, int, int, + void *); +void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb); + +/* die if we have to */ +void OpenSSLDie(const char *file, int line, const char *assertion); +# define OPENSSL_assert(e) (void)((e) ? 0 : (OpenSSLDie(__FILE__, __LINE__, #e),1)) + +unsigned long *OPENSSL_ia32cap_loc(void); +# define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc())) +int OPENSSL_isservice(void); + +int FIPS_mode(void); +int FIPS_mode_set(int r); + +void OPENSSL_init(void); + +# define fips_md_init(alg) fips_md_init_ctx(alg, alg) + +# ifdef OPENSSL_FIPS +# define fips_md_init_ctx(alg, cx) \ + int alg##_Init(cx##_CTX *c) \ + { \ + if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \ + "Low level API call to digest " #alg " forbidden in FIPS mode!"); \ + return private_##alg##_Init(c); \ + } \ + int private_##alg##_Init(cx##_CTX *c) + +# define fips_cipher_abort(alg) \ + if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \ + "Low level API call to cipher " #alg " forbidden in FIPS mode!") + +# else +# define fips_md_init_ctx(alg, cx) \ + int alg##_Init(cx##_CTX *c) +# define fips_cipher_abort(alg) while(0) +# endif + +/* + * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. + * It takes an amount of time dependent on |len|, but independent of the + * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements + * into a defined order as the return value when a != b is undefined, other + * than to be non-zero. + */ +int CRYPTO_memcmp(const volatile void *a, const volatile void *b, size_t len); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_CRYPTO_strings(void); + +/* Error codes for the CRYPTO functions. */ + +/* Function codes. */ +# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 +# define CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID 103 +# define CRYPTO_F_CRYPTO_GET_NEW_LOCKID 101 +# define CRYPTO_F_CRYPTO_SET_EX_DATA 102 +# define CRYPTO_F_DEF_ADD_INDEX 104 +# define CRYPTO_F_DEF_GET_CLASS 105 +# define CRYPTO_F_FIPS_MODE_SET 109 +# define CRYPTO_F_INT_DUP_EX_DATA 106 +# define CRYPTO_F_INT_FREE_EX_DATA 107 +# define CRYPTO_F_INT_NEW_EX_DATA 108 + +/* Reason codes. */ +# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 +# define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK 100 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/des.h b/External/include/openssl/des.h new file mode 100644 index 00000000..1b40144e --- /dev/null +++ b/External/include/openssl/des.h @@ -0,0 +1,257 @@ +/* crypto/des/des.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_NEW_DES_H +# define HEADER_NEW_DES_H + +# include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG + * (via openssl/opensslconf.h */ + +# ifdef OPENSSL_NO_DES +# error DES is disabled. +# endif + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef unsigned char DES_cblock[8]; +typedef /* const */ unsigned char const_DES_cblock[8]; +/* + * With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * and + * const_DES_cblock * are incompatible pointer types. + */ + +typedef struct DES_ks { + union { + DES_cblock cblock; + /* + * make sure things are correct size on machines with 8 byte longs + */ + DES_LONG deslong[2]; + } ks[16]; +} DES_key_schedule; + +# ifndef OPENSSL_DISABLE_OLD_DES_SUPPORT +# ifndef OPENSSL_ENABLE_OLD_DES_SUPPORT +# define OPENSSL_ENABLE_OLD_DES_SUPPORT +# endif +# endif + +# ifdef OPENSSL_ENABLE_OLD_DES_SUPPORT +# include +# endif + +# define DES_KEY_SZ (sizeof(DES_cblock)) +# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) + +# define DES_ENCRYPT 1 +# define DES_DECRYPT 0 + +# define DES_CBC_MODE 0 +# define DES_PCBC_MODE 1 + +# define DES_ecb2_encrypt(i,o,k1,k2,e) \ + DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) + +# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ + DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) + +# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ + DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) + +# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ + DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) + +OPENSSL_DECLARE_GLOBAL(int, DES_check_key); /* defaults to false */ +# define DES_check_key OPENSSL_GLOBAL_REF(DES_check_key) +OPENSSL_DECLARE_GLOBAL(int, DES_rw_mode); /* defaults to DES_PCBC_MODE */ +# define DES_rw_mode OPENSSL_GLOBAL_REF(DES_rw_mode) + +const char *DES_options(void); +void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, + DES_key_schedule *ks1, DES_key_schedule *ks2, + DES_key_schedule *ks3, int enc); +DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, + long length, DES_key_schedule *schedule, + const_DES_cblock *ivec); +/* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ +void DES_cbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, const_DES_cblock *inw, + const_DES_cblock *outw, int enc); +void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, + DES_key_schedule *ks, int enc); + +/* + * This is the DES encryption function that gets called by just about every + * other DES routine in the library. You should not use this function except + * to implement 'modes' of DES. I say this because the functions that call + * this routine do the conversion from 'char *' to long, and this needs to be + * done to make sure 'non-aligned' memory access do not occur. The + * characters are loaded 'little endian'. Data is a pointer to 2 unsigned + * long's and ks is the DES_key_schedule to use. enc, is non zero specifies + * encryption, zero if decryption. + */ +void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); + +/* + * This functions is the same as DES_encrypt1() except that the DES initial + * permutation (IP) and final permutation (FP) have been left out. As for + * DES_encrypt1(), you should not use this function. It is used by the + * routines in the library that implement triple DES. IP() DES_encrypt2() + * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() + * DES_encrypt1() DES_encrypt1() except faster :-). + */ +void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc); + +void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3); +void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3); +void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, + long length, + DES_key_schedule *ks1, DES_key_schedule *ks2, + DES_key_schedule *ks3, DES_cblock *ivec, int enc); +void DES_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out, + long length, + DES_key_schedule *ks1, DES_key_schedule *ks2, + DES_key_schedule *ks3, + DES_cblock *ivec1, DES_cblock *ivec2, int enc); +void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3, + DES_cblock *ivec, int *num, int enc); +void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out, + int numbits, long length, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3, + DES_cblock *ivec, int enc); +void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3, + DES_cblock *ivec, int *num); +# if 0 +void DES_xwhite_in2out(const_DES_cblock *DES_key, const_DES_cblock *in_white, + DES_cblock *out_white); +# endif + +int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched, + DES_cblock *iv); +int DES_enc_write(int fd, const void *buf, int len, DES_key_schedule *sched, + DES_cblock *iv); +char *DES_fcrypt(const char *buf, const char *salt, char *ret); +char *DES_crypt(const char *buf, const char *salt); +void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, + long length, DES_key_schedule *schedule, + DES_cblock *ivec); +void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], + long length, int out_count, DES_cblock *seed); +int DES_random_key(DES_cblock *ret); +void DES_set_odd_parity(DES_cblock *key); +int DES_check_key_parity(const_DES_cblock *key); +int DES_is_weak_key(const_DES_cblock *key); +/* + * DES_set_key (= set_key = DES_key_sched = key_sched) calls + * DES_set_key_checked if global variable DES_check_key is set, + * DES_set_key_unchecked otherwise. + */ +int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); +int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); +int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); +void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); +# ifdef OPENSSL_FIPS +void private_DES_set_key_unchecked(const_DES_cblock *key, + DES_key_schedule *schedule); +# endif +void DES_string_to_key(const char *str, DES_cblock *key); +void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); +void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int *num, int enc); +void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int *num); + +int DES_read_password(DES_cblock *key, const char *prompt, int verify); +int DES_read_2passwords(DES_cblock *key1, DES_cblock *key2, + const char *prompt, int verify); + +# define DES_fixup_key_parity DES_set_odd_parity + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/des_old.h b/External/include/openssl/des_old.h new file mode 100644 index 00000000..ee7607a2 --- /dev/null +++ b/External/include/openssl/des_old.h @@ -0,0 +1,497 @@ +/* crypto/des/des_old.h */ + +/*- + * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + * + * The function names in here are deprecated and are only present to + * provide an interface compatible with openssl 0.9.6 and older as + * well as libdes. OpenSSL now provides functions where "des_" has + * been replaced with "DES_" in the names, to make it possible to + * make incompatible changes that are needed for C type security and + * other stuff. + * + * This include files has two compatibility modes: + * + * - If OPENSSL_DES_LIBDES_COMPATIBILITY is defined, you get an API + * that is compatible with libdes and SSLeay. + * - If OPENSSL_DES_LIBDES_COMPATIBILITY isn't defined, you get an + * API that is compatible with OpenSSL 0.9.5x to 0.9.6x. + * + * Note that these modes break earlier snapshots of OpenSSL, where + * libdes compatibility was the only available mode or (later on) the + * prefered compatibility mode. However, after much consideration + * (and more or less violent discussions with external parties), it + * was concluded that OpenSSL should be compatible with earlier versions + * of itself before anything else. Also, in all honesty, libdes is + * an old beast that shouldn't really be used any more. + * + * Please consider starting to use the DES_ functions rather than the + * des_ ones. The des_ functions will disappear completely before + * OpenSSL 1.0! + * + * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + */ + +/* + * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project + * 2001. + */ +/* ==================================================================== + * Copyright (c) 1998-2002 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_DES_H +# define HEADER_DES_H + +# include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG */ + +# ifdef OPENSSL_NO_DES +# error DES is disabled. +# endif + +# ifndef HEADER_NEW_DES_H +# error You must include des.h, not des_old.h directly. +# endif + +# ifdef _KERBEROS_DES_H +# error replaces . +# endif + +# include + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef _ +# undef _ +# endif + +typedef unsigned char _ossl_old_des_cblock[8]; +typedef struct _ossl_old_des_ks_struct { + union { + _ossl_old_des_cblock _; + /* + * make sure things are correct size on machines with 8 byte longs + */ + DES_LONG pad[2]; + } ks; +} _ossl_old_des_key_schedule[16]; + +# ifndef OPENSSL_DES_LIBDES_COMPATIBILITY +# define des_cblock DES_cblock +# define const_des_cblock const_DES_cblock +# define des_key_schedule DES_key_schedule +# define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ + DES_ecb3_encrypt((i),(o),&(k1),&(k2),&(k3),(e)) +# define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ + DES_ede3_cbc_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(e)) +# define des_ede3_cbcm_encrypt(i,o,l,k1,k2,k3,iv1,iv2,e)\ + DES_ede3_cbcm_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv1),(iv2),(e)) +# define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ + DES_ede3_cfb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n),(e)) +# define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ + DES_ede3_ofb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n)) +# define des_options()\ + DES_options() +# define des_cbc_cksum(i,o,l,k,iv)\ + DES_cbc_cksum((i),(o),(l),&(k),(iv)) +# define des_cbc_encrypt(i,o,l,k,iv,e)\ + DES_cbc_encrypt((i),(o),(l),&(k),(iv),(e)) +# define des_ncbc_encrypt(i,o,l,k,iv,e)\ + DES_ncbc_encrypt((i),(o),(l),&(k),(iv),(e)) +# define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ + DES_xcbc_encrypt((i),(o),(l),&(k),(iv),(inw),(outw),(e)) +# define des_cfb_encrypt(i,o,n,l,k,iv,e)\ + DES_cfb_encrypt((i),(o),(n),(l),&(k),(iv),(e)) +# define des_ecb_encrypt(i,o,k,e)\ + DES_ecb_encrypt((i),(o),&(k),(e)) +# define des_encrypt1(d,k,e)\ + DES_encrypt1((d),&(k),(e)) +# define des_encrypt2(d,k,e)\ + DES_encrypt2((d),&(k),(e)) +# define des_encrypt3(d,k1,k2,k3)\ + DES_encrypt3((d),&(k1),&(k2),&(k3)) +# define des_decrypt3(d,k1,k2,k3)\ + DES_decrypt3((d),&(k1),&(k2),&(k3)) +# define des_xwhite_in2out(k,i,o)\ + DES_xwhite_in2out((k),(i),(o)) +# define des_enc_read(f,b,l,k,iv)\ + DES_enc_read((f),(b),(l),&(k),(iv)) +# define des_enc_write(f,b,l,k,iv)\ + DES_enc_write((f),(b),(l),&(k),(iv)) +# define des_fcrypt(b,s,r)\ + DES_fcrypt((b),(s),(r)) +# if 0 +# define des_crypt(b,s)\ + DES_crypt((b),(s)) +# if !defined(PERL5) && !defined(__FreeBSD__) && !defined(NeXT) && !defined(__OpenBSD__) +# define crypt(b,s)\ + DES_crypt((b),(s)) +# endif +# endif +# define des_ofb_encrypt(i,o,n,l,k,iv)\ + DES_ofb_encrypt((i),(o),(n),(l),&(k),(iv)) +# define des_pcbc_encrypt(i,o,l,k,iv,e)\ + DES_pcbc_encrypt((i),(o),(l),&(k),(iv),(e)) +# define des_quad_cksum(i,o,l,c,s)\ + DES_quad_cksum((i),(o),(l),(c),(s)) +# define des_random_seed(k)\ + _ossl_096_des_random_seed((k)) +# define des_random_key(r)\ + DES_random_key((r)) +# define des_read_password(k,p,v) \ + DES_read_password((k),(p),(v)) +# define des_read_2passwords(k1,k2,p,v) \ + DES_read_2passwords((k1),(k2),(p),(v)) +# define des_set_odd_parity(k)\ + DES_set_odd_parity((k)) +# define des_check_key_parity(k)\ + DES_check_key_parity((k)) +# define des_is_weak_key(k)\ + DES_is_weak_key((k)) +# define des_set_key(k,ks)\ + DES_set_key((k),&(ks)) +# define des_key_sched(k,ks)\ + DES_key_sched((k),&(ks)) +# define des_set_key_checked(k,ks)\ + DES_set_key_checked((k),&(ks)) +# define des_set_key_unchecked(k,ks)\ + DES_set_key_unchecked((k),&(ks)) +# define des_string_to_key(s,k)\ + DES_string_to_key((s),(k)) +# define des_string_to_2keys(s,k1,k2)\ + DES_string_to_2keys((s),(k1),(k2)) +# define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ + DES_cfb64_encrypt((i),(o),(l),&(ks),(iv),(n),(e)) +# define des_ofb64_encrypt(i,o,l,ks,iv,n)\ + DES_ofb64_encrypt((i),(o),(l),&(ks),(iv),(n)) + +# define des_ecb2_encrypt(i,o,k1,k2,e) \ + des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) + +# define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ + des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) + +# define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ + des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) + +# define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ + des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) + +# define des_check_key DES_check_key +# define des_rw_mode DES_rw_mode +# else /* libdes compatibility */ +/* + * Map all symbol names to _ossl_old_des_* form, so we avoid all clashes with + * libdes + */ +# define des_cblock _ossl_old_des_cblock +# define des_key_schedule _ossl_old_des_key_schedule +# define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ + _ossl_old_des_ecb3_encrypt((i),(o),(k1),(k2),(k3),(e)) +# define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ + _ossl_old_des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) +# define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ + _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e)) +# define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ + _ossl_old_des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n)) +# define des_options()\ + _ossl_old_des_options() +# define des_cbc_cksum(i,o,l,k,iv)\ + _ossl_old_des_cbc_cksum((i),(o),(l),(k),(iv)) +# define des_cbc_encrypt(i,o,l,k,iv,e)\ + _ossl_old_des_cbc_encrypt((i),(o),(l),(k),(iv),(e)) +# define des_ncbc_encrypt(i,o,l,k,iv,e)\ + _ossl_old_des_ncbc_encrypt((i),(o),(l),(k),(iv),(e)) +# define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ + _ossl_old_des_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e)) +# define des_cfb_encrypt(i,o,n,l,k,iv,e)\ + _ossl_old_des_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e)) +# define des_ecb_encrypt(i,o,k,e)\ + _ossl_old_des_ecb_encrypt((i),(o),(k),(e)) +# define des_encrypt(d,k,e)\ + _ossl_old_des_encrypt((d),(k),(e)) +# define des_encrypt2(d,k,e)\ + _ossl_old_des_encrypt2((d),(k),(e)) +# define des_encrypt3(d,k1,k2,k3)\ + _ossl_old_des_encrypt3((d),(k1),(k2),(k3)) +# define des_decrypt3(d,k1,k2,k3)\ + _ossl_old_des_decrypt3((d),(k1),(k2),(k3)) +# define des_xwhite_in2out(k,i,o)\ + _ossl_old_des_xwhite_in2out((k),(i),(o)) +# define des_enc_read(f,b,l,k,iv)\ + _ossl_old_des_enc_read((f),(b),(l),(k),(iv)) +# define des_enc_write(f,b,l,k,iv)\ + _ossl_old_des_enc_write((f),(b),(l),(k),(iv)) +# define des_fcrypt(b,s,r)\ + _ossl_old_des_fcrypt((b),(s),(r)) +# define des_crypt(b,s)\ + _ossl_old_des_crypt((b),(s)) +# if 0 +# define crypt(b,s)\ + _ossl_old_crypt((b),(s)) +# endif +# define des_ofb_encrypt(i,o,n,l,k,iv)\ + _ossl_old_des_ofb_encrypt((i),(o),(n),(l),(k),(iv)) +# define des_pcbc_encrypt(i,o,l,k,iv,e)\ + _ossl_old_des_pcbc_encrypt((i),(o),(l),(k),(iv),(e)) +# define des_quad_cksum(i,o,l,c,s)\ + _ossl_old_des_quad_cksum((i),(o),(l),(c),(s)) +# define des_random_seed(k)\ + _ossl_old_des_random_seed((k)) +# define des_random_key(r)\ + _ossl_old_des_random_key((r)) +# define des_read_password(k,p,v) \ + _ossl_old_des_read_password((k),(p),(v)) +# define des_read_2passwords(k1,k2,p,v) \ + _ossl_old_des_read_2passwords((k1),(k2),(p),(v)) +# define des_set_odd_parity(k)\ + _ossl_old_des_set_odd_parity((k)) +# define des_is_weak_key(k)\ + _ossl_old_des_is_weak_key((k)) +# define des_set_key(k,ks)\ + _ossl_old_des_set_key((k),(ks)) +# define des_key_sched(k,ks)\ + _ossl_old_des_key_sched((k),(ks)) +# define des_string_to_key(s,k)\ + _ossl_old_des_string_to_key((s),(k)) +# define des_string_to_2keys(s,k1,k2)\ + _ossl_old_des_string_to_2keys((s),(k1),(k2)) +# define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ + _ossl_old_des_cfb64_encrypt((i),(o),(l),(ks),(iv),(n),(e)) +# define des_ofb64_encrypt(i,o,l,ks,iv,n)\ + _ossl_old_des_ofb64_encrypt((i),(o),(l),(ks),(iv),(n)) + +# define des_ecb2_encrypt(i,o,k1,k2,e) \ + des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) + +# define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ + des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) + +# define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ + des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) + +# define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ + des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) + +# define des_check_key DES_check_key +# define des_rw_mode DES_rw_mode +# endif + +const char *_ossl_old_des_options(void); +void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, int enc); +DES_LONG _ossl_old_des_cbc_cksum(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec); +void _ossl_old_des_cbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_ncbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_xcbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, + _ossl_old_des_cblock *inw, + _ossl_old_des_cblock *outw, int enc); +void _ossl_old_des_cfb_encrypt(unsigned char *in, unsigned char *out, + int numbits, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_ecb_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, + _ossl_old_des_key_schedule ks, int enc); +void _ossl_old_des_encrypt(DES_LONG *data, _ossl_old_des_key_schedule ks, + int enc); +void _ossl_old_des_encrypt2(DES_LONG *data, _ossl_old_des_key_schedule ks, + int enc); +void _ossl_old_des_encrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3); +void _ossl_old_des_decrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3); +void _ossl_old_des_ede3_cbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_ede3_cfb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, + _ossl_old_des_cblock *ivec, int *num, + int enc); +void _ossl_old_des_ede3_ofb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, + _ossl_old_des_cblock *ivec, int *num); +# if 0 +void _ossl_old_des_xwhite_in2out(_ossl_old_des_cblock (*des_key), + _ossl_old_des_cblock (*in_white), + _ossl_old_des_cblock (*out_white)); +# endif + +int _ossl_old_des_enc_read(int fd, char *buf, int len, + _ossl_old_des_key_schedule sched, + _ossl_old_des_cblock *iv); +int _ossl_old_des_enc_write(int fd, char *buf, int len, + _ossl_old_des_key_schedule sched, + _ossl_old_des_cblock *iv); +char *_ossl_old_des_fcrypt(const char *buf, const char *salt, char *ret); +char *_ossl_old_des_crypt(const char *buf, const char *salt); +# if !defined(PERL5) && !defined(NeXT) +char *_ossl_old_crypt(const char *buf, const char *salt); +# endif +void _ossl_old_des_ofb_encrypt(unsigned char *in, unsigned char *out, + int numbits, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec); +void _ossl_old_des_pcbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +DES_LONG _ossl_old_des_quad_cksum(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + int out_count, _ossl_old_des_cblock *seed); +void _ossl_old_des_random_seed(_ossl_old_des_cblock key); +void _ossl_old_des_random_key(_ossl_old_des_cblock ret); +int _ossl_old_des_read_password(_ossl_old_des_cblock *key, const char *prompt, + int verify); +int _ossl_old_des_read_2passwords(_ossl_old_des_cblock *key1, + _ossl_old_des_cblock *key2, + const char *prompt, int verify); +void _ossl_old_des_set_odd_parity(_ossl_old_des_cblock *key); +int _ossl_old_des_is_weak_key(_ossl_old_des_cblock *key); +int _ossl_old_des_set_key(_ossl_old_des_cblock *key, + _ossl_old_des_key_schedule schedule); +int _ossl_old_des_key_sched(_ossl_old_des_cblock *key, + _ossl_old_des_key_schedule schedule); +void _ossl_old_des_string_to_key(char *str, _ossl_old_des_cblock *key); +void _ossl_old_des_string_to_2keys(char *str, _ossl_old_des_cblock *key1, + _ossl_old_des_cblock *key2); +void _ossl_old_des_cfb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int *num, + int enc); +void _ossl_old_des_ofb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int *num); + +void _ossl_096_des_random_seed(des_cblock *key); + +/* + * The following definitions provide compatibility with the MIT Kerberos + * library. The _ossl_old_des_key_schedule structure is not binary + * compatible. + */ + +# define _KERBEROS_DES_H + +# define KRBDES_ENCRYPT DES_ENCRYPT +# define KRBDES_DECRYPT DES_DECRYPT + +# ifdef KERBEROS +# define ENCRYPT DES_ENCRYPT +# define DECRYPT DES_DECRYPT +# endif + +# ifndef NCOMPAT +# define C_Block des_cblock +# define Key_schedule des_key_schedule +# define KEY_SZ DES_KEY_SZ +# define string_to_key des_string_to_key +# define read_pw_string des_read_pw_string +# define random_key des_random_key +# define pcbc_encrypt des_pcbc_encrypt +# define set_key des_set_key +# define key_sched des_key_sched +# define ecb_encrypt des_ecb_encrypt +# define cbc_encrypt des_cbc_encrypt +# define ncbc_encrypt des_ncbc_encrypt +# define xcbc_encrypt des_xcbc_encrypt +# define cbc_cksum des_cbc_cksum +# define quad_cksum des_quad_cksum +# define check_parity des_check_key_parity +# endif + +# define des_fixup_key_parity DES_fixup_key_parity + +#ifdef __cplusplus +} +#endif + +/* for DES_read_pw_string et al */ +# include + +#endif diff --git a/External/include/openssl/dh.h b/External/include/openssl/dh.h new file mode 100644 index 00000000..a5bd9016 --- /dev/null +++ b/External/include/openssl/dh.h @@ -0,0 +1,393 @@ +/* crypto/dh/dh.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_DH_H +# define HEADER_DH_H + +# include + +# ifdef OPENSSL_NO_DH +# error DH is disabled. +# endif + +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +# ifndef OPENSSL_DH_MAX_MODULUS_BITS +# define OPENSSL_DH_MAX_MODULUS_BITS 10000 +# endif + +# define DH_FLAG_CACHE_MONT_P 0x01 + +/* + * new with 0.9.7h; the built-in DH + * implementation now uses constant time + * modular exponentiation for secret exponents + * by default. This flag causes the + * faster variable sliding window method to + * be used for all exponents. + */ +# define DH_FLAG_NO_EXP_CONSTTIME 0x02 + +/* + * If this flag is set the DH method is FIPS compliant and can be used in + * FIPS mode. This is set in the validated module method. If an application + * sets this flag in its own methods it is its reposibility to ensure the + * result is compliant. + */ + +# define DH_FLAG_FIPS_METHOD 0x0400 + +/* + * If this flag is set the operations normally disabled in FIPS mode are + * permitted it is then the applications responsibility to ensure that the + * usage is compliant. + */ + +# define DH_FLAG_NON_FIPS_ALLOW 0x0400 + +#ifdef __cplusplus +extern "C" { +#endif + +/* Already defined in ossl_typ.h */ +/* typedef struct dh_st DH; */ +/* typedef struct dh_method DH_METHOD; */ + +struct dh_method { + const char *name; + /* Methods here */ + int (*generate_key) (DH *dh); + int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh); + /* Can be null */ + int (*bn_mod_exp) (const DH *dh, BIGNUM *r, const BIGNUM *a, + const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *m_ctx); + int (*init) (DH *dh); + int (*finish) (DH *dh); + int flags; + char *app_data; + /* If this is non-NULL, it will be used to generate parameters */ + int (*generate_params) (DH *dh, int prime_len, int generator, + BN_GENCB *cb); +}; + +struct dh_st { + /* + * This first argument is used to pick up errors when a DH is passed + * instead of a EVP_PKEY + */ + int pad; + int version; + BIGNUM *p; + BIGNUM *g; + long length; /* optional */ + BIGNUM *pub_key; /* g^x % p */ + BIGNUM *priv_key; /* x */ + int flags; + BN_MONT_CTX *method_mont_p; + /* Place holders if we want to do X9.42 DH */ + BIGNUM *q; + BIGNUM *j; + unsigned char *seed; + int seedlen; + BIGNUM *counter; + int references; + CRYPTO_EX_DATA ex_data; + const DH_METHOD *meth; + ENGINE *engine; +}; + +# define DH_GENERATOR_2 2 +/* #define DH_GENERATOR_3 3 */ +# define DH_GENERATOR_5 5 + +/* DH_check error codes */ +# define DH_CHECK_P_NOT_PRIME 0x01 +# define DH_CHECK_P_NOT_SAFE_PRIME 0x02 +# define DH_UNABLE_TO_CHECK_GENERATOR 0x04 +# define DH_NOT_SUITABLE_GENERATOR 0x08 +# define DH_CHECK_Q_NOT_PRIME 0x10 +# define DH_CHECK_INVALID_Q_VALUE 0x20 +# define DH_CHECK_INVALID_J_VALUE 0x40 + +/* DH_check_pub_key error codes */ +# define DH_CHECK_PUBKEY_TOO_SMALL 0x01 +# define DH_CHECK_PUBKEY_TOO_LARGE 0x02 +# define DH_CHECK_PUBKEY_INVALID 0x04 + +/* + * primes p where (p-1)/2 is prime too are called "safe"; we define this for + * backward compatibility: + */ +# define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME + +# define d2i_DHparams_fp(fp,x) (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ + (char *(*)())d2i_DHparams,(fp),(unsigned char **)(x)) +# define i2d_DHparams_fp(fp,x) ASN1_i2d_fp(i2d_DHparams,(fp), \ + (unsigned char *)(x)) +# define d2i_DHparams_bio(bp,x) ASN1_d2i_bio_of(DH,DH_new,d2i_DHparams,bp,x) +# define i2d_DHparams_bio(bp,x) ASN1_i2d_bio_of_const(DH,i2d_DHparams,bp,x) + +DH *DHparams_dup(DH *); + +const DH_METHOD *DH_OpenSSL(void); + +void DH_set_default_method(const DH_METHOD *meth); +const DH_METHOD *DH_get_default_method(void); +int DH_set_method(DH *dh, const DH_METHOD *meth); +DH *DH_new_method(ENGINE *engine); + +DH *DH_new(void); +void DH_free(DH *dh); +int DH_up_ref(DH *dh); +int DH_size(const DH *dh); +int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int DH_set_ex_data(DH *d, int idx, void *arg); +void *DH_get_ex_data(DH *d, int idx); + +/* Deprecated version */ +# ifndef OPENSSL_NO_DEPRECATED +DH *DH_generate_parameters(int prime_len, int generator, + void (*callback) (int, int, void *), void *cb_arg); +# endif /* !defined(OPENSSL_NO_DEPRECATED) */ + +/* New version */ +int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, + BN_GENCB *cb); + +int DH_check(const DH *dh, int *codes); +int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); +int DH_generate_key(DH *dh); +int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); +int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); +DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); +int i2d_DHparams(const DH *a, unsigned char **pp); +DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); +int i2d_DHxparams(const DH *a, unsigned char **pp); +# ifndef OPENSSL_NO_FP_API +int DHparams_print_fp(FILE *fp, const DH *x); +# endif +# ifndef OPENSSL_NO_BIO +int DHparams_print(BIO *bp, const DH *x); +# else +int DHparams_print(char *bp, const DH *x); +# endif + +/* RFC 5114 parameters */ +DH *DH_get_1024_160(void); +DH *DH_get_2048_224(void); +DH *DH_get_2048_256(void); + +/* RFC2631 KDF */ +int DH_KDF_X9_42(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + ASN1_OBJECT *key_oid, + const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); + +# define EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, len, NULL) + +# define EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN, len, NULL) + +# define EVP_PKEY_CTX_set_dh_paramgen_type(ctx, typ) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_TYPE, typ, NULL) + +# define EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR, gen, NULL) + +# define EVP_PKEY_CTX_set_dh_rfc5114(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) + +# define EVP_PKEY_CTX_set_dhx_rfc5114(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) + +# define EVP_PKEY_CTX_set_dh_kdf_type(ctx, kdf) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_TYPE, kdf, NULL) + +# define EVP_PKEY_CTX_get_dh_kdf_type(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_TYPE, -2, NULL) + +# define EVP_PKEY_CTX_set0_dh_kdf_oid(ctx, oid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_OID, 0, (void *)oid) + +# define EVP_PKEY_CTX_get0_dh_kdf_oid(ctx, poid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_OID, 0, (void *)poid) + +# define EVP_PKEY_CTX_set_dh_kdf_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_get_dh_kdf_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_set_dh_kdf_outlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_OUTLEN, len, NULL) + +# define EVP_PKEY_CTX_get_dh_kdf_outlen(ctx, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN, 0, (void *)plen) + +# define EVP_PKEY_CTX_set0_dh_kdf_ukm(ctx, p, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_UKM, plen, (void *)p) + +# define EVP_PKEY_CTX_get0_dh_kdf_ukm(ctx, p) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_UKM, 0, (void *)p) + +# define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10) +# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12) +# define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13) +# define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14) + +/* KDF types */ +# define EVP_PKEY_DH_KDF_NONE 1 +# define EVP_PKEY_DH_KDF_X9_42 2 + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_DH_strings(void); + +/* Error codes for the DH functions. */ + +/* Function codes. */ +# define DH_F_COMPUTE_KEY 102 +# define DH_F_DHPARAMS_PRINT_FP 101 +# define DH_F_DH_BUILTIN_GENPARAMS 106 +# define DH_F_DH_CMS_DECRYPT 117 +# define DH_F_DH_CMS_SET_PEERKEY 118 +# define DH_F_DH_CMS_SET_SHARED_INFO 119 +# define DH_F_DH_COMPUTE_KEY 114 +# define DH_F_DH_GENERATE_KEY 115 +# define DH_F_DH_GENERATE_PARAMETERS_EX 116 +# define DH_F_DH_NEW_METHOD 105 +# define DH_F_DH_PARAM_DECODE 107 +# define DH_F_DH_PRIV_DECODE 110 +# define DH_F_DH_PRIV_ENCODE 111 +# define DH_F_DH_PUB_DECODE 108 +# define DH_F_DH_PUB_ENCODE 109 +# define DH_F_DO_DH_PRINT 100 +# define DH_F_GENERATE_KEY 103 +# define DH_F_GENERATE_PARAMETERS 104 +# define DH_F_PKEY_DH_DERIVE 112 +# define DH_F_PKEY_DH_KEYGEN 113 + +/* Reason codes. */ +# define DH_R_BAD_GENERATOR 101 +# define DH_R_BN_DECODE_ERROR 109 +# define DH_R_BN_ERROR 106 +# define DH_R_DECODE_ERROR 104 +# define DH_R_INVALID_PUBKEY 102 +# define DH_R_KDF_PARAMETER_ERROR 112 +# define DH_R_KEYS_NOT_SET 108 +# define DH_R_KEY_SIZE_TOO_SMALL 110 +# define DH_R_MODULUS_TOO_LARGE 103 +# define DH_R_NON_FIPS_METHOD 111 +# define DH_R_NO_PARAMETERS_SET 107 +# define DH_R_NO_PRIVATE_VALUE 100 +# define DH_R_PARAMETER_ENCODING_ERROR 105 +# define DH_R_PEER_KEY_ERROR 113 +# define DH_R_SHARED_INFO_ERROR 114 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/dsa.h b/External/include/openssl/dsa.h new file mode 100644 index 00000000..545358fd --- /dev/null +++ b/External/include/openssl/dsa.h @@ -0,0 +1,332 @@ +/* crypto/dsa/dsa.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +/* + * The DSS routines are based on patches supplied by + * Steven Schoch . He basically did the + * work and I have just tweaked them a little to fit into my + * stylistic vision for SSLeay :-) */ + +#ifndef HEADER_DSA_H +# define HEADER_DSA_H + +# include + +# ifdef OPENSSL_NO_DSA +# error DSA is disabled. +# endif + +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include + +# ifndef OPENSSL_NO_DEPRECATED +# include +# ifndef OPENSSL_NO_DH +# include +# endif +# endif + +# ifndef OPENSSL_DSA_MAX_MODULUS_BITS +# define OPENSSL_DSA_MAX_MODULUS_BITS 10000 +# endif + +# define DSA_FLAG_CACHE_MONT_P 0x01 +/* + * new with 0.9.7h; the built-in DSA implementation now uses constant time + * modular exponentiation for secret exponents by default. This flag causes + * the faster variable sliding window method to be used for all exponents. + */ +# define DSA_FLAG_NO_EXP_CONSTTIME 0x02 + +/* + * If this flag is set the DSA method is FIPS compliant and can be used in + * FIPS mode. This is set in the validated module method. If an application + * sets this flag in its own methods it is its reposibility to ensure the + * result is compliant. + */ + +# define DSA_FLAG_FIPS_METHOD 0x0400 + +/* + * If this flag is set the operations normally disabled in FIPS mode are + * permitted it is then the applications responsibility to ensure that the + * usage is compliant. + */ + +# define DSA_FLAG_NON_FIPS_ALLOW 0x0400 + +#ifdef __cplusplus +extern "C" { +#endif + +/* Already defined in ossl_typ.h */ +/* typedef struct dsa_st DSA; */ +/* typedef struct dsa_method DSA_METHOD; */ + +typedef struct DSA_SIG_st { + BIGNUM *r; + BIGNUM *s; +} DSA_SIG; + +struct dsa_method { + const char *name; + DSA_SIG *(*dsa_do_sign) (const unsigned char *dgst, int dlen, DSA *dsa); + int (*dsa_sign_setup) (DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, + BIGNUM **rp); + int (*dsa_do_verify) (const unsigned char *dgst, int dgst_len, + DSA_SIG *sig, DSA *dsa); + int (*dsa_mod_exp) (DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1, + BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *in_mont); + /* Can be null */ + int (*bn_mod_exp) (DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); + int (*init) (DSA *dsa); + int (*finish) (DSA *dsa); + int flags; + char *app_data; + /* If this is non-NULL, it is used to generate DSA parameters */ + int (*dsa_paramgen) (DSA *dsa, int bits, + const unsigned char *seed, int seed_len, + int *counter_ret, unsigned long *h_ret, + BN_GENCB *cb); + /* If this is non-NULL, it is used to generate DSA keys */ + int (*dsa_keygen) (DSA *dsa); +}; + +struct dsa_st { + /* + * This first variable is used to pick up errors where a DSA is passed + * instead of of a EVP_PKEY + */ + int pad; + long version; + int write_params; + BIGNUM *p; + BIGNUM *q; /* == 20 */ + BIGNUM *g; + BIGNUM *pub_key; /* y public key */ + BIGNUM *priv_key; /* x private key */ + BIGNUM *kinv; /* Signing pre-calc */ + BIGNUM *r; /* Signing pre-calc */ + int flags; + /* Normally used to cache montgomery values */ + BN_MONT_CTX *method_mont_p; + int references; + CRYPTO_EX_DATA ex_data; + const DSA_METHOD *meth; + /* functional reference if 'meth' is ENGINE-provided */ + ENGINE *engine; +}; + +# define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ + (char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x)) +# define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), \ + (unsigned char *)(x)) +# define d2i_DSAparams_bio(bp,x) ASN1_d2i_bio_of(DSA,DSA_new,d2i_DSAparams,bp,x) +# define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio_of_const(DSA,i2d_DSAparams,bp,x) + +DSA *DSAparams_dup(DSA *x); +DSA_SIG *DSA_SIG_new(void); +void DSA_SIG_free(DSA_SIG *a); +int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); +DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); + +DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); +int DSA_do_verify(const unsigned char *dgst, int dgst_len, + DSA_SIG *sig, DSA *dsa); + +const DSA_METHOD *DSA_OpenSSL(void); + +void DSA_set_default_method(const DSA_METHOD *); +const DSA_METHOD *DSA_get_default_method(void); +int DSA_set_method(DSA *dsa, const DSA_METHOD *); + +DSA *DSA_new(void); +DSA *DSA_new_method(ENGINE *engine); +void DSA_free(DSA *r); +/* "up" the DSA object's reference count */ +int DSA_up_ref(DSA *r); +int DSA_size(const DSA *); + /* next 4 return -1 on error */ +int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); +int DSA_sign(int type, const unsigned char *dgst, int dlen, + unsigned char *sig, unsigned int *siglen, DSA *dsa); +int DSA_verify(int type, const unsigned char *dgst, int dgst_len, + const unsigned char *sigbuf, int siglen, DSA *dsa); +int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int DSA_set_ex_data(DSA *d, int idx, void *arg); +void *DSA_get_ex_data(DSA *d, int idx); + +DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); +DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); +DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); + +/* Deprecated version */ +# ifndef OPENSSL_NO_DEPRECATED +DSA *DSA_generate_parameters(int bits, + unsigned char *seed, int seed_len, + int *counter_ret, unsigned long *h_ret, void + (*callback) (int, int, void *), void *cb_arg); +# endif /* !defined(OPENSSL_NO_DEPRECATED) */ + +/* New version */ +int DSA_generate_parameters_ex(DSA *dsa, int bits, + const unsigned char *seed, int seed_len, + int *counter_ret, unsigned long *h_ret, + BN_GENCB *cb); + +int DSA_generate_key(DSA *a); +int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); +int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); +int i2d_DSAparams(const DSA *a, unsigned char **pp); + +# ifndef OPENSSL_NO_BIO +int DSAparams_print(BIO *bp, const DSA *x); +int DSA_print(BIO *bp, const DSA *x, int off); +# endif +# ifndef OPENSSL_NO_FP_API +int DSAparams_print_fp(FILE *fp, const DSA *x); +int DSA_print_fp(FILE *bp, const DSA *x, int off); +# endif + +# define DSS_prime_checks 50 +/* + * Primality test according to FIPS PUB 186[-1], Appendix 2.1: 50 rounds of + * Rabin-Miller + */ +# define DSA_is_prime(n, callback, cb_arg) \ + BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) + +# ifndef OPENSSL_NO_DH +/* + * Convert DSA structure (key or just parameters) into DH structure (be + * careful to avoid small subgroup attacks when using this!) + */ +DH *DSA_dup_DH(const DSA *r); +# endif + +# define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL) + +# define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3) + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_DSA_strings(void); + +/* Error codes for the DSA functions. */ + +/* Function codes. */ +# define DSA_F_D2I_DSA_SIG 110 +# define DSA_F_DO_DSA_PRINT 104 +# define DSA_F_DSAPARAMS_PRINT 100 +# define DSA_F_DSAPARAMS_PRINT_FP 101 +# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 +# define DSA_F_DSA_DO_SIGN 112 +# define DSA_F_DSA_DO_VERIFY 113 +# define DSA_F_DSA_GENERATE_KEY 124 +# define DSA_F_DSA_GENERATE_PARAMETERS_EX 123 +# define DSA_F_DSA_NEW_METHOD 103 +# define DSA_F_DSA_PARAM_DECODE 119 +# define DSA_F_DSA_PRINT_FP 105 +# define DSA_F_DSA_PRIV_DECODE 115 +# define DSA_F_DSA_PRIV_ENCODE 116 +# define DSA_F_DSA_PUB_DECODE 117 +# define DSA_F_DSA_PUB_ENCODE 118 +# define DSA_F_DSA_SIGN 106 +# define DSA_F_DSA_SIGN_SETUP 107 +# define DSA_F_DSA_SIG_NEW 109 +# define DSA_F_DSA_SIG_PRINT 125 +# define DSA_F_DSA_VERIFY 108 +# define DSA_F_I2D_DSA_SIG 111 +# define DSA_F_OLD_DSA_PRIV_DECODE 122 +# define DSA_F_PKEY_DSA_CTRL 120 +# define DSA_F_PKEY_DSA_KEYGEN 121 +# define DSA_F_SIG_CB 114 + +/* Reason codes. */ +# define DSA_R_BAD_Q_VALUE 102 +# define DSA_R_BN_DECODE_ERROR 108 +# define DSA_R_BN_ERROR 109 +# define DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 100 +# define DSA_R_DECODE_ERROR 104 +# define DSA_R_INVALID_DIGEST_TYPE 106 +# define DSA_R_INVALID_PARAMETERS 112 +# define DSA_R_MISSING_PARAMETERS 101 +# define DSA_R_MODULUS_TOO_LARGE 103 +# define DSA_R_NEED_NEW_SETUP_VALUES 110 +# define DSA_R_NON_FIPS_DSA_METHOD 111 +# define DSA_R_NO_PARAMETERS_SET 107 +# define DSA_R_PARAMETER_ENCODING_ERROR 105 +# define DSA_R_Q_NOT_PRIME 113 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/dso.h b/External/include/openssl/dso.h new file mode 100644 index 00000000..c9013f5c --- /dev/null +++ b/External/include/openssl/dso.h @@ -0,0 +1,451 @@ +/* dso.h */ +/* + * Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL project + * 2000. + */ +/* ==================================================================== + * Copyright (c) 2000 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_DSO_H +# define HEADER_DSO_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* These values are used as commands to DSO_ctrl() */ +# define DSO_CTRL_GET_FLAGS 1 +# define DSO_CTRL_SET_FLAGS 2 +# define DSO_CTRL_OR_FLAGS 3 + +/* + * By default, DSO_load() will translate the provided filename into a form + * typical for the platform (more specifically the DSO_METHOD) using the + * dso_name_converter function of the method. Eg. win32 will transform "blah" + * into "blah.dll", and dlfcn will transform it into "libblah.so". The + * behaviour can be overriden by setting the name_converter callback in the + * DSO object (using DSO_set_name_converter()). This callback could even + * utilise the DSO_METHOD's converter too if it only wants to override + * behaviour for one or two possible DSO methods. However, the following flag + * can be set in a DSO to prevent *any* native name-translation at all - eg. + * if the caller has prompted the user for a path to a driver library so the + * filename should be interpreted as-is. + */ +# define DSO_FLAG_NO_NAME_TRANSLATION 0x01 +/* + * An extra flag to give if only the extension should be added as + * translation. This is obviously only of importance on Unix and other + * operating systems where the translation also may prefix the name with + * something, like 'lib', and ignored everywhere else. This flag is also + * ignored if DSO_FLAG_NO_NAME_TRANSLATION is used at the same time. + */ +# define DSO_FLAG_NAME_TRANSLATION_EXT_ONLY 0x02 + +/* + * The following flag controls the translation of symbol names to upper case. + * This is currently only being implemented for OpenVMS. + */ +# define DSO_FLAG_UPCASE_SYMBOL 0x10 + +/* + * This flag loads the library with public symbols. Meaning: The exported + * symbols of this library are public to all libraries loaded after this + * library. At the moment only implemented in unix. + */ +# define DSO_FLAG_GLOBAL_SYMBOLS 0x20 + +typedef void (*DSO_FUNC_TYPE) (void); + +typedef struct dso_st DSO; + +/* + * The function prototype used for method functions (or caller-provided + * callbacks) that transform filenames. They are passed a DSO structure + * pointer (or NULL if they are to be used independantly of a DSO object) and + * a filename to transform. They should either return NULL (if there is an + * error condition) or a newly allocated string containing the transformed + * form that the caller will need to free with OPENSSL_free() when done. + */ +typedef char *(*DSO_NAME_CONVERTER_FUNC)(DSO *, const char *); +/* + * The function prototype used for method functions (or caller-provided + * callbacks) that merge two file specifications. They are passed a DSO + * structure pointer (or NULL if they are to be used independantly of a DSO + * object) and two file specifications to merge. They should either return + * NULL (if there is an error condition) or a newly allocated string + * containing the result of merging that the caller will need to free with + * OPENSSL_free() when done. Here, merging means that bits and pieces are + * taken from each of the file specifications and added together in whatever + * fashion that is sensible for the DSO method in question. The only rule + * that really applies is that if the two specification contain pieces of the + * same type, the copy from the first string takes priority. One could see + * it as the first specification is the one given by the user and the second + * being a bunch of defaults to add on if they're missing in the first. + */ +typedef char *(*DSO_MERGER_FUNC)(DSO *, const char *, const char *); + +typedef struct dso_meth_st { + const char *name; + /* + * Loads a shared library, NB: new DSO_METHODs must ensure that a + * successful load populates the loaded_filename field, and likewise a + * successful unload OPENSSL_frees and NULLs it out. + */ + int (*dso_load) (DSO *dso); + /* Unloads a shared library */ + int (*dso_unload) (DSO *dso); + /* Binds a variable */ + void *(*dso_bind_var) (DSO *dso, const char *symname); + /* + * Binds a function - assumes a return type of DSO_FUNC_TYPE. This should + * be cast to the real function prototype by the caller. Platforms that + * don't have compatible representations for different prototypes (this + * is possible within ANSI C) are highly unlikely to have shared + * libraries at all, let alone a DSO_METHOD implemented for them. + */ + DSO_FUNC_TYPE (*dso_bind_func) (DSO *dso, const char *symname); +/* I don't think this would actually be used in any circumstances. */ +# if 0 + /* Unbinds a variable */ + int (*dso_unbind_var) (DSO *dso, char *symname, void *symptr); + /* Unbinds a function */ + int (*dso_unbind_func) (DSO *dso, char *symname, DSO_FUNC_TYPE symptr); +# endif + /* + * The generic (yuck) "ctrl()" function. NB: Negative return values + * (rather than zero) indicate errors. + */ + long (*dso_ctrl) (DSO *dso, int cmd, long larg, void *parg); + /* + * The default DSO_METHOD-specific function for converting filenames to a + * canonical native form. + */ + DSO_NAME_CONVERTER_FUNC dso_name_converter; + /* + * The default DSO_METHOD-specific function for converting filenames to a + * canonical native form. + */ + DSO_MERGER_FUNC dso_merger; + /* [De]Initialisation handlers. */ + int (*init) (DSO *dso); + int (*finish) (DSO *dso); + /* Return pathname of the module containing location */ + int (*pathbyaddr) (void *addr, char *path, int sz); + /* Perform global symbol lookup, i.e. among *all* modules */ + void *(*globallookup) (const char *symname); +} DSO_METHOD; + +/**********************************************************************/ +/* The low-level handle type used to refer to a loaded shared library */ + +struct dso_st { + DSO_METHOD *meth; + /* + * Standard dlopen uses a (void *). Win32 uses a HANDLE. VMS doesn't use + * anything but will need to cache the filename for use in the dso_bind + * handler. All in all, let each method control its own destiny. + * "Handles" and such go in a STACK. + */ + STACK_OF(void) *meth_data; + int references; + int flags; + /* + * For use by applications etc ... use this for your bits'n'pieces, don't + * touch meth_data! + */ + CRYPTO_EX_DATA ex_data; + /* + * If this callback function pointer is set to non-NULL, then it will be + * used in DSO_load() in place of meth->dso_name_converter. NB: This + * should normally set using DSO_set_name_converter(). + */ + DSO_NAME_CONVERTER_FUNC name_converter; + /* + * If this callback function pointer is set to non-NULL, then it will be + * used in DSO_load() in place of meth->dso_merger. NB: This should + * normally set using DSO_set_merger(). + */ + DSO_MERGER_FUNC merger; + /* + * This is populated with (a copy of) the platform-independant filename + * used for this DSO. + */ + char *filename; + /* + * This is populated with (a copy of) the translated filename by which + * the DSO was actually loaded. It is NULL iff the DSO is not currently + * loaded. NB: This is here because the filename translation process may + * involve a callback being invoked more than once not only to convert to + * a platform-specific form, but also to try different filenames in the + * process of trying to perform a load. As such, this variable can be + * used to indicate (a) whether this DSO structure corresponds to a + * loaded library or not, and (b) the filename with which it was actually + * loaded. + */ + char *loaded_filename; +}; + +DSO *DSO_new(void); +DSO *DSO_new_method(DSO_METHOD *method); +int DSO_free(DSO *dso); +int DSO_flags(DSO *dso); +int DSO_up_ref(DSO *dso); +long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg); + +/* + * This function sets the DSO's name_converter callback. If it is non-NULL, + * then it will be used instead of the associated DSO_METHOD's function. If + * oldcb is non-NULL then it is set to the function pointer value being + * replaced. Return value is non-zero for success. + */ +int DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb, + DSO_NAME_CONVERTER_FUNC *oldcb); +/* + * These functions can be used to get/set the platform-independant filename + * used for a DSO. NB: set will fail if the DSO is already loaded. + */ +const char *DSO_get_filename(DSO *dso); +int DSO_set_filename(DSO *dso, const char *filename); +/* + * This function will invoke the DSO's name_converter callback to translate a + * filename, or if the callback isn't set it will instead use the DSO_METHOD's + * converter. If "filename" is NULL, the "filename" in the DSO itself will be + * used. If the DSO_FLAG_NO_NAME_TRANSLATION flag is set, then the filename is + * simply duplicated. NB: This function is usually called from within a + * DSO_METHOD during the processing of a DSO_load() call, and is exposed so + * that caller-created DSO_METHODs can do the same thing. A non-NULL return + * value will need to be OPENSSL_free()'d. + */ +char *DSO_convert_filename(DSO *dso, const char *filename); +/* + * This function will invoke the DSO's merger callback to merge two file + * specifications, or if the callback isn't set it will instead use the + * DSO_METHOD's merger. A non-NULL return value will need to be + * OPENSSL_free()'d. + */ +char *DSO_merge(DSO *dso, const char *filespec1, const char *filespec2); +/* + * If the DSO is currently loaded, this returns the filename that it was + * loaded under, otherwise it returns NULL. So it is also useful as a test as + * to whether the DSO is currently loaded. NB: This will not necessarily + * return the same value as DSO_convert_filename(dso, dso->filename), because + * the DSO_METHOD's load function may have tried a variety of filenames (with + * and/or without the aid of the converters) before settling on the one it + * actually loaded. + */ +const char *DSO_get_loaded_filename(DSO *dso); + +void DSO_set_default_method(DSO_METHOD *meth); +DSO_METHOD *DSO_get_default_method(void); +DSO_METHOD *DSO_get_method(DSO *dso); +DSO_METHOD *DSO_set_method(DSO *dso, DSO_METHOD *meth); + +/* + * The all-singing all-dancing load function, you normally pass NULL for the + * first and third parameters. Use DSO_up and DSO_free for subsequent + * reference count handling. Any flags passed in will be set in the + * constructed DSO after its init() function but before the load operation. + * If 'dso' is non-NULL, 'flags' is ignored. + */ +DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags); + +/* This function binds to a variable inside a shared library. */ +void *DSO_bind_var(DSO *dso, const char *symname); + +/* This function binds to a function inside a shared library. */ +DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname); + +/* + * This method is the default, but will beg, borrow, or steal whatever method + * should be the default on any particular platform (including + * DSO_METH_null() if necessary). + */ +DSO_METHOD *DSO_METHOD_openssl(void); + +/* + * This method is defined for all platforms - if a platform has no DSO + * support then this will be the only method! + */ +DSO_METHOD *DSO_METHOD_null(void); + +/* + * If DSO_DLFCN is defined, the standard dlfcn.h-style functions (dlopen, + * dlclose, dlsym, etc) will be used and incorporated into this method. If + * not, this method will return NULL. + */ +DSO_METHOD *DSO_METHOD_dlfcn(void); + +/* + * If DSO_DL is defined, the standard dl.h-style functions (shl_load, + * shl_unload, shl_findsym, etc) will be used and incorporated into this + * method. If not, this method will return NULL. + */ +DSO_METHOD *DSO_METHOD_dl(void); + +/* If WIN32 is defined, use DLLs. If not, return NULL. */ +DSO_METHOD *DSO_METHOD_win32(void); + +/* If VMS is defined, use shared images. If not, return NULL. */ +DSO_METHOD *DSO_METHOD_vms(void); + +/* + * This function writes null-terminated pathname of DSO module containing + * 'addr' into 'sz' large caller-provided 'path' and returns the number of + * characters [including trailing zero] written to it. If 'sz' is 0 or + * negative, 'path' is ignored and required amount of charachers [including + * trailing zero] to accomodate pathname is returned. If 'addr' is NULL, then + * pathname of cryptolib itself is returned. Negative or zero return value + * denotes error. + */ +int DSO_pathbyaddr(void *addr, char *path, int sz); + +/* + * This function should be used with caution! It looks up symbols in *all* + * loaded modules and if module gets unloaded by somebody else attempt to + * dereference the pointer is doomed to have fatal consequences. Primary + * usage for this function is to probe *core* system functionality, e.g. + * check if getnameinfo(3) is available at run-time without bothering about + * OS-specific details such as libc.so.versioning or where does it actually + * reside: in libc itself or libsocket. + */ +void *DSO_global_lookup(const char *name); + +/* If BeOS is defined, use shared images. If not, return NULL. */ +DSO_METHOD *DSO_METHOD_beos(void); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_DSO_strings(void); + +/* Error codes for the DSO functions. */ + +/* Function codes. */ +# define DSO_F_BEOS_BIND_FUNC 144 +# define DSO_F_BEOS_BIND_VAR 145 +# define DSO_F_BEOS_LOAD 146 +# define DSO_F_BEOS_NAME_CONVERTER 147 +# define DSO_F_BEOS_UNLOAD 148 +# define DSO_F_DLFCN_BIND_FUNC 100 +# define DSO_F_DLFCN_BIND_VAR 101 +# define DSO_F_DLFCN_LOAD 102 +# define DSO_F_DLFCN_MERGER 130 +# define DSO_F_DLFCN_NAME_CONVERTER 123 +# define DSO_F_DLFCN_UNLOAD 103 +# define DSO_F_DL_BIND_FUNC 104 +# define DSO_F_DL_BIND_VAR 105 +# define DSO_F_DL_LOAD 106 +# define DSO_F_DL_MERGER 131 +# define DSO_F_DL_NAME_CONVERTER 124 +# define DSO_F_DL_UNLOAD 107 +# define DSO_F_DSO_BIND_FUNC 108 +# define DSO_F_DSO_BIND_VAR 109 +# define DSO_F_DSO_CONVERT_FILENAME 126 +# define DSO_F_DSO_CTRL 110 +# define DSO_F_DSO_FREE 111 +# define DSO_F_DSO_GET_FILENAME 127 +# define DSO_F_DSO_GET_LOADED_FILENAME 128 +# define DSO_F_DSO_GLOBAL_LOOKUP 139 +# define DSO_F_DSO_LOAD 112 +# define DSO_F_DSO_MERGE 132 +# define DSO_F_DSO_NEW_METHOD 113 +# define DSO_F_DSO_PATHBYADDR 140 +# define DSO_F_DSO_SET_FILENAME 129 +# define DSO_F_DSO_SET_NAME_CONVERTER 122 +# define DSO_F_DSO_UP_REF 114 +# define DSO_F_GLOBAL_LOOKUP_FUNC 138 +# define DSO_F_PATHBYADDR 137 +# define DSO_F_VMS_BIND_SYM 115 +# define DSO_F_VMS_LOAD 116 +# define DSO_F_VMS_MERGER 133 +# define DSO_F_VMS_UNLOAD 117 +# define DSO_F_WIN32_BIND_FUNC 118 +# define DSO_F_WIN32_BIND_VAR 119 +# define DSO_F_WIN32_GLOBALLOOKUP 142 +# define DSO_F_WIN32_GLOBALLOOKUP_FUNC 143 +# define DSO_F_WIN32_JOINER 135 +# define DSO_F_WIN32_LOAD 120 +# define DSO_F_WIN32_MERGER 134 +# define DSO_F_WIN32_NAME_CONVERTER 125 +# define DSO_F_WIN32_PATHBYADDR 141 +# define DSO_F_WIN32_SPLITTER 136 +# define DSO_F_WIN32_UNLOAD 121 + +/* Reason codes. */ +# define DSO_R_CTRL_FAILED 100 +# define DSO_R_DSO_ALREADY_LOADED 110 +# define DSO_R_EMPTY_FILE_STRUCTURE 113 +# define DSO_R_FAILURE 114 +# define DSO_R_FILENAME_TOO_BIG 101 +# define DSO_R_FINISH_FAILED 102 +# define DSO_R_INCORRECT_FILE_SYNTAX 115 +# define DSO_R_LOAD_FAILED 103 +# define DSO_R_NAME_TRANSLATION_FAILED 109 +# define DSO_R_NO_FILENAME 111 +# define DSO_R_NO_FILE_SPECIFICATION 116 +# define DSO_R_NULL_HANDLE 104 +# define DSO_R_SET_FILENAME_FAILED 112 +# define DSO_R_STACK_ERROR 105 +# define DSO_R_SYM_FAILURE 106 +# define DSO_R_UNLOAD_FAILED 107 +# define DSO_R_UNSUPPORTED 108 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/dtls1.h b/External/include/openssl/dtls1.h new file mode 100644 index 00000000..30bbcf27 --- /dev/null +++ b/External/include/openssl/dtls1.h @@ -0,0 +1,272 @@ +/* ssl/dtls1.h */ +/* + * DTLS implementation written by Nagendra Modadugu + * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. + */ +/* ==================================================================== + * Copyright (c) 1999-2005 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_DTLS1_H +# define HEADER_DTLS1_H + +# include +# include +# ifdef OPENSSL_SYS_VMS +# include +# include +# endif +# ifdef OPENSSL_SYS_WIN32 +/* Needed for struct timeval */ +# include +# elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_) +# include +# else +# if defined(OPENSSL_SYS_VXWORKS) +# include +# else +# include +# endif +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define DTLS1_VERSION 0xFEFF +# define DTLS1_2_VERSION 0xFEFD +# define DTLS_MAX_VERSION DTLS1_2_VERSION +# define DTLS1_VERSION_MAJOR 0xFE + +# define DTLS1_BAD_VER 0x0100 + +/* Special value for method supporting multiple versions */ +# define DTLS_ANY_VERSION 0x1FFFF + +# if 0 +/* this alert description is not specified anywhere... */ +# define DTLS1_AD_MISSING_HANDSHAKE_MESSAGE 110 +# endif + +/* lengths of messages */ +# define DTLS1_COOKIE_LENGTH 256 + +# define DTLS1_RT_HEADER_LENGTH 13 + +# define DTLS1_HM_HEADER_LENGTH 12 + +# define DTLS1_HM_BAD_FRAGMENT -2 +# define DTLS1_HM_FRAGMENT_RETRY -3 + +# define DTLS1_CCS_HEADER_LENGTH 1 + +# ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE +# define DTLS1_AL_HEADER_LENGTH 7 +# else +# define DTLS1_AL_HEADER_LENGTH 2 +# endif + +# ifndef OPENSSL_NO_SSL_INTERN + +# ifndef OPENSSL_NO_SCTP +# define DTLS1_SCTP_AUTH_LABEL "EXPORTER_DTLS_OVER_SCTP" +# endif + +/* Max MTU overhead we know about so far is 40 for IPv6 + 8 for UDP */ +# define DTLS1_MAX_MTU_OVERHEAD 48 + +typedef struct dtls1_bitmap_st { + unsigned long map; /* track 32 packets on 32-bit systems and 64 + * - on 64-bit systems */ + unsigned char max_seq_num[8]; /* max record number seen so far, 64-bit + * value in big-endian encoding */ +} DTLS1_BITMAP; + +struct dtls1_retransmit_state { + EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ + EVP_MD_CTX *write_hash; /* used for mac generation */ +# ifndef OPENSSL_NO_COMP + COMP_CTX *compress; /* compression */ +# else + char *compress; +# endif + SSL_SESSION *session; + unsigned short epoch; +}; + +struct hm_header_st { + unsigned char type; + unsigned long msg_len; + unsigned short seq; + unsigned long frag_off; + unsigned long frag_len; + unsigned int is_ccs; + struct dtls1_retransmit_state saved_retransmit_state; +}; + +struct ccs_header_st { + unsigned char type; + unsigned short seq; +}; + +struct dtls1_timeout_st { + /* Number of read timeouts so far */ + unsigned int read_timeouts; + /* Number of write timeouts so far */ + unsigned int write_timeouts; + /* Number of alerts received so far */ + unsigned int num_alerts; +}; + +typedef struct record_pqueue_st { + unsigned short epoch; + pqueue q; +} record_pqueue; + +typedef struct hm_fragment_st { + struct hm_header_st msg_header; + unsigned char *fragment; + unsigned char *reassembly; +} hm_fragment; + +typedef struct dtls1_state_st { + unsigned int send_cookie; + unsigned char cookie[DTLS1_COOKIE_LENGTH]; + unsigned char rcvd_cookie[DTLS1_COOKIE_LENGTH]; + unsigned int cookie_len; + /* + * The current data and handshake epoch. This is initially + * undefined, and starts at zero once the initial handshake is + * completed + */ + unsigned short r_epoch; + unsigned short w_epoch; + /* records being received in the current epoch */ + DTLS1_BITMAP bitmap; + /* renegotiation starts a new set of sequence numbers */ + DTLS1_BITMAP next_bitmap; + /* handshake message numbers */ + unsigned short handshake_write_seq; + unsigned short next_handshake_write_seq; + unsigned short handshake_read_seq; + /* save last sequence number for retransmissions */ + unsigned char last_write_sequence[8]; + /* Received handshake records (processed and unprocessed) */ + record_pqueue unprocessed_rcds; + record_pqueue processed_rcds; + /* Buffered handshake messages */ + pqueue buffered_messages; + /* Buffered (sent) handshake records */ + pqueue sent_messages; + /* + * Buffered application records. Only for records between CCS and + * Finished to prevent either protocol violation or unnecessary message + * loss. + */ + record_pqueue buffered_app_data; + /* Is set when listening for new connections with dtls1_listen() */ + unsigned int listen; + unsigned int link_mtu; /* max on-the-wire DTLS packet size */ + unsigned int mtu; /* max DTLS packet size */ + struct hm_header_st w_msg_hdr; + struct hm_header_st r_msg_hdr; + struct dtls1_timeout_st timeout; + /* + * Indicates when the last handshake msg or heartbeat sent will timeout + */ + struct timeval next_timeout; + /* Timeout duration */ + unsigned short timeout_duration; + /* + * storage for Alert/Handshake protocol data received but not yet + * processed by ssl3_read_bytes: + */ + unsigned char alert_fragment[DTLS1_AL_HEADER_LENGTH]; + unsigned int alert_fragment_len; + unsigned char handshake_fragment[DTLS1_HM_HEADER_LENGTH]; + unsigned int handshake_fragment_len; + unsigned int retransmitting; + /* + * Set when the handshake is ready to process peer's ChangeCipherSpec message. + * Cleared after the message has been processed. + */ + unsigned int change_cipher_spec_ok; +# ifndef OPENSSL_NO_SCTP + /* used when SSL_ST_XX_FLUSH is entered */ + int next_state; + int shutdown_received; +# endif +} DTLS1_STATE; + +typedef struct dtls1_record_data_st { + unsigned char *packet; + unsigned int packet_length; + SSL3_BUFFER rbuf; + SSL3_RECORD rrec; +# ifndef OPENSSL_NO_SCTP + struct bio_dgram_sctp_rcvinfo recordinfo; +# endif +} DTLS1_RECORD_DATA; + +# endif + +/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */ +# define DTLS1_TMO_READ_COUNT 2 +# define DTLS1_TMO_WRITE_COUNT 2 + +# define DTLS1_TMO_ALERT_COUNT 12 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/e_os2.h b/External/include/openssl/e_os2.h new file mode 100644 index 00000000..7be9989a --- /dev/null +++ b/External/include/openssl/e_os2.h @@ -0,0 +1,328 @@ +/* e_os2.h */ +/* ==================================================================== + * Copyright (c) 1998-2000 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#include + +#ifndef HEADER_E_OS2_H +# define HEADER_E_OS2_H + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** + * Detect operating systems. This probably needs completing. + * The result is that at least one OPENSSL_SYS_os macro should be defined. + * However, if none is defined, Unix is assumed. + **/ + +# define OPENSSL_SYS_UNIX + +/* ---------------------- Macintosh, before MacOS X ----------------------- */ +# if defined(__MWERKS__) && defined(macintosh) || defined(OPENSSL_SYSNAME_MAC) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_MACINTOSH_CLASSIC +# endif + +/* ---------------------- NetWare ----------------------------------------- */ +# if defined(NETWARE) || defined(OPENSSL_SYSNAME_NETWARE) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_NETWARE +# endif + +/* --------------------- Microsoft operating systems ---------------------- */ + +/* + * Note that MSDOS actually denotes 32-bit environments running on top of + * MS-DOS, such as DJGPP one. + */ +# if defined(OPENSSL_SYSNAME_MSDOS) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_MSDOS +# endif + +/* + * For 32 bit environment, there seems to be the CygWin environment and then + * all the others that try to do the same thing Microsoft does... + */ +# if defined(OPENSSL_SYSNAME_UWIN) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WIN32_UWIN +# else +# if defined(__CYGWIN__) || defined(OPENSSL_SYSNAME_CYGWIN) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WIN32_CYGWIN +# else +# if defined(_WIN32) || defined(OPENSSL_SYSNAME_WIN32) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WIN32 +# endif +# if defined(_WIN64) || defined(OPENSSL_SYSNAME_WIN64) +# undef OPENSSL_SYS_UNIX +# if !defined(OPENSSL_SYS_WIN64) +# define OPENSSL_SYS_WIN64 +# endif +# endif +# if defined(OPENSSL_SYSNAME_WINNT) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WINNT +# endif +# if defined(OPENSSL_SYSNAME_WINCE) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WINCE +# endif +# endif +# endif + +/* Anything that tries to look like Microsoft is "Windows" */ +# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN64) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WINDOWS +# ifndef OPENSSL_SYS_MSDOS +# define OPENSSL_SYS_MSDOS +# endif +# endif + +/* + * DLL settings. This part is a bit tough, because it's up to the + * application implementor how he or she will link the application, so it + * requires some macro to be used. + */ +# ifdef OPENSSL_SYS_WINDOWS +# ifndef OPENSSL_OPT_WINDLL +# if defined(_WINDLL) /* This is used when building OpenSSL to + * indicate that DLL linkage should be used */ +# define OPENSSL_OPT_WINDLL +# endif +# endif +# endif + +/* ------------------------------- OpenVMS -------------------------------- */ +# if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYSNAME_VMS) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_VMS +# if defined(__DECC) +# define OPENSSL_SYS_VMS_DECC +# elif defined(__DECCXX) +# define OPENSSL_SYS_VMS_DECC +# define OPENSSL_SYS_VMS_DECCXX +# else +# define OPENSSL_SYS_VMS_NODECC +# endif +# endif + +/* -------------------------------- OS/2 ---------------------------------- */ +# if defined(__EMX__) || defined(__OS2__) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_OS2 +# endif + +/* -------------------------------- Unix ---------------------------------- */ +# ifdef OPENSSL_SYS_UNIX +# if defined(linux) || defined(__linux__) || defined(OPENSSL_SYSNAME_LINUX) +# define OPENSSL_SYS_LINUX +# endif +# ifdef OPENSSL_SYSNAME_MPE +# define OPENSSL_SYS_MPE +# endif +# ifdef OPENSSL_SYSNAME_SNI +# define OPENSSL_SYS_SNI +# endif +# ifdef OPENSSL_SYSNAME_ULTRASPARC +# define OPENSSL_SYS_ULTRASPARC +# endif +# ifdef OPENSSL_SYSNAME_NEWS4 +# define OPENSSL_SYS_NEWS4 +# endif +# ifdef OPENSSL_SYSNAME_MACOSX +# define OPENSSL_SYS_MACOSX +# endif +# ifdef OPENSSL_SYSNAME_MACOSX_RHAPSODY +# define OPENSSL_SYS_MACOSX_RHAPSODY +# define OPENSSL_SYS_MACOSX +# endif +# ifdef OPENSSL_SYSNAME_SUNOS +# define OPENSSL_SYS_SUNOS +# endif +# if defined(_CRAY) || defined(OPENSSL_SYSNAME_CRAY) +# define OPENSSL_SYS_CRAY +# endif +# if defined(_AIX) || defined(OPENSSL_SYSNAME_AIX) +# define OPENSSL_SYS_AIX +# endif +# endif + +/* -------------------------------- VOS ----------------------------------- */ +# if defined(__VOS__) || defined(OPENSSL_SYSNAME_VOS) +# define OPENSSL_SYS_VOS +# ifdef __HPPA__ +# define OPENSSL_SYS_VOS_HPPA +# endif +# ifdef __IA32__ +# define OPENSSL_SYS_VOS_IA32 +# endif +# endif + +/* ------------------------------ VxWorks --------------------------------- */ +# ifdef OPENSSL_SYSNAME_VXWORKS +# define OPENSSL_SYS_VXWORKS +# endif + +/* -------------------------------- BeOS ---------------------------------- */ +# if defined(__BEOS__) +# define OPENSSL_SYS_BEOS +# include +# if defined(BONE_VERSION) +# define OPENSSL_SYS_BEOS_BONE +# else +# define OPENSSL_SYS_BEOS_R5 +# endif +# endif + +/** + * That's it for OS-specific stuff + *****************************************************************************/ + +/* Specials for I/O an exit */ +# ifdef OPENSSL_SYS_MSDOS +# define OPENSSL_UNISTD_IO +# define OPENSSL_DECLARE_EXIT extern void exit(int); +# else +# define OPENSSL_UNISTD_IO OPENSSL_UNISTD +# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ +# endif + +/*- + * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare + * certain global symbols that, with some compilers under VMS, have to be + * defined and declared explicitely with globaldef and globalref. + * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare + * DLL exports and imports for compilers under Win32. These are a little + * more complicated to use. Basically, for any library that exports some + * global variables, the following code must be present in the header file + * that declares them, before OPENSSL_EXTERN is used: + * + * #ifdef SOME_BUILD_FLAG_MACRO + * # undef OPENSSL_EXTERN + * # define OPENSSL_EXTERN OPENSSL_EXPORT + * #endif + * + * The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL + * have some generally sensible values, and for OPENSSL_EXTERN to have the + * value OPENSSL_IMPORT. + */ + +# if defined(OPENSSL_SYS_VMS_NODECC) +# define OPENSSL_EXPORT globalref +# define OPENSSL_IMPORT globalref +# define OPENSSL_GLOBAL globaldef +# elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) +# define OPENSSL_EXPORT extern __declspec(dllexport) +# define OPENSSL_IMPORT extern __declspec(dllimport) +# define OPENSSL_GLOBAL +# else +# define OPENSSL_EXPORT extern +# define OPENSSL_IMPORT extern +# define OPENSSL_GLOBAL +# endif +# define OPENSSL_EXTERN OPENSSL_IMPORT + +/*- + * Macros to allow global variables to be reached through function calls when + * required (if a shared library version requires it, for example. + * The way it's done allows definitions like this: + * + * // in foobar.c + * OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) + * // in foobar.h + * OPENSSL_DECLARE_GLOBAL(int,foobar); + * #define foobar OPENSSL_GLOBAL_REF(foobar) + */ +# ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION +# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \ + type *_shadow_##name(void) \ + { static type _hide_##name=value; return &_hide_##name; } +# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) +# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) +# else +# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) OPENSSL_GLOBAL type _shadow_##name=value; +# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name +# define OPENSSL_GLOBAL_REF(name) _shadow_##name +# endif + +# if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) && macintosh==1 && !defined(MAC_OS_GUSI_SOURCE) +# define ossl_ssize_t long +# endif + +# ifdef OPENSSL_SYS_MSDOS +# define ossl_ssize_t long +# endif + +# if defined(NeXT) || defined(OPENSSL_SYS_NEWS4) || defined(OPENSSL_SYS_SUNOS) +# define ssize_t int +# endif + +# if defined(__ultrix) && !defined(ssize_t) +# define ossl_ssize_t int +# endif + +# ifndef ossl_ssize_t +# define ossl_ssize_t ssize_t +# endif + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/ebcdic.h b/External/include/openssl/ebcdic.h new file mode 100644 index 00000000..4cbdfeb7 --- /dev/null +++ b/External/include/openssl/ebcdic.h @@ -0,0 +1,26 @@ +/* crypto/ebcdic.h */ + +#ifndef HEADER_EBCDIC_H +# define HEADER_EBCDIC_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Avoid name clashes with other applications */ +# define os_toascii _openssl_os_toascii +# define os_toebcdic _openssl_os_toebcdic +# define ebcdic2ascii _openssl_ebcdic2ascii +# define ascii2ebcdic _openssl_ascii2ebcdic + +extern const unsigned char os_toascii[256]; +extern const unsigned char os_toebcdic[256]; +void *ebcdic2ascii(void *dest, const void *srce, size_t count); +void *ascii2ebcdic(void *dest, const void *srce, size_t count); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/ec.h b/External/include/openssl/ec.h new file mode 100644 index 00000000..81e6faf6 --- /dev/null +++ b/External/include/openssl/ec.h @@ -0,0 +1,1282 @@ +/* crypto/ec/ec.h */ +/* + * Originally written by Bodo Moeller for the OpenSSL project. + */ +/** + * \file crypto/ec/ec.h Include file for the OpenSSL EC functions + * \author Originally written by Bodo Moeller for the OpenSSL project + */ +/* ==================================================================== + * Copyright (c) 1998-2005 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * + * Portions of the attached software ("Contribution") are developed by + * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. + * + * The Contribution is licensed pursuant to the OpenSSL open source + * license provided above. + * + * The elliptic curve binary polynomial software is originally written by + * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. + * + */ + +#ifndef HEADER_EC_H +# define HEADER_EC_H + +# include + +# ifdef OPENSSL_NO_EC +# error EC is disabled. +# endif + +# include +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +# ifdef __cplusplus +extern "C" { +# elif defined(__SUNPRO_C) +# if __SUNPRO_C >= 0x520 +# pragma error_messages (off,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) +# endif +# endif + +# ifndef OPENSSL_ECC_MAX_FIELD_BITS +# define OPENSSL_ECC_MAX_FIELD_BITS 661 +# endif + +/** Enum for the point conversion form as defined in X9.62 (ECDSA) + * for the encoding of a elliptic curve point (x,y) */ +typedef enum { + /** the point is encoded as z||x, where the octet z specifies + * which solution of the quadratic equation y is */ + POINT_CONVERSION_COMPRESSED = 2, + /** the point is encoded as z||x||y, where z is the octet 0x04 */ + POINT_CONVERSION_UNCOMPRESSED = 4, + /** the point is encoded as z||x||y, where the octet z specifies + * which solution of the quadratic equation y is */ + POINT_CONVERSION_HYBRID = 6 +} point_conversion_form_t; + +typedef struct ec_method_st EC_METHOD; + +typedef struct ec_group_st + /*- + EC_METHOD *meth; + -- field definition + -- curve coefficients + -- optional generator with associated information (order, cofactor) + -- optional extra data (precomputed table for fast computation of multiples of generator) + -- ASN1 stuff + */ + EC_GROUP; + +typedef struct ec_point_st EC_POINT; + +/********************************************************************/ +/* EC_METHODs for curves over GF(p) */ +/********************************************************************/ + +/** Returns the basic GFp ec methods which provides the basis for the + * optimized methods. + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_simple_method(void); + +/** Returns GFp methods using montgomery multiplication. + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_mont_method(void); + +/** Returns GFp methods using optimized methods for NIST recommended curves + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nist_method(void); + +# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +/** Returns 64-bit optimized methods for nistp224 + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nistp224_method(void); + +/** Returns 64-bit optimized methods for nistp256 + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nistp256_method(void); + +/** Returns 64-bit optimized methods for nistp521 + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nistp521_method(void); +# endif + +# ifndef OPENSSL_NO_EC2M +/********************************************************************/ +/* EC_METHOD for curves over GF(2^m) */ +/********************************************************************/ + +/** Returns the basic GF2m ec method + * \return EC_METHOD object + */ +const EC_METHOD *EC_GF2m_simple_method(void); + +# endif + +/********************************************************************/ +/* EC_GROUP functions */ +/********************************************************************/ + +/** Creates a new EC_GROUP object + * \param meth EC_METHOD to use + * \return newly created EC_GROUP object or NULL in case of an error. + */ +EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); + +/** Frees a EC_GROUP object + * \param group EC_GROUP object to be freed. + */ +void EC_GROUP_free(EC_GROUP *group); + +/** Clears and frees a EC_GROUP object + * \param group EC_GROUP object to be cleared and freed. + */ +void EC_GROUP_clear_free(EC_GROUP *group); + +/** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. + * \param dst destination EC_GROUP object + * \param src source EC_GROUP object + * \return 1 on success and 0 if an error occurred. + */ +int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); + +/** Creates a new EC_GROUP object and copies the copies the content + * form src to the newly created EC_KEY object + * \param src source EC_GROUP object + * \return newly created EC_GROUP object or NULL in case of an error. + */ +EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); + +/** Returns the EC_METHOD of the EC_GROUP object. + * \param group EC_GROUP object + * \return EC_METHOD used in this EC_GROUP object. + */ +const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); + +/** Returns the field type of the EC_METHOD. + * \param meth EC_METHOD object + * \return NID of the underlying field type OID. + */ +int EC_METHOD_get_field_type(const EC_METHOD *meth); + +/** Sets the generator and it's order/cofactor of a EC_GROUP object. + * \param group EC_GROUP object + * \param generator EC_POINT object with the generator. + * \param order the order of the group generated by the generator. + * \param cofactor the index of the sub-group generated by the generator + * in the group of all points on the elliptic curve. + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, + const BIGNUM *order, const BIGNUM *cofactor); + +/** Returns the generator of a EC_GROUP object. + * \param group EC_GROUP object + * \return the currently used generator (possibly NULL). + */ +const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); + +/** Returns the montgomery data for order(Generator) + * \param group EC_GROUP object + * \return the currently used generator (possibly NULL). +*/ +BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); + +/** Gets the order of a EC_GROUP + * \param group EC_GROUP object + * \param order BIGNUM to which the order is copied + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); + +/** Gets the cofactor of a EC_GROUP + * \param group EC_GROUP object + * \param cofactor BIGNUM to which the cofactor is copied + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, + BN_CTX *ctx); + +/** Sets the name of a EC_GROUP object + * \param group EC_GROUP object + * \param nid NID of the curve name OID + */ +void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); + +/** Returns the curve name of a EC_GROUP object + * \param group EC_GROUP object + * \return NID of the curve name OID or 0 if not set. + */ +int EC_GROUP_get_curve_name(const EC_GROUP *group); + +void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); +int EC_GROUP_get_asn1_flag(const EC_GROUP *group); + +void EC_GROUP_set_point_conversion_form(EC_GROUP *group, + point_conversion_form_t form); +point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); + +unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); +size_t EC_GROUP_get_seed_len(const EC_GROUP *); +size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); + +/** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b + * \param group EC_GROUP object + * \param p BIGNUM with the prime number + * \param a BIGNUM with parameter a of the equation + * \param b BIGNUM with parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); + +/** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b + * \param group EC_GROUP object + * \param p BIGNUM for the prime number + * \param a BIGNUM for parameter a of the equation + * \param b BIGNUM for parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, + BIGNUM *b, BN_CTX *ctx); + +# ifndef OPENSSL_NO_EC2M +/** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b + * \param group EC_GROUP object + * \param p BIGNUM with the polynomial defining the underlying field + * \param a BIGNUM with parameter a of the equation + * \param b BIGNUM with parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); + +/** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b + * \param group EC_GROUP object + * \param p BIGNUM for the polynomial defining the underlying field + * \param a BIGNUM for parameter a of the equation + * \param b BIGNUM for parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, + BIGNUM *b, BN_CTX *ctx); +# endif +/** Returns the number of bits needed to represent a field element + * \param group EC_GROUP object + * \return number of bits needed to represent a field element + */ +int EC_GROUP_get_degree(const EC_GROUP *group); + +/** Checks whether the parameter in the EC_GROUP define a valid ec group + * \param group EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 1 if group is a valid ec group and 0 otherwise + */ +int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); + +/** Checks whether the discriminant of the elliptic curve is zero or not + * \param group EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 1 if the discriminant is not zero and 0 otherwise + */ +int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); + +/** Compares two EC_GROUP objects + * \param a first EC_GROUP object + * \param b second EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 0 if both groups are equal and 1 otherwise + */ +int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); + +/* + * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after + * choosing an appropriate EC_METHOD + */ + +/** Creates a new EC_GROUP object with the specified parameters defined + * over GFp (defined by the equation y^2 = x^3 + a*x + b) + * \param p BIGNUM with the prime number + * \param a BIGNUM with the parameter a of the equation + * \param b BIGNUM with the parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return newly created EC_GROUP object with the specified parameters + */ +EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +# ifndef OPENSSL_NO_EC2M +/** Creates a new EC_GROUP object with the specified parameters defined + * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) + * \param p BIGNUM with the polynomial defining the underlying field + * \param a BIGNUM with the parameter a of the equation + * \param b BIGNUM with the parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return newly created EC_GROUP object with the specified parameters + */ +EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +# endif +/** Creates a EC_GROUP object with a curve specified by a NID + * \param nid NID of the OID of the curve name + * \return newly created EC_GROUP object with specified curve or NULL + * if an error occurred + */ +EC_GROUP *EC_GROUP_new_by_curve_name(int nid); + +/********************************************************************/ +/* handling of internal curves */ +/********************************************************************/ + +typedef struct { + int nid; + const char *comment; +} EC_builtin_curve; + +/* + * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all + * available curves or zero if a error occurred. In case r ist not zero + * nitems EC_builtin_curve structures are filled with the data of the first + * nitems internal groups + */ +size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); + +const char *EC_curve_nid2nist(int nid); +int EC_curve_nist2nid(const char *name); + +/********************************************************************/ +/* EC_POINT functions */ +/********************************************************************/ + +/** Creates a new EC_POINT object for the specified EC_GROUP + * \param group EC_GROUP the underlying EC_GROUP object + * \return newly created EC_POINT object or NULL if an error occurred + */ +EC_POINT *EC_POINT_new(const EC_GROUP *group); + +/** Frees a EC_POINT object + * \param point EC_POINT object to be freed + */ +void EC_POINT_free(EC_POINT *point); + +/** Clears and frees a EC_POINT object + * \param point EC_POINT object to be cleared and freed + */ +void EC_POINT_clear_free(EC_POINT *point); + +/** Copies EC_POINT object + * \param dst destination EC_POINT object + * \param src source EC_POINT object + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); + +/** Creates a new EC_POINT object and copies the content of the supplied + * EC_POINT + * \param src source EC_POINT object + * \param group underlying the EC_GROUP object + * \return newly created EC_POINT object or NULL if an error occurred + */ +EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); + +/** Returns the EC_METHOD used in EC_POINT object + * \param point EC_POINT object + * \return the EC_METHOD used + */ +const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); + +/** Sets a point to infinity (neutral element) + * \param group underlying EC_GROUP object + * \param point EC_POINT to set to infinity + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); + +/** Sets the jacobian projective coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param z BIGNUM with the z-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, + EC_POINT *p, const BIGNUM *x, + const BIGNUM *y, const BIGNUM *z, + BN_CTX *ctx); + +/** Gets the jacobian projective coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param z BIGNUM for the z-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, + const EC_POINT *p, BIGNUM *x, + BIGNUM *y, BIGNUM *z, + BN_CTX *ctx); + +/** Sets the affine coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, + const BIGNUM *x, const BIGNUM *y, + BN_CTX *ctx); + +/** Gets the affine coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, + const EC_POINT *p, BIGNUM *x, + BIGNUM *y, BN_CTX *ctx); + +/** Sets the x9.62 compressed coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with x-coordinate + * \param y_bit integer with the y-Bit (either 0 or 1) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, + EC_POINT *p, const BIGNUM *x, + int y_bit, BN_CTX *ctx); +# ifndef OPENSSL_NO_EC2M +/** Sets the affine coordinates of a EC_POINT over GF2m + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, + const BIGNUM *x, const BIGNUM *y, + BN_CTX *ctx); + +/** Gets the affine coordinates of a EC_POINT over GF2m + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, + const EC_POINT *p, BIGNUM *x, + BIGNUM *y, BN_CTX *ctx); + +/** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with x-coordinate + * \param y_bit integer with the y-Bit (either 0 or 1) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, + EC_POINT *p, const BIGNUM *x, + int y_bit, BN_CTX *ctx); +# endif +/** Encodes a EC_POINT object to a octet string + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param form point conversion form + * \param buf memory buffer for the result. If NULL the function returns + * required buffer size. + * \param len length of the memory buffer + * \param ctx BN_CTX object (optional) + * \return the length of the encoded octet string or 0 if an error occurred + */ +size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, + point_conversion_form_t form, + unsigned char *buf, size_t len, BN_CTX *ctx); + +/** Decodes a EC_POINT from a octet string + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param buf memory buffer with the encoded ec point + * \param len length of the encoded ec point + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, + const unsigned char *buf, size_t len, BN_CTX *ctx); + +/* other interfaces to point2oct/oct2point: */ +BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, + point_conversion_form_t form, BIGNUM *, BN_CTX *); +EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, + EC_POINT *, BN_CTX *); +char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, + point_conversion_form_t form, BN_CTX *); +EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, + EC_POINT *, BN_CTX *); + +/********************************************************************/ +/* functions for doing EC_POINT arithmetic */ +/********************************************************************/ + +/** Computes the sum of two EC_POINT + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result (r = a + b) + * \param a EC_POINT object with the first summand + * \param b EC_POINT object with the second summand + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, + const EC_POINT *b, BN_CTX *ctx); + +/** Computes the double of a EC_POINT + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result (r = 2 * a) + * \param a EC_POINT object + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, + BN_CTX *ctx); + +/** Computes the inverse of a EC_POINT + * \param group underlying EC_GROUP object + * \param a EC_POINT object to be inverted (it's used for the result as well) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); + +/** Checks whether the point is the neutral element of the group + * \param group the underlying EC_GROUP object + * \param p EC_POINT object + * \return 1 if the point is the neutral element and 0 otherwise + */ +int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); + +/** Checks whether the point is on the curve + * \param group underlying EC_GROUP object + * \param point EC_POINT object to check + * \param ctx BN_CTX object (optional) + * \return 1 if point if on the curve and 0 otherwise + */ +int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, + BN_CTX *ctx); + +/** Compares two EC_POINTs + * \param group underlying EC_GROUP object + * \param a first EC_POINT object + * \param b second EC_POINT object + * \param ctx BN_CTX object (optional) + * \return 0 if both points are equal and a value != 0 otherwise + */ +int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, + BN_CTX *ctx); + +int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); +int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, + EC_POINT *points[], BN_CTX *ctx); + +/** Computes r = generator * n sum_{i=0}^{num-1} p[i] * m[i] + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result + * \param n BIGNUM with the multiplier for the group generator (optional) + * \param num number futher summands + * \param p array of size num of EC_POINT objects + * \param m array of size num of BIGNUM objects + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, + size_t num, const EC_POINT *p[], const BIGNUM *m[], + BN_CTX *ctx); + +/** Computes r = generator * n + q * m + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result + * \param n BIGNUM with the multiplier for the group generator (optional) + * \param q EC_POINT object with the first factor of the second summand + * \param m BIGNUM with the second factor of the second summand + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, + const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); + +/** Stores multiples of generator for faster point multiplication + * \param group EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); + +/** Reports whether a precomputation has been done + * \param group EC_GROUP object + * \return 1 if a pre-computation has been done and 0 otherwise + */ +int EC_GROUP_have_precompute_mult(const EC_GROUP *group); + +/********************************************************************/ +/* ASN1 stuff */ +/********************************************************************/ + +/* + * EC_GROUP_get_basis_type() returns the NID of the basis type used to + * represent the field elements + */ +int EC_GROUP_get_basis_type(const EC_GROUP *); +# ifndef OPENSSL_NO_EC2M +int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); +int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, + unsigned int *k2, unsigned int *k3); +# endif + +# define OPENSSL_EC_NAMED_CURVE 0x001 + +typedef struct ecpk_parameters_st ECPKPARAMETERS; + +EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); +int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); + +# define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) +# define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) +# define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \ + (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) +# define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \ + (unsigned char *)(x)) + +# ifndef OPENSSL_NO_BIO +int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); +# endif +# ifndef OPENSSL_NO_FP_API +int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); +# endif + +/********************************************************************/ +/* EC_KEY functions */ +/********************************************************************/ + +typedef struct ec_key_st EC_KEY; + +/* some values for the encoding_flag */ +# define EC_PKEY_NO_PARAMETERS 0x001 +# define EC_PKEY_NO_PUBKEY 0x002 + +/* some values for the flags field */ +# define EC_FLAG_NON_FIPS_ALLOW 0x1 +# define EC_FLAG_FIPS_CHECKED 0x2 + +/** Creates a new EC_KEY object. + * \return EC_KEY object or NULL if an error occurred. + */ +EC_KEY *EC_KEY_new(void); + +int EC_KEY_get_flags(const EC_KEY *key); + +void EC_KEY_set_flags(EC_KEY *key, int flags); + +void EC_KEY_clear_flags(EC_KEY *key, int flags); + +/** Creates a new EC_KEY object using a named curve as underlying + * EC_GROUP object. + * \param nid NID of the named curve. + * \return EC_KEY object or NULL if an error occurred. + */ +EC_KEY *EC_KEY_new_by_curve_name(int nid); + +/** Frees a EC_KEY object. + * \param key EC_KEY object to be freed. + */ +void EC_KEY_free(EC_KEY *key); + +/** Copies a EC_KEY object. + * \param dst destination EC_KEY object + * \param src src EC_KEY object + * \return dst or NULL if an error occurred. + */ +EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); + +/** Creates a new EC_KEY object and copies the content from src to it. + * \param src the source EC_KEY object + * \return newly created EC_KEY object or NULL if an error occurred. + */ +EC_KEY *EC_KEY_dup(const EC_KEY *src); + +/** Increases the internal reference count of a EC_KEY object. + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_up_ref(EC_KEY *key); + +/** Returns the EC_GROUP object of a EC_KEY object + * \param key EC_KEY object + * \return the EC_GROUP object (possibly NULL). + */ +const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); + +/** Sets the EC_GROUP of a EC_KEY object. + * \param key EC_KEY object + * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY + * object will use an own copy of the EC_GROUP). + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); + +/** Returns the private key of a EC_KEY object. + * \param key EC_KEY object + * \return a BIGNUM with the private key (possibly NULL). + */ +const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); + +/** Sets the private key of a EC_KEY object. + * \param key EC_KEY object + * \param prv BIGNUM with the private key (note: the EC_KEY object + * will use an own copy of the BIGNUM). + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); + +/** Returns the public key of a EC_KEY object. + * \param key the EC_KEY object + * \return a EC_POINT object with the public key (possibly NULL) + */ +const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); + +/** Sets the public key of a EC_KEY object. + * \param key EC_KEY object + * \param pub EC_POINT object with the public key (note: the EC_KEY object + * will use an own copy of the EC_POINT object). + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); + +unsigned EC_KEY_get_enc_flags(const EC_KEY *key); +void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); +point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); +void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); +/* functions to set/get method specific data */ +void *EC_KEY_get_key_method_data(EC_KEY *key, + void *(*dup_func) (void *), + void (*free_func) (void *), + void (*clear_free_func) (void *)); +/** Sets the key method data of an EC_KEY object, if none has yet been set. + * \param key EC_KEY object + * \param data opaque data to install. + * \param dup_func a function that duplicates |data|. + * \param free_func a function that frees |data|. + * \param clear_free_func a function that wipes and frees |data|. + * \return the previously set data pointer, or NULL if |data| was inserted. + */ +void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data, + void *(*dup_func) (void *), + void (*free_func) (void *), + void (*clear_free_func) (void *)); +/* wrapper functions for the underlying EC_GROUP object */ +void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); + +/** Creates a table of pre-computed multiples of the generator to + * accelerate further EC_KEY operations. + * \param key EC_KEY object + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); + +/** Creates a new ec private (and optional a new public) key. + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_generate_key(EC_KEY *key); + +/** Verifies that a private and/or public key is valid. + * \param key the EC_KEY object + * \return 1 on success and 0 otherwise. + */ +int EC_KEY_check_key(const EC_KEY *key); + +/** Sets a public key from affine coordindates performing + * neccessary NIST PKV tests. + * \param key the EC_KEY object + * \param x public key x coordinate + * \param y public key y coordinate + * \return 1 on success and 0 otherwise. + */ +int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, + BIGNUM *y); + +/********************************************************************/ +/* de- and encoding functions for SEC1 ECPrivateKey */ +/********************************************************************/ + +/** Decodes a private key from a memory buffer. + * \param key a pointer to a EC_KEY object which should be used (or NULL) + * \param in pointer to memory with the DER encoded private key + * \param len length of the DER encoded private key + * \return the decoded private key or NULL if an error occurred. + */ +EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); + +/** Encodes a private key object and stores the result in a buffer. + * \param key the EC_KEY object to encode + * \param out the buffer for the result (if NULL the function returns number + * of bytes needed). + * \return 1 on success and 0 if an error occurred. + */ +int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); + +/********************************************************************/ +/* de- and encoding functions for EC parameters */ +/********************************************************************/ + +/** Decodes ec parameter from a memory buffer. + * \param key a pointer to a EC_KEY object which should be used (or NULL) + * \param in pointer to memory with the DER encoded ec parameters + * \param len length of the DER encoded ec parameters + * \return a EC_KEY object with the decoded parameters or NULL if an error + * occurred. + */ +EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); + +/** Encodes ec parameter and stores the result in a buffer. + * \param key the EC_KEY object with ec paramters to encode + * \param out the buffer for the result (if NULL the function returns number + * of bytes needed). + * \return 1 on success and 0 if an error occurred. + */ +int i2d_ECParameters(EC_KEY *key, unsigned char **out); + +/********************************************************************/ +/* de- and encoding functions for EC public key */ +/* (octet string, not DER -- hence 'o2i' and 'i2o') */ +/********************************************************************/ + +/** Decodes a ec public key from a octet string. + * \param key a pointer to a EC_KEY object which should be used + * \param in memory buffer with the encoded public key + * \param len length of the encoded public key + * \return EC_KEY object with decoded public key or NULL if an error + * occurred. + */ +EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); + +/** Encodes a ec public key in an octet string. + * \param key the EC_KEY object with the public key + * \param out the buffer for the result (if NULL the function returns number + * of bytes needed). + * \return 1 on success and 0 if an error occurred + */ +int i2o_ECPublicKey(EC_KEY *key, unsigned char **out); + +# ifndef OPENSSL_NO_BIO +/** Prints out the ec parameters on human readable form. + * \param bp BIO object to which the information is printed + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred + */ +int ECParameters_print(BIO *bp, const EC_KEY *key); + +/** Prints out the contents of a EC_KEY object + * \param bp BIO object to which the information is printed + * \param key EC_KEY object + * \param off line offset + * \return 1 on success and 0 if an error occurred + */ +int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); + +# endif +# ifndef OPENSSL_NO_FP_API +/** Prints out the ec parameters on human readable form. + * \param fp file descriptor to which the information is printed + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred + */ +int ECParameters_print_fp(FILE *fp, const EC_KEY *key); + +/** Prints out the contents of a EC_KEY object + * \param fp file descriptor to which the information is printed + * \param key EC_KEY object + * \param off line offset + * \return 1 on success and 0 if an error occurred + */ +int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); + +# endif + +# define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) + +# ifndef __cplusplus +# if defined(__SUNPRO_C) +# if __SUNPRO_C >= 0x520 +# pragma error_messages (default,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) +# endif +# endif +# endif + +# define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) + +# define EVP_PKEY_CTX_set_ec_param_enc(ctx, flag) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_EC_PARAM_ENC, flag, NULL) + +# define EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx, flag) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_ECDH_COFACTOR, flag, NULL) + +# define EVP_PKEY_CTX_get_ecdh_cofactor_mode(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_ECDH_COFACTOR, -2, NULL) + +# define EVP_PKEY_CTX_set_ecdh_kdf_type(ctx, kdf) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_TYPE, kdf, NULL) + +# define EVP_PKEY_CTX_get_ecdh_kdf_type(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_TYPE, -2, NULL) + +# define EVP_PKEY_CTX_set_ecdh_kdf_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_get_ecdh_kdf_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_OUTLEN, len, NULL) + +# define EVP_PKEY_CTX_get_ecdh_kdf_outlen(ctx, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN, 0, (void *)plen) + +# define EVP_PKEY_CTX_set0_ecdh_kdf_ukm(ctx, p, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_UKM, plen, (void *)p) + +# define EVP_PKEY_CTX_get0_ecdh_kdf_ukm(ctx, p) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_UKM, 0, (void *)p) + +# define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_EC_PARAM_ENC (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_EC_ECDH_COFACTOR (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_EC_KDF_TYPE (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_GET_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_GET_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 10) +/* KDF types */ +# define EVP_PKEY_ECDH_KDF_NONE 1 +# define EVP_PKEY_ECDH_KDF_X9_62 2 + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_EC_strings(void); + +/* Error codes for the EC functions. */ + +/* Function codes. */ +# define EC_F_BN_TO_FELEM 224 +# define EC_F_COMPUTE_WNAF 143 +# define EC_F_D2I_ECPARAMETERS 144 +# define EC_F_D2I_ECPKPARAMETERS 145 +# define EC_F_D2I_ECPRIVATEKEY 146 +# define EC_F_DO_EC_KEY_PRINT 221 +# define EC_F_ECDH_CMS_DECRYPT 238 +# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 +# define EC_F_ECKEY_PARAM2TYPE 223 +# define EC_F_ECKEY_PARAM_DECODE 212 +# define EC_F_ECKEY_PRIV_DECODE 213 +# define EC_F_ECKEY_PRIV_ENCODE 214 +# define EC_F_ECKEY_PUB_DECODE 215 +# define EC_F_ECKEY_PUB_ENCODE 216 +# define EC_F_ECKEY_TYPE2PARAM 220 +# define EC_F_ECPARAMETERS_PRINT 147 +# define EC_F_ECPARAMETERS_PRINT_FP 148 +# define EC_F_ECPKPARAMETERS_PRINT 149 +# define EC_F_ECPKPARAMETERS_PRINT_FP 150 +# define EC_F_ECP_NISTZ256_GET_AFFINE 240 +# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 +# define EC_F_ECP_NISTZ256_POINTS_MUL 241 +# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 +# define EC_F_ECP_NISTZ256_SET_WORDS 245 +# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 +# define EC_F_ECP_NIST_MOD_192 203 +# define EC_F_ECP_NIST_MOD_224 204 +# define EC_F_ECP_NIST_MOD_256 205 +# define EC_F_ECP_NIST_MOD_521 206 +# define EC_F_EC_ASN1_GROUP2CURVE 153 +# define EC_F_EC_ASN1_GROUP2FIELDID 154 +# define EC_F_EC_ASN1_GROUP2PARAMETERS 155 +# define EC_F_EC_ASN1_GROUP2PKPARAMETERS 156 +# define EC_F_EC_ASN1_PARAMETERS2GROUP 157 +# define EC_F_EC_ASN1_PKPARAMETERS2GROUP 158 +# define EC_F_EC_EX_DATA_SET_DATA 211 +# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 +# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 +# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 +# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 +# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 +# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 +# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 +# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 +# define EC_F_EC_GFP_MONT_FIELD_DECODE 133 +# define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 +# define EC_F_EC_GFP_MONT_FIELD_MUL 131 +# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 +# define EC_F_EC_GFP_MONT_FIELD_SQR 132 +# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 +# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE_GFP 135 +# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 +# define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 +# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 +# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 +# define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 +# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 +# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 +# define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 +# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 +# define EC_F_EC_GFP_NIST_FIELD_MUL 200 +# define EC_F_EC_GFP_NIST_FIELD_SQR 201 +# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 +# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 +# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 +# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE_GFP 100 +# define EC_F_EC_GFP_SIMPLE_GROUP_SET_GENERATOR 101 +# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 +# define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 +# define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 +# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 +# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 +# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES_GFP 105 +# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 +# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES_GFP 128 +# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 +# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES_GFP 129 +# define EC_F_EC_GROUP_CHECK 170 +# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 +# define EC_F_EC_GROUP_COPY 106 +# define EC_F_EC_GROUP_GET0_GENERATOR 139 +# define EC_F_EC_GROUP_GET_COFACTOR 140 +# define EC_F_EC_GROUP_GET_CURVE_GF2M 172 +# define EC_F_EC_GROUP_GET_CURVE_GFP 130 +# define EC_F_EC_GROUP_GET_DEGREE 173 +# define EC_F_EC_GROUP_GET_ORDER 141 +# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 +# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 +# define EC_F_EC_GROUP_NEW 108 +# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 +# define EC_F_EC_GROUP_NEW_FROM_DATA 175 +# define EC_F_EC_GROUP_PRECOMPUTE_MULT 142 +# define EC_F_EC_GROUP_SET_CURVE_GF2M 176 +# define EC_F_EC_GROUP_SET_CURVE_GFP 109 +# define EC_F_EC_GROUP_SET_EXTRA_DATA 110 +# define EC_F_EC_GROUP_SET_GENERATOR 111 +# define EC_F_EC_KEY_CHECK_KEY 177 +# define EC_F_EC_KEY_COPY 178 +# define EC_F_EC_KEY_GENERATE_KEY 179 +# define EC_F_EC_KEY_NEW 182 +# define EC_F_EC_KEY_PRINT 180 +# define EC_F_EC_KEY_PRINT_FP 181 +# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 +# define EC_F_EC_POINTS_MAKE_AFFINE 136 +# define EC_F_EC_POINT_ADD 112 +# define EC_F_EC_POINT_CMP 113 +# define EC_F_EC_POINT_COPY 114 +# define EC_F_EC_POINT_DBL 115 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 +# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 +# define EC_F_EC_POINT_INVERT 210 +# define EC_F_EC_POINT_IS_AT_INFINITY 118 +# define EC_F_EC_POINT_IS_ON_CURVE 119 +# define EC_F_EC_POINT_MAKE_AFFINE 120 +# define EC_F_EC_POINT_MUL 184 +# define EC_F_EC_POINT_NEW 121 +# define EC_F_EC_POINT_OCT2POINT 122 +# define EC_F_EC_POINT_POINT2OCT 123 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 +# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 +# define EC_F_EC_POINT_SET_TO_INFINITY 127 +# define EC_F_EC_PRE_COMP_DUP 207 +# define EC_F_EC_PRE_COMP_NEW 196 +# define EC_F_EC_WNAF_MUL 187 +# define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 +# define EC_F_I2D_ECPARAMETERS 190 +# define EC_F_I2D_ECPKPARAMETERS 191 +# define EC_F_I2D_ECPRIVATEKEY 192 +# define EC_F_I2O_ECPUBLICKEY 151 +# define EC_F_NISTP224_PRE_COMP_NEW 227 +# define EC_F_NISTP256_PRE_COMP_NEW 236 +# define EC_F_NISTP521_PRE_COMP_NEW 237 +# define EC_F_O2I_ECPUBLICKEY 152 +# define EC_F_OLD_EC_PRIV_DECODE 222 +# define EC_F_PKEY_EC_CTRL 197 +# define EC_F_PKEY_EC_CTRL_STR 198 +# define EC_F_PKEY_EC_DERIVE 217 +# define EC_F_PKEY_EC_KEYGEN 199 +# define EC_F_PKEY_EC_PARAMGEN 219 +# define EC_F_PKEY_EC_SIGN 218 + +/* Reason codes. */ +# define EC_R_ASN1_ERROR 115 +# define EC_R_ASN1_UNKNOWN_FIELD 116 +# define EC_R_BIGNUM_OUT_OF_RANGE 144 +# define EC_R_BUFFER_TOO_SMALL 100 +# define EC_R_COORDINATES_OUT_OF_RANGE 146 +# define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 +# define EC_R_DECODE_ERROR 142 +# define EC_R_DISCRIMINANT_IS_ZERO 118 +# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 +# define EC_R_FIELD_TOO_LARGE 143 +# define EC_R_GF2M_NOT_SUPPORTED 147 +# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 +# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 +# define EC_R_INCOMPATIBLE_OBJECTS 101 +# define EC_R_INVALID_ARGUMENT 112 +# define EC_R_INVALID_COMPRESSED_POINT 110 +# define EC_R_INVALID_COMPRESSION_BIT 109 +# define EC_R_INVALID_CURVE 141 +# define EC_R_INVALID_DIGEST 151 +# define EC_R_INVALID_DIGEST_TYPE 138 +# define EC_R_INVALID_ENCODING 102 +# define EC_R_INVALID_FIELD 103 +# define EC_R_INVALID_FORM 104 +# define EC_R_INVALID_GROUP_ORDER 122 +# define EC_R_INVALID_PENTANOMIAL_BASIS 132 +# define EC_R_INVALID_PRIVATE_KEY 123 +# define EC_R_INVALID_TRINOMIAL_BASIS 137 +# define EC_R_KDF_PARAMETER_ERROR 148 +# define EC_R_KEYS_NOT_SET 140 +# define EC_R_MISSING_PARAMETERS 124 +# define EC_R_MISSING_PRIVATE_KEY 125 +# define EC_R_NOT_A_NIST_PRIME 135 +# define EC_R_NOT_A_SUPPORTED_NIST_PRIME 136 +# define EC_R_NOT_IMPLEMENTED 126 +# define EC_R_NOT_INITIALIZED 111 +# define EC_R_NO_FIELD_MOD 133 +# define EC_R_NO_PARAMETERS_SET 139 +# define EC_R_PASSED_NULL_PARAMETER 134 +# define EC_R_PEER_KEY_ERROR 149 +# define EC_R_PKPARAMETERS2GROUP_FAILURE 127 +# define EC_R_POINT_AT_INFINITY 106 +# define EC_R_POINT_IS_NOT_ON_CURVE 107 +# define EC_R_SHARED_INFO_ERROR 150 +# define EC_R_SLOT_FULL 108 +# define EC_R_UNDEFINED_GENERATOR 113 +# define EC_R_UNDEFINED_ORDER 128 +# define EC_R_UNKNOWN_GROUP 129 +# define EC_R_UNKNOWN_ORDER 114 +# define EC_R_UNSUPPORTED_FIELD 131 +# define EC_R_WRONG_CURVE_PARAMETERS 145 +# define EC_R_WRONG_ORDER 130 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/ecdh.h b/External/include/openssl/ecdh.h new file mode 100644 index 00000000..25348b30 --- /dev/null +++ b/External/include/openssl/ecdh.h @@ -0,0 +1,134 @@ +/* crypto/ecdh/ecdh.h */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * + * The Elliptic Curve Public-Key Crypto Library (ECC Code) included + * herein is developed by SUN MICROSYSTEMS, INC., and is contributed + * to the OpenSSL project. + * + * The ECC Code is licensed pursuant to the OpenSSL open source + * license provided below. + * + * The ECDH software is originally written by Douglas Stebila of + * Sun Microsystems Laboratories. + * + */ +/* ==================================================================== + * Copyright (c) 2000-2002 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +#ifndef HEADER_ECDH_H +# define HEADER_ECDH_H + +# include + +# ifdef OPENSSL_NO_ECDH +# error ECDH is disabled. +# endif + +# include +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define EC_FLAG_COFACTOR_ECDH 0x1000 + +const ECDH_METHOD *ECDH_OpenSSL(void); + +void ECDH_set_default_method(const ECDH_METHOD *); +const ECDH_METHOD *ECDH_get_default_method(void); +int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); + +int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, + EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen, + void *out, size_t *outlen)); + +int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new + *new_func, CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg); +void *ECDH_get_ex_data(EC_KEY *d, int idx); + +int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + const unsigned char *sinfo, size_t sinfolen, + const EVP_MD *md); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_ECDH_strings(void); + +/* Error codes for the ECDH functions. */ + +/* Function codes. */ +# define ECDH_F_ECDH_CHECK 102 +# define ECDH_F_ECDH_COMPUTE_KEY 100 +# define ECDH_F_ECDH_DATA_NEW_METHOD 101 + +/* Reason codes. */ +# define ECDH_R_KDF_FAILED 102 +# define ECDH_R_NON_FIPS_METHOD 103 +# define ECDH_R_NO_PRIVATE_VALUE 100 +# define ECDH_R_POINT_ARITHMETIC_FAILURE 101 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/ecdsa.h b/External/include/openssl/ecdsa.h new file mode 100644 index 00000000..a6f0930f --- /dev/null +++ b/External/include/openssl/ecdsa.h @@ -0,0 +1,335 @@ +/* crypto/ecdsa/ecdsa.h */ +/** + * \file crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions + * \author Written by Nils Larsch for the OpenSSL project + */ +/* ==================================================================== + * Copyright (c) 2000-2005 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +#ifndef HEADER_ECDSA_H +# define HEADER_ECDSA_H + +# include + +# ifdef OPENSSL_NO_ECDSA +# error ECDSA is disabled. +# endif + +# include +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ECDSA_SIG_st { + BIGNUM *r; + BIGNUM *s; +} ECDSA_SIG; + +/** Allocates and initialize a ECDSA_SIG structure + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_SIG_new(void); + +/** frees a ECDSA_SIG structure + * \param sig pointer to the ECDSA_SIG structure + */ +void ECDSA_SIG_free(ECDSA_SIG *sig); + +/** DER encode content of ECDSA_SIG object (note: this function modifies *pp + * (*pp += length of the DER encoded signature)). + * \param sig pointer to the ECDSA_SIG object + * \param pp pointer to a unsigned char pointer for the output or NULL + * \return the length of the DER encoded ECDSA_SIG object or 0 + */ +int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); + +/** Decodes a DER encoded ECDSA signature (note: this function changes *pp + * (*pp += len)). + * \param sig pointer to ECDSA_SIG pointer (may be NULL) + * \param pp memory buffer with the DER encoded signature + * \param len length of the buffer + * \return pointer to the decoded ECDSA_SIG structure (or NULL) + */ +ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); + +/** Computes the ECDSA signature of the given hash value using + * the supplied private key and returns the created signature. + * \param dgst pointer to the hash value + * \param dgst_len length of the hash value + * \param eckey EC_KEY object containing a private EC key + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, + EC_KEY *eckey); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param kinv BIGNUM with a pre-computed inverse k (optional) + * \param rp BIGNUM with a pre-computed rp value (optioanl), + * see ECDSA_sign_setup + * \param eckey EC_KEY object containing a private EC key + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, + const BIGNUM *kinv, const BIGNUM *rp, + EC_KEY *eckey); + +/** Verifies that the supplied signature is a valid ECDSA + * signature of the supplied hash value using the supplied public key. + * \param dgst pointer to the hash value + * \param dgst_len length of the hash value + * \param sig ECDSA_SIG structure + * \param eckey EC_KEY object containing a public EC key + * \return 1 if the signature is valid, 0 if the signature is invalid + * and -1 on error + */ +int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, + const ECDSA_SIG *sig, EC_KEY *eckey); + +const ECDSA_METHOD *ECDSA_OpenSSL(void); + +/** Sets the default ECDSA method + * \param meth new default ECDSA_METHOD + */ +void ECDSA_set_default_method(const ECDSA_METHOD *meth); + +/** Returns the default ECDSA method + * \return pointer to ECDSA_METHOD structure containing the default method + */ +const ECDSA_METHOD *ECDSA_get_default_method(void); + +/** Sets method to be used for the ECDSA operations + * \param eckey EC_KEY object + * \param meth new method + * \return 1 on success and 0 otherwise + */ +int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth); + +/** Returns the maximum length of the DER encoded signature + * \param eckey EC_KEY object + * \return numbers of bytes required for the DER encoded signature + */ +int ECDSA_size(const EC_KEY *eckey); + +/** Precompute parts of the signing operation + * \param eckey EC_KEY object containing a private EC key + * \param ctx BN_CTX object (optional) + * \param kinv BIGNUM pointer for the inverse of k + * \param rp BIGNUM pointer for x coordinate of k * generator + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param type this parameter is ignored + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param sig memory for the DER encoded created signature + * \param siglen pointer to the length of the returned signature + * \param eckey EC_KEY object containing a private EC key + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param type this parameter is ignored + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param sig buffer to hold the DER encoded signature + * \param siglen pointer to the length of the returned signature + * \param kinv BIGNUM with a pre-computed inverse k (optional) + * \param rp BIGNUM with a pre-computed rp value (optioanl), + * see ECDSA_sign_setup + * \param eckey EC_KEY object containing a private EC key + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); + +/** Verifies that the given signature is valid ECDSA signature + * of the supplied hash value using the specified public key. + * \param type this parameter is ignored + * \param dgst pointer to the hash value + * \param dgstlen length of the hash value + * \param sig pointer to the DER encoded signature + * \param siglen length of the DER encoded signature + * \param eckey EC_KEY object containing a public EC key + * \return 1 if the signature is valid, 0 if the signature is invalid + * and -1 on error + */ +int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, + const unsigned char *sig, int siglen, EC_KEY *eckey); + +/* the standard ex_data functions */ +int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new + *new_func, CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg); +void *ECDSA_get_ex_data(EC_KEY *d, int idx); + +/** Allocates and initialize a ECDSA_METHOD structure + * \param ecdsa_method pointer to ECDSA_METHOD to copy. (May be NULL) + * \return pointer to a ECDSA_METHOD structure or NULL if an error occurred + */ + +ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method); + +/** frees a ECDSA_METHOD structure + * \param ecdsa_method pointer to the ECDSA_METHOD structure + */ +void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method); + +/** Sets application specific data in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param app application specific data to set + */ + +void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app); + +/** Returns application specific data from a ECDSA_METHOD structure + * \param ecdsa_method pointer to ECDSA_METHOD structure + * \return pointer to application specific data. + */ + +void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method); + +/** Set the ECDSA_do_sign function in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param ecdsa_do_sign a funtion of type ECDSA_do_sign + */ + +void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method, + ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char + *dgst, int dgst_len, + const BIGNUM *inv, + const BIGNUM *rp, + EC_KEY *eckey)); + +/** Set the ECDSA_sign_setup function in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param ecdsa_sign_setup a funtion of type ECDSA_sign_setup + */ + +void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method, + int (*ecdsa_sign_setup) (EC_KEY *eckey, + BN_CTX *ctx, + BIGNUM **kinv, + BIGNUM **r)); + +/** Set the ECDSA_do_verify function in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param ecdsa_do_verify a funtion of type ECDSA_do_verify + */ + +void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method, + int (*ecdsa_do_verify) (const unsigned char + *dgst, int dgst_len, + const ECDSA_SIG *sig, + EC_KEY *eckey)); + +void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags); + +/** Set the flags field in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param flags flags value to set + */ + +void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name); + +/** Set the name field in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param name name to set + */ + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_ECDSA_strings(void); + +/* Error codes for the ECDSA functions. */ + +/* Function codes. */ +# define ECDSA_F_ECDSA_CHECK 104 +# define ECDSA_F_ECDSA_DATA_NEW_METHOD 100 +# define ECDSA_F_ECDSA_DO_SIGN 101 +# define ECDSA_F_ECDSA_DO_VERIFY 102 +# define ECDSA_F_ECDSA_METHOD_NEW 105 +# define ECDSA_F_ECDSA_SIGN_SETUP 103 + +/* Reason codes. */ +# define ECDSA_R_BAD_SIGNATURE 100 +# define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 101 +# define ECDSA_R_ERR_EC_LIB 102 +# define ECDSA_R_MISSING_PARAMETERS 103 +# define ECDSA_R_NEED_NEW_SETUP_VALUES 106 +# define ECDSA_R_NON_FIPS_METHOD 107 +# define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED 104 +# define ECDSA_R_SIGNATURE_MALLOC_FAILED 105 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/engine.h b/External/include/openssl/engine.h new file mode 100644 index 00000000..bd7b5914 --- /dev/null +++ b/External/include/openssl/engine.h @@ -0,0 +1,960 @@ +/* openssl/engine.h */ +/* + * Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL project + * 2000. + */ +/* ==================================================================== + * Copyright (c) 1999-2004 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * ECDH support in OpenSSL originally developed by + * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. + */ + +#ifndef HEADER_ENGINE_H +# define HEADER_ENGINE_H + +# include + +# ifdef OPENSSL_NO_ENGINE +# error ENGINE is disabled. +# endif + +# ifndef OPENSSL_NO_DEPRECATED +# include +# ifndef OPENSSL_NO_RSA +# include +# endif +# ifndef OPENSSL_NO_DSA +# include +# endif +# ifndef OPENSSL_NO_DH +# include +# endif +# ifndef OPENSSL_NO_ECDH +# include +# endif +# ifndef OPENSSL_NO_ECDSA +# include +# endif +# include +# include +# include +# endif + +# include +# include + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * These flags are used to control combinations of algorithm (methods) by + * bitwise "OR"ing. + */ +# define ENGINE_METHOD_RSA (unsigned int)0x0001 +# define ENGINE_METHOD_DSA (unsigned int)0x0002 +# define ENGINE_METHOD_DH (unsigned int)0x0004 +# define ENGINE_METHOD_RAND (unsigned int)0x0008 +# define ENGINE_METHOD_ECDH (unsigned int)0x0010 +# define ENGINE_METHOD_ECDSA (unsigned int)0x0020 +# define ENGINE_METHOD_CIPHERS (unsigned int)0x0040 +# define ENGINE_METHOD_DIGESTS (unsigned int)0x0080 +# define ENGINE_METHOD_STORE (unsigned int)0x0100 +# define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200 +# define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400 +/* Obvious all-or-nothing cases. */ +# define ENGINE_METHOD_ALL (unsigned int)0xFFFF +# define ENGINE_METHOD_NONE (unsigned int)0x0000 + +/* + * This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used + * internally to control registration of ENGINE implementations, and can be + * set by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to + * initialise registered ENGINEs if they are not already initialised. + */ +# define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001 + +/* ENGINE flags that can be set by ENGINE_set_flags(). */ +/* Not used */ +/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ + +/* + * This flag is for ENGINEs that wish to handle the various 'CMD'-related + * control commands on their own. Without this flag, ENGINE_ctrl() handles + * these control commands on behalf of the ENGINE using their "cmd_defns" + * data. + */ +# define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002 + +/* + * This flag is for ENGINEs who return new duplicate structures when found + * via "ENGINE_by_id()". When an ENGINE must store state (eg. if + * ENGINE_ctrl() commands are called in sequence as part of some stateful + * process like key-generation setup and execution), it can set this flag - + * then each attempt to obtain the ENGINE will result in it being copied into + * a new structure. Normally, ENGINEs don't declare this flag so + * ENGINE_by_id() just increments the existing ENGINE's structural reference + * count. + */ +# define ENGINE_FLAGS_BY_ID_COPY (int)0x0004 + +/* + * This flag if for an ENGINE that does not want its methods registered as + * part of ENGINE_register_all_complete() for example if the methods are not + * usable as default methods. + */ + +# define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008 + +/* + * ENGINEs can support their own command types, and these flags are used in + * ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input + * each command expects. Currently only numeric and string input is + * supported. If a control command supports none of the _NUMERIC, _STRING, or + * _NO_INPUT options, then it is regarded as an "internal" control command - + * and not for use in config setting situations. As such, they're not + * available to the ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() + * access. Changes to this list of 'command types' should be reflected + * carefully in ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). + */ + +/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */ +# define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 +/* + * accepts string input (cast from 'void*' to 'const char *', 4th parameter + * to ENGINE_ctrl) + */ +# define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 +/* + * Indicates that the control command takes *no* input. Ie. the control + * command is unparameterised. + */ +# define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 +/* + * Indicates that the control command is internal. This control command won't + * be shown in any output, and is only usable through the ENGINE_ctrl_cmd() + * function. + */ +# define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 + +/* + * NB: These 3 control commands are deprecated and should not be used. + * ENGINEs relying on these commands should compile conditional support for + * compatibility (eg. if these symbols are defined) but should also migrate + * the same functionality to their own ENGINE-specific control functions that + * can be "discovered" by calling applications. The fact these control + * commands wouldn't be "executable" (ie. usable by text-based config) + * doesn't change the fact that application code can find and use them + * without requiring per-ENGINE hacking. + */ + +/* + * These flags are used to tell the ctrl function what should be done. All + * command numbers are shared between all engines, even if some don't make + * sense to some engines. In such a case, they do nothing but return the + * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. + */ +# define ENGINE_CTRL_SET_LOGSTREAM 1 +# define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2 +# define ENGINE_CTRL_HUP 3/* Close and reinitialise + * any handles/connections + * etc. */ +# define ENGINE_CTRL_SET_USER_INTERFACE 4/* Alternative to callback */ +# define ENGINE_CTRL_SET_CALLBACK_DATA 5/* User-specific data, used + * when calling the password + * callback and the user + * interface */ +# define ENGINE_CTRL_LOAD_CONFIGURATION 6/* Load a configuration, + * given a string that + * represents a file name + * or so */ +# define ENGINE_CTRL_LOAD_SECTION 7/* Load data from a given + * section in the already + * loaded configuration */ + +/* + * These control commands allow an application to deal with an arbitrary + * engine in a dynamic way. Warn: Negative return values indicate errors FOR + * THESE COMMANDS because zero is used to indicate 'end-of-list'. Other + * commands, including ENGINE-specific command types, return zero for an + * error. An ENGINE can choose to implement these ctrl functions, and can + * internally manage things however it chooses - it does so by setting the + * ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise + * the ENGINE_ctrl() code handles this on the ENGINE's behalf using the + * cmd_defns data (set using ENGINE_set_cmd_defns()). This means an ENGINE's + * ctrl() handler need only implement its own commands - the above "meta" + * commands will be taken care of. + */ + +/* + * Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", + * then all the remaining control commands will return failure, so it is + * worth checking this first if the caller is trying to "discover" the + * engine's capabilities and doesn't want errors generated unnecessarily. + */ +# define ENGINE_CTRL_HAS_CTRL_FUNCTION 10 +/* + * Returns a positive command number for the first command supported by the + * engine. Returns zero if no ctrl commands are supported. + */ +# define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 +/* + * The 'long' argument specifies a command implemented by the engine, and the + * return value is the next command supported, or zero if there are no more. + */ +# define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 +/* + * The 'void*' argument is a command name (cast from 'const char *'), and the + * return value is the command that corresponds to it. + */ +# define ENGINE_CTRL_GET_CMD_FROM_NAME 13 +/* + * The next two allow a command to be converted into its corresponding string + * form. In each case, the 'long' argument supplies the command. In the + * NAME_LEN case, the return value is the length of the command name (not + * counting a trailing EOL). In the NAME case, the 'void*' argument must be a + * string buffer large enough, and it will be populated with the name of the + * command (WITH a trailing EOL). + */ +# define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 +# define ENGINE_CTRL_GET_NAME_FROM_CMD 15 +/* The next two are similar but give a "short description" of a command. */ +# define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 +# define ENGINE_CTRL_GET_DESC_FROM_CMD 17 +/* + * With this command, the return value is the OR'd combination of + * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given + * engine-specific ctrl command expects. + */ +# define ENGINE_CTRL_GET_CMD_FLAGS 18 + +/* + * ENGINE implementations should start the numbering of their own control + * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). + */ +# define ENGINE_CMD_BASE 200 + +/* + * NB: These 2 nCipher "chil" control commands are deprecated, and their + * functionality is now available through ENGINE-specific control commands + * (exposed through the above-mentioned 'CMD'-handling). Code using these 2 + * commands should be migrated to the more general command handling before + * these are removed. + */ + +/* Flags specific to the nCipher "chil" engine */ +# define ENGINE_CTRL_CHIL_SET_FORKCHECK 100 + /* + * Depending on the value of the (long)i argument, this sets or + * unsets the SimpleForkCheck flag in the CHIL API to enable or + * disable checking and workarounds for applications that fork(). + */ +# define ENGINE_CTRL_CHIL_NO_LOCKING 101 + /* + * This prevents the initialisation function from providing mutex + * callbacks to the nCipher library. + */ + +/* + * If an ENGINE supports its own specific control commands and wishes the + * framework to handle the above 'ENGINE_CMD_***'-manipulation commands on + * its behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN + * entries to ENGINE_set_cmd_defns(). It should also implement a ctrl() + * handler that supports the stated commands (ie. the "cmd_num" entries as + * described by the array). NB: The array must be ordered in increasing order + * of cmd_num. "null-terminated" means that the last ENGINE_CMD_DEFN element + * has cmd_num set to zero and/or cmd_name set to NULL. + */ +typedef struct ENGINE_CMD_DEFN_st { + unsigned int cmd_num; /* The command number */ + const char *cmd_name; /* The command name itself */ + const char *cmd_desc; /* A short description of the command */ + unsigned int cmd_flags; /* The input the command expects */ +} ENGINE_CMD_DEFN; + +/* Generic function pointer */ +typedef int (*ENGINE_GEN_FUNC_PTR) (void); +/* Generic function pointer taking no arguments */ +typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *); +/* Specific control function pointer */ +typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long, void *, + void (*f) (void)); +/* Generic load_key function pointer */ +typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, + UI_METHOD *ui_method, + void *callback_data); +typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl, + STACK_OF(X509_NAME) *ca_dn, + X509 **pcert, EVP_PKEY **pkey, + STACK_OF(X509) **pother, + UI_METHOD *ui_method, + void *callback_data); +/*- + * These callback types are for an ENGINE's handler for cipher and digest logic. + * These handlers have these prototypes; + * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); + * int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); + * Looking at how to implement these handlers in the case of cipher support, if + * the framework wants the EVP_CIPHER for 'nid', it will call; + * foo(e, &p_evp_cipher, NULL, nid); (return zero for failure) + * If the framework wants a list of supported 'nid's, it will call; + * foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error) + */ +/* + * Returns to a pointer to the array of supported cipher 'nid's. If the + * second parameter is non-NULL it is set to the size of the returned array. + */ +typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *, const EVP_CIPHER **, + const int **, int); +typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *, const EVP_MD **, const int **, + int); +typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **, + const int **, int); +typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **, + const int **, int); +/* + * STRUCTURE functions ... all of these functions deal with pointers to + * ENGINE structures where the pointers have a "structural reference". This + * means that their reference is to allowed access to the structure but it + * does not imply that the structure is functional. To simply increment or + * decrement the structural reference count, use ENGINE_by_id and + * ENGINE_free. NB: This is not required when iterating using ENGINE_get_next + * as it will automatically decrement the structural reference count of the + * "current" ENGINE and increment the structural reference count of the + * ENGINE it returns (unless it is NULL). + */ + +/* Get the first/last "ENGINE" type available. */ +ENGINE *ENGINE_get_first(void); +ENGINE *ENGINE_get_last(void); +/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */ +ENGINE *ENGINE_get_next(ENGINE *e); +ENGINE *ENGINE_get_prev(ENGINE *e); +/* Add another "ENGINE" type into the array. */ +int ENGINE_add(ENGINE *e); +/* Remove an existing "ENGINE" type from the array. */ +int ENGINE_remove(ENGINE *e); +/* Retrieve an engine from the list by its unique "id" value. */ +ENGINE *ENGINE_by_id(const char *id); +/* Add all the built-in engines. */ +void ENGINE_load_openssl(void); +void ENGINE_load_dynamic(void); +# ifndef OPENSSL_NO_STATIC_ENGINE +void ENGINE_load_4758cca(void); +void ENGINE_load_aep(void); +void ENGINE_load_atalla(void); +void ENGINE_load_chil(void); +void ENGINE_load_cswift(void); +void ENGINE_load_nuron(void); +void ENGINE_load_sureware(void); +void ENGINE_load_ubsec(void); +void ENGINE_load_padlock(void); +void ENGINE_load_capi(void); +# ifndef OPENSSL_NO_GMP +void ENGINE_load_gmp(void); +# endif +# ifndef OPENSSL_NO_GOST +void ENGINE_load_gost(void); +# endif +# endif +void ENGINE_load_cryptodev(void); +void ENGINE_load_rdrand(void); +void ENGINE_load_builtin_engines(void); + +/* + * Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation + * "registry" handling. + */ +unsigned int ENGINE_get_table_flags(void); +void ENGINE_set_table_flags(unsigned int flags); + +/*- Manage registration of ENGINEs per "table". For each type, there are 3 + * functions; + * ENGINE_register_***(e) - registers the implementation from 'e' (if it has one) + * ENGINE_unregister_***(e) - unregister the implementation from 'e' + * ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list + * Cleanup is automatically registered from each table when required, so + * ENGINE_cleanup() will reverse any "register" operations. + */ + +int ENGINE_register_RSA(ENGINE *e); +void ENGINE_unregister_RSA(ENGINE *e); +void ENGINE_register_all_RSA(void); + +int ENGINE_register_DSA(ENGINE *e); +void ENGINE_unregister_DSA(ENGINE *e); +void ENGINE_register_all_DSA(void); + +int ENGINE_register_ECDH(ENGINE *e); +void ENGINE_unregister_ECDH(ENGINE *e); +void ENGINE_register_all_ECDH(void); + +int ENGINE_register_ECDSA(ENGINE *e); +void ENGINE_unregister_ECDSA(ENGINE *e); +void ENGINE_register_all_ECDSA(void); + +int ENGINE_register_DH(ENGINE *e); +void ENGINE_unregister_DH(ENGINE *e); +void ENGINE_register_all_DH(void); + +int ENGINE_register_RAND(ENGINE *e); +void ENGINE_unregister_RAND(ENGINE *e); +void ENGINE_register_all_RAND(void); + +int ENGINE_register_STORE(ENGINE *e); +void ENGINE_unregister_STORE(ENGINE *e); +void ENGINE_register_all_STORE(void); + +int ENGINE_register_ciphers(ENGINE *e); +void ENGINE_unregister_ciphers(ENGINE *e); +void ENGINE_register_all_ciphers(void); + +int ENGINE_register_digests(ENGINE *e); +void ENGINE_unregister_digests(ENGINE *e); +void ENGINE_register_all_digests(void); + +int ENGINE_register_pkey_meths(ENGINE *e); +void ENGINE_unregister_pkey_meths(ENGINE *e); +void ENGINE_register_all_pkey_meths(void); + +int ENGINE_register_pkey_asn1_meths(ENGINE *e); +void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); +void ENGINE_register_all_pkey_asn1_meths(void); + +/* + * These functions register all support from the above categories. Note, use + * of these functions can result in static linkage of code your application + * may not need. If you only need a subset of functionality, consider using + * more selective initialisation. + */ +int ENGINE_register_complete(ENGINE *e); +int ENGINE_register_all_complete(void); + +/* + * Send parametrised control commands to the engine. The possibilities to + * send down an integer, a pointer to data or a function pointer are + * provided. Any of the parameters may or may not be NULL, depending on the + * command number. In actuality, this function only requires a structural + * (rather than functional) reference to an engine, but many control commands + * may require the engine be functional. The caller should be aware of trying + * commands that require an operational ENGINE, and only use functional + * references in such situations. + */ +int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void)); + +/* + * This function tests if an ENGINE-specific command is usable as a + * "setting". Eg. in an application's config file that gets processed through + * ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to + * ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). + */ +int ENGINE_cmd_is_executable(ENGINE *e, int cmd); + +/* + * This function works like ENGINE_ctrl() with the exception of taking a + * command name instead of a command number, and can handle optional + * commands. See the comment on ENGINE_ctrl_cmd_string() for an explanation + * on how to use the cmd_name and cmd_optional. + */ +int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, + long i, void *p, void (*f) (void), int cmd_optional); + +/* + * This function passes a command-name and argument to an ENGINE. The + * cmd_name is converted to a command number and the control command is + * called using 'arg' as an argument (unless the ENGINE doesn't support such + * a command, in which case no control command is called). The command is + * checked for input flags, and if necessary the argument will be converted + * to a numeric value. If cmd_optional is non-zero, then if the ENGINE + * doesn't support the given cmd_name the return value will be success + * anyway. This function is intended for applications to use so that users + * (or config files) can supply engine-specific config data to the ENGINE at + * run-time to control behaviour of specific engines. As such, it shouldn't + * be used for calling ENGINE_ctrl() functions that return data, deal with + * binary data, or that are otherwise supposed to be used directly through + * ENGINE_ctrl() in application code. Any "return" data from an ENGINE_ctrl() + * operation in this function will be lost - the return value is interpreted + * as failure if the return value is zero, success otherwise, and this + * function returns a boolean value as a result. In other words, vendors of + * 'ENGINE'-enabled devices should write ENGINE implementations with + * parameterisations that work in this scheme, so that compliant ENGINE-based + * applications can work consistently with the same configuration for the + * same ENGINE-enabled devices, across applications. + */ +int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, + int cmd_optional); + +/* + * These functions are useful for manufacturing new ENGINE structures. They + * don't address reference counting at all - one uses them to populate an + * ENGINE structure with personalised implementations of things prior to + * using it directly or adding it to the builtin ENGINE list in OpenSSL. + * These are also here so that the ENGINE structure doesn't have to be + * exposed and break binary compatibility! + */ +ENGINE *ENGINE_new(void); +int ENGINE_free(ENGINE *e); +int ENGINE_up_ref(ENGINE *e); +int ENGINE_set_id(ENGINE *e, const char *id); +int ENGINE_set_name(ENGINE *e, const char *name); +int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); +int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); +int ENGINE_set_ECDH(ENGINE *e, const ECDH_METHOD *ecdh_meth); +int ENGINE_set_ECDSA(ENGINE *e, const ECDSA_METHOD *ecdsa_meth); +int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); +int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); +int ENGINE_set_STORE(ENGINE *e, const STORE_METHOD *store_meth); +int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f); +int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); +int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); +int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); +int ENGINE_set_load_privkey_function(ENGINE *e, + ENGINE_LOAD_KEY_PTR loadpriv_f); +int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); +int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, + ENGINE_SSL_CLIENT_CERT_PTR + loadssl_f); +int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); +int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); +int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); +int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); +int ENGINE_set_flags(ENGINE *e, int flags); +int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns); +/* These functions allow control over any per-structure ENGINE data. */ +int ENGINE_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); +void *ENGINE_get_ex_data(const ENGINE *e, int idx); + +/* + * This function cleans up anything that needs it. Eg. the ENGINE_add() + * function automatically ensures the list cleanup function is registered to + * be called from ENGINE_cleanup(). Similarly, all ENGINE_register_*** + * functions ensure ENGINE_cleanup() will clean up after them. + */ +void ENGINE_cleanup(void); + +/* + * These return values from within the ENGINE structure. These can be useful + * with functional references as well as structural references - it depends + * which you obtained. Using the result for functional purposes if you only + * obtained a structural reference may be problematic! + */ +const char *ENGINE_get_id(const ENGINE *e); +const char *ENGINE_get_name(const ENGINE *e); +const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); +const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); +const ECDH_METHOD *ENGINE_get_ECDH(const ENGINE *e); +const ECDSA_METHOD *ENGINE_get_ECDSA(const ENGINE *e); +const DH_METHOD *ENGINE_get_DH(const ENGINE *e); +const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); +const STORE_METHOD *ENGINE_get_STORE(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); +ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); +ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); +ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); +ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE + *e); +ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); +ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); +ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); +ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); +const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); +const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); +const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); +const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); +const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, + const char *str, + int len); +const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, + const char *str, + int len); +const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); +int ENGINE_get_flags(const ENGINE *e); + +/* + * FUNCTIONAL functions. These functions deal with ENGINE structures that + * have (or will) be initialised for use. Broadly speaking, the structural + * functions are useful for iterating the list of available engine types, + * creating new engine types, and other "list" operations. These functions + * actually deal with ENGINEs that are to be used. As such these functions + * can fail (if applicable) when particular engines are unavailable - eg. if + * a hardware accelerator is not attached or not functioning correctly. Each + * ENGINE has 2 reference counts; structural and functional. Every time a + * functional reference is obtained or released, a corresponding structural + * reference is automatically obtained or released too. + */ + +/* + * Initialise a engine type for use (or up its reference count if it's + * already in use). This will fail if the engine is not currently operational + * and cannot initialise. + */ +int ENGINE_init(ENGINE *e); +/* + * Free a functional reference to a engine type. This does not require a + * corresponding call to ENGINE_free as it also releases a structural + * reference. + */ +int ENGINE_finish(ENGINE *e); + +/* + * The following functions handle keys that are stored in some secondary + * location, handled by the engine. The storage may be on a card or + * whatever. + */ +EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, + UI_METHOD *ui_method, void *callback_data); +EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, + UI_METHOD *ui_method, void *callback_data); +int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, + STACK_OF(X509_NAME) *ca_dn, X509 **pcert, + EVP_PKEY **ppkey, STACK_OF(X509) **pother, + UI_METHOD *ui_method, void *callback_data); + +/* + * This returns a pointer for the current ENGINE structure that is (by + * default) performing any RSA operations. The value returned is an + * incremented reference, so it should be free'd (ENGINE_finish) before it is + * discarded. + */ +ENGINE *ENGINE_get_default_RSA(void); +/* Same for the other "methods" */ +ENGINE *ENGINE_get_default_DSA(void); +ENGINE *ENGINE_get_default_ECDH(void); +ENGINE *ENGINE_get_default_ECDSA(void); +ENGINE *ENGINE_get_default_DH(void); +ENGINE *ENGINE_get_default_RAND(void); +/* + * These functions can be used to get a functional reference to perform + * ciphering or digesting corresponding to "nid". + */ +ENGINE *ENGINE_get_cipher_engine(int nid); +ENGINE *ENGINE_get_digest_engine(int nid); +ENGINE *ENGINE_get_pkey_meth_engine(int nid); +ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); + +/* + * This sets a new default ENGINE structure for performing RSA operations. If + * the result is non-zero (success) then the ENGINE structure will have had + * its reference count up'd so the caller should still free their own + * reference 'e'. + */ +int ENGINE_set_default_RSA(ENGINE *e); +int ENGINE_set_default_string(ENGINE *e, const char *def_list); +/* Same for the other "methods" */ +int ENGINE_set_default_DSA(ENGINE *e); +int ENGINE_set_default_ECDH(ENGINE *e); +int ENGINE_set_default_ECDSA(ENGINE *e); +int ENGINE_set_default_DH(ENGINE *e); +int ENGINE_set_default_RAND(ENGINE *e); +int ENGINE_set_default_ciphers(ENGINE *e); +int ENGINE_set_default_digests(ENGINE *e); +int ENGINE_set_default_pkey_meths(ENGINE *e); +int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); + +/* + * The combination "set" - the flags are bitwise "OR"d from the + * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()" + * function, this function can result in unnecessary static linkage. If your + * application requires only specific functionality, consider using more + * selective functions. + */ +int ENGINE_set_default(ENGINE *e, unsigned int flags); + +void ENGINE_add_conf_module(void); + +/* Deprecated functions ... */ +/* int ENGINE_clear_defaults(void); */ + +/**************************/ +/* DYNAMIC ENGINE SUPPORT */ +/**************************/ + +/* Binary/behaviour compatibility levels */ +# define OSSL_DYNAMIC_VERSION (unsigned long)0x00020000 +/* + * Binary versions older than this are too old for us (whether we're a loader + * or a loadee) + */ +# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00020000 + +/* + * When compiling an ENGINE entirely as an external shared library, loadable + * by the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' + * structure type provides the calling application's (or library's) error + * functionality and memory management function pointers to the loaded + * library. These should be used/set in the loaded library code so that the + * loading application's 'state' will be used/changed in all operations. The + * 'static_state' pointer allows the loaded library to know if it shares the + * same static data as the calling application (or library), and thus whether + * these callbacks need to be set or not. + */ +typedef void *(*dyn_MEM_malloc_cb) (size_t); +typedef void *(*dyn_MEM_realloc_cb) (void *, size_t); +typedef void (*dyn_MEM_free_cb) (void *); +typedef struct st_dynamic_MEM_fns { + dyn_MEM_malloc_cb malloc_cb; + dyn_MEM_realloc_cb realloc_cb; + dyn_MEM_free_cb free_cb; +} dynamic_MEM_fns; +/* + * FIXME: Perhaps the memory and locking code (crypto.h) should declare and + * use these types so we (and any other dependant code) can simplify a bit?? + */ +typedef void (*dyn_lock_locking_cb) (int, int, const char *, int); +typedef int (*dyn_lock_add_lock_cb) (int *, int, int, const char *, int); +typedef struct CRYPTO_dynlock_value *(*dyn_dynlock_create_cb) (const char *, + int); +typedef void (*dyn_dynlock_lock_cb) (int, struct CRYPTO_dynlock_value *, + const char *, int); +typedef void (*dyn_dynlock_destroy_cb) (struct CRYPTO_dynlock_value *, + const char *, int); +typedef struct st_dynamic_LOCK_fns { + dyn_lock_locking_cb lock_locking_cb; + dyn_lock_add_lock_cb lock_add_lock_cb; + dyn_dynlock_create_cb dynlock_create_cb; + dyn_dynlock_lock_cb dynlock_lock_cb; + dyn_dynlock_destroy_cb dynlock_destroy_cb; +} dynamic_LOCK_fns; +/* The top-level structure */ +typedef struct st_dynamic_fns { + void *static_state; + const ERR_FNS *err_fns; + const CRYPTO_EX_DATA_IMPL *ex_data_fns; + dynamic_MEM_fns mem_fns; + dynamic_LOCK_fns lock_fns; +} dynamic_fns; + +/* + * The version checking function should be of this prototype. NB: The + * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading + * code. If this function returns zero, it indicates a (potential) version + * incompatibility and the loaded library doesn't believe it can proceed. + * Otherwise, the returned value is the (latest) version supported by the + * loading library. The loader may still decide that the loaded code's + * version is unsatisfactory and could veto the load. The function is + * expected to be implemented with the symbol name "v_check", and a default + * implementation can be fully instantiated with + * IMPLEMENT_DYNAMIC_CHECK_FN(). + */ +typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); +# define IMPLEMENT_DYNAMIC_CHECK_FN() \ + OPENSSL_EXPORT unsigned long v_check(unsigned long v); \ + OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \ + if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ + return 0; } + +/* + * This function is passed the ENGINE structure to initialise with its own + * function and command settings. It should not adjust the structural or + * functional reference counts. If this function returns zero, (a) the load + * will be aborted, (b) the previous ENGINE state will be memcpy'd back onto + * the structure, and (c) the shared library will be unloaded. So + * implementations should do their own internal cleanup in failure + * circumstances otherwise they could leak. The 'id' parameter, if non-NULL, + * represents the ENGINE id that the loader is looking for. If this is NULL, + * the shared library can choose to return failure or to initialise a + * 'default' ENGINE. If non-NULL, the shared library must initialise only an + * ENGINE matching the passed 'id'. The function is expected to be + * implemented with the symbol name "bind_engine". A standard implementation + * can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where the parameter + * 'fn' is a callback function that populates the ENGINE structure and + * returns an int value (zero for failure). 'fn' should have prototype; + * [static] int fn(ENGINE *e, const char *id); + */ +typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, + const dynamic_fns *fns); +# define IMPLEMENT_DYNAMIC_BIND_FN(fn) \ + OPENSSL_EXPORT \ + int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \ + OPENSSL_EXPORT \ + int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \ + if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ + if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \ + fns->mem_fns.realloc_cb, fns->mem_fns.free_cb)) \ + return 0; \ + CRYPTO_set_locking_callback(fns->lock_fns.lock_locking_cb); \ + CRYPTO_set_add_lock_callback(fns->lock_fns.lock_add_lock_cb); \ + CRYPTO_set_dynlock_create_callback(fns->lock_fns.dynlock_create_cb); \ + CRYPTO_set_dynlock_lock_callback(fns->lock_fns.dynlock_lock_cb); \ + CRYPTO_set_dynlock_destroy_callback(fns->lock_fns.dynlock_destroy_cb); \ + if(!CRYPTO_set_ex_data_implementation(fns->ex_data_fns)) \ + return 0; \ + if(!ERR_set_implementation(fns->err_fns)) return 0; \ + skip_cbs: \ + if(!fn(e,id)) return 0; \ + return 1; } + +/* + * If the loading application (or library) and the loaded ENGINE library + * share the same static data (eg. they're both dynamically linked to the + * same libcrypto.so) we need a way to avoid trying to set system callbacks - + * this would fail, and for the same reason that it's unnecessary to try. If + * the loaded ENGINE has (or gets from through the loader) its own copy of + * the libcrypto static data, we will need to set the callbacks. The easiest + * way to detect this is to have a function that returns a pointer to some + * static data and let the loading application and loaded ENGINE compare + * their respective values. + */ +void *ENGINE_get_static_state(void); + +# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV) +void ENGINE_setup_bsd_cryptodev(void); +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_ENGINE_strings(void); + +/* Error codes for the ENGINE functions. */ + +/* Function codes. */ +# define ENGINE_F_DYNAMIC_CTRL 180 +# define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 +# define ENGINE_F_DYNAMIC_LOAD 182 +# define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 +# define ENGINE_F_ENGINE_ADD 105 +# define ENGINE_F_ENGINE_BY_ID 106 +# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 +# define ENGINE_F_ENGINE_CTRL 142 +# define ENGINE_F_ENGINE_CTRL_CMD 178 +# define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 +# define ENGINE_F_ENGINE_FINISH 107 +# define ENGINE_F_ENGINE_FREE_UTIL 108 +# define ENGINE_F_ENGINE_GET_CIPHER 185 +# define ENGINE_F_ENGINE_GET_DEFAULT_TYPE 177 +# define ENGINE_F_ENGINE_GET_DIGEST 186 +# define ENGINE_F_ENGINE_GET_NEXT 115 +# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 +# define ENGINE_F_ENGINE_GET_PKEY_METH 192 +# define ENGINE_F_ENGINE_GET_PREV 116 +# define ENGINE_F_ENGINE_INIT 119 +# define ENGINE_F_ENGINE_LIST_ADD 120 +# define ENGINE_F_ENGINE_LIST_REMOVE 121 +# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 +# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 +# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 +# define ENGINE_F_ENGINE_NEW 122 +# define ENGINE_F_ENGINE_REMOVE 123 +# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 +# define ENGINE_F_ENGINE_SET_DEFAULT_TYPE 126 +# define ENGINE_F_ENGINE_SET_ID 129 +# define ENGINE_F_ENGINE_SET_NAME 130 +# define ENGINE_F_ENGINE_TABLE_REGISTER 184 +# define ENGINE_F_ENGINE_UNLOAD_KEY 152 +# define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 +# define ENGINE_F_ENGINE_UP_REF 190 +# define ENGINE_F_INT_CTRL_HELPER 172 +# define ENGINE_F_INT_ENGINE_CONFIGURE 188 +# define ENGINE_F_INT_ENGINE_MODULE_INIT 187 +# define ENGINE_F_LOG_MESSAGE 141 + +/* Reason codes. */ +# define ENGINE_R_ALREADY_LOADED 100 +# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 +# define ENGINE_R_CMD_NOT_EXECUTABLE 134 +# define ENGINE_R_COMMAND_TAKES_INPUT 135 +# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 +# define ENGINE_R_CONFLICTING_ENGINE_ID 103 +# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 +# define ENGINE_R_DH_NOT_IMPLEMENTED 139 +# define ENGINE_R_DSA_NOT_IMPLEMENTED 140 +# define ENGINE_R_DSO_FAILURE 104 +# define ENGINE_R_DSO_NOT_FOUND 132 +# define ENGINE_R_ENGINES_SECTION_ERROR 148 +# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 +# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 +# define ENGINE_R_ENGINE_SECTION_ERROR 149 +# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 +# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 +# define ENGINE_R_FINISH_FAILED 106 +# define ENGINE_R_GET_HANDLE_FAILED 107 +# define ENGINE_R_ID_OR_NAME_MISSING 108 +# define ENGINE_R_INIT_FAILED 109 +# define ENGINE_R_INTERNAL_LIST_ERROR 110 +# define ENGINE_R_INVALID_ARGUMENT 143 +# define ENGINE_R_INVALID_CMD_NAME 137 +# define ENGINE_R_INVALID_CMD_NUMBER 138 +# define ENGINE_R_INVALID_INIT_VALUE 151 +# define ENGINE_R_INVALID_STRING 150 +# define ENGINE_R_NOT_INITIALISED 117 +# define ENGINE_R_NOT_LOADED 112 +# define ENGINE_R_NO_CONTROL_FUNCTION 120 +# define ENGINE_R_NO_INDEX 144 +# define ENGINE_R_NO_LOAD_FUNCTION 125 +# define ENGINE_R_NO_REFERENCE 130 +# define ENGINE_R_NO_SUCH_ENGINE 116 +# define ENGINE_R_NO_UNLOAD_FUNCTION 126 +# define ENGINE_R_PROVIDE_PARAMETERS 113 +# define ENGINE_R_RSA_NOT_IMPLEMENTED 141 +# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 +# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 +# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 +# define ENGINE_R_VERSION_INCOMPATIBILITY 145 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/err.h b/External/include/openssl/err.h new file mode 100644 index 00000000..585aa8ba --- /dev/null +++ b/External/include/openssl/err.h @@ -0,0 +1,389 @@ +/* crypto/err/err.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_ERR_H +# define HEADER_ERR_H + +# include + +# ifndef OPENSSL_NO_FP_API +# include +# include +# endif + +# include +# ifndef OPENSSL_NO_BIO +# include +# endif +# ifndef OPENSSL_NO_LHASH +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef OPENSSL_NO_ERR +# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,d,e) +# else +# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,NULL,0) +# endif + +# include + +# define ERR_TXT_MALLOCED 0x01 +# define ERR_TXT_STRING 0x02 + +# define ERR_FLAG_MARK 0x01 + +# define ERR_NUM_ERRORS 16 +typedef struct err_state_st { + CRYPTO_THREADID tid; + int err_flags[ERR_NUM_ERRORS]; + unsigned long err_buffer[ERR_NUM_ERRORS]; + char *err_data[ERR_NUM_ERRORS]; + int err_data_flags[ERR_NUM_ERRORS]; + const char *err_file[ERR_NUM_ERRORS]; + int err_line[ERR_NUM_ERRORS]; + int top, bottom; +} ERR_STATE; + +/* library */ +# define ERR_LIB_NONE 1 +# define ERR_LIB_SYS 2 +# define ERR_LIB_BN 3 +# define ERR_LIB_RSA 4 +# define ERR_LIB_DH 5 +# define ERR_LIB_EVP 6 +# define ERR_LIB_BUF 7 +# define ERR_LIB_OBJ 8 +# define ERR_LIB_PEM 9 +# define ERR_LIB_DSA 10 +# define ERR_LIB_X509 11 +/* #define ERR_LIB_METH 12 */ +# define ERR_LIB_ASN1 13 +# define ERR_LIB_CONF 14 +# define ERR_LIB_CRYPTO 15 +# define ERR_LIB_EC 16 +# define ERR_LIB_SSL 20 +/* #define ERR_LIB_SSL23 21 */ +/* #define ERR_LIB_SSL2 22 */ +/* #define ERR_LIB_SSL3 23 */ +/* #define ERR_LIB_RSAREF 30 */ +/* #define ERR_LIB_PROXY 31 */ +# define ERR_LIB_BIO 32 +# define ERR_LIB_PKCS7 33 +# define ERR_LIB_X509V3 34 +# define ERR_LIB_PKCS12 35 +# define ERR_LIB_RAND 36 +# define ERR_LIB_DSO 37 +# define ERR_LIB_ENGINE 38 +# define ERR_LIB_OCSP 39 +# define ERR_LIB_UI 40 +# define ERR_LIB_COMP 41 +# define ERR_LIB_ECDSA 42 +# define ERR_LIB_ECDH 43 +# define ERR_LIB_STORE 44 +# define ERR_LIB_FIPS 45 +# define ERR_LIB_CMS 46 +# define ERR_LIB_TS 47 +# define ERR_LIB_HMAC 48 +# define ERR_LIB_JPAKE 49 + +# define ERR_LIB_USER 128 + +# define SYSerr(f,r) ERR_PUT_error(ERR_LIB_SYS,(f),(r),__FILE__,__LINE__) +# define BNerr(f,r) ERR_PUT_error(ERR_LIB_BN,(f),(r),__FILE__,__LINE__) +# define RSAerr(f,r) ERR_PUT_error(ERR_LIB_RSA,(f),(r),__FILE__,__LINE__) +# define DHerr(f,r) ERR_PUT_error(ERR_LIB_DH,(f),(r),__FILE__,__LINE__) +# define EVPerr(f,r) ERR_PUT_error(ERR_LIB_EVP,(f),(r),__FILE__,__LINE__) +# define BUFerr(f,r) ERR_PUT_error(ERR_LIB_BUF,(f),(r),__FILE__,__LINE__) +# define OBJerr(f,r) ERR_PUT_error(ERR_LIB_OBJ,(f),(r),__FILE__,__LINE__) +# define PEMerr(f,r) ERR_PUT_error(ERR_LIB_PEM,(f),(r),__FILE__,__LINE__) +# define DSAerr(f,r) ERR_PUT_error(ERR_LIB_DSA,(f),(r),__FILE__,__LINE__) +# define X509err(f,r) ERR_PUT_error(ERR_LIB_X509,(f),(r),__FILE__,__LINE__) +# define ASN1err(f,r) ERR_PUT_error(ERR_LIB_ASN1,(f),(r),__FILE__,__LINE__) +# define CONFerr(f,r) ERR_PUT_error(ERR_LIB_CONF,(f),(r),__FILE__,__LINE__) +# define CRYPTOerr(f,r) ERR_PUT_error(ERR_LIB_CRYPTO,(f),(r),__FILE__,__LINE__) +# define ECerr(f,r) ERR_PUT_error(ERR_LIB_EC,(f),(r),__FILE__,__LINE__) +# define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),__FILE__,__LINE__) +# define BIOerr(f,r) ERR_PUT_error(ERR_LIB_BIO,(f),(r),__FILE__,__LINE__) +# define PKCS7err(f,r) ERR_PUT_error(ERR_LIB_PKCS7,(f),(r),__FILE__,__LINE__) +# define X509V3err(f,r) ERR_PUT_error(ERR_LIB_X509V3,(f),(r),__FILE__,__LINE__) +# define PKCS12err(f,r) ERR_PUT_error(ERR_LIB_PKCS12,(f),(r),__FILE__,__LINE__) +# define RANDerr(f,r) ERR_PUT_error(ERR_LIB_RAND,(f),(r),__FILE__,__LINE__) +# define DSOerr(f,r) ERR_PUT_error(ERR_LIB_DSO,(f),(r),__FILE__,__LINE__) +# define ENGINEerr(f,r) ERR_PUT_error(ERR_LIB_ENGINE,(f),(r),__FILE__,__LINE__) +# define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),__FILE__,__LINE__) +# define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),__FILE__,__LINE__) +# define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),__FILE__,__LINE__) +# define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),__FILE__,__LINE__) +# define ECDHerr(f,r) ERR_PUT_error(ERR_LIB_ECDH,(f),(r),__FILE__,__LINE__) +# define STOREerr(f,r) ERR_PUT_error(ERR_LIB_STORE,(f),(r),__FILE__,__LINE__) +# define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),__FILE__,__LINE__) +# define CMSerr(f,r) ERR_PUT_error(ERR_LIB_CMS,(f),(r),__FILE__,__LINE__) +# define TSerr(f,r) ERR_PUT_error(ERR_LIB_TS,(f),(r),__FILE__,__LINE__) +# define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),__FILE__,__LINE__) +# define JPAKEerr(f,r) ERR_PUT_error(ERR_LIB_JPAKE,(f),(r),__FILE__,__LINE__) + +/* + * Borland C seems too stupid to be able to shift and do longs in the + * pre-processor :-( + */ +# define ERR_PACK(l,f,r) (((((unsigned long)l)&0xffL)*0x1000000)| \ + ((((unsigned long)f)&0xfffL)*0x1000)| \ + ((((unsigned long)r)&0xfffL))) +# define ERR_GET_LIB(l) (int)((((unsigned long)l)>>24L)&0xffL) +# define ERR_GET_FUNC(l) (int)((((unsigned long)l)>>12L)&0xfffL) +# define ERR_GET_REASON(l) (int)((l)&0xfffL) +# define ERR_FATAL_ERROR(l) (int)((l)&ERR_R_FATAL) + +/* OS functions */ +# define SYS_F_FOPEN 1 +# define SYS_F_CONNECT 2 +# define SYS_F_GETSERVBYNAME 3 +# define SYS_F_SOCKET 4 +# define SYS_F_IOCTLSOCKET 5 +# define SYS_F_BIND 6 +# define SYS_F_LISTEN 7 +# define SYS_F_ACCEPT 8 +# define SYS_F_WSASTARTUP 9/* Winsock stuff */ +# define SYS_F_OPENDIR 10 +# define SYS_F_FREAD 11 + +/* reasons */ +# define ERR_R_SYS_LIB ERR_LIB_SYS/* 2 */ +# define ERR_R_BN_LIB ERR_LIB_BN/* 3 */ +# define ERR_R_RSA_LIB ERR_LIB_RSA/* 4 */ +# define ERR_R_DH_LIB ERR_LIB_DH/* 5 */ +# define ERR_R_EVP_LIB ERR_LIB_EVP/* 6 */ +# define ERR_R_BUF_LIB ERR_LIB_BUF/* 7 */ +# define ERR_R_OBJ_LIB ERR_LIB_OBJ/* 8 */ +# define ERR_R_PEM_LIB ERR_LIB_PEM/* 9 */ +# define ERR_R_DSA_LIB ERR_LIB_DSA/* 10 */ +# define ERR_R_X509_LIB ERR_LIB_X509/* 11 */ +# define ERR_R_ASN1_LIB ERR_LIB_ASN1/* 13 */ +# define ERR_R_CONF_LIB ERR_LIB_CONF/* 14 */ +# define ERR_R_CRYPTO_LIB ERR_LIB_CRYPTO/* 15 */ +# define ERR_R_EC_LIB ERR_LIB_EC/* 16 */ +# define ERR_R_SSL_LIB ERR_LIB_SSL/* 20 */ +# define ERR_R_BIO_LIB ERR_LIB_BIO/* 32 */ +# define ERR_R_PKCS7_LIB ERR_LIB_PKCS7/* 33 */ +# define ERR_R_X509V3_LIB ERR_LIB_X509V3/* 34 */ +# define ERR_R_PKCS12_LIB ERR_LIB_PKCS12/* 35 */ +# define ERR_R_RAND_LIB ERR_LIB_RAND/* 36 */ +# define ERR_R_DSO_LIB ERR_LIB_DSO/* 37 */ +# define ERR_R_ENGINE_LIB ERR_LIB_ENGINE/* 38 */ +# define ERR_R_OCSP_LIB ERR_LIB_OCSP/* 39 */ +# define ERR_R_UI_LIB ERR_LIB_UI/* 40 */ +# define ERR_R_COMP_LIB ERR_LIB_COMP/* 41 */ +# define ERR_R_ECDSA_LIB ERR_LIB_ECDSA/* 42 */ +# define ERR_R_ECDH_LIB ERR_LIB_ECDH/* 43 */ +# define ERR_R_STORE_LIB ERR_LIB_STORE/* 44 */ +# define ERR_R_TS_LIB ERR_LIB_TS/* 45 */ + +# define ERR_R_NESTED_ASN1_ERROR 58 +# define ERR_R_BAD_ASN1_OBJECT_HEADER 59 +# define ERR_R_BAD_GET_ASN1_OBJECT_CALL 60 +# define ERR_R_EXPECTING_AN_ASN1_SEQUENCE 61 +# define ERR_R_ASN1_LENGTH_MISMATCH 62 +# define ERR_R_MISSING_ASN1_EOS 63 + +/* fatal error */ +# define ERR_R_FATAL 64 +# define ERR_R_MALLOC_FAILURE (1|ERR_R_FATAL) +# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (2|ERR_R_FATAL) +# define ERR_R_PASSED_NULL_PARAMETER (3|ERR_R_FATAL) +# define ERR_R_INTERNAL_ERROR (4|ERR_R_FATAL) +# define ERR_R_DISABLED (5|ERR_R_FATAL) + +/* + * 99 is the maximum possible ERR_R_... code, higher values are reserved for + * the individual libraries + */ + +typedef struct ERR_string_data_st { + unsigned long error; + const char *string; +} ERR_STRING_DATA; + +void ERR_put_error(int lib, int func, int reason, const char *file, int line); +void ERR_set_error_data(char *data, int flags); + +unsigned long ERR_get_error(void); +unsigned long ERR_get_error_line(const char **file, int *line); +unsigned long ERR_get_error_line_data(const char **file, int *line, + const char **data, int *flags); +unsigned long ERR_peek_error(void); +unsigned long ERR_peek_error_line(const char **file, int *line); +unsigned long ERR_peek_error_line_data(const char **file, int *line, + const char **data, int *flags); +unsigned long ERR_peek_last_error(void); +unsigned long ERR_peek_last_error_line(const char **file, int *line); +unsigned long ERR_peek_last_error_line_data(const char **file, int *line, + const char **data, int *flags); +void ERR_clear_error(void); +char *ERR_error_string(unsigned long e, char *buf); +void ERR_error_string_n(unsigned long e, char *buf, size_t len); +const char *ERR_lib_error_string(unsigned long e); +const char *ERR_func_error_string(unsigned long e); +const char *ERR_reason_error_string(unsigned long e); +void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), + void *u); +# ifndef OPENSSL_NO_FP_API +void ERR_print_errors_fp(FILE *fp); +# endif +# ifndef OPENSSL_NO_BIO +void ERR_print_errors(BIO *bp); +# endif +void ERR_add_error_data(int num, ...); +void ERR_add_error_vdata(int num, va_list args); +void ERR_load_strings(int lib, ERR_STRING_DATA str[]); +void ERR_unload_strings(int lib, ERR_STRING_DATA str[]); +void ERR_load_ERR_strings(void); +void ERR_load_crypto_strings(void); +void ERR_free_strings(void); + +void ERR_remove_thread_state(const CRYPTO_THREADID *tid); +# ifndef OPENSSL_NO_DEPRECATED +void ERR_remove_state(unsigned long pid); /* if zero we look it up */ +# endif +ERR_STATE *ERR_get_state(void); + +# ifndef OPENSSL_NO_LHASH +LHASH_OF(ERR_STRING_DATA) *ERR_get_string_table(void); +LHASH_OF(ERR_STATE) *ERR_get_err_state_table(void); +void ERR_release_err_state_table(LHASH_OF(ERR_STATE) **hash); +# endif + +int ERR_get_next_error_library(void); + +int ERR_set_mark(void); +int ERR_pop_to_mark(void); + +/* Already defined in ossl_typ.h */ +/* typedef struct st_ERR_FNS ERR_FNS; */ +/* + * An application can use this function and provide the return value to + * loaded modules that should use the application's ERR state/functionality + */ +const ERR_FNS *ERR_get_implementation(void); +/* + * A loaded module should call this function prior to any ERR operations + * using the application's "ERR_FNS". + */ +int ERR_set_implementation(const ERR_FNS *fns); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/evp.h b/External/include/openssl/evp.h new file mode 100644 index 00000000..39ab7937 --- /dev/null +++ b/External/include/openssl/evp.h @@ -0,0 +1,1534 @@ +/* crypto/evp/evp.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_ENVELOPE_H +# define HEADER_ENVELOPE_H + +# ifdef OPENSSL_ALGORITHM_DEFINES +# include +# else +# define OPENSSL_ALGORITHM_DEFINES +# include +# undef OPENSSL_ALGORITHM_DEFINES +# endif + +# include + +# include + +# ifndef OPENSSL_NO_BIO +# include +# endif + +/*- +#define EVP_RC2_KEY_SIZE 16 +#define EVP_RC4_KEY_SIZE 16 +#define EVP_BLOWFISH_KEY_SIZE 16 +#define EVP_CAST5_KEY_SIZE 16 +#define EVP_RC5_32_12_16_KEY_SIZE 16 +*/ +# define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ +# define EVP_MAX_KEY_LENGTH 64 +# define EVP_MAX_IV_LENGTH 16 +# define EVP_MAX_BLOCK_LENGTH 32 + +# define PKCS5_SALT_LEN 8 +/* Default PKCS#5 iteration count */ +# define PKCS5_DEFAULT_ITER 2048 + +# include + +# define EVP_PK_RSA 0x0001 +# define EVP_PK_DSA 0x0002 +# define EVP_PK_DH 0x0004 +# define EVP_PK_EC 0x0008 +# define EVP_PKT_SIGN 0x0010 +# define EVP_PKT_ENC 0x0020 +# define EVP_PKT_EXCH 0x0040 +# define EVP_PKS_RSA 0x0100 +# define EVP_PKS_DSA 0x0200 +# define EVP_PKS_EC 0x0400 + +# define EVP_PKEY_NONE NID_undef +# define EVP_PKEY_RSA NID_rsaEncryption +# define EVP_PKEY_RSA2 NID_rsa +# define EVP_PKEY_DSA NID_dsa +# define EVP_PKEY_DSA1 NID_dsa_2 +# define EVP_PKEY_DSA2 NID_dsaWithSHA +# define EVP_PKEY_DSA3 NID_dsaWithSHA1 +# define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 +# define EVP_PKEY_DH NID_dhKeyAgreement +# define EVP_PKEY_DHX NID_dhpublicnumber +# define EVP_PKEY_EC NID_X9_62_id_ecPublicKey +# define EVP_PKEY_HMAC NID_hmac +# define EVP_PKEY_CMAC NID_cmac + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Type needs to be a bit field Sub-type needs to be for variations on the + * method, as in, can it do arbitrary encryption.... + */ +struct evp_pkey_st { + int type; + int save_type; + int references; + const EVP_PKEY_ASN1_METHOD *ameth; + ENGINE *engine; + union { + char *ptr; +# ifndef OPENSSL_NO_RSA + struct rsa_st *rsa; /* RSA */ +# endif +# ifndef OPENSSL_NO_DSA + struct dsa_st *dsa; /* DSA */ +# endif +# ifndef OPENSSL_NO_DH + struct dh_st *dh; /* DH */ +# endif +# ifndef OPENSSL_NO_EC + struct ec_key_st *ec; /* ECC */ +# endif + } pkey; + int save_parameters; + STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */ +} /* EVP_PKEY */ ; + +# define EVP_PKEY_MO_SIGN 0x0001 +# define EVP_PKEY_MO_VERIFY 0x0002 +# define EVP_PKEY_MO_ENCRYPT 0x0004 +# define EVP_PKEY_MO_DECRYPT 0x0008 + +# ifndef EVP_MD +struct env_md_st { + int type; + int pkey_type; + int md_size; + unsigned long flags; + int (*init) (EVP_MD_CTX *ctx); + int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); + int (*final) (EVP_MD_CTX *ctx, unsigned char *md); + int (*copy) (EVP_MD_CTX *to, const EVP_MD_CTX *from); + int (*cleanup) (EVP_MD_CTX *ctx); + /* FIXME: prototype these some day */ + int (*sign) (int type, const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, void *key); + int (*verify) (int type, const unsigned char *m, unsigned int m_length, + const unsigned char *sigbuf, unsigned int siglen, + void *key); + int required_pkey_type[5]; /* EVP_PKEY_xxx */ + int block_size; + int ctx_size; /* how big does the ctx->md_data need to be */ + /* control function */ + int (*md_ctrl) (EVP_MD_CTX *ctx, int cmd, int p1, void *p2); +} /* EVP_MD */ ; + +typedef int evp_sign_method(int type, const unsigned char *m, + unsigned int m_length, unsigned char *sigret, + unsigned int *siglen, void *key); +typedef int evp_verify_method(int type, const unsigned char *m, + unsigned int m_length, + const unsigned char *sigbuf, + unsigned int siglen, void *key); + +/* digest can only handle a single block */ +# define EVP_MD_FLAG_ONESHOT 0x0001 + +/* + * digest is a "clone" digest used + * which is a copy of an existing + * one for a specific public key type. + * EVP_dss1() etc + */ +# define EVP_MD_FLAG_PKEY_DIGEST 0x0002 + +/* Digest uses EVP_PKEY_METHOD for signing instead of MD specific signing */ + +# define EVP_MD_FLAG_PKEY_METHOD_SIGNATURE 0x0004 + +/* DigestAlgorithmIdentifier flags... */ + +# define EVP_MD_FLAG_DIGALGID_MASK 0x0018 + +/* NULL or absent parameter accepted. Use NULL */ + +# define EVP_MD_FLAG_DIGALGID_NULL 0x0000 + +/* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ + +# define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008 + +/* Custom handling via ctrl */ + +# define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018 + +/* Note if suitable for use in FIPS mode */ +# define EVP_MD_FLAG_FIPS 0x0400 + +/* Digest ctrls */ + +# define EVP_MD_CTRL_DIGALGID 0x1 +# define EVP_MD_CTRL_MICALG 0x2 + +/* Minimum Algorithm specific ctrl value */ + +# define EVP_MD_CTRL_ALG_CTRL 0x1000 + +# define EVP_PKEY_NULL_method NULL,NULL,{0,0,0,0} + +# ifndef OPENSSL_NO_DSA +# define EVP_PKEY_DSA_method (evp_sign_method *)DSA_sign, \ + (evp_verify_method *)DSA_verify, \ + {EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3, \ + EVP_PKEY_DSA4,0} +# else +# define EVP_PKEY_DSA_method EVP_PKEY_NULL_method +# endif + +# ifndef OPENSSL_NO_ECDSA +# define EVP_PKEY_ECDSA_method (evp_sign_method *)ECDSA_sign, \ + (evp_verify_method *)ECDSA_verify, \ + {EVP_PKEY_EC,0,0,0} +# else +# define EVP_PKEY_ECDSA_method EVP_PKEY_NULL_method +# endif + +# ifndef OPENSSL_NO_RSA +# define EVP_PKEY_RSA_method (evp_sign_method *)RSA_sign, \ + (evp_verify_method *)RSA_verify, \ + {EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0} +# define EVP_PKEY_RSA_ASN1_OCTET_STRING_method \ + (evp_sign_method *)RSA_sign_ASN1_OCTET_STRING, \ + (evp_verify_method *)RSA_verify_ASN1_OCTET_STRING, \ + {EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0} +# else +# define EVP_PKEY_RSA_method EVP_PKEY_NULL_method +# define EVP_PKEY_RSA_ASN1_OCTET_STRING_method EVP_PKEY_NULL_method +# endif + +# endif /* !EVP_MD */ + +struct env_md_ctx_st { + const EVP_MD *digest; + ENGINE *engine; /* functional reference if 'digest' is + * ENGINE-provided */ + unsigned long flags; + void *md_data; + /* Public key context for sign/verify */ + EVP_PKEY_CTX *pctx; + /* Update function: usually copied from EVP_MD */ + int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); +} /* EVP_MD_CTX */ ; + +/* values for EVP_MD_CTX flags */ + +# define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be + * called once only */ +# define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been + * cleaned */ +# define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data + * in EVP_MD_CTX_cleanup */ +/* + * FIPS and pad options are ignored in 1.0.0, definitions are here so we + * don't accidentally reuse the values for other purposes. + */ + +# define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008/* Allow use of non FIPS + * digest in FIPS mode */ + +/* + * The following PAD options are also currently ignored in 1.0.0, digest + * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() + * instead. + */ +# define EVP_MD_CTX_FLAG_PAD_MASK 0xF0/* RSA mode to use */ +# define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00/* PKCS#1 v1.5 mode */ +# define EVP_MD_CTX_FLAG_PAD_X931 0x10/* X9.31 mode */ +# define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */ + +# define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */ + +struct evp_cipher_st { + int nid; + int block_size; + /* Default value for variable length ciphers */ + int key_len; + int iv_len; + /* Various flags */ + unsigned long flags; + /* init key */ + int (*init) (EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc); + /* encrypt/decrypt data */ + int (*do_cipher) (EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t inl); + /* cleanup ctx */ + int (*cleanup) (EVP_CIPHER_CTX *); + /* how big ctx->cipher_data needs to be */ + int ctx_size; + /* Populate a ASN1_TYPE with parameters */ + int (*set_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); + /* Get parameters from a ASN1_TYPE */ + int (*get_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); + /* Miscellaneous operations */ + int (*ctrl) (EVP_CIPHER_CTX *, int type, int arg, void *ptr); + /* Application data */ + void *app_data; +} /* EVP_CIPHER */ ; + +/* Values for cipher flags */ + +/* Modes for ciphers */ + +# define EVP_CIPH_STREAM_CIPHER 0x0 +# define EVP_CIPH_ECB_MODE 0x1 +# define EVP_CIPH_CBC_MODE 0x2 +# define EVP_CIPH_CFB_MODE 0x3 +# define EVP_CIPH_OFB_MODE 0x4 +# define EVP_CIPH_CTR_MODE 0x5 +# define EVP_CIPH_GCM_MODE 0x6 +# define EVP_CIPH_CCM_MODE 0x7 +# define EVP_CIPH_XTS_MODE 0x10001 +# define EVP_CIPH_WRAP_MODE 0x10002 +# define EVP_CIPH_MODE 0xF0007 +/* Set if variable length cipher */ +# define EVP_CIPH_VARIABLE_LENGTH 0x8 +/* Set if the iv handling should be done by the cipher itself */ +# define EVP_CIPH_CUSTOM_IV 0x10 +/* Set if the cipher's init() function should be called if key is NULL */ +# define EVP_CIPH_ALWAYS_CALL_INIT 0x20 +/* Call ctrl() to init cipher parameters */ +# define EVP_CIPH_CTRL_INIT 0x40 +/* Don't use standard key length function */ +# define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 +/* Don't use standard block padding */ +# define EVP_CIPH_NO_PADDING 0x100 +/* cipher handles random key generation */ +# define EVP_CIPH_RAND_KEY 0x200 +/* cipher has its own additional copying logic */ +# define EVP_CIPH_CUSTOM_COPY 0x400 +/* Allow use default ASN1 get/set iv */ +# define EVP_CIPH_FLAG_DEFAULT_ASN1 0x1000 +/* Buffer length in bits not bytes: CFB1 mode only */ +# define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 +/* Note if suitable for use in FIPS mode */ +# define EVP_CIPH_FLAG_FIPS 0x4000 +/* Allow non FIPS cipher in FIPS mode */ +# define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0x8000 +/* + * Cipher handles any and all padding logic as well as finalisation. + */ +# define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 +# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 +# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 + +/* + * Cipher context flag to indicate we can handle wrap mode: if allowed in + * older applications it could overflow buffers. + */ + +# define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1 + +/* ctrl() values */ + +# define EVP_CTRL_INIT 0x0 +# define EVP_CTRL_SET_KEY_LENGTH 0x1 +# define EVP_CTRL_GET_RC2_KEY_BITS 0x2 +# define EVP_CTRL_SET_RC2_KEY_BITS 0x3 +# define EVP_CTRL_GET_RC5_ROUNDS 0x4 +# define EVP_CTRL_SET_RC5_ROUNDS 0x5 +# define EVP_CTRL_RAND_KEY 0x6 +# define EVP_CTRL_PBE_PRF_NID 0x7 +# define EVP_CTRL_COPY 0x8 +# define EVP_CTRL_GCM_SET_IVLEN 0x9 +# define EVP_CTRL_GCM_GET_TAG 0x10 +# define EVP_CTRL_GCM_SET_TAG 0x11 +# define EVP_CTRL_GCM_SET_IV_FIXED 0x12 +# define EVP_CTRL_GCM_IV_GEN 0x13 +# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_GCM_SET_IVLEN +# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_GCM_GET_TAG +# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_GCM_SET_TAG +# define EVP_CTRL_CCM_SET_L 0x14 +# define EVP_CTRL_CCM_SET_MSGLEN 0x15 +/* + * AEAD cipher deduces payload length and returns number of bytes required to + * store MAC and eventual padding. Subsequent call to EVP_Cipher even + * appends/verifies MAC. + */ +# define EVP_CTRL_AEAD_TLS1_AAD 0x16 +/* Used by composite AEAD ciphers, no-op in GCM, CCM... */ +# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 +/* Set the GCM invocation field, decrypt only */ +# define EVP_CTRL_GCM_SET_IV_INV 0x18 + +# define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19 +# define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a +# define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b +# define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c + +/* RFC 5246 defines additional data to be 13 bytes in length */ +# define EVP_AEAD_TLS1_AAD_LEN 13 + +typedef struct { + unsigned char *out; + const unsigned char *inp; + size_t len; + unsigned int interleave; +} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; + +/* GCM TLS constants */ +/* Length of fixed part of IV derived from PRF */ +# define EVP_GCM_TLS_FIXED_IV_LEN 4 +/* Length of explicit part of IV part of TLS records */ +# define EVP_GCM_TLS_EXPLICIT_IV_LEN 8 +/* Length of tag for TLS */ +# define EVP_GCM_TLS_TAG_LEN 16 + +typedef struct evp_cipher_info_st { + const EVP_CIPHER *cipher; + unsigned char iv[EVP_MAX_IV_LENGTH]; +} EVP_CIPHER_INFO; + +struct evp_cipher_ctx_st { + const EVP_CIPHER *cipher; + ENGINE *engine; /* functional reference if 'cipher' is + * ENGINE-provided */ + int encrypt; /* encrypt or decrypt */ + int buf_len; /* number we have left */ + unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */ + unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */ + unsigned char buf[EVP_MAX_BLOCK_LENGTH]; /* saved partial block */ + int num; /* used by cfb/ofb/ctr mode */ + void *app_data; /* application stuff */ + int key_len; /* May change for variable length cipher */ + unsigned long flags; /* Various flags */ + void *cipher_data; /* per EVP data */ + int final_used; + int block_mask; + unsigned char final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */ +} /* EVP_CIPHER_CTX */ ; + +typedef struct evp_Encode_Ctx_st { + /* number saved in a partial encode/decode */ + int num; + /* + * The length is either the output line length (in input bytes) or the + * shortest input line length that is ok. Once decoding begins, the + * length is adjusted up each time a longer line is decoded + */ + int length; + /* data to encode */ + unsigned char enc_data[80]; + /* number read on current line */ + int line_num; + int expect_nl; +} EVP_ENCODE_CTX; + +/* Password based encryption function */ +typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, + int passlen, ASN1_TYPE *param, + const EVP_CIPHER *cipher, const EVP_MD *md, + int en_de); + +# ifndef OPENSSL_NO_RSA +# define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ + (char *)(rsa)) +# endif + +# ifndef OPENSSL_NO_DSA +# define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ + (char *)(dsa)) +# endif + +# ifndef OPENSSL_NO_DH +# define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\ + (char *)(dh)) +# endif + +# ifndef OPENSSL_NO_EC +# define EVP_PKEY_assign_EC_KEY(pkey,eckey) EVP_PKEY_assign((pkey),EVP_PKEY_EC,\ + (char *)(eckey)) +# endif + +/* Add some extra combinations */ +# define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) +# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) +# define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) +# define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) + +int EVP_MD_type(const EVP_MD *md); +# define EVP_MD_nid(e) EVP_MD_type(e) +# define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e)) +int EVP_MD_pkey_type(const EVP_MD *md); +int EVP_MD_size(const EVP_MD *md); +int EVP_MD_block_size(const EVP_MD *md); +unsigned long EVP_MD_flags(const EVP_MD *md); + +const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); +# define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e)) +# define EVP_MD_CTX_block_size(e) EVP_MD_block_size(EVP_MD_CTX_md(e)) +# define EVP_MD_CTX_type(e) EVP_MD_type(EVP_MD_CTX_md(e)) + +int EVP_CIPHER_nid(const EVP_CIPHER *cipher); +# define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e)) +int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); +int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); +int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); +unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); +# define EVP_CIPHER_mode(e) (EVP_CIPHER_flags(e) & EVP_CIPH_MODE) + +const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); +void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); +void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); +# define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) +unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx); +# define EVP_CIPHER_CTX_mode(e) (EVP_CIPHER_CTX_flags(e) & EVP_CIPH_MODE) + +# define EVP_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80) +# define EVP_DECODE_LENGTH(l) ((l+3)/4*3+80) + +# define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) +# define EVP_SignInit(a,b) EVP_DigestInit(a,b) +# define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +# define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) +# define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) +# define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +# define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) +# define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) +# define EVP_DigestSignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +# define EVP_DigestVerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) + +# ifdef CONST_STRICT +void BIO_set_md(BIO *, const EVP_MD *md); +# else +# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(char *)md) +# endif +# define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)mdp) +# define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(char *)mdcp) +# define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0,(char *)mdcp) +# define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) +# define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(char *)c_pp) + +int EVP_Cipher(EVP_CIPHER_CTX *c, + unsigned char *out, const unsigned char *in, unsigned int inl); + +# define EVP_add_cipher_alias(n,alias) \ + OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) +# define EVP_add_digest_alias(n,alias) \ + OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) +# define EVP_delete_cipher_alias(alias) \ + OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); +# define EVP_delete_digest_alias(alias) \ + OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); + +void EVP_MD_CTX_init(EVP_MD_CTX *ctx); +int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx); +EVP_MD_CTX *EVP_MD_CTX_create(void); +void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); +int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); +void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); +void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); +int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); +int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); +int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); +int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); +int EVP_Digest(const void *data, size_t count, + unsigned char *md, unsigned int *size, const EVP_MD *type, + ENGINE *impl); + +int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); +int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); +int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); + +int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); +int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, + const char *prompt, int verify); +void EVP_set_pw_prompt(const char *prompt); +char *EVP_get_pw_prompt(void); + +int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, + const unsigned char *salt, const unsigned char *data, + int datal, int count, unsigned char *key, + unsigned char *iv); + +void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); +void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); +int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); + +int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv); +int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + ENGINE *impl, const unsigned char *key, + const unsigned char *iv); +int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); +int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); + +int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv); +int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + ENGINE *impl, const unsigned char *key, + const unsigned char *iv); +int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); +int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); + +int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv, + int enc); +int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + ENGINE *impl, const unsigned char *key, + const unsigned char *iv, int enc); +int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); +int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); + +int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, + EVP_PKEY *pkey); + +int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, + unsigned int siglen, EVP_PKEY *pkey); + +int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, + const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); +int EVP_DigestSignFinal(EVP_MD_CTX *ctx, + unsigned char *sigret, size_t *siglen); + +int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, + const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); +int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, + const unsigned char *sig, size_t siglen); + +int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, + const unsigned char *ek, int ekl, const unsigned char *iv, + EVP_PKEY *priv); +int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); + +int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, + unsigned char **ek, int *ekl, unsigned char *iv, + EVP_PKEY **pubk, int npubk); +int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); + +void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); +void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); +int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); + +void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); +int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned + char *out, int *outl); +int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); + +void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a); +int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a); +EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); +void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); +int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); +int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); +int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); +int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); + +# ifndef OPENSSL_NO_BIO +BIO_METHOD *BIO_f_md(void); +BIO_METHOD *BIO_f_base64(void); +BIO_METHOD *BIO_f_cipher(void); +BIO_METHOD *BIO_f_reliable(void); +void BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, + const unsigned char *i, int enc); +# endif + +const EVP_MD *EVP_md_null(void); +# ifndef OPENSSL_NO_MD2 +const EVP_MD *EVP_md2(void); +# endif +# ifndef OPENSSL_NO_MD4 +const EVP_MD *EVP_md4(void); +# endif +# ifndef OPENSSL_NO_MD5 +const EVP_MD *EVP_md5(void); +# endif +# ifndef OPENSSL_NO_SHA +const EVP_MD *EVP_sha(void); +const EVP_MD *EVP_sha1(void); +const EVP_MD *EVP_dss(void); +const EVP_MD *EVP_dss1(void); +const EVP_MD *EVP_ecdsa(void); +# endif +# ifndef OPENSSL_NO_SHA256 +const EVP_MD *EVP_sha224(void); +const EVP_MD *EVP_sha256(void); +# endif +# ifndef OPENSSL_NO_SHA512 +const EVP_MD *EVP_sha384(void); +const EVP_MD *EVP_sha512(void); +# endif +# ifndef OPENSSL_NO_MDC2 +const EVP_MD *EVP_mdc2(void); +# endif +# ifndef OPENSSL_NO_RIPEMD +const EVP_MD *EVP_ripemd160(void); +# endif +# ifndef OPENSSL_NO_WHIRLPOOL +const EVP_MD *EVP_whirlpool(void); +# endif +const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ +# ifndef OPENSSL_NO_DES +const EVP_CIPHER *EVP_des_ecb(void); +const EVP_CIPHER *EVP_des_ede(void); +const EVP_CIPHER *EVP_des_ede3(void); +const EVP_CIPHER *EVP_des_ede_ecb(void); +const EVP_CIPHER *EVP_des_ede3_ecb(void); +const EVP_CIPHER *EVP_des_cfb64(void); +# define EVP_des_cfb EVP_des_cfb64 +const EVP_CIPHER *EVP_des_cfb1(void); +const EVP_CIPHER *EVP_des_cfb8(void); +const EVP_CIPHER *EVP_des_ede_cfb64(void); +# define EVP_des_ede_cfb EVP_des_ede_cfb64 +# if 0 +const EVP_CIPHER *EVP_des_ede_cfb1(void); +const EVP_CIPHER *EVP_des_ede_cfb8(void); +# endif +const EVP_CIPHER *EVP_des_ede3_cfb64(void); +# define EVP_des_ede3_cfb EVP_des_ede3_cfb64 +const EVP_CIPHER *EVP_des_ede3_cfb1(void); +const EVP_CIPHER *EVP_des_ede3_cfb8(void); +const EVP_CIPHER *EVP_des_ofb(void); +const EVP_CIPHER *EVP_des_ede_ofb(void); +const EVP_CIPHER *EVP_des_ede3_ofb(void); +const EVP_CIPHER *EVP_des_cbc(void); +const EVP_CIPHER *EVP_des_ede_cbc(void); +const EVP_CIPHER *EVP_des_ede3_cbc(void); +const EVP_CIPHER *EVP_desx_cbc(void); +const EVP_CIPHER *EVP_des_ede3_wrap(void); +/* + * This should now be supported through the dev_crypto ENGINE. But also, why + * are rc4 and md5 declarations made here inside a "NO_DES" precompiler + * branch? + */ +# if 0 +# ifdef OPENSSL_OPENBSD_DEV_CRYPTO +const EVP_CIPHER *EVP_dev_crypto_des_ede3_cbc(void); +const EVP_CIPHER *EVP_dev_crypto_rc4(void); +const EVP_MD *EVP_dev_crypto_md5(void); +# endif +# endif +# endif +# ifndef OPENSSL_NO_RC4 +const EVP_CIPHER *EVP_rc4(void); +const EVP_CIPHER *EVP_rc4_40(void); +# ifndef OPENSSL_NO_MD5 +const EVP_CIPHER *EVP_rc4_hmac_md5(void); +# endif +# endif +# ifndef OPENSSL_NO_IDEA +const EVP_CIPHER *EVP_idea_ecb(void); +const EVP_CIPHER *EVP_idea_cfb64(void); +# define EVP_idea_cfb EVP_idea_cfb64 +const EVP_CIPHER *EVP_idea_ofb(void); +const EVP_CIPHER *EVP_idea_cbc(void); +# endif +# ifndef OPENSSL_NO_RC2 +const EVP_CIPHER *EVP_rc2_ecb(void); +const EVP_CIPHER *EVP_rc2_cbc(void); +const EVP_CIPHER *EVP_rc2_40_cbc(void); +const EVP_CIPHER *EVP_rc2_64_cbc(void); +const EVP_CIPHER *EVP_rc2_cfb64(void); +# define EVP_rc2_cfb EVP_rc2_cfb64 +const EVP_CIPHER *EVP_rc2_ofb(void); +# endif +# ifndef OPENSSL_NO_BF +const EVP_CIPHER *EVP_bf_ecb(void); +const EVP_CIPHER *EVP_bf_cbc(void); +const EVP_CIPHER *EVP_bf_cfb64(void); +# define EVP_bf_cfb EVP_bf_cfb64 +const EVP_CIPHER *EVP_bf_ofb(void); +# endif +# ifndef OPENSSL_NO_CAST +const EVP_CIPHER *EVP_cast5_ecb(void); +const EVP_CIPHER *EVP_cast5_cbc(void); +const EVP_CIPHER *EVP_cast5_cfb64(void); +# define EVP_cast5_cfb EVP_cast5_cfb64 +const EVP_CIPHER *EVP_cast5_ofb(void); +# endif +# ifndef OPENSSL_NO_RC5 +const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); +const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); +const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void); +# define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64 +const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); +# endif +# ifndef OPENSSL_NO_AES +const EVP_CIPHER *EVP_aes_128_ecb(void); +const EVP_CIPHER *EVP_aes_128_cbc(void); +const EVP_CIPHER *EVP_aes_128_cfb1(void); +const EVP_CIPHER *EVP_aes_128_cfb8(void); +const EVP_CIPHER *EVP_aes_128_cfb128(void); +# define EVP_aes_128_cfb EVP_aes_128_cfb128 +const EVP_CIPHER *EVP_aes_128_ofb(void); +const EVP_CIPHER *EVP_aes_128_ctr(void); +const EVP_CIPHER *EVP_aes_128_ccm(void); +const EVP_CIPHER *EVP_aes_128_gcm(void); +const EVP_CIPHER *EVP_aes_128_xts(void); +const EVP_CIPHER *EVP_aes_128_wrap(void); +const EVP_CIPHER *EVP_aes_192_ecb(void); +const EVP_CIPHER *EVP_aes_192_cbc(void); +const EVP_CIPHER *EVP_aes_192_cfb1(void); +const EVP_CIPHER *EVP_aes_192_cfb8(void); +const EVP_CIPHER *EVP_aes_192_cfb128(void); +# define EVP_aes_192_cfb EVP_aes_192_cfb128 +const EVP_CIPHER *EVP_aes_192_ofb(void); +const EVP_CIPHER *EVP_aes_192_ctr(void); +const EVP_CIPHER *EVP_aes_192_ccm(void); +const EVP_CIPHER *EVP_aes_192_gcm(void); +const EVP_CIPHER *EVP_aes_192_wrap(void); +const EVP_CIPHER *EVP_aes_256_ecb(void); +const EVP_CIPHER *EVP_aes_256_cbc(void); +const EVP_CIPHER *EVP_aes_256_cfb1(void); +const EVP_CIPHER *EVP_aes_256_cfb8(void); +const EVP_CIPHER *EVP_aes_256_cfb128(void); +# define EVP_aes_256_cfb EVP_aes_256_cfb128 +const EVP_CIPHER *EVP_aes_256_ofb(void); +const EVP_CIPHER *EVP_aes_256_ctr(void); +const EVP_CIPHER *EVP_aes_256_ccm(void); +const EVP_CIPHER *EVP_aes_256_gcm(void); +const EVP_CIPHER *EVP_aes_256_xts(void); +const EVP_CIPHER *EVP_aes_256_wrap(void); +# if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); +# endif +# ifndef OPENSSL_NO_SHA256 +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); +# endif +# endif +# ifndef OPENSSL_NO_CAMELLIA +const EVP_CIPHER *EVP_camellia_128_ecb(void); +const EVP_CIPHER *EVP_camellia_128_cbc(void); +const EVP_CIPHER *EVP_camellia_128_cfb1(void); +const EVP_CIPHER *EVP_camellia_128_cfb8(void); +const EVP_CIPHER *EVP_camellia_128_cfb128(void); +# define EVP_camellia_128_cfb EVP_camellia_128_cfb128 +const EVP_CIPHER *EVP_camellia_128_ofb(void); +const EVP_CIPHER *EVP_camellia_192_ecb(void); +const EVP_CIPHER *EVP_camellia_192_cbc(void); +const EVP_CIPHER *EVP_camellia_192_cfb1(void); +const EVP_CIPHER *EVP_camellia_192_cfb8(void); +const EVP_CIPHER *EVP_camellia_192_cfb128(void); +# define EVP_camellia_192_cfb EVP_camellia_192_cfb128 +const EVP_CIPHER *EVP_camellia_192_ofb(void); +const EVP_CIPHER *EVP_camellia_256_ecb(void); +const EVP_CIPHER *EVP_camellia_256_cbc(void); +const EVP_CIPHER *EVP_camellia_256_cfb1(void); +const EVP_CIPHER *EVP_camellia_256_cfb8(void); +const EVP_CIPHER *EVP_camellia_256_cfb128(void); +# define EVP_camellia_256_cfb EVP_camellia_256_cfb128 +const EVP_CIPHER *EVP_camellia_256_ofb(void); +# endif + +# ifndef OPENSSL_NO_SEED +const EVP_CIPHER *EVP_seed_ecb(void); +const EVP_CIPHER *EVP_seed_cbc(void); +const EVP_CIPHER *EVP_seed_cfb128(void); +# define EVP_seed_cfb EVP_seed_cfb128 +const EVP_CIPHER *EVP_seed_ofb(void); +# endif + +void OPENSSL_add_all_algorithms_noconf(void); +void OPENSSL_add_all_algorithms_conf(void); + +# ifdef OPENSSL_LOAD_CONF +# define OpenSSL_add_all_algorithms() \ + OPENSSL_add_all_algorithms_conf() +# else +# define OpenSSL_add_all_algorithms() \ + OPENSSL_add_all_algorithms_noconf() +# endif + +void OpenSSL_add_all_ciphers(void); +void OpenSSL_add_all_digests(void); +# define SSLeay_add_all_algorithms() OpenSSL_add_all_algorithms() +# define SSLeay_add_all_ciphers() OpenSSL_add_all_ciphers() +# define SSLeay_add_all_digests() OpenSSL_add_all_digests() + +int EVP_add_cipher(const EVP_CIPHER *cipher); +int EVP_add_digest(const EVP_MD *digest); + +const EVP_CIPHER *EVP_get_cipherbyname(const char *name); +const EVP_MD *EVP_get_digestbyname(const char *name); +void EVP_cleanup(void); + +void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, + const char *from, const char *to, void *x), + void *arg); +void EVP_CIPHER_do_all_sorted(void (*fn) + (const EVP_CIPHER *ciph, const char *from, + const char *to, void *x), void *arg); + +void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, + const char *from, const char *to, void *x), + void *arg); +void EVP_MD_do_all_sorted(void (*fn) + (const EVP_MD *ciph, const char *from, + const char *to, void *x), void *arg); + +int EVP_PKEY_decrypt_old(unsigned char *dec_key, + const unsigned char *enc_key, int enc_key_len, + EVP_PKEY *private_key); +int EVP_PKEY_encrypt_old(unsigned char *enc_key, + const unsigned char *key, int key_len, + EVP_PKEY *pub_key); +int EVP_PKEY_type(int type); +int EVP_PKEY_id(const EVP_PKEY *pkey); +int EVP_PKEY_base_id(const EVP_PKEY *pkey); +int EVP_PKEY_bits(EVP_PKEY *pkey); +int EVP_PKEY_size(EVP_PKEY *pkey); +int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); +int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); +int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); +void *EVP_PKEY_get0(EVP_PKEY *pkey); + +# ifndef OPENSSL_NO_RSA +struct rsa_st; +int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); +struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); +# endif +# ifndef OPENSSL_NO_DSA +struct dsa_st; +int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); +struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); +# endif +# ifndef OPENSSL_NO_DH +struct dh_st; +int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); +struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); +# endif +# ifndef OPENSSL_NO_EC +struct ec_key_st; +int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); +struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); +# endif + +EVP_PKEY *EVP_PKEY_new(void); +void EVP_PKEY_free(EVP_PKEY *pkey); + +EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, + long length); +int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); + +EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, + long length); +EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, + long length); +int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); + +int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); +int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); +int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); +int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); + +int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); + +int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); +int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); +int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); + +int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); + +int EVP_CIPHER_type(const EVP_CIPHER *ctx); + +/* calls methods */ +int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); +int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); + +/* These are used by EVP_CIPHER methods */ +int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); +int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); + +/* PKCS5 password based encryption */ +int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md, int en_de); +int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, + const unsigned char *salt, int saltlen, int iter, + int keylen, unsigned char *out); +int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, + const unsigned char *salt, int saltlen, int iter, + const EVP_MD *digest, int keylen, unsigned char *out); +int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md, int en_de); + +void PKCS5_PBE_add(void); + +int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, + ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); + +/* PBE type */ + +/* Can appear as the outermost AlgorithmIdentifier */ +# define EVP_PBE_TYPE_OUTER 0x0 +/* Is an PRF type OID */ +# define EVP_PBE_TYPE_PRF 0x1 + +int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, + int md_nid, EVP_PBE_KEYGEN *keygen); +int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, + EVP_PBE_KEYGEN *keygen); +int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, + EVP_PBE_KEYGEN **pkeygen); +void EVP_PBE_cleanup(void); + +# define ASN1_PKEY_ALIAS 0x1 +# define ASN1_PKEY_DYNAMIC 0x2 +# define ASN1_PKEY_SIGPARAM_NULL 0x4 + +# define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1 +# define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2 +# define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 +# define ASN1_PKEY_CTRL_CMS_SIGN 0x5 +# define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 +# define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 + +int EVP_PKEY_asn1_get_count(void); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, + const char *str, int len); +int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); +int EVP_PKEY_asn1_add_alias(int to, int from); +int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, + int *ppkey_flags, const char **pinfo, + const char **ppem_str, + const EVP_PKEY_ASN1_METHOD *ameth); + +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(EVP_PKEY *pkey); +EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, + const char *pem_str, + const char *info); +void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, + const EVP_PKEY_ASN1_METHOD *src); +void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); +void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, + int (*pub_decode) (EVP_PKEY *pk, + X509_PUBKEY *pub), + int (*pub_encode) (X509_PUBKEY *pub, + const EVP_PKEY *pk), + int (*pub_cmp) (const EVP_PKEY *a, + const EVP_PKEY *b), + int (*pub_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx), + int (*pkey_size) (const EVP_PKEY *pk), + int (*pkey_bits) (const EVP_PKEY *pk)); +void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, + int (*priv_decode) (EVP_PKEY *pk, + PKCS8_PRIV_KEY_INFO + *p8inf), + int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, + const EVP_PKEY *pk), + int (*priv_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, + ASN1_PCTX *pctx)); +void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, + int (*param_decode) (EVP_PKEY *pkey, + const unsigned char **pder, + int derlen), + int (*param_encode) (const EVP_PKEY *pkey, + unsigned char **pder), + int (*param_missing) (const EVP_PKEY *pk), + int (*param_copy) (EVP_PKEY *to, + const EVP_PKEY *from), + int (*param_cmp) (const EVP_PKEY *a, + const EVP_PKEY *b), + int (*param_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, + ASN1_PCTX *pctx)); + +void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, + void (*pkey_free) (EVP_PKEY *pkey)); +void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_ctrl) (EVP_PKEY *pkey, int op, + long arg1, void *arg2)); +void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, + int (*item_verify) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *a, + ASN1_BIT_STRING *sig, + EVP_PKEY *pkey), + int (*item_sign) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *alg1, + X509_ALGOR *alg2, + ASN1_BIT_STRING *sig)); + +# define EVP_PKEY_OP_UNDEFINED 0 +# define EVP_PKEY_OP_PARAMGEN (1<<1) +# define EVP_PKEY_OP_KEYGEN (1<<2) +# define EVP_PKEY_OP_SIGN (1<<3) +# define EVP_PKEY_OP_VERIFY (1<<4) +# define EVP_PKEY_OP_VERIFYRECOVER (1<<5) +# define EVP_PKEY_OP_SIGNCTX (1<<6) +# define EVP_PKEY_OP_VERIFYCTX (1<<7) +# define EVP_PKEY_OP_ENCRYPT (1<<8) +# define EVP_PKEY_OP_DECRYPT (1<<9) +# define EVP_PKEY_OP_DERIVE (1<<10) + +# define EVP_PKEY_OP_TYPE_SIG \ + (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYRECOVER \ + | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX) + +# define EVP_PKEY_OP_TYPE_CRYPT \ + (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT) + +# define EVP_PKEY_OP_TYPE_NOGEN \ + (EVP_PKEY_OP_SIG | EVP_PKEY_OP_CRYPT | EVP_PKEY_OP_DERIVE) + +# define EVP_PKEY_OP_TYPE_GEN \ + (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) + +# define EVP_PKEY_CTX_set_signature_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ + EVP_PKEY_CTRL_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_get_signature_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ + EVP_PKEY_CTRL_GET_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTRL_MD 1 +# define EVP_PKEY_CTRL_PEER_KEY 2 + +# define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3 +# define EVP_PKEY_CTRL_PKCS7_DECRYPT 4 + +# define EVP_PKEY_CTRL_PKCS7_SIGN 5 + +# define EVP_PKEY_CTRL_SET_MAC_KEY 6 + +# define EVP_PKEY_CTRL_DIGESTINIT 7 + +/* Used by GOST key encryption in TLS */ +# define EVP_PKEY_CTRL_SET_IV 8 + +# define EVP_PKEY_CTRL_CMS_ENCRYPT 9 +# define EVP_PKEY_CTRL_CMS_DECRYPT 10 +# define EVP_PKEY_CTRL_CMS_SIGN 11 + +# define EVP_PKEY_CTRL_CIPHER 12 + +# define EVP_PKEY_CTRL_GET_MD 13 + +# define EVP_PKEY_ALG_CTRL 0x1000 + +# define EVP_PKEY_FLAG_AUTOARGLEN 2 +/* + * Method handles all operations: don't assume any digest related defaults. + */ +# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4 + +const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); +EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); +void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, + const EVP_PKEY_METHOD *meth); +void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); +void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); +int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); + +EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); +EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); +EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); +void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); + +int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, + int cmd, int p1, void *p2); +int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, + const char *value); + +int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); +void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); + +EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, + const unsigned char *key, int keylen); + +void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); +void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); +EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); + +EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); + +void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); +void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); + +int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, size_t tbslen); +int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, + const unsigned char *sig, size_t siglen, + const unsigned char *tbs, size_t tbslen); +int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, + unsigned char *rout, size_t *routlen, + const unsigned char *sig, size_t siglen); +int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen); +int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen); + +int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); +int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); + +typedef int EVP_PKEY_gen_cb (EVP_PKEY_CTX *ctx); + +int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); +int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); + +void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); +EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); + +int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); + +void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, + int (*init) (EVP_PKEY_CTX *ctx)); + +void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, + int (*copy) (EVP_PKEY_CTX *dst, + EVP_PKEY_CTX *src)); + +void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, + void (*cleanup) (EVP_PKEY_CTX *ctx)); + +void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, + int (*paramgen_init) (EVP_PKEY_CTX *ctx), + int (*paramgen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, + int (*keygen_init) (EVP_PKEY_CTX *ctx), + int (*keygen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, + int (*sign_init) (EVP_PKEY_CTX *ctx), + int (*sign) (EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, + int (*verify_init) (EVP_PKEY_CTX *ctx), + int (*verify) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + size_t siglen, + const unsigned char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, + int (*verify_recover_init) (EVP_PKEY_CTX + *ctx), + int (*verify_recover) (EVP_PKEY_CTX + *ctx, + unsigned char + *sig, + size_t *siglen, + const unsigned + char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, + int (*signctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (*signctx) (EVP_PKEY_CTX *ctx, + unsigned char *sig, + size_t *siglen, + EVP_MD_CTX *mctx)); + +void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, + int (*verifyctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (*verifyctx) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + int siglen, + EVP_MD_CTX *mctx)); + +void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, + int (*encrypt_init) (EVP_PKEY_CTX *ctx), + int (*encryptfn) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); + +void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, + int (*decrypt_init) (EVP_PKEY_CTX *ctx), + int (*decrypt) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); + +void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, + int (*derive_init) (EVP_PKEY_CTX *ctx), + int (*derive) (EVP_PKEY_CTX *ctx, + unsigned char *key, + size_t *keylen)); + +void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, + int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, + void *p2), + int (*ctrl_str) (EVP_PKEY_CTX *ctx, + const char *type, + const char *value)); + +void EVP_add_alg_module(void); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_EVP_strings(void); + +/* Error codes for the EVP functions. */ + +/* Function codes. */ +# define EVP_F_AESNI_INIT_KEY 165 +# define EVP_F_AESNI_XTS_CIPHER 176 +# define EVP_F_AES_INIT_KEY 133 +# define EVP_F_AES_T4_INIT_KEY 178 +# define EVP_F_AES_XTS 172 +# define EVP_F_AES_XTS_CIPHER 175 +# define EVP_F_ALG_MODULE_INIT 177 +# define EVP_F_CAMELLIA_INIT_KEY 159 +# define EVP_F_CMAC_INIT 173 +# define EVP_F_CMLL_T4_INIT_KEY 179 +# define EVP_F_D2I_PKEY 100 +# define EVP_F_DO_SIGVER_INIT 161 +# define EVP_F_DSAPKEY2PKCS8 134 +# define EVP_F_DSA_PKEY2PKCS8 135 +# define EVP_F_ECDSA_PKEY2PKCS8 129 +# define EVP_F_ECKEY_PKEY2PKCS8 132 +# define EVP_F_EVP_CIPHERINIT_EX 123 +# define EVP_F_EVP_CIPHER_CTX_COPY 163 +# define EVP_F_EVP_CIPHER_CTX_CTRL 124 +# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 +# define EVP_F_EVP_DECRYPTFINAL_EX 101 +# define EVP_F_EVP_DIGESTINIT_EX 128 +# define EVP_F_EVP_ENCRYPTFINAL_EX 127 +# define EVP_F_EVP_MD_CTX_COPY_EX 110 +# define EVP_F_EVP_MD_SIZE 162 +# define EVP_F_EVP_OPENINIT 102 +# define EVP_F_EVP_PBE_ALG_ADD 115 +# define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 +# define EVP_F_EVP_PBE_CIPHERINIT 116 +# define EVP_F_EVP_PKCS82PKEY 111 +# define EVP_F_EVP_PKCS82PKEY_BROKEN 136 +# define EVP_F_EVP_PKEY2PKCS8_BROKEN 113 +# define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 +# define EVP_F_EVP_PKEY_CTX_CTRL 137 +# define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 +# define EVP_F_EVP_PKEY_CTX_DUP 156 +# define EVP_F_EVP_PKEY_DECRYPT 104 +# define EVP_F_EVP_PKEY_DECRYPT_INIT 138 +# define EVP_F_EVP_PKEY_DECRYPT_OLD 151 +# define EVP_F_EVP_PKEY_DERIVE 153 +# define EVP_F_EVP_PKEY_DERIVE_INIT 154 +# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 +# define EVP_F_EVP_PKEY_ENCRYPT 105 +# define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 +# define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 +# define EVP_F_EVP_PKEY_GET1_DH 119 +# define EVP_F_EVP_PKEY_GET1_DSA 120 +# define EVP_F_EVP_PKEY_GET1_ECDSA 130 +# define EVP_F_EVP_PKEY_GET1_EC_KEY 131 +# define EVP_F_EVP_PKEY_GET1_RSA 121 +# define EVP_F_EVP_PKEY_KEYGEN 146 +# define EVP_F_EVP_PKEY_KEYGEN_INIT 147 +# define EVP_F_EVP_PKEY_NEW 106 +# define EVP_F_EVP_PKEY_PARAMGEN 148 +# define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 +# define EVP_F_EVP_PKEY_SIGN 140 +# define EVP_F_EVP_PKEY_SIGN_INIT 141 +# define EVP_F_EVP_PKEY_VERIFY 142 +# define EVP_F_EVP_PKEY_VERIFY_INIT 143 +# define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 +# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 +# define EVP_F_EVP_RIJNDAEL 126 +# define EVP_F_EVP_SIGNFINAL 107 +# define EVP_F_EVP_VERIFYFINAL 108 +# define EVP_F_FIPS_CIPHERINIT 166 +# define EVP_F_FIPS_CIPHER_CTX_COPY 170 +# define EVP_F_FIPS_CIPHER_CTX_CTRL 167 +# define EVP_F_FIPS_CIPHER_CTX_SET_KEY_LENGTH 171 +# define EVP_F_FIPS_DIGESTINIT 168 +# define EVP_F_FIPS_MD_CTX_COPY 169 +# define EVP_F_HMAC_INIT_EX 174 +# define EVP_F_INT_CTX_NEW 157 +# define EVP_F_PKCS5_PBE_KEYIVGEN 117 +# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 +# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 +# define EVP_F_PKCS8_SET_BROKEN 112 +# define EVP_F_PKEY_SET_TYPE 158 +# define EVP_F_RC2_MAGIC_TO_METH 109 +# define EVP_F_RC5_CTRL 125 + +/* Reason codes. */ +# define EVP_R_AES_IV_SETUP_FAILED 162 +# define EVP_R_AES_KEY_SETUP_FAILED 143 +# define EVP_R_ASN1_LIB 140 +# define EVP_R_BAD_BLOCK_LENGTH 136 +# define EVP_R_BAD_DECRYPT 100 +# define EVP_R_BAD_KEY_LENGTH 137 +# define EVP_R_BN_DECODE_ERROR 112 +# define EVP_R_BN_PUBKEY_ERROR 113 +# define EVP_R_BUFFER_TOO_SMALL 155 +# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 +# define EVP_R_CIPHER_PARAMETER_ERROR 122 +# define EVP_R_COMMAND_NOT_SUPPORTED 147 +# define EVP_R_CTRL_NOT_IMPLEMENTED 132 +# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 +# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 +# define EVP_R_DECODE_ERROR 114 +# define EVP_R_DIFFERENT_KEY_TYPES 101 +# define EVP_R_DIFFERENT_PARAMETERS 153 +# define EVP_R_DISABLED_FOR_FIPS 163 +# define EVP_R_ENCODE_ERROR 115 +# define EVP_R_ERROR_LOADING_SECTION 165 +# define EVP_R_ERROR_SETTING_FIPS_MODE 166 +# define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119 +# define EVP_R_EXPECTING_AN_RSA_KEY 127 +# define EVP_R_EXPECTING_A_DH_KEY 128 +# define EVP_R_EXPECTING_A_DSA_KEY 129 +# define EVP_R_EXPECTING_A_ECDSA_KEY 141 +# define EVP_R_EXPECTING_A_EC_KEY 142 +# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 +# define EVP_R_INITIALIZATION_ERROR 134 +# define EVP_R_INPUT_NOT_INITIALIZED 111 +# define EVP_R_INVALID_DIGEST 152 +# define EVP_R_INVALID_FIPS_MODE 168 +# define EVP_R_INVALID_KEY_LENGTH 130 +# define EVP_R_INVALID_OPERATION 148 +# define EVP_R_IV_TOO_LARGE 102 +# define EVP_R_KEYGEN_FAILURE 120 +# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 +# define EVP_R_METHOD_NOT_SUPPORTED 144 +# define EVP_R_MISSING_PARAMETERS 103 +# define EVP_R_NO_CIPHER_SET 131 +# define EVP_R_NO_DEFAULT_DIGEST 158 +# define EVP_R_NO_DIGEST_SET 139 +# define EVP_R_NO_DSA_PARAMETERS 116 +# define EVP_R_NO_KEY_SET 154 +# define EVP_R_NO_OPERATION_SET 149 +# define EVP_R_NO_SIGN_FUNCTION_CONFIGURED 104 +# define EVP_R_NO_VERIFY_FUNCTION_CONFIGURED 105 +# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 +# define EVP_R_OPERATON_NOT_INITIALIZED 151 +# define EVP_R_PKCS8_UNKNOWN_BROKEN_TYPE 117 +# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 +# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 +# define EVP_R_PUBLIC_KEY_NOT_RSA 106 +# define EVP_R_TOO_LARGE 164 +# define EVP_R_UNKNOWN_CIPHER 160 +# define EVP_R_UNKNOWN_DIGEST 161 +# define EVP_R_UNKNOWN_OPTION 169 +# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 +# define EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS 135 +# define EVP_R_UNSUPPORTED_ALGORITHM 156 +# define EVP_R_UNSUPPORTED_CIPHER 107 +# define EVP_R_UNSUPPORTED_KEYLENGTH 123 +# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 +# define EVP_R_UNSUPPORTED_KEY_SIZE 108 +# define EVP_R_UNSUPPORTED_PRF 125 +# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 +# define EVP_R_UNSUPPORTED_SALT_TYPE 126 +# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 +# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 +# define EVP_R_WRONG_PUBLIC_KEY_TYPE 110 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/hmac.h b/External/include/openssl/hmac.h new file mode 100644 index 00000000..b8b55cda --- /dev/null +++ b/External/include/openssl/hmac.h @@ -0,0 +1,109 @@ +/* crypto/hmac/hmac.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +#ifndef HEADER_HMAC_H +# define HEADER_HMAC_H + +# include + +# ifdef OPENSSL_NO_HMAC +# error HMAC is disabled. +# endif + +# include + +# define HMAC_MAX_MD_CBLOCK 128/* largest known is SHA512 */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct hmac_ctx_st { + const EVP_MD *md; + EVP_MD_CTX md_ctx; + EVP_MD_CTX i_ctx; + EVP_MD_CTX o_ctx; + unsigned int key_length; + unsigned char key[HMAC_MAX_MD_CBLOCK]; +} HMAC_CTX; + +# define HMAC_size(e) (EVP_MD_size((e)->md)) + +void HMAC_CTX_init(HMAC_CTX *ctx); +void HMAC_CTX_cleanup(HMAC_CTX *ctx); + +/* deprecated */ +# define HMAC_cleanup(ctx) HMAC_CTX_cleanup(ctx) + +/* deprecated */ +int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md); +int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, + const EVP_MD *md, ENGINE *impl); +int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len); +int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len); +unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, + const unsigned char *d, size_t n, unsigned char *md, + unsigned int *md_len); +int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); + +void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/idea.h b/External/include/openssl/idea.h new file mode 100644 index 00000000..60759840 --- /dev/null +++ b/External/include/openssl/idea.h @@ -0,0 +1,105 @@ +/* crypto/idea/idea.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_IDEA_H +# define HEADER_IDEA_H + +# include /* IDEA_INT, OPENSSL_NO_IDEA */ + +# ifdef OPENSSL_NO_IDEA +# error IDEA is disabled. +# endif + +# define IDEA_ENCRYPT 1 +# define IDEA_DECRYPT 0 + +# define IDEA_BLOCK 8 +# define IDEA_KEY_LENGTH 16 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct idea_key_st { + IDEA_INT data[9][6]; +} IDEA_KEY_SCHEDULE; + +const char *idea_options(void); +void idea_ecb_encrypt(const unsigned char *in, unsigned char *out, + IDEA_KEY_SCHEDULE *ks); +# ifdef OPENSSL_FIPS +void private_idea_set_encrypt_key(const unsigned char *key, + IDEA_KEY_SCHEDULE *ks); +# endif +void idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks); +void idea_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk); +void idea_cbc_encrypt(const unsigned char *in, unsigned char *out, + long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, + int enc); +void idea_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, + int *num, int enc); +void idea_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, + int *num); +void idea_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/krb5_asn.h b/External/include/openssl/krb5_asn.h new file mode 100644 index 00000000..9cf5a26d --- /dev/null +++ b/External/include/openssl/krb5_asn.h @@ -0,0 +1,240 @@ +/* krb5_asn.h */ +/* + * Written by Vern Staats for the OpenSSL project, ** + * using ocsp/{*.h,*asn*.c} as a starting point + */ + +/* ==================================================================== + * Copyright (c) 1998-2000 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_KRB5_ASN_H +# define HEADER_KRB5_ASN_H + +/* + * #include + */ +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * ASN.1 from Kerberos RFC 1510 + */ + +/*- EncryptedData ::= SEQUENCE { + * etype[0] INTEGER, -- EncryptionType + * kvno[1] INTEGER OPTIONAL, + * cipher[2] OCTET STRING -- ciphertext + * } + */ +typedef struct krb5_encdata_st { + ASN1_INTEGER *etype; + ASN1_INTEGER *kvno; + ASN1_OCTET_STRING *cipher; +} KRB5_ENCDATA; + +DECLARE_STACK_OF(KRB5_ENCDATA) + +/*- PrincipalName ::= SEQUENCE { + * name-type[0] INTEGER, + * name-string[1] SEQUENCE OF GeneralString + * } + */ +typedef struct krb5_princname_st { + ASN1_INTEGER *nametype; + STACK_OF(ASN1_GENERALSTRING) *namestring; +} KRB5_PRINCNAME; + +DECLARE_STACK_OF(KRB5_PRINCNAME) + +/*- Ticket ::= [APPLICATION 1] SEQUENCE { + * tkt-vno[0] INTEGER, + * realm[1] Realm, + * sname[2] PrincipalName, + * enc-part[3] EncryptedData + * } + */ +typedef struct krb5_tktbody_st { + ASN1_INTEGER *tktvno; + ASN1_GENERALSTRING *realm; + KRB5_PRINCNAME *sname; + KRB5_ENCDATA *encdata; +} KRB5_TKTBODY; + +typedef STACK_OF(KRB5_TKTBODY) KRB5_TICKET; +DECLARE_STACK_OF(KRB5_TKTBODY) + +/*- AP-REQ ::= [APPLICATION 14] SEQUENCE { + * pvno[0] INTEGER, + * msg-type[1] INTEGER, + * ap-options[2] APOptions, + * ticket[3] Ticket, + * authenticator[4] EncryptedData + * } + * + * APOptions ::= BIT STRING { + * reserved(0), use-session-key(1), mutual-required(2) } + */ +typedef struct krb5_ap_req_st { + ASN1_INTEGER *pvno; + ASN1_INTEGER *msgtype; + ASN1_BIT_STRING *apoptions; + KRB5_TICKET *ticket; + KRB5_ENCDATA *authenticator; +} KRB5_APREQBODY; + +typedef STACK_OF(KRB5_APREQBODY) KRB5_APREQ; +DECLARE_STACK_OF(KRB5_APREQBODY) + +/* Authenticator Stuff */ + +/*- Checksum ::= SEQUENCE { + * cksumtype[0] INTEGER, + * checksum[1] OCTET STRING + * } + */ +typedef struct krb5_checksum_st { + ASN1_INTEGER *ctype; + ASN1_OCTET_STRING *checksum; +} KRB5_CHECKSUM; + +DECLARE_STACK_OF(KRB5_CHECKSUM) + +/*- EncryptionKey ::= SEQUENCE { + * keytype[0] INTEGER, + * keyvalue[1] OCTET STRING + * } + */ +typedef struct krb5_encryptionkey_st { + ASN1_INTEGER *ktype; + ASN1_OCTET_STRING *keyvalue; +} KRB5_ENCKEY; + +DECLARE_STACK_OF(KRB5_ENCKEY) + +/*- AuthorizationData ::= SEQUENCE OF SEQUENCE { + * ad-type[0] INTEGER, + * ad-data[1] OCTET STRING + * } + */ +typedef struct krb5_authorization_st { + ASN1_INTEGER *adtype; + ASN1_OCTET_STRING *addata; +} KRB5_AUTHDATA; + +DECLARE_STACK_OF(KRB5_AUTHDATA) + +/*- -- Unencrypted authenticator + * Authenticator ::= [APPLICATION 2] SEQUENCE { + * authenticator-vno[0] INTEGER, + * crealm[1] Realm, + * cname[2] PrincipalName, + * cksum[3] Checksum OPTIONAL, + * cusec[4] INTEGER, + * ctime[5] KerberosTime, + * subkey[6] EncryptionKey OPTIONAL, + * seq-number[7] INTEGER OPTIONAL, + * authorization-data[8] AuthorizationData OPTIONAL + * } + */ +typedef struct krb5_authenticator_st { + ASN1_INTEGER *avno; + ASN1_GENERALSTRING *crealm; + KRB5_PRINCNAME *cname; + KRB5_CHECKSUM *cksum; + ASN1_INTEGER *cusec; + ASN1_GENERALIZEDTIME *ctime; + KRB5_ENCKEY *subkey; + ASN1_INTEGER *seqnum; + KRB5_AUTHDATA *authorization; +} KRB5_AUTHENTBODY; + +typedef STACK_OF(KRB5_AUTHENTBODY) KRB5_AUTHENT; +DECLARE_STACK_OF(KRB5_AUTHENTBODY) + +/*- DECLARE_ASN1_FUNCTIONS(type) = DECLARE_ASN1_FUNCTIONS_name(type, type) = + * type *name##_new(void); + * void name##_free(type *a); + * DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) = + * DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) = + * type *d2i_##name(type **a, const unsigned char **in, long len); + * int i2d_##name(type *a, unsigned char **out); + * DECLARE_ASN1_ITEM(itname) = OPENSSL_EXTERN const ASN1_ITEM itname##_it + */ + +DECLARE_ASN1_FUNCTIONS(KRB5_ENCDATA) +DECLARE_ASN1_FUNCTIONS(KRB5_PRINCNAME) +DECLARE_ASN1_FUNCTIONS(KRB5_TKTBODY) +DECLARE_ASN1_FUNCTIONS(KRB5_APREQBODY) +DECLARE_ASN1_FUNCTIONS(KRB5_TICKET) +DECLARE_ASN1_FUNCTIONS(KRB5_APREQ) + +DECLARE_ASN1_FUNCTIONS(KRB5_CHECKSUM) +DECLARE_ASN1_FUNCTIONS(KRB5_ENCKEY) +DECLARE_ASN1_FUNCTIONS(KRB5_AUTHDATA) +DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENTBODY) +DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENT) + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/kssl.h b/External/include/openssl/kssl.h new file mode 100644 index 00000000..ae8a51f4 --- /dev/null +++ b/External/include/openssl/kssl.h @@ -0,0 +1,197 @@ +/* ssl/kssl.h */ +/* + * Written by Vern Staats for the OpenSSL project + * 2000. project 2000. + */ +/* ==================================================================== + * Copyright (c) 2000 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +/* + ** 19990701 VRS Started. + */ + +#ifndef KSSL_H +# define KSSL_H + +# include + +# ifndef OPENSSL_NO_KRB5 + +# include +# include +# include +# ifdef OPENSSL_SYS_WIN32 +/* + * These can sometimes get redefined indirectly by krb5 header files after + * they get undefed in ossl_typ.h + */ +# undef X509_NAME +# undef X509_EXTENSIONS +# undef OCSP_REQUEST +# undef OCSP_RESPONSE +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Depending on which KRB5 implementation used, some types from + * the other may be missing. Resolve that here and now + */ +# ifdef KRB5_HEIMDAL +typedef unsigned char krb5_octet; +# define FAR +# else + +# ifndef FAR +# define FAR +# endif + +# endif + +/*- + * Uncomment this to debug kssl problems or + * to trace usage of the Kerberos session key + * + * #define KSSL_DEBUG + */ + +# ifndef KRB5SVC +# define KRB5SVC "host" +# endif + +# ifndef KRB5KEYTAB +# define KRB5KEYTAB "/etc/krb5.keytab" +# endif + +# ifndef KRB5SENDAUTH +# define KRB5SENDAUTH 1 +# endif + +# ifndef KRB5CHECKAUTH +# define KRB5CHECKAUTH 1 +# endif + +# ifndef KSSL_CLOCKSKEW +# define KSSL_CLOCKSKEW 300; +# endif + +# define KSSL_ERR_MAX 255 +typedef struct kssl_err_st { + int reason; + char text[KSSL_ERR_MAX + 1]; +} KSSL_ERR; + +/*- Context for passing + * (1) Kerberos session key to SSL, and + * (2) Config data between application and SSL lib + */ +typedef struct kssl_ctx_st { + /* used by: disposition: */ + char *service_name; /* C,S default ok (kssl) */ + char *service_host; /* C input, REQUIRED */ + char *client_princ; /* S output from krb5 ticket */ + char *keytab_file; /* S NULL (/etc/krb5.keytab) */ + char *cred_cache; /* C NULL (default) */ + krb5_enctype enctype; + int length; + krb5_octet FAR *key; +} KSSL_CTX; + +# define KSSL_CLIENT 1 +# define KSSL_SERVER 2 +# define KSSL_SERVICE 3 +# define KSSL_KEYTAB 4 + +# define KSSL_CTX_OK 0 +# define KSSL_CTX_ERR 1 +# define KSSL_NOMEM 2 + +/* Public (for use by applications that use OpenSSL with Kerberos 5 support */ +krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which, char *text); +KSSL_CTX *kssl_ctx_new(void); +KSSL_CTX *kssl_ctx_free(KSSL_CTX *kssl_ctx); +void kssl_ctx_show(KSSL_CTX *kssl_ctx); +krb5_error_code kssl_ctx_setprinc(KSSL_CTX *kssl_ctx, int which, + krb5_data *realm, krb5_data *entity, + int nentities); +krb5_error_code kssl_cget_tkt(KSSL_CTX *kssl_ctx, krb5_data **enc_tktp, + krb5_data *authenp, KSSL_ERR *kssl_err); +krb5_error_code kssl_sget_tkt(KSSL_CTX *kssl_ctx, krb5_data *indata, + krb5_ticket_times *ttimes, KSSL_ERR *kssl_err); +krb5_error_code kssl_ctx_setkey(KSSL_CTX *kssl_ctx, krb5_keyblock *session); +void kssl_err_set(KSSL_ERR *kssl_err, int reason, char *text); +void kssl_krb5_free_data_contents(krb5_context context, krb5_data *data); +krb5_error_code kssl_build_principal_2(krb5_context context, + krb5_principal *princ, int rlen, + const char *realm, int slen, + const char *svc, int hlen, + const char *host); +krb5_error_code kssl_validate_times(krb5_timestamp atime, + krb5_ticket_times *ttimes); +krb5_error_code kssl_check_authent(KSSL_CTX *kssl_ctx, krb5_data *authentp, + krb5_timestamp *atimep, + KSSL_ERR *kssl_err); +unsigned char *kssl_skip_confound(krb5_enctype enctype, unsigned char *authn); + +void SSL_set0_kssl_ctx(SSL *s, KSSL_CTX *kctx); +KSSL_CTX *SSL_get0_kssl_ctx(SSL *s); +char *kssl_ctx_get0_client_princ(KSSL_CTX *kctx); + +#ifdef __cplusplus +} +#endif +# endif /* OPENSSL_NO_KRB5 */ +#endif /* KSSL_H */ diff --git a/External/include/openssl/lhash.h b/External/include/openssl/lhash.h new file mode 100644 index 00000000..b6c328bf --- /dev/null +++ b/External/include/openssl/lhash.h @@ -0,0 +1,240 @@ +/* crypto/lhash/lhash.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +/* + * Header for dynamic hash table routines Author - Eric Young + */ + +#ifndef HEADER_LHASH_H +# define HEADER_LHASH_H + +# include +# ifndef OPENSSL_NO_FP_API +# include +# endif + +# ifndef OPENSSL_NO_BIO +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct lhash_node_st { + void *data; + struct lhash_node_st *next; +# ifndef OPENSSL_NO_HASH_COMP + unsigned long hash; +# endif +} LHASH_NODE; + +typedef int (*LHASH_COMP_FN_TYPE) (const void *, const void *); +typedef unsigned long (*LHASH_HASH_FN_TYPE) (const void *); +typedef void (*LHASH_DOALL_FN_TYPE) (void *); +typedef void (*LHASH_DOALL_ARG_FN_TYPE) (void *, void *); + +/* + * Macros for declaring and implementing type-safe wrappers for LHASH + * callbacks. This way, callbacks can be provided to LHASH structures without + * function pointer casting and the macro-defined callbacks provide + * per-variable casting before deferring to the underlying type-specific + * callbacks. NB: It is possible to place a "static" in front of both the + * DECLARE and IMPLEMENT macros if the functions are strictly internal. + */ + +/* First: "hash" functions */ +# define DECLARE_LHASH_HASH_FN(name, o_type) \ + unsigned long name##_LHASH_HASH(const void *); +# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ + unsigned long name##_LHASH_HASH(const void *arg) { \ + const o_type *a = arg; \ + return name##_hash(a); } +# define LHASH_HASH_FN(name) name##_LHASH_HASH + +/* Second: "compare" functions */ +# define DECLARE_LHASH_COMP_FN(name, o_type) \ + int name##_LHASH_COMP(const void *, const void *); +# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ + int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ + const o_type *a = arg1; \ + const o_type *b = arg2; \ + return name##_cmp(a,b); } +# define LHASH_COMP_FN(name) name##_LHASH_COMP + +/* Third: "doall" functions */ +# define DECLARE_LHASH_DOALL_FN(name, o_type) \ + void name##_LHASH_DOALL(void *); +# define IMPLEMENT_LHASH_DOALL_FN(name, o_type) \ + void name##_LHASH_DOALL(void *arg) { \ + o_type *a = arg; \ + name##_doall(a); } +# define LHASH_DOALL_FN(name) name##_LHASH_DOALL + +/* Fourth: "doall_arg" functions */ +# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ + void name##_LHASH_DOALL_ARG(void *, void *); +# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ + void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ + o_type *a = arg1; \ + a_type *b = arg2; \ + name##_doall_arg(a, b); } +# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG + +typedef struct lhash_st { + LHASH_NODE **b; + LHASH_COMP_FN_TYPE comp; + LHASH_HASH_FN_TYPE hash; + unsigned int num_nodes; + unsigned int num_alloc_nodes; + unsigned int p; + unsigned int pmax; + unsigned long up_load; /* load times 256 */ + unsigned long down_load; /* load times 256 */ + unsigned long num_items; + unsigned long num_expands; + unsigned long num_expand_reallocs; + unsigned long num_contracts; + unsigned long num_contract_reallocs; + unsigned long num_hash_calls; + unsigned long num_comp_calls; + unsigned long num_insert; + unsigned long num_replace; + unsigned long num_delete; + unsigned long num_no_delete; + unsigned long num_retrieve; + unsigned long num_retrieve_miss; + unsigned long num_hash_comps; + int error; +} _LHASH; /* Do not use _LHASH directly, use LHASH_OF + * and friends */ + +# define LH_LOAD_MULT 256 + +/* + * Indicates a malloc() error in the last call, this is only bad in + * lh_insert(). + */ +# define lh_error(lh) ((lh)->error) + +_LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c); +void lh_free(_LHASH *lh); +void *lh_insert(_LHASH *lh, void *data); +void *lh_delete(_LHASH *lh, const void *data); +void *lh_retrieve(_LHASH *lh, const void *data); +void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func); +void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg); +unsigned long lh_strhash(const char *c); +unsigned long lh_num_items(const _LHASH *lh); + +# ifndef OPENSSL_NO_FP_API +void lh_stats(const _LHASH *lh, FILE *out); +void lh_node_stats(const _LHASH *lh, FILE *out); +void lh_node_usage_stats(const _LHASH *lh, FILE *out); +# endif + +# ifndef OPENSSL_NO_BIO +void lh_stats_bio(const _LHASH *lh, BIO *out); +void lh_node_stats_bio(const _LHASH *lh, BIO *out); +void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out); +# endif + +/* Type checking... */ + +# define LHASH_OF(type) struct lhash_st_##type + +# define DECLARE_LHASH_OF(type) LHASH_OF(type) { int dummy; } + +# define CHECKED_LHASH_OF(type,lh) \ + ((_LHASH *)CHECKED_PTR_OF(LHASH_OF(type),lh)) + +/* Define wrapper functions. */ +# define LHM_lh_new(type, name) \ + ((LHASH_OF(type) *)lh_new(LHASH_HASH_FN(name), LHASH_COMP_FN(name))) +# define LHM_lh_error(type, lh) \ + lh_error(CHECKED_LHASH_OF(type,lh)) +# define LHM_lh_insert(type, lh, inst) \ + ((type *)lh_insert(CHECKED_LHASH_OF(type, lh), \ + CHECKED_PTR_OF(type, inst))) +# define LHM_lh_retrieve(type, lh, inst) \ + ((type *)lh_retrieve(CHECKED_LHASH_OF(type, lh), \ + CHECKED_PTR_OF(type, inst))) +# define LHM_lh_delete(type, lh, inst) \ + ((type *)lh_delete(CHECKED_LHASH_OF(type, lh), \ + CHECKED_PTR_OF(type, inst))) +# define LHM_lh_doall(type, lh,fn) lh_doall(CHECKED_LHASH_OF(type, lh), fn) +# define LHM_lh_doall_arg(type, lh, fn, arg_type, arg) \ + lh_doall_arg(CHECKED_LHASH_OF(type, lh), fn, CHECKED_PTR_OF(arg_type, arg)) +# define LHM_lh_num_items(type, lh) lh_num_items(CHECKED_LHASH_OF(type, lh)) +# define LHM_lh_down_load(type, lh) (CHECKED_LHASH_OF(type, lh)->down_load) +# define LHM_lh_node_stats_bio(type, lh, out) \ + lh_node_stats_bio(CHECKED_LHASH_OF(type, lh), out) +# define LHM_lh_node_usage_stats_bio(type, lh, out) \ + lh_node_usage_stats_bio(CHECKED_LHASH_OF(type, lh), out) +# define LHM_lh_stats_bio(type, lh, out) \ + lh_stats_bio(CHECKED_LHASH_OF(type, lh), out) +# define LHM_lh_free(type, lh) lh_free(CHECKED_LHASH_OF(type, lh)) + +DECLARE_LHASH_OF(OPENSSL_STRING); +DECLARE_LHASH_OF(OPENSSL_CSTRING); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/md4.h b/External/include/openssl/md4.h new file mode 100644 index 00000000..11fd7129 --- /dev/null +++ b/External/include/openssl/md4.h @@ -0,0 +1,119 @@ +/* crypto/md4/md4.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_MD4_H +# define HEADER_MD4_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_NO_MD4 +# error MD4 is disabled. +# endif + +/*- + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! MD4_LONG has to be at least 32 bits wide. If it's wider, then ! + * ! MD4_LONG_LOG2 has to be defined along. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ + +# if defined(__LP32__) +# define MD4_LONG unsigned long +# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) +# define MD4_LONG unsigned long +# define MD4_LONG_LOG2 3 +/* + * _CRAY note. I could declare short, but I have no idea what impact + * does it have on performance on none-T3E machines. I could declare + * int, but at least on C90 sizeof(int) can be chosen at compile time. + * So I've chosen long... + * + */ +# else +# define MD4_LONG unsigned int +# endif + +# define MD4_CBLOCK 64 +# define MD4_LBLOCK (MD4_CBLOCK/4) +# define MD4_DIGEST_LENGTH 16 + +typedef struct MD4state_st { + MD4_LONG A, B, C, D; + MD4_LONG Nl, Nh; + MD4_LONG data[MD4_LBLOCK]; + unsigned int num; +} MD4_CTX; + +# ifdef OPENSSL_FIPS +int private_MD4_Init(MD4_CTX *c); +# endif +int MD4_Init(MD4_CTX *c); +int MD4_Update(MD4_CTX *c, const void *data, size_t len); +int MD4_Final(unsigned char *md, MD4_CTX *c); +unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md); +void MD4_Transform(MD4_CTX *c, const unsigned char *b); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/md5.h b/External/include/openssl/md5.h new file mode 100644 index 00000000..2659038a --- /dev/null +++ b/External/include/openssl/md5.h @@ -0,0 +1,119 @@ +/* crypto/md5/md5.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_MD5_H +# define HEADER_MD5_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_NO_MD5 +# error MD5 is disabled. +# endif + +/* + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! MD5_LONG has to be at least 32 bits wide. If it's wider, then ! + * ! MD5_LONG_LOG2 has to be defined along. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ + +# if defined(__LP32__) +# define MD5_LONG unsigned long +# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) +# define MD5_LONG unsigned long +# define MD5_LONG_LOG2 3 +/* + * _CRAY note. I could declare short, but I have no idea what impact + * does it have on performance on none-T3E machines. I could declare + * int, but at least on C90 sizeof(int) can be chosen at compile time. + * So I've chosen long... + * + */ +# else +# define MD5_LONG unsigned int +# endif + +# define MD5_CBLOCK 64 +# define MD5_LBLOCK (MD5_CBLOCK/4) +# define MD5_DIGEST_LENGTH 16 + +typedef struct MD5state_st { + MD5_LONG A, B, C, D; + MD5_LONG Nl, Nh; + MD5_LONG data[MD5_LBLOCK]; + unsigned int num; +} MD5_CTX; + +# ifdef OPENSSL_FIPS +int private_MD5_Init(MD5_CTX *c); +# endif +int MD5_Init(MD5_CTX *c); +int MD5_Update(MD5_CTX *c, const void *data, size_t len); +int MD5_Final(unsigned char *md, MD5_CTX *c); +unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md); +void MD5_Transform(MD5_CTX *c, const unsigned char *b); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/mdc2.h b/External/include/openssl/mdc2.h new file mode 100644 index 00000000..7efe53bc --- /dev/null +++ b/External/include/openssl/mdc2.h @@ -0,0 +1,94 @@ +/* crypto/mdc2/mdc2.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_MDC2_H +# define HEADER_MDC2_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_NO_MDC2 +# error MDC2 is disabled. +# endif + +# define MDC2_BLOCK 8 +# define MDC2_DIGEST_LENGTH 16 + +typedef struct mdc2_ctx_st { + unsigned int num; + unsigned char data[MDC2_BLOCK]; + DES_cblock h, hh; + int pad_type; /* either 1 or 2, default 1 */ +} MDC2_CTX; + +# ifdef OPENSSL_FIPS +int private_MDC2_Init(MDC2_CTX *c); +# endif +int MDC2_Init(MDC2_CTX *c); +int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len); +int MDC2_Final(unsigned char *md, MDC2_CTX *c); +unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/modes.h b/External/include/openssl/modes.h new file mode 100644 index 00000000..fd488499 --- /dev/null +++ b/External/include/openssl/modes.h @@ -0,0 +1,163 @@ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Rights for redistribution and usage in source and binary + * forms are granted according to the OpenSSL license. + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif +typedef void (*block128_f) (const unsigned char in[16], + unsigned char out[16], const void *key); + +typedef void (*cbc128_f) (const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], int enc); + +typedef void (*ctr128_f) (const unsigned char *in, unsigned char *out, + size_t blocks, const void *key, + const unsigned char ivec[16]); + +typedef void (*ccm128_f) (const unsigned char *in, unsigned char *out, + size_t blocks, const void *key, + const unsigned char ivec[16], + unsigned char cmac[16]); + +void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], block128_f block); +void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], block128_f block); + +void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], + unsigned char ecount_buf[16], unsigned int *num, + block128_f block); + +void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], + unsigned char ecount_buf[16], + unsigned int *num, ctr128_f ctr); + +void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], int *num, + block128_f block); + +void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], int *num, + int enc, block128_f block); +void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const void *key, + unsigned char ivec[16], int *num, + int enc, block128_f block); +void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, + size_t bits, const void *key, + unsigned char ivec[16], int *num, + int enc, block128_f block); + +size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, unsigned char ivec[16], + block128_f block); +size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); +size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, unsigned char ivec[16], + block128_f block); +size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); + +size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, + unsigned char ivec[16], + block128_f block); +size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); +size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, + unsigned char ivec[16], + block128_f block); +size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); + +typedef struct gcm128_context GCM128_CONTEXT; + +GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); +void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block); +void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, + size_t len); +int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, + size_t len); +int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len); +int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len); +int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len, ctr128_f stream); +int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len, ctr128_f stream); +int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag, + size_t len); +void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); +void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); + +typedef struct ccm128_context CCM128_CONTEXT; + +void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, + unsigned int M, unsigned int L, void *key, + block128_f block); +int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, const unsigned char *nonce, + size_t nlen, size_t mlen); +void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, const unsigned char *aad, + size_t alen); +int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len); +int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len); +int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len, + ccm128_f stream); +int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len, + ccm128_f stream); +size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); + +typedef struct xts128_context XTS128_CONTEXT; + +int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, + const unsigned char iv[16], + const unsigned char *inp, unsigned char *out, + size_t len, int enc); + +size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, size_t inlen, + block128_f block); + +size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, size_t inlen, + block128_f block); + +#ifdef __cplusplus +} +#endif diff --git a/External/include/openssl/obj_mac.h b/External/include/openssl/obj_mac.h new file mode 100644 index 00000000..779c309b --- /dev/null +++ b/External/include/openssl/obj_mac.h @@ -0,0 +1,4194 @@ +/* crypto/objects/obj_mac.h */ + +/* + * THIS FILE IS GENERATED FROM objects.txt by objects.pl via the following + * command: perl objects.pl objects.txt obj_mac.num obj_mac.h + */ + +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#define SN_undef "UNDEF" +#define LN_undef "undefined" +#define NID_undef 0 +#define OBJ_undef 0L + +#define SN_itu_t "ITU-T" +#define LN_itu_t "itu-t" +#define NID_itu_t 645 +#define OBJ_itu_t 0L + +#define NID_ccitt 404 +#define OBJ_ccitt OBJ_itu_t + +#define SN_iso "ISO" +#define LN_iso "iso" +#define NID_iso 181 +#define OBJ_iso 1L + +#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T" +#define LN_joint_iso_itu_t "joint-iso-itu-t" +#define NID_joint_iso_itu_t 646 +#define OBJ_joint_iso_itu_t 2L + +#define NID_joint_iso_ccitt 393 +#define OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t + +#define SN_member_body "member-body" +#define LN_member_body "ISO Member Body" +#define NID_member_body 182 +#define OBJ_member_body OBJ_iso,2L + +#define SN_identified_organization "identified-organization" +#define NID_identified_organization 676 +#define OBJ_identified_organization OBJ_iso,3L + +#define SN_hmac_md5 "HMAC-MD5" +#define LN_hmac_md5 "hmac-md5" +#define NID_hmac_md5 780 +#define OBJ_hmac_md5 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L + +#define SN_hmac_sha1 "HMAC-SHA1" +#define LN_hmac_sha1 "hmac-sha1" +#define NID_hmac_sha1 781 +#define OBJ_hmac_sha1 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,2L + +#define SN_certicom_arc "certicom-arc" +#define NID_certicom_arc 677 +#define OBJ_certicom_arc OBJ_identified_organization,132L + +#define SN_international_organizations "international-organizations" +#define LN_international_organizations "International Organizations" +#define NID_international_organizations 647 +#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L + +#define SN_wap "wap" +#define NID_wap 678 +#define OBJ_wap OBJ_international_organizations,43L + +#define SN_wap_wsg "wap-wsg" +#define NID_wap_wsg 679 +#define OBJ_wap_wsg OBJ_wap,1L + +#define SN_selected_attribute_types "selected-attribute-types" +#define LN_selected_attribute_types "Selected Attribute Types" +#define NID_selected_attribute_types 394 +#define OBJ_selected_attribute_types OBJ_joint_iso_itu_t,5L,1L,5L + +#define SN_clearance "clearance" +#define NID_clearance 395 +#define OBJ_clearance OBJ_selected_attribute_types,55L + +#define SN_ISO_US "ISO-US" +#define LN_ISO_US "ISO US Member Body" +#define NID_ISO_US 183 +#define OBJ_ISO_US OBJ_member_body,840L + +#define SN_X9_57 "X9-57" +#define LN_X9_57 "X9.57" +#define NID_X9_57 184 +#define OBJ_X9_57 OBJ_ISO_US,10040L + +#define SN_X9cm "X9cm" +#define LN_X9cm "X9.57 CM ?" +#define NID_X9cm 185 +#define OBJ_X9cm OBJ_X9_57,4L + +#define SN_dsa "DSA" +#define LN_dsa "dsaEncryption" +#define NID_dsa 116 +#define OBJ_dsa OBJ_X9cm,1L + +#define SN_dsaWithSHA1 "DSA-SHA1" +#define LN_dsaWithSHA1 "dsaWithSHA1" +#define NID_dsaWithSHA1 113 +#define OBJ_dsaWithSHA1 OBJ_X9cm,3L + +#define SN_ansi_X9_62 "ansi-X9-62" +#define LN_ansi_X9_62 "ANSI X9.62" +#define NID_ansi_X9_62 405 +#define OBJ_ansi_X9_62 OBJ_ISO_US,10045L + +#define OBJ_X9_62_id_fieldType OBJ_ansi_X9_62,1L + +#define SN_X9_62_prime_field "prime-field" +#define NID_X9_62_prime_field 406 +#define OBJ_X9_62_prime_field OBJ_X9_62_id_fieldType,1L + +#define SN_X9_62_characteristic_two_field "characteristic-two-field" +#define NID_X9_62_characteristic_two_field 407 +#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L + +#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis" +#define NID_X9_62_id_characteristic_two_basis 680 +#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L + +#define SN_X9_62_onBasis "onBasis" +#define NID_X9_62_onBasis 681 +#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L + +#define SN_X9_62_tpBasis "tpBasis" +#define NID_X9_62_tpBasis 682 +#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L + +#define SN_X9_62_ppBasis "ppBasis" +#define NID_X9_62_ppBasis 683 +#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L + +#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L + +#define SN_X9_62_id_ecPublicKey "id-ecPublicKey" +#define NID_X9_62_id_ecPublicKey 408 +#define OBJ_X9_62_id_ecPublicKey OBJ_X9_62_id_publicKeyType,1L + +#define OBJ_X9_62_ellipticCurve OBJ_ansi_X9_62,3L + +#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L + +#define SN_X9_62_c2pnb163v1 "c2pnb163v1" +#define NID_X9_62_c2pnb163v1 684 +#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L + +#define SN_X9_62_c2pnb163v2 "c2pnb163v2" +#define NID_X9_62_c2pnb163v2 685 +#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L + +#define SN_X9_62_c2pnb163v3 "c2pnb163v3" +#define NID_X9_62_c2pnb163v3 686 +#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L + +#define SN_X9_62_c2pnb176v1 "c2pnb176v1" +#define NID_X9_62_c2pnb176v1 687 +#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L + +#define SN_X9_62_c2tnb191v1 "c2tnb191v1" +#define NID_X9_62_c2tnb191v1 688 +#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L + +#define SN_X9_62_c2tnb191v2 "c2tnb191v2" +#define NID_X9_62_c2tnb191v2 689 +#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L + +#define SN_X9_62_c2tnb191v3 "c2tnb191v3" +#define NID_X9_62_c2tnb191v3 690 +#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L + +#define SN_X9_62_c2onb191v4 "c2onb191v4" +#define NID_X9_62_c2onb191v4 691 +#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L + +#define SN_X9_62_c2onb191v5 "c2onb191v5" +#define NID_X9_62_c2onb191v5 692 +#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L + +#define SN_X9_62_c2pnb208w1 "c2pnb208w1" +#define NID_X9_62_c2pnb208w1 693 +#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L + +#define SN_X9_62_c2tnb239v1 "c2tnb239v1" +#define NID_X9_62_c2tnb239v1 694 +#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L + +#define SN_X9_62_c2tnb239v2 "c2tnb239v2" +#define NID_X9_62_c2tnb239v2 695 +#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L + +#define SN_X9_62_c2tnb239v3 "c2tnb239v3" +#define NID_X9_62_c2tnb239v3 696 +#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L + +#define SN_X9_62_c2onb239v4 "c2onb239v4" +#define NID_X9_62_c2onb239v4 697 +#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L + +#define SN_X9_62_c2onb239v5 "c2onb239v5" +#define NID_X9_62_c2onb239v5 698 +#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L + +#define SN_X9_62_c2pnb272w1 "c2pnb272w1" +#define NID_X9_62_c2pnb272w1 699 +#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L + +#define SN_X9_62_c2pnb304w1 "c2pnb304w1" +#define NID_X9_62_c2pnb304w1 700 +#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L + +#define SN_X9_62_c2tnb359v1 "c2tnb359v1" +#define NID_X9_62_c2tnb359v1 701 +#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L + +#define SN_X9_62_c2pnb368w1 "c2pnb368w1" +#define NID_X9_62_c2pnb368w1 702 +#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L + +#define SN_X9_62_c2tnb431r1 "c2tnb431r1" +#define NID_X9_62_c2tnb431r1 703 +#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L + +#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L + +#define SN_X9_62_prime192v1 "prime192v1" +#define NID_X9_62_prime192v1 409 +#define OBJ_X9_62_prime192v1 OBJ_X9_62_primeCurve,1L + +#define SN_X9_62_prime192v2 "prime192v2" +#define NID_X9_62_prime192v2 410 +#define OBJ_X9_62_prime192v2 OBJ_X9_62_primeCurve,2L + +#define SN_X9_62_prime192v3 "prime192v3" +#define NID_X9_62_prime192v3 411 +#define OBJ_X9_62_prime192v3 OBJ_X9_62_primeCurve,3L + +#define SN_X9_62_prime239v1 "prime239v1" +#define NID_X9_62_prime239v1 412 +#define OBJ_X9_62_prime239v1 OBJ_X9_62_primeCurve,4L + +#define SN_X9_62_prime239v2 "prime239v2" +#define NID_X9_62_prime239v2 413 +#define OBJ_X9_62_prime239v2 OBJ_X9_62_primeCurve,5L + +#define SN_X9_62_prime239v3 "prime239v3" +#define NID_X9_62_prime239v3 414 +#define OBJ_X9_62_prime239v3 OBJ_X9_62_primeCurve,6L + +#define SN_X9_62_prime256v1 "prime256v1" +#define NID_X9_62_prime256v1 415 +#define OBJ_X9_62_prime256v1 OBJ_X9_62_primeCurve,7L + +#define OBJ_X9_62_id_ecSigType OBJ_ansi_X9_62,4L + +#define SN_ecdsa_with_SHA1 "ecdsa-with-SHA1" +#define NID_ecdsa_with_SHA1 416 +#define OBJ_ecdsa_with_SHA1 OBJ_X9_62_id_ecSigType,1L + +#define SN_ecdsa_with_Recommended "ecdsa-with-Recommended" +#define NID_ecdsa_with_Recommended 791 +#define OBJ_ecdsa_with_Recommended OBJ_X9_62_id_ecSigType,2L + +#define SN_ecdsa_with_Specified "ecdsa-with-Specified" +#define NID_ecdsa_with_Specified 792 +#define OBJ_ecdsa_with_Specified OBJ_X9_62_id_ecSigType,3L + +#define SN_ecdsa_with_SHA224 "ecdsa-with-SHA224" +#define NID_ecdsa_with_SHA224 793 +#define OBJ_ecdsa_with_SHA224 OBJ_ecdsa_with_Specified,1L + +#define SN_ecdsa_with_SHA256 "ecdsa-with-SHA256" +#define NID_ecdsa_with_SHA256 794 +#define OBJ_ecdsa_with_SHA256 OBJ_ecdsa_with_Specified,2L + +#define SN_ecdsa_with_SHA384 "ecdsa-with-SHA384" +#define NID_ecdsa_with_SHA384 795 +#define OBJ_ecdsa_with_SHA384 OBJ_ecdsa_with_Specified,3L + +#define SN_ecdsa_with_SHA512 "ecdsa-with-SHA512" +#define NID_ecdsa_with_SHA512 796 +#define OBJ_ecdsa_with_SHA512 OBJ_ecdsa_with_Specified,4L + +#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L + +#define SN_secp112r1 "secp112r1" +#define NID_secp112r1 704 +#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L + +#define SN_secp112r2 "secp112r2" +#define NID_secp112r2 705 +#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L + +#define SN_secp128r1 "secp128r1" +#define NID_secp128r1 706 +#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L + +#define SN_secp128r2 "secp128r2" +#define NID_secp128r2 707 +#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L + +#define SN_secp160k1 "secp160k1" +#define NID_secp160k1 708 +#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L + +#define SN_secp160r1 "secp160r1" +#define NID_secp160r1 709 +#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L + +#define SN_secp160r2 "secp160r2" +#define NID_secp160r2 710 +#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L + +#define SN_secp192k1 "secp192k1" +#define NID_secp192k1 711 +#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L + +#define SN_secp224k1 "secp224k1" +#define NID_secp224k1 712 +#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L + +#define SN_secp224r1 "secp224r1" +#define NID_secp224r1 713 +#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L + +#define SN_secp256k1 "secp256k1" +#define NID_secp256k1 714 +#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L + +#define SN_secp384r1 "secp384r1" +#define NID_secp384r1 715 +#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L + +#define SN_secp521r1 "secp521r1" +#define NID_secp521r1 716 +#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L + +#define SN_sect113r1 "sect113r1" +#define NID_sect113r1 717 +#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L + +#define SN_sect113r2 "sect113r2" +#define NID_sect113r2 718 +#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L + +#define SN_sect131r1 "sect131r1" +#define NID_sect131r1 719 +#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L + +#define SN_sect131r2 "sect131r2" +#define NID_sect131r2 720 +#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L + +#define SN_sect163k1 "sect163k1" +#define NID_sect163k1 721 +#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L + +#define SN_sect163r1 "sect163r1" +#define NID_sect163r1 722 +#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L + +#define SN_sect163r2 "sect163r2" +#define NID_sect163r2 723 +#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L + +#define SN_sect193r1 "sect193r1" +#define NID_sect193r1 724 +#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L + +#define SN_sect193r2 "sect193r2" +#define NID_sect193r2 725 +#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L + +#define SN_sect233k1 "sect233k1" +#define NID_sect233k1 726 +#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L + +#define SN_sect233r1 "sect233r1" +#define NID_sect233r1 727 +#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L + +#define SN_sect239k1 "sect239k1" +#define NID_sect239k1 728 +#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L + +#define SN_sect283k1 "sect283k1" +#define NID_sect283k1 729 +#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L + +#define SN_sect283r1 "sect283r1" +#define NID_sect283r1 730 +#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L + +#define SN_sect409k1 "sect409k1" +#define NID_sect409k1 731 +#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L + +#define SN_sect409r1 "sect409r1" +#define NID_sect409r1 732 +#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L + +#define SN_sect571k1 "sect571k1" +#define NID_sect571k1 733 +#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L + +#define SN_sect571r1 "sect571r1" +#define NID_sect571r1 734 +#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L + +#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L + +#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1" +#define NID_wap_wsg_idm_ecid_wtls1 735 +#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L + +#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3" +#define NID_wap_wsg_idm_ecid_wtls3 736 +#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L + +#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4" +#define NID_wap_wsg_idm_ecid_wtls4 737 +#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L + +#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5" +#define NID_wap_wsg_idm_ecid_wtls5 738 +#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L + +#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6" +#define NID_wap_wsg_idm_ecid_wtls6 739 +#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L + +#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7" +#define NID_wap_wsg_idm_ecid_wtls7 740 +#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L + +#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8" +#define NID_wap_wsg_idm_ecid_wtls8 741 +#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L + +#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9" +#define NID_wap_wsg_idm_ecid_wtls9 742 +#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L + +#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10" +#define NID_wap_wsg_idm_ecid_wtls10 743 +#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L + +#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11" +#define NID_wap_wsg_idm_ecid_wtls11 744 +#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L + +#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12" +#define NID_wap_wsg_idm_ecid_wtls12 745 +#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L + +#define SN_cast5_cbc "CAST5-CBC" +#define LN_cast5_cbc "cast5-cbc" +#define NID_cast5_cbc 108 +#define OBJ_cast5_cbc OBJ_ISO_US,113533L,7L,66L,10L + +#define SN_cast5_ecb "CAST5-ECB" +#define LN_cast5_ecb "cast5-ecb" +#define NID_cast5_ecb 109 + +#define SN_cast5_cfb64 "CAST5-CFB" +#define LN_cast5_cfb64 "cast5-cfb" +#define NID_cast5_cfb64 110 + +#define SN_cast5_ofb64 "CAST5-OFB" +#define LN_cast5_ofb64 "cast5-ofb" +#define NID_cast5_ofb64 111 + +#define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" +#define NID_pbeWithMD5AndCast5_CBC 112 +#define OBJ_pbeWithMD5AndCast5_CBC OBJ_ISO_US,113533L,7L,66L,12L + +#define SN_id_PasswordBasedMAC "id-PasswordBasedMAC" +#define LN_id_PasswordBasedMAC "password based MAC" +#define NID_id_PasswordBasedMAC 782 +#define OBJ_id_PasswordBasedMAC OBJ_ISO_US,113533L,7L,66L,13L + +#define SN_id_DHBasedMac "id-DHBasedMac" +#define LN_id_DHBasedMac "Diffie-Hellman based MAC" +#define NID_id_DHBasedMac 783 +#define OBJ_id_DHBasedMac OBJ_ISO_US,113533L,7L,66L,30L + +#define SN_rsadsi "rsadsi" +#define LN_rsadsi "RSA Data Security, Inc." +#define NID_rsadsi 1 +#define OBJ_rsadsi OBJ_ISO_US,113549L + +#define SN_pkcs "pkcs" +#define LN_pkcs "RSA Data Security, Inc. PKCS" +#define NID_pkcs 2 +#define OBJ_pkcs OBJ_rsadsi,1L + +#define SN_pkcs1 "pkcs1" +#define NID_pkcs1 186 +#define OBJ_pkcs1 OBJ_pkcs,1L + +#define LN_rsaEncryption "rsaEncryption" +#define NID_rsaEncryption 6 +#define OBJ_rsaEncryption OBJ_pkcs1,1L + +#define SN_md2WithRSAEncryption "RSA-MD2" +#define LN_md2WithRSAEncryption "md2WithRSAEncryption" +#define NID_md2WithRSAEncryption 7 +#define OBJ_md2WithRSAEncryption OBJ_pkcs1,2L + +#define SN_md4WithRSAEncryption "RSA-MD4" +#define LN_md4WithRSAEncryption "md4WithRSAEncryption" +#define NID_md4WithRSAEncryption 396 +#define OBJ_md4WithRSAEncryption OBJ_pkcs1,3L + +#define SN_md5WithRSAEncryption "RSA-MD5" +#define LN_md5WithRSAEncryption "md5WithRSAEncryption" +#define NID_md5WithRSAEncryption 8 +#define OBJ_md5WithRSAEncryption OBJ_pkcs1,4L + +#define SN_sha1WithRSAEncryption "RSA-SHA1" +#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" +#define NID_sha1WithRSAEncryption 65 +#define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L + +#define SN_rsaesOaep "RSAES-OAEP" +#define LN_rsaesOaep "rsaesOaep" +#define NID_rsaesOaep 919 +#define OBJ_rsaesOaep OBJ_pkcs1,7L + +#define SN_mgf1 "MGF1" +#define LN_mgf1 "mgf1" +#define NID_mgf1 911 +#define OBJ_mgf1 OBJ_pkcs1,8L + +#define SN_pSpecified "PSPECIFIED" +#define LN_pSpecified "pSpecified" +#define NID_pSpecified 935 +#define OBJ_pSpecified OBJ_pkcs1,9L + +#define SN_rsassaPss "RSASSA-PSS" +#define LN_rsassaPss "rsassaPss" +#define NID_rsassaPss 912 +#define OBJ_rsassaPss OBJ_pkcs1,10L + +#define SN_sha256WithRSAEncryption "RSA-SHA256" +#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" +#define NID_sha256WithRSAEncryption 668 +#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L + +#define SN_sha384WithRSAEncryption "RSA-SHA384" +#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" +#define NID_sha384WithRSAEncryption 669 +#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L + +#define SN_sha512WithRSAEncryption "RSA-SHA512" +#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" +#define NID_sha512WithRSAEncryption 670 +#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L + +#define SN_sha224WithRSAEncryption "RSA-SHA224" +#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" +#define NID_sha224WithRSAEncryption 671 +#define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L + +#define SN_pkcs3 "pkcs3" +#define NID_pkcs3 27 +#define OBJ_pkcs3 OBJ_pkcs,3L + +#define LN_dhKeyAgreement "dhKeyAgreement" +#define NID_dhKeyAgreement 28 +#define OBJ_dhKeyAgreement OBJ_pkcs3,1L + +#define SN_pkcs5 "pkcs5" +#define NID_pkcs5 187 +#define OBJ_pkcs5 OBJ_pkcs,5L + +#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" +#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" +#define NID_pbeWithMD2AndDES_CBC 9 +#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs5,1L + +#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" +#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" +#define NID_pbeWithMD5AndDES_CBC 10 +#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs5,3L + +#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" +#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" +#define NID_pbeWithMD2AndRC2_CBC 168 +#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs5,4L + +#define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" +#define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" +#define NID_pbeWithMD5AndRC2_CBC 169 +#define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs5,6L + +#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" +#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" +#define NID_pbeWithSHA1AndDES_CBC 170 +#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs5,10L + +#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" +#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" +#define NID_pbeWithSHA1AndRC2_CBC 68 +#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs5,11L + +#define LN_id_pbkdf2 "PBKDF2" +#define NID_id_pbkdf2 69 +#define OBJ_id_pbkdf2 OBJ_pkcs5,12L + +#define LN_pbes2 "PBES2" +#define NID_pbes2 161 +#define OBJ_pbes2 OBJ_pkcs5,13L + +#define LN_pbmac1 "PBMAC1" +#define NID_pbmac1 162 +#define OBJ_pbmac1 OBJ_pkcs5,14L + +#define SN_pkcs7 "pkcs7" +#define NID_pkcs7 20 +#define OBJ_pkcs7 OBJ_pkcs,7L + +#define LN_pkcs7_data "pkcs7-data" +#define NID_pkcs7_data 21 +#define OBJ_pkcs7_data OBJ_pkcs7,1L + +#define LN_pkcs7_signed "pkcs7-signedData" +#define NID_pkcs7_signed 22 +#define OBJ_pkcs7_signed OBJ_pkcs7,2L + +#define LN_pkcs7_enveloped "pkcs7-envelopedData" +#define NID_pkcs7_enveloped 23 +#define OBJ_pkcs7_enveloped OBJ_pkcs7,3L + +#define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" +#define NID_pkcs7_signedAndEnveloped 24 +#define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L + +#define LN_pkcs7_digest "pkcs7-digestData" +#define NID_pkcs7_digest 25 +#define OBJ_pkcs7_digest OBJ_pkcs7,5L + +#define LN_pkcs7_encrypted "pkcs7-encryptedData" +#define NID_pkcs7_encrypted 26 +#define OBJ_pkcs7_encrypted OBJ_pkcs7,6L + +#define SN_pkcs9 "pkcs9" +#define NID_pkcs9 47 +#define OBJ_pkcs9 OBJ_pkcs,9L + +#define LN_pkcs9_emailAddress "emailAddress" +#define NID_pkcs9_emailAddress 48 +#define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L + +#define LN_pkcs9_unstructuredName "unstructuredName" +#define NID_pkcs9_unstructuredName 49 +#define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L + +#define LN_pkcs9_contentType "contentType" +#define NID_pkcs9_contentType 50 +#define OBJ_pkcs9_contentType OBJ_pkcs9,3L + +#define LN_pkcs9_messageDigest "messageDigest" +#define NID_pkcs9_messageDigest 51 +#define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L + +#define LN_pkcs9_signingTime "signingTime" +#define NID_pkcs9_signingTime 52 +#define OBJ_pkcs9_signingTime OBJ_pkcs9,5L + +#define LN_pkcs9_countersignature "countersignature" +#define NID_pkcs9_countersignature 53 +#define OBJ_pkcs9_countersignature OBJ_pkcs9,6L + +#define LN_pkcs9_challengePassword "challengePassword" +#define NID_pkcs9_challengePassword 54 +#define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L + +#define LN_pkcs9_unstructuredAddress "unstructuredAddress" +#define NID_pkcs9_unstructuredAddress 55 +#define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L + +#define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" +#define NID_pkcs9_extCertAttributes 56 +#define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L + +#define SN_ext_req "extReq" +#define LN_ext_req "Extension Request" +#define NID_ext_req 172 +#define OBJ_ext_req OBJ_pkcs9,14L + +#define SN_SMIMECapabilities "SMIME-CAPS" +#define LN_SMIMECapabilities "S/MIME Capabilities" +#define NID_SMIMECapabilities 167 +#define OBJ_SMIMECapabilities OBJ_pkcs9,15L + +#define SN_SMIME "SMIME" +#define LN_SMIME "S/MIME" +#define NID_SMIME 188 +#define OBJ_SMIME OBJ_pkcs9,16L + +#define SN_id_smime_mod "id-smime-mod" +#define NID_id_smime_mod 189 +#define OBJ_id_smime_mod OBJ_SMIME,0L + +#define SN_id_smime_ct "id-smime-ct" +#define NID_id_smime_ct 190 +#define OBJ_id_smime_ct OBJ_SMIME,1L + +#define SN_id_smime_aa "id-smime-aa" +#define NID_id_smime_aa 191 +#define OBJ_id_smime_aa OBJ_SMIME,2L + +#define SN_id_smime_alg "id-smime-alg" +#define NID_id_smime_alg 192 +#define OBJ_id_smime_alg OBJ_SMIME,3L + +#define SN_id_smime_cd "id-smime-cd" +#define NID_id_smime_cd 193 +#define OBJ_id_smime_cd OBJ_SMIME,4L + +#define SN_id_smime_spq "id-smime-spq" +#define NID_id_smime_spq 194 +#define OBJ_id_smime_spq OBJ_SMIME,5L + +#define SN_id_smime_cti "id-smime-cti" +#define NID_id_smime_cti 195 +#define OBJ_id_smime_cti OBJ_SMIME,6L + +#define SN_id_smime_mod_cms "id-smime-mod-cms" +#define NID_id_smime_mod_cms 196 +#define OBJ_id_smime_mod_cms OBJ_id_smime_mod,1L + +#define SN_id_smime_mod_ess "id-smime-mod-ess" +#define NID_id_smime_mod_ess 197 +#define OBJ_id_smime_mod_ess OBJ_id_smime_mod,2L + +#define SN_id_smime_mod_oid "id-smime-mod-oid" +#define NID_id_smime_mod_oid 198 +#define OBJ_id_smime_mod_oid OBJ_id_smime_mod,3L + +#define SN_id_smime_mod_msg_v3 "id-smime-mod-msg-v3" +#define NID_id_smime_mod_msg_v3 199 +#define OBJ_id_smime_mod_msg_v3 OBJ_id_smime_mod,4L + +#define SN_id_smime_mod_ets_eSignature_88 "id-smime-mod-ets-eSignature-88" +#define NID_id_smime_mod_ets_eSignature_88 200 +#define OBJ_id_smime_mod_ets_eSignature_88 OBJ_id_smime_mod,5L + +#define SN_id_smime_mod_ets_eSignature_97 "id-smime-mod-ets-eSignature-97" +#define NID_id_smime_mod_ets_eSignature_97 201 +#define OBJ_id_smime_mod_ets_eSignature_97 OBJ_id_smime_mod,6L + +#define SN_id_smime_mod_ets_eSigPolicy_88 "id-smime-mod-ets-eSigPolicy-88" +#define NID_id_smime_mod_ets_eSigPolicy_88 202 +#define OBJ_id_smime_mod_ets_eSigPolicy_88 OBJ_id_smime_mod,7L + +#define SN_id_smime_mod_ets_eSigPolicy_97 "id-smime-mod-ets-eSigPolicy-97" +#define NID_id_smime_mod_ets_eSigPolicy_97 203 +#define OBJ_id_smime_mod_ets_eSigPolicy_97 OBJ_id_smime_mod,8L + +#define SN_id_smime_ct_receipt "id-smime-ct-receipt" +#define NID_id_smime_ct_receipt 204 +#define OBJ_id_smime_ct_receipt OBJ_id_smime_ct,1L + +#define SN_id_smime_ct_authData "id-smime-ct-authData" +#define NID_id_smime_ct_authData 205 +#define OBJ_id_smime_ct_authData OBJ_id_smime_ct,2L + +#define SN_id_smime_ct_publishCert "id-smime-ct-publishCert" +#define NID_id_smime_ct_publishCert 206 +#define OBJ_id_smime_ct_publishCert OBJ_id_smime_ct,3L + +#define SN_id_smime_ct_TSTInfo "id-smime-ct-TSTInfo" +#define NID_id_smime_ct_TSTInfo 207 +#define OBJ_id_smime_ct_TSTInfo OBJ_id_smime_ct,4L + +#define SN_id_smime_ct_TDTInfo "id-smime-ct-TDTInfo" +#define NID_id_smime_ct_TDTInfo 208 +#define OBJ_id_smime_ct_TDTInfo OBJ_id_smime_ct,5L + +#define SN_id_smime_ct_contentInfo "id-smime-ct-contentInfo" +#define NID_id_smime_ct_contentInfo 209 +#define OBJ_id_smime_ct_contentInfo OBJ_id_smime_ct,6L + +#define SN_id_smime_ct_DVCSRequestData "id-smime-ct-DVCSRequestData" +#define NID_id_smime_ct_DVCSRequestData 210 +#define OBJ_id_smime_ct_DVCSRequestData OBJ_id_smime_ct,7L + +#define SN_id_smime_ct_DVCSResponseData "id-smime-ct-DVCSResponseData" +#define NID_id_smime_ct_DVCSResponseData 211 +#define OBJ_id_smime_ct_DVCSResponseData OBJ_id_smime_ct,8L + +#define SN_id_smime_ct_compressedData "id-smime-ct-compressedData" +#define NID_id_smime_ct_compressedData 786 +#define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L + +#define SN_id_ct_asciiTextWithCRLF "id-ct-asciiTextWithCRLF" +#define NID_id_ct_asciiTextWithCRLF 787 +#define OBJ_id_ct_asciiTextWithCRLF OBJ_id_smime_ct,27L + +#define SN_id_smime_aa_receiptRequest "id-smime-aa-receiptRequest" +#define NID_id_smime_aa_receiptRequest 212 +#define OBJ_id_smime_aa_receiptRequest OBJ_id_smime_aa,1L + +#define SN_id_smime_aa_securityLabel "id-smime-aa-securityLabel" +#define NID_id_smime_aa_securityLabel 213 +#define OBJ_id_smime_aa_securityLabel OBJ_id_smime_aa,2L + +#define SN_id_smime_aa_mlExpandHistory "id-smime-aa-mlExpandHistory" +#define NID_id_smime_aa_mlExpandHistory 214 +#define OBJ_id_smime_aa_mlExpandHistory OBJ_id_smime_aa,3L + +#define SN_id_smime_aa_contentHint "id-smime-aa-contentHint" +#define NID_id_smime_aa_contentHint 215 +#define OBJ_id_smime_aa_contentHint OBJ_id_smime_aa,4L + +#define SN_id_smime_aa_msgSigDigest "id-smime-aa-msgSigDigest" +#define NID_id_smime_aa_msgSigDigest 216 +#define OBJ_id_smime_aa_msgSigDigest OBJ_id_smime_aa,5L + +#define SN_id_smime_aa_encapContentType "id-smime-aa-encapContentType" +#define NID_id_smime_aa_encapContentType 217 +#define OBJ_id_smime_aa_encapContentType OBJ_id_smime_aa,6L + +#define SN_id_smime_aa_contentIdentifier "id-smime-aa-contentIdentifier" +#define NID_id_smime_aa_contentIdentifier 218 +#define OBJ_id_smime_aa_contentIdentifier OBJ_id_smime_aa,7L + +#define SN_id_smime_aa_macValue "id-smime-aa-macValue" +#define NID_id_smime_aa_macValue 219 +#define OBJ_id_smime_aa_macValue OBJ_id_smime_aa,8L + +#define SN_id_smime_aa_equivalentLabels "id-smime-aa-equivalentLabels" +#define NID_id_smime_aa_equivalentLabels 220 +#define OBJ_id_smime_aa_equivalentLabels OBJ_id_smime_aa,9L + +#define SN_id_smime_aa_contentReference "id-smime-aa-contentReference" +#define NID_id_smime_aa_contentReference 221 +#define OBJ_id_smime_aa_contentReference OBJ_id_smime_aa,10L + +#define SN_id_smime_aa_encrypKeyPref "id-smime-aa-encrypKeyPref" +#define NID_id_smime_aa_encrypKeyPref 222 +#define OBJ_id_smime_aa_encrypKeyPref OBJ_id_smime_aa,11L + +#define SN_id_smime_aa_signingCertificate "id-smime-aa-signingCertificate" +#define NID_id_smime_aa_signingCertificate 223 +#define OBJ_id_smime_aa_signingCertificate OBJ_id_smime_aa,12L + +#define SN_id_smime_aa_smimeEncryptCerts "id-smime-aa-smimeEncryptCerts" +#define NID_id_smime_aa_smimeEncryptCerts 224 +#define OBJ_id_smime_aa_smimeEncryptCerts OBJ_id_smime_aa,13L + +#define SN_id_smime_aa_timeStampToken "id-smime-aa-timeStampToken" +#define NID_id_smime_aa_timeStampToken 225 +#define OBJ_id_smime_aa_timeStampToken OBJ_id_smime_aa,14L + +#define SN_id_smime_aa_ets_sigPolicyId "id-smime-aa-ets-sigPolicyId" +#define NID_id_smime_aa_ets_sigPolicyId 226 +#define OBJ_id_smime_aa_ets_sigPolicyId OBJ_id_smime_aa,15L + +#define SN_id_smime_aa_ets_commitmentType "id-smime-aa-ets-commitmentType" +#define NID_id_smime_aa_ets_commitmentType 227 +#define OBJ_id_smime_aa_ets_commitmentType OBJ_id_smime_aa,16L + +#define SN_id_smime_aa_ets_signerLocation "id-smime-aa-ets-signerLocation" +#define NID_id_smime_aa_ets_signerLocation 228 +#define OBJ_id_smime_aa_ets_signerLocation OBJ_id_smime_aa,17L + +#define SN_id_smime_aa_ets_signerAttr "id-smime-aa-ets-signerAttr" +#define NID_id_smime_aa_ets_signerAttr 229 +#define OBJ_id_smime_aa_ets_signerAttr OBJ_id_smime_aa,18L + +#define SN_id_smime_aa_ets_otherSigCert "id-smime-aa-ets-otherSigCert" +#define NID_id_smime_aa_ets_otherSigCert 230 +#define OBJ_id_smime_aa_ets_otherSigCert OBJ_id_smime_aa,19L + +#define SN_id_smime_aa_ets_contentTimestamp "id-smime-aa-ets-contentTimestamp" +#define NID_id_smime_aa_ets_contentTimestamp 231 +#define OBJ_id_smime_aa_ets_contentTimestamp OBJ_id_smime_aa,20L + +#define SN_id_smime_aa_ets_CertificateRefs "id-smime-aa-ets-CertificateRefs" +#define NID_id_smime_aa_ets_CertificateRefs 232 +#define OBJ_id_smime_aa_ets_CertificateRefs OBJ_id_smime_aa,21L + +#define SN_id_smime_aa_ets_RevocationRefs "id-smime-aa-ets-RevocationRefs" +#define NID_id_smime_aa_ets_RevocationRefs 233 +#define OBJ_id_smime_aa_ets_RevocationRefs OBJ_id_smime_aa,22L + +#define SN_id_smime_aa_ets_certValues "id-smime-aa-ets-certValues" +#define NID_id_smime_aa_ets_certValues 234 +#define OBJ_id_smime_aa_ets_certValues OBJ_id_smime_aa,23L + +#define SN_id_smime_aa_ets_revocationValues "id-smime-aa-ets-revocationValues" +#define NID_id_smime_aa_ets_revocationValues 235 +#define OBJ_id_smime_aa_ets_revocationValues OBJ_id_smime_aa,24L + +#define SN_id_smime_aa_ets_escTimeStamp "id-smime-aa-ets-escTimeStamp" +#define NID_id_smime_aa_ets_escTimeStamp 236 +#define OBJ_id_smime_aa_ets_escTimeStamp OBJ_id_smime_aa,25L + +#define SN_id_smime_aa_ets_certCRLTimestamp "id-smime-aa-ets-certCRLTimestamp" +#define NID_id_smime_aa_ets_certCRLTimestamp 237 +#define OBJ_id_smime_aa_ets_certCRLTimestamp OBJ_id_smime_aa,26L + +#define SN_id_smime_aa_ets_archiveTimeStamp "id-smime-aa-ets-archiveTimeStamp" +#define NID_id_smime_aa_ets_archiveTimeStamp 238 +#define OBJ_id_smime_aa_ets_archiveTimeStamp OBJ_id_smime_aa,27L + +#define SN_id_smime_aa_signatureType "id-smime-aa-signatureType" +#define NID_id_smime_aa_signatureType 239 +#define OBJ_id_smime_aa_signatureType OBJ_id_smime_aa,28L + +#define SN_id_smime_aa_dvcs_dvc "id-smime-aa-dvcs-dvc" +#define NID_id_smime_aa_dvcs_dvc 240 +#define OBJ_id_smime_aa_dvcs_dvc OBJ_id_smime_aa,29L + +#define SN_id_smime_alg_ESDHwith3DES "id-smime-alg-ESDHwith3DES" +#define NID_id_smime_alg_ESDHwith3DES 241 +#define OBJ_id_smime_alg_ESDHwith3DES OBJ_id_smime_alg,1L + +#define SN_id_smime_alg_ESDHwithRC2 "id-smime-alg-ESDHwithRC2" +#define NID_id_smime_alg_ESDHwithRC2 242 +#define OBJ_id_smime_alg_ESDHwithRC2 OBJ_id_smime_alg,2L + +#define SN_id_smime_alg_3DESwrap "id-smime-alg-3DESwrap" +#define NID_id_smime_alg_3DESwrap 243 +#define OBJ_id_smime_alg_3DESwrap OBJ_id_smime_alg,3L + +#define SN_id_smime_alg_RC2wrap "id-smime-alg-RC2wrap" +#define NID_id_smime_alg_RC2wrap 244 +#define OBJ_id_smime_alg_RC2wrap OBJ_id_smime_alg,4L + +#define SN_id_smime_alg_ESDH "id-smime-alg-ESDH" +#define NID_id_smime_alg_ESDH 245 +#define OBJ_id_smime_alg_ESDH OBJ_id_smime_alg,5L + +#define SN_id_smime_alg_CMS3DESwrap "id-smime-alg-CMS3DESwrap" +#define NID_id_smime_alg_CMS3DESwrap 246 +#define OBJ_id_smime_alg_CMS3DESwrap OBJ_id_smime_alg,6L + +#define SN_id_smime_alg_CMSRC2wrap "id-smime-alg-CMSRC2wrap" +#define NID_id_smime_alg_CMSRC2wrap 247 +#define OBJ_id_smime_alg_CMSRC2wrap OBJ_id_smime_alg,7L + +#define SN_id_alg_PWRI_KEK "id-alg-PWRI-KEK" +#define NID_id_alg_PWRI_KEK 893 +#define OBJ_id_alg_PWRI_KEK OBJ_id_smime_alg,9L + +#define SN_id_smime_cd_ldap "id-smime-cd-ldap" +#define NID_id_smime_cd_ldap 248 +#define OBJ_id_smime_cd_ldap OBJ_id_smime_cd,1L + +#define SN_id_smime_spq_ets_sqt_uri "id-smime-spq-ets-sqt-uri" +#define NID_id_smime_spq_ets_sqt_uri 249 +#define OBJ_id_smime_spq_ets_sqt_uri OBJ_id_smime_spq,1L + +#define SN_id_smime_spq_ets_sqt_unotice "id-smime-spq-ets-sqt-unotice" +#define NID_id_smime_spq_ets_sqt_unotice 250 +#define OBJ_id_smime_spq_ets_sqt_unotice OBJ_id_smime_spq,2L + +#define SN_id_smime_cti_ets_proofOfOrigin "id-smime-cti-ets-proofOfOrigin" +#define NID_id_smime_cti_ets_proofOfOrigin 251 +#define OBJ_id_smime_cti_ets_proofOfOrigin OBJ_id_smime_cti,1L + +#define SN_id_smime_cti_ets_proofOfReceipt "id-smime-cti-ets-proofOfReceipt" +#define NID_id_smime_cti_ets_proofOfReceipt 252 +#define OBJ_id_smime_cti_ets_proofOfReceipt OBJ_id_smime_cti,2L + +#define SN_id_smime_cti_ets_proofOfDelivery "id-smime-cti-ets-proofOfDelivery" +#define NID_id_smime_cti_ets_proofOfDelivery 253 +#define OBJ_id_smime_cti_ets_proofOfDelivery OBJ_id_smime_cti,3L + +#define SN_id_smime_cti_ets_proofOfSender "id-smime-cti-ets-proofOfSender" +#define NID_id_smime_cti_ets_proofOfSender 254 +#define OBJ_id_smime_cti_ets_proofOfSender OBJ_id_smime_cti,4L + +#define SN_id_smime_cti_ets_proofOfApproval "id-smime-cti-ets-proofOfApproval" +#define NID_id_smime_cti_ets_proofOfApproval 255 +#define OBJ_id_smime_cti_ets_proofOfApproval OBJ_id_smime_cti,5L + +#define SN_id_smime_cti_ets_proofOfCreation "id-smime-cti-ets-proofOfCreation" +#define NID_id_smime_cti_ets_proofOfCreation 256 +#define OBJ_id_smime_cti_ets_proofOfCreation OBJ_id_smime_cti,6L + +#define LN_friendlyName "friendlyName" +#define NID_friendlyName 156 +#define OBJ_friendlyName OBJ_pkcs9,20L + +#define LN_localKeyID "localKeyID" +#define NID_localKeyID 157 +#define OBJ_localKeyID OBJ_pkcs9,21L + +#define SN_ms_csp_name "CSPName" +#define LN_ms_csp_name "Microsoft CSP Name" +#define NID_ms_csp_name 417 +#define OBJ_ms_csp_name 1L,3L,6L,1L,4L,1L,311L,17L,1L + +#define SN_LocalKeySet "LocalKeySet" +#define LN_LocalKeySet "Microsoft Local Key set" +#define NID_LocalKeySet 856 +#define OBJ_LocalKeySet 1L,3L,6L,1L,4L,1L,311L,17L,2L + +#define OBJ_certTypes OBJ_pkcs9,22L + +#define LN_x509Certificate "x509Certificate" +#define NID_x509Certificate 158 +#define OBJ_x509Certificate OBJ_certTypes,1L + +#define LN_sdsiCertificate "sdsiCertificate" +#define NID_sdsiCertificate 159 +#define OBJ_sdsiCertificate OBJ_certTypes,2L + +#define OBJ_crlTypes OBJ_pkcs9,23L + +#define LN_x509Crl "x509Crl" +#define NID_x509Crl 160 +#define OBJ_x509Crl OBJ_crlTypes,1L + +#define OBJ_pkcs12 OBJ_pkcs,12L + +#define OBJ_pkcs12_pbeids OBJ_pkcs12,1L + +#define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" +#define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" +#define NID_pbe_WithSHA1And128BitRC4 144 +#define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids,1L + +#define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" +#define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" +#define NID_pbe_WithSHA1And40BitRC4 145 +#define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids,2L + +#define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" +#define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" +#define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 +#define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids,3L + +#define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" +#define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" +#define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 +#define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids,4L + +#define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" +#define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" +#define NID_pbe_WithSHA1And128BitRC2_CBC 148 +#define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids,5L + +#define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" +#define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" +#define NID_pbe_WithSHA1And40BitRC2_CBC 149 +#define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids,6L + +#define OBJ_pkcs12_Version1 OBJ_pkcs12,10L + +#define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1,1L + +#define LN_keyBag "keyBag" +#define NID_keyBag 150 +#define OBJ_keyBag OBJ_pkcs12_BagIds,1L + +#define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" +#define NID_pkcs8ShroudedKeyBag 151 +#define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds,2L + +#define LN_certBag "certBag" +#define NID_certBag 152 +#define OBJ_certBag OBJ_pkcs12_BagIds,3L + +#define LN_crlBag "crlBag" +#define NID_crlBag 153 +#define OBJ_crlBag OBJ_pkcs12_BagIds,4L + +#define LN_secretBag "secretBag" +#define NID_secretBag 154 +#define OBJ_secretBag OBJ_pkcs12_BagIds,5L + +#define LN_safeContentsBag "safeContentsBag" +#define NID_safeContentsBag 155 +#define OBJ_safeContentsBag OBJ_pkcs12_BagIds,6L + +#define SN_md2 "MD2" +#define LN_md2 "md2" +#define NID_md2 3 +#define OBJ_md2 OBJ_rsadsi,2L,2L + +#define SN_md4 "MD4" +#define LN_md4 "md4" +#define NID_md4 257 +#define OBJ_md4 OBJ_rsadsi,2L,4L + +#define SN_md5 "MD5" +#define LN_md5 "md5" +#define NID_md5 4 +#define OBJ_md5 OBJ_rsadsi,2L,5L + +#define SN_md5_sha1 "MD5-SHA1" +#define LN_md5_sha1 "md5-sha1" +#define NID_md5_sha1 114 + +#define LN_hmacWithMD5 "hmacWithMD5" +#define NID_hmacWithMD5 797 +#define OBJ_hmacWithMD5 OBJ_rsadsi,2L,6L + +#define LN_hmacWithSHA1 "hmacWithSHA1" +#define NID_hmacWithSHA1 163 +#define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L + +#define LN_hmacWithSHA224 "hmacWithSHA224" +#define NID_hmacWithSHA224 798 +#define OBJ_hmacWithSHA224 OBJ_rsadsi,2L,8L + +#define LN_hmacWithSHA256 "hmacWithSHA256" +#define NID_hmacWithSHA256 799 +#define OBJ_hmacWithSHA256 OBJ_rsadsi,2L,9L + +#define LN_hmacWithSHA384 "hmacWithSHA384" +#define NID_hmacWithSHA384 800 +#define OBJ_hmacWithSHA384 OBJ_rsadsi,2L,10L + +#define LN_hmacWithSHA512 "hmacWithSHA512" +#define NID_hmacWithSHA512 801 +#define OBJ_hmacWithSHA512 OBJ_rsadsi,2L,11L + +#define SN_rc2_cbc "RC2-CBC" +#define LN_rc2_cbc "rc2-cbc" +#define NID_rc2_cbc 37 +#define OBJ_rc2_cbc OBJ_rsadsi,3L,2L + +#define SN_rc2_ecb "RC2-ECB" +#define LN_rc2_ecb "rc2-ecb" +#define NID_rc2_ecb 38 + +#define SN_rc2_cfb64 "RC2-CFB" +#define LN_rc2_cfb64 "rc2-cfb" +#define NID_rc2_cfb64 39 + +#define SN_rc2_ofb64 "RC2-OFB" +#define LN_rc2_ofb64 "rc2-ofb" +#define NID_rc2_ofb64 40 + +#define SN_rc2_40_cbc "RC2-40-CBC" +#define LN_rc2_40_cbc "rc2-40-cbc" +#define NID_rc2_40_cbc 98 + +#define SN_rc2_64_cbc "RC2-64-CBC" +#define LN_rc2_64_cbc "rc2-64-cbc" +#define NID_rc2_64_cbc 166 + +#define SN_rc4 "RC4" +#define LN_rc4 "rc4" +#define NID_rc4 5 +#define OBJ_rc4 OBJ_rsadsi,3L,4L + +#define SN_rc4_40 "RC4-40" +#define LN_rc4_40 "rc4-40" +#define NID_rc4_40 97 + +#define SN_des_ede3_cbc "DES-EDE3-CBC" +#define LN_des_ede3_cbc "des-ede3-cbc" +#define NID_des_ede3_cbc 44 +#define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L + +#define SN_rc5_cbc "RC5-CBC" +#define LN_rc5_cbc "rc5-cbc" +#define NID_rc5_cbc 120 +#define OBJ_rc5_cbc OBJ_rsadsi,3L,8L + +#define SN_rc5_ecb "RC5-ECB" +#define LN_rc5_ecb "rc5-ecb" +#define NID_rc5_ecb 121 + +#define SN_rc5_cfb64 "RC5-CFB" +#define LN_rc5_cfb64 "rc5-cfb" +#define NID_rc5_cfb64 122 + +#define SN_rc5_ofb64 "RC5-OFB" +#define LN_rc5_ofb64 "rc5-ofb" +#define NID_rc5_ofb64 123 + +#define SN_ms_ext_req "msExtReq" +#define LN_ms_ext_req "Microsoft Extension Request" +#define NID_ms_ext_req 171 +#define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L + +#define SN_ms_code_ind "msCodeInd" +#define LN_ms_code_ind "Microsoft Individual Code Signing" +#define NID_ms_code_ind 134 +#define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L + +#define SN_ms_code_com "msCodeCom" +#define LN_ms_code_com "Microsoft Commercial Code Signing" +#define NID_ms_code_com 135 +#define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L + +#define SN_ms_ctl_sign "msCTLSign" +#define LN_ms_ctl_sign "Microsoft Trust List Signing" +#define NID_ms_ctl_sign 136 +#define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L + +#define SN_ms_sgc "msSGC" +#define LN_ms_sgc "Microsoft Server Gated Crypto" +#define NID_ms_sgc 137 +#define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L + +#define SN_ms_efs "msEFS" +#define LN_ms_efs "Microsoft Encrypted File System" +#define NID_ms_efs 138 +#define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L + +#define SN_ms_smartcard_login "msSmartcardLogin" +#define LN_ms_smartcard_login "Microsoft Smartcardlogin" +#define NID_ms_smartcard_login 648 +#define OBJ_ms_smartcard_login 1L,3L,6L,1L,4L,1L,311L,20L,2L,2L + +#define SN_ms_upn "msUPN" +#define LN_ms_upn "Microsoft Universal Principal Name" +#define NID_ms_upn 649 +#define OBJ_ms_upn 1L,3L,6L,1L,4L,1L,311L,20L,2L,3L + +#define SN_idea_cbc "IDEA-CBC" +#define LN_idea_cbc "idea-cbc" +#define NID_idea_cbc 34 +#define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L + +#define SN_idea_ecb "IDEA-ECB" +#define LN_idea_ecb "idea-ecb" +#define NID_idea_ecb 36 + +#define SN_idea_cfb64 "IDEA-CFB" +#define LN_idea_cfb64 "idea-cfb" +#define NID_idea_cfb64 35 + +#define SN_idea_ofb64 "IDEA-OFB" +#define LN_idea_ofb64 "idea-ofb" +#define NID_idea_ofb64 46 + +#define SN_bf_cbc "BF-CBC" +#define LN_bf_cbc "bf-cbc" +#define NID_bf_cbc 91 +#define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L + +#define SN_bf_ecb "BF-ECB" +#define LN_bf_ecb "bf-ecb" +#define NID_bf_ecb 92 + +#define SN_bf_cfb64 "BF-CFB" +#define LN_bf_cfb64 "bf-cfb" +#define NID_bf_cfb64 93 + +#define SN_bf_ofb64 "BF-OFB" +#define LN_bf_ofb64 "bf-ofb" +#define NID_bf_ofb64 94 + +#define SN_id_pkix "PKIX" +#define NID_id_pkix 127 +#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L + +#define SN_id_pkix_mod "id-pkix-mod" +#define NID_id_pkix_mod 258 +#define OBJ_id_pkix_mod OBJ_id_pkix,0L + +#define SN_id_pe "id-pe" +#define NID_id_pe 175 +#define OBJ_id_pe OBJ_id_pkix,1L + +#define SN_id_qt "id-qt" +#define NID_id_qt 259 +#define OBJ_id_qt OBJ_id_pkix,2L + +#define SN_id_kp "id-kp" +#define NID_id_kp 128 +#define OBJ_id_kp OBJ_id_pkix,3L + +#define SN_id_it "id-it" +#define NID_id_it 260 +#define OBJ_id_it OBJ_id_pkix,4L + +#define SN_id_pkip "id-pkip" +#define NID_id_pkip 261 +#define OBJ_id_pkip OBJ_id_pkix,5L + +#define SN_id_alg "id-alg" +#define NID_id_alg 262 +#define OBJ_id_alg OBJ_id_pkix,6L + +#define SN_id_cmc "id-cmc" +#define NID_id_cmc 263 +#define OBJ_id_cmc OBJ_id_pkix,7L + +#define SN_id_on "id-on" +#define NID_id_on 264 +#define OBJ_id_on OBJ_id_pkix,8L + +#define SN_id_pda "id-pda" +#define NID_id_pda 265 +#define OBJ_id_pda OBJ_id_pkix,9L + +#define SN_id_aca "id-aca" +#define NID_id_aca 266 +#define OBJ_id_aca OBJ_id_pkix,10L + +#define SN_id_qcs "id-qcs" +#define NID_id_qcs 267 +#define OBJ_id_qcs OBJ_id_pkix,11L + +#define SN_id_cct "id-cct" +#define NID_id_cct 268 +#define OBJ_id_cct OBJ_id_pkix,12L + +#define SN_id_ppl "id-ppl" +#define NID_id_ppl 662 +#define OBJ_id_ppl OBJ_id_pkix,21L + +#define SN_id_ad "id-ad" +#define NID_id_ad 176 +#define OBJ_id_ad OBJ_id_pkix,48L + +#define SN_id_pkix1_explicit_88 "id-pkix1-explicit-88" +#define NID_id_pkix1_explicit_88 269 +#define OBJ_id_pkix1_explicit_88 OBJ_id_pkix_mod,1L + +#define SN_id_pkix1_implicit_88 "id-pkix1-implicit-88" +#define NID_id_pkix1_implicit_88 270 +#define OBJ_id_pkix1_implicit_88 OBJ_id_pkix_mod,2L + +#define SN_id_pkix1_explicit_93 "id-pkix1-explicit-93" +#define NID_id_pkix1_explicit_93 271 +#define OBJ_id_pkix1_explicit_93 OBJ_id_pkix_mod,3L + +#define SN_id_pkix1_implicit_93 "id-pkix1-implicit-93" +#define NID_id_pkix1_implicit_93 272 +#define OBJ_id_pkix1_implicit_93 OBJ_id_pkix_mod,4L + +#define SN_id_mod_crmf "id-mod-crmf" +#define NID_id_mod_crmf 273 +#define OBJ_id_mod_crmf OBJ_id_pkix_mod,5L + +#define SN_id_mod_cmc "id-mod-cmc" +#define NID_id_mod_cmc 274 +#define OBJ_id_mod_cmc OBJ_id_pkix_mod,6L + +#define SN_id_mod_kea_profile_88 "id-mod-kea-profile-88" +#define NID_id_mod_kea_profile_88 275 +#define OBJ_id_mod_kea_profile_88 OBJ_id_pkix_mod,7L + +#define SN_id_mod_kea_profile_93 "id-mod-kea-profile-93" +#define NID_id_mod_kea_profile_93 276 +#define OBJ_id_mod_kea_profile_93 OBJ_id_pkix_mod,8L + +#define SN_id_mod_cmp "id-mod-cmp" +#define NID_id_mod_cmp 277 +#define OBJ_id_mod_cmp OBJ_id_pkix_mod,9L + +#define SN_id_mod_qualified_cert_88 "id-mod-qualified-cert-88" +#define NID_id_mod_qualified_cert_88 278 +#define OBJ_id_mod_qualified_cert_88 OBJ_id_pkix_mod,10L + +#define SN_id_mod_qualified_cert_93 "id-mod-qualified-cert-93" +#define NID_id_mod_qualified_cert_93 279 +#define OBJ_id_mod_qualified_cert_93 OBJ_id_pkix_mod,11L + +#define SN_id_mod_attribute_cert "id-mod-attribute-cert" +#define NID_id_mod_attribute_cert 280 +#define OBJ_id_mod_attribute_cert OBJ_id_pkix_mod,12L + +#define SN_id_mod_timestamp_protocol "id-mod-timestamp-protocol" +#define NID_id_mod_timestamp_protocol 281 +#define OBJ_id_mod_timestamp_protocol OBJ_id_pkix_mod,13L + +#define SN_id_mod_ocsp "id-mod-ocsp" +#define NID_id_mod_ocsp 282 +#define OBJ_id_mod_ocsp OBJ_id_pkix_mod,14L + +#define SN_id_mod_dvcs "id-mod-dvcs" +#define NID_id_mod_dvcs 283 +#define OBJ_id_mod_dvcs OBJ_id_pkix_mod,15L + +#define SN_id_mod_cmp2000 "id-mod-cmp2000" +#define NID_id_mod_cmp2000 284 +#define OBJ_id_mod_cmp2000 OBJ_id_pkix_mod,16L + +#define SN_info_access "authorityInfoAccess" +#define LN_info_access "Authority Information Access" +#define NID_info_access 177 +#define OBJ_info_access OBJ_id_pe,1L + +#define SN_biometricInfo "biometricInfo" +#define LN_biometricInfo "Biometric Info" +#define NID_biometricInfo 285 +#define OBJ_biometricInfo OBJ_id_pe,2L + +#define SN_qcStatements "qcStatements" +#define NID_qcStatements 286 +#define OBJ_qcStatements OBJ_id_pe,3L + +#define SN_ac_auditEntity "ac-auditEntity" +#define NID_ac_auditEntity 287 +#define OBJ_ac_auditEntity OBJ_id_pe,4L + +#define SN_ac_targeting "ac-targeting" +#define NID_ac_targeting 288 +#define OBJ_ac_targeting OBJ_id_pe,5L + +#define SN_aaControls "aaControls" +#define NID_aaControls 289 +#define OBJ_aaControls OBJ_id_pe,6L + +#define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" +#define NID_sbgp_ipAddrBlock 290 +#define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L + +#define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" +#define NID_sbgp_autonomousSysNum 291 +#define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L + +#define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" +#define NID_sbgp_routerIdentifier 292 +#define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L + +#define SN_ac_proxying "ac-proxying" +#define NID_ac_proxying 397 +#define OBJ_ac_proxying OBJ_id_pe,10L + +#define SN_sinfo_access "subjectInfoAccess" +#define LN_sinfo_access "Subject Information Access" +#define NID_sinfo_access 398 +#define OBJ_sinfo_access OBJ_id_pe,11L + +#define SN_proxyCertInfo "proxyCertInfo" +#define LN_proxyCertInfo "Proxy Certificate Information" +#define NID_proxyCertInfo 663 +#define OBJ_proxyCertInfo OBJ_id_pe,14L + +#define SN_id_qt_cps "id-qt-cps" +#define LN_id_qt_cps "Policy Qualifier CPS" +#define NID_id_qt_cps 164 +#define OBJ_id_qt_cps OBJ_id_qt,1L + +#define SN_id_qt_unotice "id-qt-unotice" +#define LN_id_qt_unotice "Policy Qualifier User Notice" +#define NID_id_qt_unotice 165 +#define OBJ_id_qt_unotice OBJ_id_qt,2L + +#define SN_textNotice "textNotice" +#define NID_textNotice 293 +#define OBJ_textNotice OBJ_id_qt,3L + +#define SN_server_auth "serverAuth" +#define LN_server_auth "TLS Web Server Authentication" +#define NID_server_auth 129 +#define OBJ_server_auth OBJ_id_kp,1L + +#define SN_client_auth "clientAuth" +#define LN_client_auth "TLS Web Client Authentication" +#define NID_client_auth 130 +#define OBJ_client_auth OBJ_id_kp,2L + +#define SN_code_sign "codeSigning" +#define LN_code_sign "Code Signing" +#define NID_code_sign 131 +#define OBJ_code_sign OBJ_id_kp,3L + +#define SN_email_protect "emailProtection" +#define LN_email_protect "E-mail Protection" +#define NID_email_protect 132 +#define OBJ_email_protect OBJ_id_kp,4L + +#define SN_ipsecEndSystem "ipsecEndSystem" +#define LN_ipsecEndSystem "IPSec End System" +#define NID_ipsecEndSystem 294 +#define OBJ_ipsecEndSystem OBJ_id_kp,5L + +#define SN_ipsecTunnel "ipsecTunnel" +#define LN_ipsecTunnel "IPSec Tunnel" +#define NID_ipsecTunnel 295 +#define OBJ_ipsecTunnel OBJ_id_kp,6L + +#define SN_ipsecUser "ipsecUser" +#define LN_ipsecUser "IPSec User" +#define NID_ipsecUser 296 +#define OBJ_ipsecUser OBJ_id_kp,7L + +#define SN_time_stamp "timeStamping" +#define LN_time_stamp "Time Stamping" +#define NID_time_stamp 133 +#define OBJ_time_stamp OBJ_id_kp,8L + +#define SN_OCSP_sign "OCSPSigning" +#define LN_OCSP_sign "OCSP Signing" +#define NID_OCSP_sign 180 +#define OBJ_OCSP_sign OBJ_id_kp,9L + +#define SN_dvcs "DVCS" +#define LN_dvcs "dvcs" +#define NID_dvcs 297 +#define OBJ_dvcs OBJ_id_kp,10L + +#define SN_id_it_caProtEncCert "id-it-caProtEncCert" +#define NID_id_it_caProtEncCert 298 +#define OBJ_id_it_caProtEncCert OBJ_id_it,1L + +#define SN_id_it_signKeyPairTypes "id-it-signKeyPairTypes" +#define NID_id_it_signKeyPairTypes 299 +#define OBJ_id_it_signKeyPairTypes OBJ_id_it,2L + +#define SN_id_it_encKeyPairTypes "id-it-encKeyPairTypes" +#define NID_id_it_encKeyPairTypes 300 +#define OBJ_id_it_encKeyPairTypes OBJ_id_it,3L + +#define SN_id_it_preferredSymmAlg "id-it-preferredSymmAlg" +#define NID_id_it_preferredSymmAlg 301 +#define OBJ_id_it_preferredSymmAlg OBJ_id_it,4L + +#define SN_id_it_caKeyUpdateInfo "id-it-caKeyUpdateInfo" +#define NID_id_it_caKeyUpdateInfo 302 +#define OBJ_id_it_caKeyUpdateInfo OBJ_id_it,5L + +#define SN_id_it_currentCRL "id-it-currentCRL" +#define NID_id_it_currentCRL 303 +#define OBJ_id_it_currentCRL OBJ_id_it,6L + +#define SN_id_it_unsupportedOIDs "id-it-unsupportedOIDs" +#define NID_id_it_unsupportedOIDs 304 +#define OBJ_id_it_unsupportedOIDs OBJ_id_it,7L + +#define SN_id_it_subscriptionRequest "id-it-subscriptionRequest" +#define NID_id_it_subscriptionRequest 305 +#define OBJ_id_it_subscriptionRequest OBJ_id_it,8L + +#define SN_id_it_subscriptionResponse "id-it-subscriptionResponse" +#define NID_id_it_subscriptionResponse 306 +#define OBJ_id_it_subscriptionResponse OBJ_id_it,9L + +#define SN_id_it_keyPairParamReq "id-it-keyPairParamReq" +#define NID_id_it_keyPairParamReq 307 +#define OBJ_id_it_keyPairParamReq OBJ_id_it,10L + +#define SN_id_it_keyPairParamRep "id-it-keyPairParamRep" +#define NID_id_it_keyPairParamRep 308 +#define OBJ_id_it_keyPairParamRep OBJ_id_it,11L + +#define SN_id_it_revPassphrase "id-it-revPassphrase" +#define NID_id_it_revPassphrase 309 +#define OBJ_id_it_revPassphrase OBJ_id_it,12L + +#define SN_id_it_implicitConfirm "id-it-implicitConfirm" +#define NID_id_it_implicitConfirm 310 +#define OBJ_id_it_implicitConfirm OBJ_id_it,13L + +#define SN_id_it_confirmWaitTime "id-it-confirmWaitTime" +#define NID_id_it_confirmWaitTime 311 +#define OBJ_id_it_confirmWaitTime OBJ_id_it,14L + +#define SN_id_it_origPKIMessage "id-it-origPKIMessage" +#define NID_id_it_origPKIMessage 312 +#define OBJ_id_it_origPKIMessage OBJ_id_it,15L + +#define SN_id_it_suppLangTags "id-it-suppLangTags" +#define NID_id_it_suppLangTags 784 +#define OBJ_id_it_suppLangTags OBJ_id_it,16L + +#define SN_id_regCtrl "id-regCtrl" +#define NID_id_regCtrl 313 +#define OBJ_id_regCtrl OBJ_id_pkip,1L + +#define SN_id_regInfo "id-regInfo" +#define NID_id_regInfo 314 +#define OBJ_id_regInfo OBJ_id_pkip,2L + +#define SN_id_regCtrl_regToken "id-regCtrl-regToken" +#define NID_id_regCtrl_regToken 315 +#define OBJ_id_regCtrl_regToken OBJ_id_regCtrl,1L + +#define SN_id_regCtrl_authenticator "id-regCtrl-authenticator" +#define NID_id_regCtrl_authenticator 316 +#define OBJ_id_regCtrl_authenticator OBJ_id_regCtrl,2L + +#define SN_id_regCtrl_pkiPublicationInfo "id-regCtrl-pkiPublicationInfo" +#define NID_id_regCtrl_pkiPublicationInfo 317 +#define OBJ_id_regCtrl_pkiPublicationInfo OBJ_id_regCtrl,3L + +#define SN_id_regCtrl_pkiArchiveOptions "id-regCtrl-pkiArchiveOptions" +#define NID_id_regCtrl_pkiArchiveOptions 318 +#define OBJ_id_regCtrl_pkiArchiveOptions OBJ_id_regCtrl,4L + +#define SN_id_regCtrl_oldCertID "id-regCtrl-oldCertID" +#define NID_id_regCtrl_oldCertID 319 +#define OBJ_id_regCtrl_oldCertID OBJ_id_regCtrl,5L + +#define SN_id_regCtrl_protocolEncrKey "id-regCtrl-protocolEncrKey" +#define NID_id_regCtrl_protocolEncrKey 320 +#define OBJ_id_regCtrl_protocolEncrKey OBJ_id_regCtrl,6L + +#define SN_id_regInfo_utf8Pairs "id-regInfo-utf8Pairs" +#define NID_id_regInfo_utf8Pairs 321 +#define OBJ_id_regInfo_utf8Pairs OBJ_id_regInfo,1L + +#define SN_id_regInfo_certReq "id-regInfo-certReq" +#define NID_id_regInfo_certReq 322 +#define OBJ_id_regInfo_certReq OBJ_id_regInfo,2L + +#define SN_id_alg_des40 "id-alg-des40" +#define NID_id_alg_des40 323 +#define OBJ_id_alg_des40 OBJ_id_alg,1L + +#define SN_id_alg_noSignature "id-alg-noSignature" +#define NID_id_alg_noSignature 324 +#define OBJ_id_alg_noSignature OBJ_id_alg,2L + +#define SN_id_alg_dh_sig_hmac_sha1 "id-alg-dh-sig-hmac-sha1" +#define NID_id_alg_dh_sig_hmac_sha1 325 +#define OBJ_id_alg_dh_sig_hmac_sha1 OBJ_id_alg,3L + +#define SN_id_alg_dh_pop "id-alg-dh-pop" +#define NID_id_alg_dh_pop 326 +#define OBJ_id_alg_dh_pop OBJ_id_alg,4L + +#define SN_id_cmc_statusInfo "id-cmc-statusInfo" +#define NID_id_cmc_statusInfo 327 +#define OBJ_id_cmc_statusInfo OBJ_id_cmc,1L + +#define SN_id_cmc_identification "id-cmc-identification" +#define NID_id_cmc_identification 328 +#define OBJ_id_cmc_identification OBJ_id_cmc,2L + +#define SN_id_cmc_identityProof "id-cmc-identityProof" +#define NID_id_cmc_identityProof 329 +#define OBJ_id_cmc_identityProof OBJ_id_cmc,3L + +#define SN_id_cmc_dataReturn "id-cmc-dataReturn" +#define NID_id_cmc_dataReturn 330 +#define OBJ_id_cmc_dataReturn OBJ_id_cmc,4L + +#define SN_id_cmc_transactionId "id-cmc-transactionId" +#define NID_id_cmc_transactionId 331 +#define OBJ_id_cmc_transactionId OBJ_id_cmc,5L + +#define SN_id_cmc_senderNonce "id-cmc-senderNonce" +#define NID_id_cmc_senderNonce 332 +#define OBJ_id_cmc_senderNonce OBJ_id_cmc,6L + +#define SN_id_cmc_recipientNonce "id-cmc-recipientNonce" +#define NID_id_cmc_recipientNonce 333 +#define OBJ_id_cmc_recipientNonce OBJ_id_cmc,7L + +#define SN_id_cmc_addExtensions "id-cmc-addExtensions" +#define NID_id_cmc_addExtensions 334 +#define OBJ_id_cmc_addExtensions OBJ_id_cmc,8L + +#define SN_id_cmc_encryptedPOP "id-cmc-encryptedPOP" +#define NID_id_cmc_encryptedPOP 335 +#define OBJ_id_cmc_encryptedPOP OBJ_id_cmc,9L + +#define SN_id_cmc_decryptedPOP "id-cmc-decryptedPOP" +#define NID_id_cmc_decryptedPOP 336 +#define OBJ_id_cmc_decryptedPOP OBJ_id_cmc,10L + +#define SN_id_cmc_lraPOPWitness "id-cmc-lraPOPWitness" +#define NID_id_cmc_lraPOPWitness 337 +#define OBJ_id_cmc_lraPOPWitness OBJ_id_cmc,11L + +#define SN_id_cmc_getCert "id-cmc-getCert" +#define NID_id_cmc_getCert 338 +#define OBJ_id_cmc_getCert OBJ_id_cmc,15L + +#define SN_id_cmc_getCRL "id-cmc-getCRL" +#define NID_id_cmc_getCRL 339 +#define OBJ_id_cmc_getCRL OBJ_id_cmc,16L + +#define SN_id_cmc_revokeRequest "id-cmc-revokeRequest" +#define NID_id_cmc_revokeRequest 340 +#define OBJ_id_cmc_revokeRequest OBJ_id_cmc,17L + +#define SN_id_cmc_regInfo "id-cmc-regInfo" +#define NID_id_cmc_regInfo 341 +#define OBJ_id_cmc_regInfo OBJ_id_cmc,18L + +#define SN_id_cmc_responseInfo "id-cmc-responseInfo" +#define NID_id_cmc_responseInfo 342 +#define OBJ_id_cmc_responseInfo OBJ_id_cmc,19L + +#define SN_id_cmc_queryPending "id-cmc-queryPending" +#define NID_id_cmc_queryPending 343 +#define OBJ_id_cmc_queryPending OBJ_id_cmc,21L + +#define SN_id_cmc_popLinkRandom "id-cmc-popLinkRandom" +#define NID_id_cmc_popLinkRandom 344 +#define OBJ_id_cmc_popLinkRandom OBJ_id_cmc,22L + +#define SN_id_cmc_popLinkWitness "id-cmc-popLinkWitness" +#define NID_id_cmc_popLinkWitness 345 +#define OBJ_id_cmc_popLinkWitness OBJ_id_cmc,23L + +#define SN_id_cmc_confirmCertAcceptance "id-cmc-confirmCertAcceptance" +#define NID_id_cmc_confirmCertAcceptance 346 +#define OBJ_id_cmc_confirmCertAcceptance OBJ_id_cmc,24L + +#define SN_id_on_personalData "id-on-personalData" +#define NID_id_on_personalData 347 +#define OBJ_id_on_personalData OBJ_id_on,1L + +#define SN_id_on_permanentIdentifier "id-on-permanentIdentifier" +#define LN_id_on_permanentIdentifier "Permanent Identifier" +#define NID_id_on_permanentIdentifier 858 +#define OBJ_id_on_permanentIdentifier OBJ_id_on,3L + +#define SN_id_pda_dateOfBirth "id-pda-dateOfBirth" +#define NID_id_pda_dateOfBirth 348 +#define OBJ_id_pda_dateOfBirth OBJ_id_pda,1L + +#define SN_id_pda_placeOfBirth "id-pda-placeOfBirth" +#define NID_id_pda_placeOfBirth 349 +#define OBJ_id_pda_placeOfBirth OBJ_id_pda,2L + +#define SN_id_pda_gender "id-pda-gender" +#define NID_id_pda_gender 351 +#define OBJ_id_pda_gender OBJ_id_pda,3L + +#define SN_id_pda_countryOfCitizenship "id-pda-countryOfCitizenship" +#define NID_id_pda_countryOfCitizenship 352 +#define OBJ_id_pda_countryOfCitizenship OBJ_id_pda,4L + +#define SN_id_pda_countryOfResidence "id-pda-countryOfResidence" +#define NID_id_pda_countryOfResidence 353 +#define OBJ_id_pda_countryOfResidence OBJ_id_pda,5L + +#define SN_id_aca_authenticationInfo "id-aca-authenticationInfo" +#define NID_id_aca_authenticationInfo 354 +#define OBJ_id_aca_authenticationInfo OBJ_id_aca,1L + +#define SN_id_aca_accessIdentity "id-aca-accessIdentity" +#define NID_id_aca_accessIdentity 355 +#define OBJ_id_aca_accessIdentity OBJ_id_aca,2L + +#define SN_id_aca_chargingIdentity "id-aca-chargingIdentity" +#define NID_id_aca_chargingIdentity 356 +#define OBJ_id_aca_chargingIdentity OBJ_id_aca,3L + +#define SN_id_aca_group "id-aca-group" +#define NID_id_aca_group 357 +#define OBJ_id_aca_group OBJ_id_aca,4L + +#define SN_id_aca_role "id-aca-role" +#define NID_id_aca_role 358 +#define OBJ_id_aca_role OBJ_id_aca,5L + +#define SN_id_aca_encAttrs "id-aca-encAttrs" +#define NID_id_aca_encAttrs 399 +#define OBJ_id_aca_encAttrs OBJ_id_aca,6L + +#define SN_id_qcs_pkixQCSyntax_v1 "id-qcs-pkixQCSyntax-v1" +#define NID_id_qcs_pkixQCSyntax_v1 359 +#define OBJ_id_qcs_pkixQCSyntax_v1 OBJ_id_qcs,1L + +#define SN_id_cct_crs "id-cct-crs" +#define NID_id_cct_crs 360 +#define OBJ_id_cct_crs OBJ_id_cct,1L + +#define SN_id_cct_PKIData "id-cct-PKIData" +#define NID_id_cct_PKIData 361 +#define OBJ_id_cct_PKIData OBJ_id_cct,2L + +#define SN_id_cct_PKIResponse "id-cct-PKIResponse" +#define NID_id_cct_PKIResponse 362 +#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L + +#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage" +#define LN_id_ppl_anyLanguage "Any language" +#define NID_id_ppl_anyLanguage 664 +#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L + +#define SN_id_ppl_inheritAll "id-ppl-inheritAll" +#define LN_id_ppl_inheritAll "Inherit all" +#define NID_id_ppl_inheritAll 665 +#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L + +#define SN_Independent "id-ppl-independent" +#define LN_Independent "Independent" +#define NID_Independent 667 +#define OBJ_Independent OBJ_id_ppl,2L + +#define SN_ad_OCSP "OCSP" +#define LN_ad_OCSP "OCSP" +#define NID_ad_OCSP 178 +#define OBJ_ad_OCSP OBJ_id_ad,1L + +#define SN_ad_ca_issuers "caIssuers" +#define LN_ad_ca_issuers "CA Issuers" +#define NID_ad_ca_issuers 179 +#define OBJ_ad_ca_issuers OBJ_id_ad,2L + +#define SN_ad_timeStamping "ad_timestamping" +#define LN_ad_timeStamping "AD Time Stamping" +#define NID_ad_timeStamping 363 +#define OBJ_ad_timeStamping OBJ_id_ad,3L + +#define SN_ad_dvcs "AD_DVCS" +#define LN_ad_dvcs "ad dvcs" +#define NID_ad_dvcs 364 +#define OBJ_ad_dvcs OBJ_id_ad,4L + +#define SN_caRepository "caRepository" +#define LN_caRepository "CA Repository" +#define NID_caRepository 785 +#define OBJ_caRepository OBJ_id_ad,5L + +#define OBJ_id_pkix_OCSP OBJ_ad_OCSP + +#define SN_id_pkix_OCSP_basic "basicOCSPResponse" +#define LN_id_pkix_OCSP_basic "Basic OCSP Response" +#define NID_id_pkix_OCSP_basic 365 +#define OBJ_id_pkix_OCSP_basic OBJ_id_pkix_OCSP,1L + +#define SN_id_pkix_OCSP_Nonce "Nonce" +#define LN_id_pkix_OCSP_Nonce "OCSP Nonce" +#define NID_id_pkix_OCSP_Nonce 366 +#define OBJ_id_pkix_OCSP_Nonce OBJ_id_pkix_OCSP,2L + +#define SN_id_pkix_OCSP_CrlID "CrlID" +#define LN_id_pkix_OCSP_CrlID "OCSP CRL ID" +#define NID_id_pkix_OCSP_CrlID 367 +#define OBJ_id_pkix_OCSP_CrlID OBJ_id_pkix_OCSP,3L + +#define SN_id_pkix_OCSP_acceptableResponses "acceptableResponses" +#define LN_id_pkix_OCSP_acceptableResponses "Acceptable OCSP Responses" +#define NID_id_pkix_OCSP_acceptableResponses 368 +#define OBJ_id_pkix_OCSP_acceptableResponses OBJ_id_pkix_OCSP,4L + +#define SN_id_pkix_OCSP_noCheck "noCheck" +#define LN_id_pkix_OCSP_noCheck "OCSP No Check" +#define NID_id_pkix_OCSP_noCheck 369 +#define OBJ_id_pkix_OCSP_noCheck OBJ_id_pkix_OCSP,5L + +#define SN_id_pkix_OCSP_archiveCutoff "archiveCutoff" +#define LN_id_pkix_OCSP_archiveCutoff "OCSP Archive Cutoff" +#define NID_id_pkix_OCSP_archiveCutoff 370 +#define OBJ_id_pkix_OCSP_archiveCutoff OBJ_id_pkix_OCSP,6L + +#define SN_id_pkix_OCSP_serviceLocator "serviceLocator" +#define LN_id_pkix_OCSP_serviceLocator "OCSP Service Locator" +#define NID_id_pkix_OCSP_serviceLocator 371 +#define OBJ_id_pkix_OCSP_serviceLocator OBJ_id_pkix_OCSP,7L + +#define SN_id_pkix_OCSP_extendedStatus "extendedStatus" +#define LN_id_pkix_OCSP_extendedStatus "Extended OCSP Status" +#define NID_id_pkix_OCSP_extendedStatus 372 +#define OBJ_id_pkix_OCSP_extendedStatus OBJ_id_pkix_OCSP,8L + +#define SN_id_pkix_OCSP_valid "valid" +#define NID_id_pkix_OCSP_valid 373 +#define OBJ_id_pkix_OCSP_valid OBJ_id_pkix_OCSP,9L + +#define SN_id_pkix_OCSP_path "path" +#define NID_id_pkix_OCSP_path 374 +#define OBJ_id_pkix_OCSP_path OBJ_id_pkix_OCSP,10L + +#define SN_id_pkix_OCSP_trustRoot "trustRoot" +#define LN_id_pkix_OCSP_trustRoot "Trust Root" +#define NID_id_pkix_OCSP_trustRoot 375 +#define OBJ_id_pkix_OCSP_trustRoot OBJ_id_pkix_OCSP,11L + +#define SN_algorithm "algorithm" +#define LN_algorithm "algorithm" +#define NID_algorithm 376 +#define OBJ_algorithm 1L,3L,14L,3L,2L + +#define SN_md5WithRSA "RSA-NP-MD5" +#define LN_md5WithRSA "md5WithRSA" +#define NID_md5WithRSA 104 +#define OBJ_md5WithRSA OBJ_algorithm,3L + +#define SN_des_ecb "DES-ECB" +#define LN_des_ecb "des-ecb" +#define NID_des_ecb 29 +#define OBJ_des_ecb OBJ_algorithm,6L + +#define SN_des_cbc "DES-CBC" +#define LN_des_cbc "des-cbc" +#define NID_des_cbc 31 +#define OBJ_des_cbc OBJ_algorithm,7L + +#define SN_des_ofb64 "DES-OFB" +#define LN_des_ofb64 "des-ofb" +#define NID_des_ofb64 45 +#define OBJ_des_ofb64 OBJ_algorithm,8L + +#define SN_des_cfb64 "DES-CFB" +#define LN_des_cfb64 "des-cfb" +#define NID_des_cfb64 30 +#define OBJ_des_cfb64 OBJ_algorithm,9L + +#define SN_rsaSignature "rsaSignature" +#define NID_rsaSignature 377 +#define OBJ_rsaSignature OBJ_algorithm,11L + +#define SN_dsa_2 "DSA-old" +#define LN_dsa_2 "dsaEncryption-old" +#define NID_dsa_2 67 +#define OBJ_dsa_2 OBJ_algorithm,12L + +#define SN_dsaWithSHA "DSA-SHA" +#define LN_dsaWithSHA "dsaWithSHA" +#define NID_dsaWithSHA 66 +#define OBJ_dsaWithSHA OBJ_algorithm,13L + +#define SN_shaWithRSAEncryption "RSA-SHA" +#define LN_shaWithRSAEncryption "shaWithRSAEncryption" +#define NID_shaWithRSAEncryption 42 +#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L + +#define SN_des_ede_ecb "DES-EDE" +#define LN_des_ede_ecb "des-ede" +#define NID_des_ede_ecb 32 +#define OBJ_des_ede_ecb OBJ_algorithm,17L + +#define SN_des_ede3_ecb "DES-EDE3" +#define LN_des_ede3_ecb "des-ede3" +#define NID_des_ede3_ecb 33 + +#define SN_des_ede_cbc "DES-EDE-CBC" +#define LN_des_ede_cbc "des-ede-cbc" +#define NID_des_ede_cbc 43 + +#define SN_des_ede_cfb64 "DES-EDE-CFB" +#define LN_des_ede_cfb64 "des-ede-cfb" +#define NID_des_ede_cfb64 60 + +#define SN_des_ede3_cfb64 "DES-EDE3-CFB" +#define LN_des_ede3_cfb64 "des-ede3-cfb" +#define NID_des_ede3_cfb64 61 + +#define SN_des_ede_ofb64 "DES-EDE-OFB" +#define LN_des_ede_ofb64 "des-ede-ofb" +#define NID_des_ede_ofb64 62 + +#define SN_des_ede3_ofb64 "DES-EDE3-OFB" +#define LN_des_ede3_ofb64 "des-ede3-ofb" +#define NID_des_ede3_ofb64 63 + +#define SN_desx_cbc "DESX-CBC" +#define LN_desx_cbc "desx-cbc" +#define NID_desx_cbc 80 + +#define SN_sha "SHA" +#define LN_sha "sha" +#define NID_sha 41 +#define OBJ_sha OBJ_algorithm,18L + +#define SN_sha1 "SHA1" +#define LN_sha1 "sha1" +#define NID_sha1 64 +#define OBJ_sha1 OBJ_algorithm,26L + +#define SN_dsaWithSHA1_2 "DSA-SHA1-old" +#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" +#define NID_dsaWithSHA1_2 70 +#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L + +#define SN_sha1WithRSA "RSA-SHA1-2" +#define LN_sha1WithRSA "sha1WithRSA" +#define NID_sha1WithRSA 115 +#define OBJ_sha1WithRSA OBJ_algorithm,29L + +#define SN_ripemd160 "RIPEMD160" +#define LN_ripemd160 "ripemd160" +#define NID_ripemd160 117 +#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L + +#define SN_ripemd160WithRSA "RSA-RIPEMD160" +#define LN_ripemd160WithRSA "ripemd160WithRSA" +#define NID_ripemd160WithRSA 119 +#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L + +#define SN_sxnet "SXNetID" +#define LN_sxnet "Strong Extranet ID" +#define NID_sxnet 143 +#define OBJ_sxnet 1L,3L,101L,1L,4L,1L + +#define SN_X500 "X500" +#define LN_X500 "directory services (X.500)" +#define NID_X500 11 +#define OBJ_X500 2L,5L + +#define SN_X509 "X509" +#define NID_X509 12 +#define OBJ_X509 OBJ_X500,4L + +#define SN_commonName "CN" +#define LN_commonName "commonName" +#define NID_commonName 13 +#define OBJ_commonName OBJ_X509,3L + +#define SN_surname "SN" +#define LN_surname "surname" +#define NID_surname 100 +#define OBJ_surname OBJ_X509,4L + +#define LN_serialNumber "serialNumber" +#define NID_serialNumber 105 +#define OBJ_serialNumber OBJ_X509,5L + +#define SN_countryName "C" +#define LN_countryName "countryName" +#define NID_countryName 14 +#define OBJ_countryName OBJ_X509,6L + +#define SN_localityName "L" +#define LN_localityName "localityName" +#define NID_localityName 15 +#define OBJ_localityName OBJ_X509,7L + +#define SN_stateOrProvinceName "ST" +#define LN_stateOrProvinceName "stateOrProvinceName" +#define NID_stateOrProvinceName 16 +#define OBJ_stateOrProvinceName OBJ_X509,8L + +#define SN_streetAddress "street" +#define LN_streetAddress "streetAddress" +#define NID_streetAddress 660 +#define OBJ_streetAddress OBJ_X509,9L + +#define SN_organizationName "O" +#define LN_organizationName "organizationName" +#define NID_organizationName 17 +#define OBJ_organizationName OBJ_X509,10L + +#define SN_organizationalUnitName "OU" +#define LN_organizationalUnitName "organizationalUnitName" +#define NID_organizationalUnitName 18 +#define OBJ_organizationalUnitName OBJ_X509,11L + +#define SN_title "title" +#define LN_title "title" +#define NID_title 106 +#define OBJ_title OBJ_X509,12L + +#define LN_description "description" +#define NID_description 107 +#define OBJ_description OBJ_X509,13L + +#define LN_searchGuide "searchGuide" +#define NID_searchGuide 859 +#define OBJ_searchGuide OBJ_X509,14L + +#define LN_businessCategory "businessCategory" +#define NID_businessCategory 860 +#define OBJ_businessCategory OBJ_X509,15L + +#define LN_postalAddress "postalAddress" +#define NID_postalAddress 861 +#define OBJ_postalAddress OBJ_X509,16L + +#define LN_postalCode "postalCode" +#define NID_postalCode 661 +#define OBJ_postalCode OBJ_X509,17L + +#define LN_postOfficeBox "postOfficeBox" +#define NID_postOfficeBox 862 +#define OBJ_postOfficeBox OBJ_X509,18L + +#define LN_physicalDeliveryOfficeName "physicalDeliveryOfficeName" +#define NID_physicalDeliveryOfficeName 863 +#define OBJ_physicalDeliveryOfficeName OBJ_X509,19L + +#define LN_telephoneNumber "telephoneNumber" +#define NID_telephoneNumber 864 +#define OBJ_telephoneNumber OBJ_X509,20L + +#define LN_telexNumber "telexNumber" +#define NID_telexNumber 865 +#define OBJ_telexNumber OBJ_X509,21L + +#define LN_teletexTerminalIdentifier "teletexTerminalIdentifier" +#define NID_teletexTerminalIdentifier 866 +#define OBJ_teletexTerminalIdentifier OBJ_X509,22L + +#define LN_facsimileTelephoneNumber "facsimileTelephoneNumber" +#define NID_facsimileTelephoneNumber 867 +#define OBJ_facsimileTelephoneNumber OBJ_X509,23L + +#define LN_x121Address "x121Address" +#define NID_x121Address 868 +#define OBJ_x121Address OBJ_X509,24L + +#define LN_internationaliSDNNumber "internationaliSDNNumber" +#define NID_internationaliSDNNumber 869 +#define OBJ_internationaliSDNNumber OBJ_X509,25L + +#define LN_registeredAddress "registeredAddress" +#define NID_registeredAddress 870 +#define OBJ_registeredAddress OBJ_X509,26L + +#define LN_destinationIndicator "destinationIndicator" +#define NID_destinationIndicator 871 +#define OBJ_destinationIndicator OBJ_X509,27L + +#define LN_preferredDeliveryMethod "preferredDeliveryMethod" +#define NID_preferredDeliveryMethod 872 +#define OBJ_preferredDeliveryMethod OBJ_X509,28L + +#define LN_presentationAddress "presentationAddress" +#define NID_presentationAddress 873 +#define OBJ_presentationAddress OBJ_X509,29L + +#define LN_supportedApplicationContext "supportedApplicationContext" +#define NID_supportedApplicationContext 874 +#define OBJ_supportedApplicationContext OBJ_X509,30L + +#define SN_member "member" +#define NID_member 875 +#define OBJ_member OBJ_X509,31L + +#define SN_owner "owner" +#define NID_owner 876 +#define OBJ_owner OBJ_X509,32L + +#define LN_roleOccupant "roleOccupant" +#define NID_roleOccupant 877 +#define OBJ_roleOccupant OBJ_X509,33L + +#define SN_seeAlso "seeAlso" +#define NID_seeAlso 878 +#define OBJ_seeAlso OBJ_X509,34L + +#define LN_userPassword "userPassword" +#define NID_userPassword 879 +#define OBJ_userPassword OBJ_X509,35L + +#define LN_userCertificate "userCertificate" +#define NID_userCertificate 880 +#define OBJ_userCertificate OBJ_X509,36L + +#define LN_cACertificate "cACertificate" +#define NID_cACertificate 881 +#define OBJ_cACertificate OBJ_X509,37L + +#define LN_authorityRevocationList "authorityRevocationList" +#define NID_authorityRevocationList 882 +#define OBJ_authorityRevocationList OBJ_X509,38L + +#define LN_certificateRevocationList "certificateRevocationList" +#define NID_certificateRevocationList 883 +#define OBJ_certificateRevocationList OBJ_X509,39L + +#define LN_crossCertificatePair "crossCertificatePair" +#define NID_crossCertificatePair 884 +#define OBJ_crossCertificatePair OBJ_X509,40L + +#define SN_name "name" +#define LN_name "name" +#define NID_name 173 +#define OBJ_name OBJ_X509,41L + +#define SN_givenName "GN" +#define LN_givenName "givenName" +#define NID_givenName 99 +#define OBJ_givenName OBJ_X509,42L + +#define SN_initials "initials" +#define LN_initials "initials" +#define NID_initials 101 +#define OBJ_initials OBJ_X509,43L + +#define LN_generationQualifier "generationQualifier" +#define NID_generationQualifier 509 +#define OBJ_generationQualifier OBJ_X509,44L + +#define LN_x500UniqueIdentifier "x500UniqueIdentifier" +#define NID_x500UniqueIdentifier 503 +#define OBJ_x500UniqueIdentifier OBJ_X509,45L + +#define SN_dnQualifier "dnQualifier" +#define LN_dnQualifier "dnQualifier" +#define NID_dnQualifier 174 +#define OBJ_dnQualifier OBJ_X509,46L + +#define LN_enhancedSearchGuide "enhancedSearchGuide" +#define NID_enhancedSearchGuide 885 +#define OBJ_enhancedSearchGuide OBJ_X509,47L + +#define LN_protocolInformation "protocolInformation" +#define NID_protocolInformation 886 +#define OBJ_protocolInformation OBJ_X509,48L + +#define LN_distinguishedName "distinguishedName" +#define NID_distinguishedName 887 +#define OBJ_distinguishedName OBJ_X509,49L + +#define LN_uniqueMember "uniqueMember" +#define NID_uniqueMember 888 +#define OBJ_uniqueMember OBJ_X509,50L + +#define LN_houseIdentifier "houseIdentifier" +#define NID_houseIdentifier 889 +#define OBJ_houseIdentifier OBJ_X509,51L + +#define LN_supportedAlgorithms "supportedAlgorithms" +#define NID_supportedAlgorithms 890 +#define OBJ_supportedAlgorithms OBJ_X509,52L + +#define LN_deltaRevocationList "deltaRevocationList" +#define NID_deltaRevocationList 891 +#define OBJ_deltaRevocationList OBJ_X509,53L + +#define SN_dmdName "dmdName" +#define NID_dmdName 892 +#define OBJ_dmdName OBJ_X509,54L + +#define LN_pseudonym "pseudonym" +#define NID_pseudonym 510 +#define OBJ_pseudonym OBJ_X509,65L + +#define SN_role "role" +#define LN_role "role" +#define NID_role 400 +#define OBJ_role OBJ_X509,72L + +#define SN_X500algorithms "X500algorithms" +#define LN_X500algorithms "directory services - algorithms" +#define NID_X500algorithms 378 +#define OBJ_X500algorithms OBJ_X500,8L + +#define SN_rsa "RSA" +#define LN_rsa "rsa" +#define NID_rsa 19 +#define OBJ_rsa OBJ_X500algorithms,1L,1L + +#define SN_mdc2WithRSA "RSA-MDC2" +#define LN_mdc2WithRSA "mdc2WithRSA" +#define NID_mdc2WithRSA 96 +#define OBJ_mdc2WithRSA OBJ_X500algorithms,3L,100L + +#define SN_mdc2 "MDC2" +#define LN_mdc2 "mdc2" +#define NID_mdc2 95 +#define OBJ_mdc2 OBJ_X500algorithms,3L,101L + +#define SN_id_ce "id-ce" +#define NID_id_ce 81 +#define OBJ_id_ce OBJ_X500,29L + +#define SN_subject_directory_attributes "subjectDirectoryAttributes" +#define LN_subject_directory_attributes "X509v3 Subject Directory Attributes" +#define NID_subject_directory_attributes 769 +#define OBJ_subject_directory_attributes OBJ_id_ce,9L + +#define SN_subject_key_identifier "subjectKeyIdentifier" +#define LN_subject_key_identifier "X509v3 Subject Key Identifier" +#define NID_subject_key_identifier 82 +#define OBJ_subject_key_identifier OBJ_id_ce,14L + +#define SN_key_usage "keyUsage" +#define LN_key_usage "X509v3 Key Usage" +#define NID_key_usage 83 +#define OBJ_key_usage OBJ_id_ce,15L + +#define SN_private_key_usage_period "privateKeyUsagePeriod" +#define LN_private_key_usage_period "X509v3 Private Key Usage Period" +#define NID_private_key_usage_period 84 +#define OBJ_private_key_usage_period OBJ_id_ce,16L + +#define SN_subject_alt_name "subjectAltName" +#define LN_subject_alt_name "X509v3 Subject Alternative Name" +#define NID_subject_alt_name 85 +#define OBJ_subject_alt_name OBJ_id_ce,17L + +#define SN_issuer_alt_name "issuerAltName" +#define LN_issuer_alt_name "X509v3 Issuer Alternative Name" +#define NID_issuer_alt_name 86 +#define OBJ_issuer_alt_name OBJ_id_ce,18L + +#define SN_basic_constraints "basicConstraints" +#define LN_basic_constraints "X509v3 Basic Constraints" +#define NID_basic_constraints 87 +#define OBJ_basic_constraints OBJ_id_ce,19L + +#define SN_crl_number "crlNumber" +#define LN_crl_number "X509v3 CRL Number" +#define NID_crl_number 88 +#define OBJ_crl_number OBJ_id_ce,20L + +#define SN_crl_reason "CRLReason" +#define LN_crl_reason "X509v3 CRL Reason Code" +#define NID_crl_reason 141 +#define OBJ_crl_reason OBJ_id_ce,21L + +#define SN_invalidity_date "invalidityDate" +#define LN_invalidity_date "Invalidity Date" +#define NID_invalidity_date 142 +#define OBJ_invalidity_date OBJ_id_ce,24L + +#define SN_delta_crl "deltaCRL" +#define LN_delta_crl "X509v3 Delta CRL Indicator" +#define NID_delta_crl 140 +#define OBJ_delta_crl OBJ_id_ce,27L + +#define SN_issuing_distribution_point "issuingDistributionPoint" +#define LN_issuing_distribution_point "X509v3 Issuing Distrubution Point" +#define NID_issuing_distribution_point 770 +#define OBJ_issuing_distribution_point OBJ_id_ce,28L + +#define SN_certificate_issuer "certificateIssuer" +#define LN_certificate_issuer "X509v3 Certificate Issuer" +#define NID_certificate_issuer 771 +#define OBJ_certificate_issuer OBJ_id_ce,29L + +#define SN_name_constraints "nameConstraints" +#define LN_name_constraints "X509v3 Name Constraints" +#define NID_name_constraints 666 +#define OBJ_name_constraints OBJ_id_ce,30L + +#define SN_crl_distribution_points "crlDistributionPoints" +#define LN_crl_distribution_points "X509v3 CRL Distribution Points" +#define NID_crl_distribution_points 103 +#define OBJ_crl_distribution_points OBJ_id_ce,31L + +#define SN_certificate_policies "certificatePolicies" +#define LN_certificate_policies "X509v3 Certificate Policies" +#define NID_certificate_policies 89 +#define OBJ_certificate_policies OBJ_id_ce,32L + +#define SN_any_policy "anyPolicy" +#define LN_any_policy "X509v3 Any Policy" +#define NID_any_policy 746 +#define OBJ_any_policy OBJ_certificate_policies,0L + +#define SN_policy_mappings "policyMappings" +#define LN_policy_mappings "X509v3 Policy Mappings" +#define NID_policy_mappings 747 +#define OBJ_policy_mappings OBJ_id_ce,33L + +#define SN_authority_key_identifier "authorityKeyIdentifier" +#define LN_authority_key_identifier "X509v3 Authority Key Identifier" +#define NID_authority_key_identifier 90 +#define OBJ_authority_key_identifier OBJ_id_ce,35L + +#define SN_policy_constraints "policyConstraints" +#define LN_policy_constraints "X509v3 Policy Constraints" +#define NID_policy_constraints 401 +#define OBJ_policy_constraints OBJ_id_ce,36L + +#define SN_ext_key_usage "extendedKeyUsage" +#define LN_ext_key_usage "X509v3 Extended Key Usage" +#define NID_ext_key_usage 126 +#define OBJ_ext_key_usage OBJ_id_ce,37L + +#define SN_freshest_crl "freshestCRL" +#define LN_freshest_crl "X509v3 Freshest CRL" +#define NID_freshest_crl 857 +#define OBJ_freshest_crl OBJ_id_ce,46L + +#define SN_inhibit_any_policy "inhibitAnyPolicy" +#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy" +#define NID_inhibit_any_policy 748 +#define OBJ_inhibit_any_policy OBJ_id_ce,54L + +#define SN_target_information "targetInformation" +#define LN_target_information "X509v3 AC Targeting" +#define NID_target_information 402 +#define OBJ_target_information OBJ_id_ce,55L + +#define SN_no_rev_avail "noRevAvail" +#define LN_no_rev_avail "X509v3 No Revocation Available" +#define NID_no_rev_avail 403 +#define OBJ_no_rev_avail OBJ_id_ce,56L + +#define SN_anyExtendedKeyUsage "anyExtendedKeyUsage" +#define LN_anyExtendedKeyUsage "Any Extended Key Usage" +#define NID_anyExtendedKeyUsage 910 +#define OBJ_anyExtendedKeyUsage OBJ_ext_key_usage,0L + +#define SN_netscape "Netscape" +#define LN_netscape "Netscape Communications Corp." +#define NID_netscape 57 +#define OBJ_netscape 2L,16L,840L,1L,113730L + +#define SN_netscape_cert_extension "nsCertExt" +#define LN_netscape_cert_extension "Netscape Certificate Extension" +#define NID_netscape_cert_extension 58 +#define OBJ_netscape_cert_extension OBJ_netscape,1L + +#define SN_netscape_data_type "nsDataType" +#define LN_netscape_data_type "Netscape Data Type" +#define NID_netscape_data_type 59 +#define OBJ_netscape_data_type OBJ_netscape,2L + +#define SN_netscape_cert_type "nsCertType" +#define LN_netscape_cert_type "Netscape Cert Type" +#define NID_netscape_cert_type 71 +#define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L + +#define SN_netscape_base_url "nsBaseUrl" +#define LN_netscape_base_url "Netscape Base Url" +#define NID_netscape_base_url 72 +#define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L + +#define SN_netscape_revocation_url "nsRevocationUrl" +#define LN_netscape_revocation_url "Netscape Revocation Url" +#define NID_netscape_revocation_url 73 +#define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L + +#define SN_netscape_ca_revocation_url "nsCaRevocationUrl" +#define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" +#define NID_netscape_ca_revocation_url 74 +#define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L + +#define SN_netscape_renewal_url "nsRenewalUrl" +#define LN_netscape_renewal_url "Netscape Renewal Url" +#define NID_netscape_renewal_url 75 +#define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L + +#define SN_netscape_ca_policy_url "nsCaPolicyUrl" +#define LN_netscape_ca_policy_url "Netscape CA Policy Url" +#define NID_netscape_ca_policy_url 76 +#define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L + +#define SN_netscape_ssl_server_name "nsSslServerName" +#define LN_netscape_ssl_server_name "Netscape SSL Server Name" +#define NID_netscape_ssl_server_name 77 +#define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L + +#define SN_netscape_comment "nsComment" +#define LN_netscape_comment "Netscape Comment" +#define NID_netscape_comment 78 +#define OBJ_netscape_comment OBJ_netscape_cert_extension,13L + +#define SN_netscape_cert_sequence "nsCertSequence" +#define LN_netscape_cert_sequence "Netscape Certificate Sequence" +#define NID_netscape_cert_sequence 79 +#define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L + +#define SN_ns_sgc "nsSGC" +#define LN_ns_sgc "Netscape Server Gated Crypto" +#define NID_ns_sgc 139 +#define OBJ_ns_sgc OBJ_netscape,4L,1L + +#define SN_org "ORG" +#define LN_org "org" +#define NID_org 379 +#define OBJ_org OBJ_iso,3L + +#define SN_dod "DOD" +#define LN_dod "dod" +#define NID_dod 380 +#define OBJ_dod OBJ_org,6L + +#define SN_iana "IANA" +#define LN_iana "iana" +#define NID_iana 381 +#define OBJ_iana OBJ_dod,1L + +#define OBJ_internet OBJ_iana + +#define SN_Directory "directory" +#define LN_Directory "Directory" +#define NID_Directory 382 +#define OBJ_Directory OBJ_internet,1L + +#define SN_Management "mgmt" +#define LN_Management "Management" +#define NID_Management 383 +#define OBJ_Management OBJ_internet,2L + +#define SN_Experimental "experimental" +#define LN_Experimental "Experimental" +#define NID_Experimental 384 +#define OBJ_Experimental OBJ_internet,3L + +#define SN_Private "private" +#define LN_Private "Private" +#define NID_Private 385 +#define OBJ_Private OBJ_internet,4L + +#define SN_Security "security" +#define LN_Security "Security" +#define NID_Security 386 +#define OBJ_Security OBJ_internet,5L + +#define SN_SNMPv2 "snmpv2" +#define LN_SNMPv2 "SNMPv2" +#define NID_SNMPv2 387 +#define OBJ_SNMPv2 OBJ_internet,6L + +#define LN_Mail "Mail" +#define NID_Mail 388 +#define OBJ_Mail OBJ_internet,7L + +#define SN_Enterprises "enterprises" +#define LN_Enterprises "Enterprises" +#define NID_Enterprises 389 +#define OBJ_Enterprises OBJ_Private,1L + +#define SN_dcObject "dcobject" +#define LN_dcObject "dcObject" +#define NID_dcObject 390 +#define OBJ_dcObject OBJ_Enterprises,1466L,344L + +#define SN_mime_mhs "mime-mhs" +#define LN_mime_mhs "MIME MHS" +#define NID_mime_mhs 504 +#define OBJ_mime_mhs OBJ_Mail,1L + +#define SN_mime_mhs_headings "mime-mhs-headings" +#define LN_mime_mhs_headings "mime-mhs-headings" +#define NID_mime_mhs_headings 505 +#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L + +#define SN_mime_mhs_bodies "mime-mhs-bodies" +#define LN_mime_mhs_bodies "mime-mhs-bodies" +#define NID_mime_mhs_bodies 506 +#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L + +#define SN_id_hex_partial_message "id-hex-partial-message" +#define LN_id_hex_partial_message "id-hex-partial-message" +#define NID_id_hex_partial_message 507 +#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L + +#define SN_id_hex_multipart_message "id-hex-multipart-message" +#define LN_id_hex_multipart_message "id-hex-multipart-message" +#define NID_id_hex_multipart_message 508 +#define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L + +#define SN_rle_compression "RLE" +#define LN_rle_compression "run length compression" +#define NID_rle_compression 124 +#define OBJ_rle_compression 1L,1L,1L,1L,666L,1L + +#define SN_zlib_compression "ZLIB" +#define LN_zlib_compression "zlib compression" +#define NID_zlib_compression 125 +#define OBJ_zlib_compression OBJ_id_smime_alg,8L + +#define OBJ_csor 2L,16L,840L,1L,101L,3L + +#define OBJ_nistAlgorithms OBJ_csor,4L + +#define OBJ_aes OBJ_nistAlgorithms,1L + +#define SN_aes_128_ecb "AES-128-ECB" +#define LN_aes_128_ecb "aes-128-ecb" +#define NID_aes_128_ecb 418 +#define OBJ_aes_128_ecb OBJ_aes,1L + +#define SN_aes_128_cbc "AES-128-CBC" +#define LN_aes_128_cbc "aes-128-cbc" +#define NID_aes_128_cbc 419 +#define OBJ_aes_128_cbc OBJ_aes,2L + +#define SN_aes_128_ofb128 "AES-128-OFB" +#define LN_aes_128_ofb128 "aes-128-ofb" +#define NID_aes_128_ofb128 420 +#define OBJ_aes_128_ofb128 OBJ_aes,3L + +#define SN_aes_128_cfb128 "AES-128-CFB" +#define LN_aes_128_cfb128 "aes-128-cfb" +#define NID_aes_128_cfb128 421 +#define OBJ_aes_128_cfb128 OBJ_aes,4L + +#define SN_id_aes128_wrap "id-aes128-wrap" +#define NID_id_aes128_wrap 788 +#define OBJ_id_aes128_wrap OBJ_aes,5L + +#define SN_aes_128_gcm "id-aes128-GCM" +#define LN_aes_128_gcm "aes-128-gcm" +#define NID_aes_128_gcm 895 +#define OBJ_aes_128_gcm OBJ_aes,6L + +#define SN_aes_128_ccm "id-aes128-CCM" +#define LN_aes_128_ccm "aes-128-ccm" +#define NID_aes_128_ccm 896 +#define OBJ_aes_128_ccm OBJ_aes,7L + +#define SN_id_aes128_wrap_pad "id-aes128-wrap-pad" +#define NID_id_aes128_wrap_pad 897 +#define OBJ_id_aes128_wrap_pad OBJ_aes,8L + +#define SN_aes_192_ecb "AES-192-ECB" +#define LN_aes_192_ecb "aes-192-ecb" +#define NID_aes_192_ecb 422 +#define OBJ_aes_192_ecb OBJ_aes,21L + +#define SN_aes_192_cbc "AES-192-CBC" +#define LN_aes_192_cbc "aes-192-cbc" +#define NID_aes_192_cbc 423 +#define OBJ_aes_192_cbc OBJ_aes,22L + +#define SN_aes_192_ofb128 "AES-192-OFB" +#define LN_aes_192_ofb128 "aes-192-ofb" +#define NID_aes_192_ofb128 424 +#define OBJ_aes_192_ofb128 OBJ_aes,23L + +#define SN_aes_192_cfb128 "AES-192-CFB" +#define LN_aes_192_cfb128 "aes-192-cfb" +#define NID_aes_192_cfb128 425 +#define OBJ_aes_192_cfb128 OBJ_aes,24L + +#define SN_id_aes192_wrap "id-aes192-wrap" +#define NID_id_aes192_wrap 789 +#define OBJ_id_aes192_wrap OBJ_aes,25L + +#define SN_aes_192_gcm "id-aes192-GCM" +#define LN_aes_192_gcm "aes-192-gcm" +#define NID_aes_192_gcm 898 +#define OBJ_aes_192_gcm OBJ_aes,26L + +#define SN_aes_192_ccm "id-aes192-CCM" +#define LN_aes_192_ccm "aes-192-ccm" +#define NID_aes_192_ccm 899 +#define OBJ_aes_192_ccm OBJ_aes,27L + +#define SN_id_aes192_wrap_pad "id-aes192-wrap-pad" +#define NID_id_aes192_wrap_pad 900 +#define OBJ_id_aes192_wrap_pad OBJ_aes,28L + +#define SN_aes_256_ecb "AES-256-ECB" +#define LN_aes_256_ecb "aes-256-ecb" +#define NID_aes_256_ecb 426 +#define OBJ_aes_256_ecb OBJ_aes,41L + +#define SN_aes_256_cbc "AES-256-CBC" +#define LN_aes_256_cbc "aes-256-cbc" +#define NID_aes_256_cbc 427 +#define OBJ_aes_256_cbc OBJ_aes,42L + +#define SN_aes_256_ofb128 "AES-256-OFB" +#define LN_aes_256_ofb128 "aes-256-ofb" +#define NID_aes_256_ofb128 428 +#define OBJ_aes_256_ofb128 OBJ_aes,43L + +#define SN_aes_256_cfb128 "AES-256-CFB" +#define LN_aes_256_cfb128 "aes-256-cfb" +#define NID_aes_256_cfb128 429 +#define OBJ_aes_256_cfb128 OBJ_aes,44L + +#define SN_id_aes256_wrap "id-aes256-wrap" +#define NID_id_aes256_wrap 790 +#define OBJ_id_aes256_wrap OBJ_aes,45L + +#define SN_aes_256_gcm "id-aes256-GCM" +#define LN_aes_256_gcm "aes-256-gcm" +#define NID_aes_256_gcm 901 +#define OBJ_aes_256_gcm OBJ_aes,46L + +#define SN_aes_256_ccm "id-aes256-CCM" +#define LN_aes_256_ccm "aes-256-ccm" +#define NID_aes_256_ccm 902 +#define OBJ_aes_256_ccm OBJ_aes,47L + +#define SN_id_aes256_wrap_pad "id-aes256-wrap-pad" +#define NID_id_aes256_wrap_pad 903 +#define OBJ_id_aes256_wrap_pad OBJ_aes,48L + +#define SN_aes_128_cfb1 "AES-128-CFB1" +#define LN_aes_128_cfb1 "aes-128-cfb1" +#define NID_aes_128_cfb1 650 + +#define SN_aes_192_cfb1 "AES-192-CFB1" +#define LN_aes_192_cfb1 "aes-192-cfb1" +#define NID_aes_192_cfb1 651 + +#define SN_aes_256_cfb1 "AES-256-CFB1" +#define LN_aes_256_cfb1 "aes-256-cfb1" +#define NID_aes_256_cfb1 652 + +#define SN_aes_128_cfb8 "AES-128-CFB8" +#define LN_aes_128_cfb8 "aes-128-cfb8" +#define NID_aes_128_cfb8 653 + +#define SN_aes_192_cfb8 "AES-192-CFB8" +#define LN_aes_192_cfb8 "aes-192-cfb8" +#define NID_aes_192_cfb8 654 + +#define SN_aes_256_cfb8 "AES-256-CFB8" +#define LN_aes_256_cfb8 "aes-256-cfb8" +#define NID_aes_256_cfb8 655 + +#define SN_aes_128_ctr "AES-128-CTR" +#define LN_aes_128_ctr "aes-128-ctr" +#define NID_aes_128_ctr 904 + +#define SN_aes_192_ctr "AES-192-CTR" +#define LN_aes_192_ctr "aes-192-ctr" +#define NID_aes_192_ctr 905 + +#define SN_aes_256_ctr "AES-256-CTR" +#define LN_aes_256_ctr "aes-256-ctr" +#define NID_aes_256_ctr 906 + +#define SN_aes_128_xts "AES-128-XTS" +#define LN_aes_128_xts "aes-128-xts" +#define NID_aes_128_xts 913 + +#define SN_aes_256_xts "AES-256-XTS" +#define LN_aes_256_xts "aes-256-xts" +#define NID_aes_256_xts 914 + +#define SN_des_cfb1 "DES-CFB1" +#define LN_des_cfb1 "des-cfb1" +#define NID_des_cfb1 656 + +#define SN_des_cfb8 "DES-CFB8" +#define LN_des_cfb8 "des-cfb8" +#define NID_des_cfb8 657 + +#define SN_des_ede3_cfb1 "DES-EDE3-CFB1" +#define LN_des_ede3_cfb1 "des-ede3-cfb1" +#define NID_des_ede3_cfb1 658 + +#define SN_des_ede3_cfb8 "DES-EDE3-CFB8" +#define LN_des_ede3_cfb8 "des-ede3-cfb8" +#define NID_des_ede3_cfb8 659 + +#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L + +#define SN_sha256 "SHA256" +#define LN_sha256 "sha256" +#define NID_sha256 672 +#define OBJ_sha256 OBJ_nist_hashalgs,1L + +#define SN_sha384 "SHA384" +#define LN_sha384 "sha384" +#define NID_sha384 673 +#define OBJ_sha384 OBJ_nist_hashalgs,2L + +#define SN_sha512 "SHA512" +#define LN_sha512 "sha512" +#define NID_sha512 674 +#define OBJ_sha512 OBJ_nist_hashalgs,3L + +#define SN_sha224 "SHA224" +#define LN_sha224 "sha224" +#define NID_sha224 675 +#define OBJ_sha224 OBJ_nist_hashalgs,4L + +#define OBJ_dsa_with_sha2 OBJ_nistAlgorithms,3L + +#define SN_dsa_with_SHA224 "dsa_with_SHA224" +#define NID_dsa_with_SHA224 802 +#define OBJ_dsa_with_SHA224 OBJ_dsa_with_sha2,1L + +#define SN_dsa_with_SHA256 "dsa_with_SHA256" +#define NID_dsa_with_SHA256 803 +#define OBJ_dsa_with_SHA256 OBJ_dsa_with_sha2,2L + +#define SN_hold_instruction_code "holdInstructionCode" +#define LN_hold_instruction_code "Hold Instruction Code" +#define NID_hold_instruction_code 430 +#define OBJ_hold_instruction_code OBJ_id_ce,23L + +#define OBJ_holdInstruction OBJ_X9_57,2L + +#define SN_hold_instruction_none "holdInstructionNone" +#define LN_hold_instruction_none "Hold Instruction None" +#define NID_hold_instruction_none 431 +#define OBJ_hold_instruction_none OBJ_holdInstruction,1L + +#define SN_hold_instruction_call_issuer "holdInstructionCallIssuer" +#define LN_hold_instruction_call_issuer "Hold Instruction Call Issuer" +#define NID_hold_instruction_call_issuer 432 +#define OBJ_hold_instruction_call_issuer OBJ_holdInstruction,2L + +#define SN_hold_instruction_reject "holdInstructionReject" +#define LN_hold_instruction_reject "Hold Instruction Reject" +#define NID_hold_instruction_reject 433 +#define OBJ_hold_instruction_reject OBJ_holdInstruction,3L + +#define SN_data "data" +#define NID_data 434 +#define OBJ_data OBJ_itu_t,9L + +#define SN_pss "pss" +#define NID_pss 435 +#define OBJ_pss OBJ_data,2342L + +#define SN_ucl "ucl" +#define NID_ucl 436 +#define OBJ_ucl OBJ_pss,19200300L + +#define SN_pilot "pilot" +#define NID_pilot 437 +#define OBJ_pilot OBJ_ucl,100L + +#define LN_pilotAttributeType "pilotAttributeType" +#define NID_pilotAttributeType 438 +#define OBJ_pilotAttributeType OBJ_pilot,1L + +#define LN_pilotAttributeSyntax "pilotAttributeSyntax" +#define NID_pilotAttributeSyntax 439 +#define OBJ_pilotAttributeSyntax OBJ_pilot,3L + +#define LN_pilotObjectClass "pilotObjectClass" +#define NID_pilotObjectClass 440 +#define OBJ_pilotObjectClass OBJ_pilot,4L + +#define LN_pilotGroups "pilotGroups" +#define NID_pilotGroups 441 +#define OBJ_pilotGroups OBJ_pilot,10L + +#define LN_iA5StringSyntax "iA5StringSyntax" +#define NID_iA5StringSyntax 442 +#define OBJ_iA5StringSyntax OBJ_pilotAttributeSyntax,4L + +#define LN_caseIgnoreIA5StringSyntax "caseIgnoreIA5StringSyntax" +#define NID_caseIgnoreIA5StringSyntax 443 +#define OBJ_caseIgnoreIA5StringSyntax OBJ_pilotAttributeSyntax,5L + +#define LN_pilotObject "pilotObject" +#define NID_pilotObject 444 +#define OBJ_pilotObject OBJ_pilotObjectClass,3L + +#define LN_pilotPerson "pilotPerson" +#define NID_pilotPerson 445 +#define OBJ_pilotPerson OBJ_pilotObjectClass,4L + +#define SN_account "account" +#define NID_account 446 +#define OBJ_account OBJ_pilotObjectClass,5L + +#define SN_document "document" +#define NID_document 447 +#define OBJ_document OBJ_pilotObjectClass,6L + +#define SN_room "room" +#define NID_room 448 +#define OBJ_room OBJ_pilotObjectClass,7L + +#define LN_documentSeries "documentSeries" +#define NID_documentSeries 449 +#define OBJ_documentSeries OBJ_pilotObjectClass,9L + +#define SN_Domain "domain" +#define LN_Domain "Domain" +#define NID_Domain 392 +#define OBJ_Domain OBJ_pilotObjectClass,13L + +#define LN_rFC822localPart "rFC822localPart" +#define NID_rFC822localPart 450 +#define OBJ_rFC822localPart OBJ_pilotObjectClass,14L + +#define LN_dNSDomain "dNSDomain" +#define NID_dNSDomain 451 +#define OBJ_dNSDomain OBJ_pilotObjectClass,15L + +#define LN_domainRelatedObject "domainRelatedObject" +#define NID_domainRelatedObject 452 +#define OBJ_domainRelatedObject OBJ_pilotObjectClass,17L + +#define LN_friendlyCountry "friendlyCountry" +#define NID_friendlyCountry 453 +#define OBJ_friendlyCountry OBJ_pilotObjectClass,18L + +#define LN_simpleSecurityObject "simpleSecurityObject" +#define NID_simpleSecurityObject 454 +#define OBJ_simpleSecurityObject OBJ_pilotObjectClass,19L + +#define LN_pilotOrganization "pilotOrganization" +#define NID_pilotOrganization 455 +#define OBJ_pilotOrganization OBJ_pilotObjectClass,20L + +#define LN_pilotDSA "pilotDSA" +#define NID_pilotDSA 456 +#define OBJ_pilotDSA OBJ_pilotObjectClass,21L + +#define LN_qualityLabelledData "qualityLabelledData" +#define NID_qualityLabelledData 457 +#define OBJ_qualityLabelledData OBJ_pilotObjectClass,22L + +#define SN_userId "UID" +#define LN_userId "userId" +#define NID_userId 458 +#define OBJ_userId OBJ_pilotAttributeType,1L + +#define LN_textEncodedORAddress "textEncodedORAddress" +#define NID_textEncodedORAddress 459 +#define OBJ_textEncodedORAddress OBJ_pilotAttributeType,2L + +#define SN_rfc822Mailbox "mail" +#define LN_rfc822Mailbox "rfc822Mailbox" +#define NID_rfc822Mailbox 460 +#define OBJ_rfc822Mailbox OBJ_pilotAttributeType,3L + +#define SN_info "info" +#define NID_info 461 +#define OBJ_info OBJ_pilotAttributeType,4L + +#define LN_favouriteDrink "favouriteDrink" +#define NID_favouriteDrink 462 +#define OBJ_favouriteDrink OBJ_pilotAttributeType,5L + +#define LN_roomNumber "roomNumber" +#define NID_roomNumber 463 +#define OBJ_roomNumber OBJ_pilotAttributeType,6L + +#define SN_photo "photo" +#define NID_photo 464 +#define OBJ_photo OBJ_pilotAttributeType,7L + +#define LN_userClass "userClass" +#define NID_userClass 465 +#define OBJ_userClass OBJ_pilotAttributeType,8L + +#define SN_host "host" +#define NID_host 466 +#define OBJ_host OBJ_pilotAttributeType,9L + +#define SN_manager "manager" +#define NID_manager 467 +#define OBJ_manager OBJ_pilotAttributeType,10L + +#define LN_documentIdentifier "documentIdentifier" +#define NID_documentIdentifier 468 +#define OBJ_documentIdentifier OBJ_pilotAttributeType,11L + +#define LN_documentTitle "documentTitle" +#define NID_documentTitle 469 +#define OBJ_documentTitle OBJ_pilotAttributeType,12L + +#define LN_documentVersion "documentVersion" +#define NID_documentVersion 470 +#define OBJ_documentVersion OBJ_pilotAttributeType,13L + +#define LN_documentAuthor "documentAuthor" +#define NID_documentAuthor 471 +#define OBJ_documentAuthor OBJ_pilotAttributeType,14L + +#define LN_documentLocation "documentLocation" +#define NID_documentLocation 472 +#define OBJ_documentLocation OBJ_pilotAttributeType,15L + +#define LN_homeTelephoneNumber "homeTelephoneNumber" +#define NID_homeTelephoneNumber 473 +#define OBJ_homeTelephoneNumber OBJ_pilotAttributeType,20L + +#define SN_secretary "secretary" +#define NID_secretary 474 +#define OBJ_secretary OBJ_pilotAttributeType,21L + +#define LN_otherMailbox "otherMailbox" +#define NID_otherMailbox 475 +#define OBJ_otherMailbox OBJ_pilotAttributeType,22L + +#define LN_lastModifiedTime "lastModifiedTime" +#define NID_lastModifiedTime 476 +#define OBJ_lastModifiedTime OBJ_pilotAttributeType,23L + +#define LN_lastModifiedBy "lastModifiedBy" +#define NID_lastModifiedBy 477 +#define OBJ_lastModifiedBy OBJ_pilotAttributeType,24L + +#define SN_domainComponent "DC" +#define LN_domainComponent "domainComponent" +#define NID_domainComponent 391 +#define OBJ_domainComponent OBJ_pilotAttributeType,25L + +#define LN_aRecord "aRecord" +#define NID_aRecord 478 +#define OBJ_aRecord OBJ_pilotAttributeType,26L + +#define LN_pilotAttributeType27 "pilotAttributeType27" +#define NID_pilotAttributeType27 479 +#define OBJ_pilotAttributeType27 OBJ_pilotAttributeType,27L + +#define LN_mXRecord "mXRecord" +#define NID_mXRecord 480 +#define OBJ_mXRecord OBJ_pilotAttributeType,28L + +#define LN_nSRecord "nSRecord" +#define NID_nSRecord 481 +#define OBJ_nSRecord OBJ_pilotAttributeType,29L + +#define LN_sOARecord "sOARecord" +#define NID_sOARecord 482 +#define OBJ_sOARecord OBJ_pilotAttributeType,30L + +#define LN_cNAMERecord "cNAMERecord" +#define NID_cNAMERecord 483 +#define OBJ_cNAMERecord OBJ_pilotAttributeType,31L + +#define LN_associatedDomain "associatedDomain" +#define NID_associatedDomain 484 +#define OBJ_associatedDomain OBJ_pilotAttributeType,37L + +#define LN_associatedName "associatedName" +#define NID_associatedName 485 +#define OBJ_associatedName OBJ_pilotAttributeType,38L + +#define LN_homePostalAddress "homePostalAddress" +#define NID_homePostalAddress 486 +#define OBJ_homePostalAddress OBJ_pilotAttributeType,39L + +#define LN_personalTitle "personalTitle" +#define NID_personalTitle 487 +#define OBJ_personalTitle OBJ_pilotAttributeType,40L + +#define LN_mobileTelephoneNumber "mobileTelephoneNumber" +#define NID_mobileTelephoneNumber 488 +#define OBJ_mobileTelephoneNumber OBJ_pilotAttributeType,41L + +#define LN_pagerTelephoneNumber "pagerTelephoneNumber" +#define NID_pagerTelephoneNumber 489 +#define OBJ_pagerTelephoneNumber OBJ_pilotAttributeType,42L + +#define LN_friendlyCountryName "friendlyCountryName" +#define NID_friendlyCountryName 490 +#define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L + +#define LN_organizationalStatus "organizationalStatus" +#define NID_organizationalStatus 491 +#define OBJ_organizationalStatus OBJ_pilotAttributeType,45L + +#define LN_janetMailbox "janetMailbox" +#define NID_janetMailbox 492 +#define OBJ_janetMailbox OBJ_pilotAttributeType,46L + +#define LN_mailPreferenceOption "mailPreferenceOption" +#define NID_mailPreferenceOption 493 +#define OBJ_mailPreferenceOption OBJ_pilotAttributeType,47L + +#define LN_buildingName "buildingName" +#define NID_buildingName 494 +#define OBJ_buildingName OBJ_pilotAttributeType,48L + +#define LN_dSAQuality "dSAQuality" +#define NID_dSAQuality 495 +#define OBJ_dSAQuality OBJ_pilotAttributeType,49L + +#define LN_singleLevelQuality "singleLevelQuality" +#define NID_singleLevelQuality 496 +#define OBJ_singleLevelQuality OBJ_pilotAttributeType,50L + +#define LN_subtreeMinimumQuality "subtreeMinimumQuality" +#define NID_subtreeMinimumQuality 497 +#define OBJ_subtreeMinimumQuality OBJ_pilotAttributeType,51L + +#define LN_subtreeMaximumQuality "subtreeMaximumQuality" +#define NID_subtreeMaximumQuality 498 +#define OBJ_subtreeMaximumQuality OBJ_pilotAttributeType,52L + +#define LN_personalSignature "personalSignature" +#define NID_personalSignature 499 +#define OBJ_personalSignature OBJ_pilotAttributeType,53L + +#define LN_dITRedirect "dITRedirect" +#define NID_dITRedirect 500 +#define OBJ_dITRedirect OBJ_pilotAttributeType,54L + +#define SN_audio "audio" +#define NID_audio 501 +#define OBJ_audio OBJ_pilotAttributeType,55L + +#define LN_documentPublisher "documentPublisher" +#define NID_documentPublisher 502 +#define OBJ_documentPublisher OBJ_pilotAttributeType,56L + +#define SN_id_set "id-set" +#define LN_id_set "Secure Electronic Transactions" +#define NID_id_set 512 +#define OBJ_id_set OBJ_international_organizations,42L + +#define SN_set_ctype "set-ctype" +#define LN_set_ctype "content types" +#define NID_set_ctype 513 +#define OBJ_set_ctype OBJ_id_set,0L + +#define SN_set_msgExt "set-msgExt" +#define LN_set_msgExt "message extensions" +#define NID_set_msgExt 514 +#define OBJ_set_msgExt OBJ_id_set,1L + +#define SN_set_attr "set-attr" +#define NID_set_attr 515 +#define OBJ_set_attr OBJ_id_set,3L + +#define SN_set_policy "set-policy" +#define NID_set_policy 516 +#define OBJ_set_policy OBJ_id_set,5L + +#define SN_set_certExt "set-certExt" +#define LN_set_certExt "certificate extensions" +#define NID_set_certExt 517 +#define OBJ_set_certExt OBJ_id_set,7L + +#define SN_set_brand "set-brand" +#define NID_set_brand 518 +#define OBJ_set_brand OBJ_id_set,8L + +#define SN_setct_PANData "setct-PANData" +#define NID_setct_PANData 519 +#define OBJ_setct_PANData OBJ_set_ctype,0L + +#define SN_setct_PANToken "setct-PANToken" +#define NID_setct_PANToken 520 +#define OBJ_setct_PANToken OBJ_set_ctype,1L + +#define SN_setct_PANOnly "setct-PANOnly" +#define NID_setct_PANOnly 521 +#define OBJ_setct_PANOnly OBJ_set_ctype,2L + +#define SN_setct_OIData "setct-OIData" +#define NID_setct_OIData 522 +#define OBJ_setct_OIData OBJ_set_ctype,3L + +#define SN_setct_PI "setct-PI" +#define NID_setct_PI 523 +#define OBJ_setct_PI OBJ_set_ctype,4L + +#define SN_setct_PIData "setct-PIData" +#define NID_setct_PIData 524 +#define OBJ_setct_PIData OBJ_set_ctype,5L + +#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned" +#define NID_setct_PIDataUnsigned 525 +#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L + +#define SN_setct_HODInput "setct-HODInput" +#define NID_setct_HODInput 526 +#define OBJ_setct_HODInput OBJ_set_ctype,7L + +#define SN_setct_AuthResBaggage "setct-AuthResBaggage" +#define NID_setct_AuthResBaggage 527 +#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L + +#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage" +#define NID_setct_AuthRevReqBaggage 528 +#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L + +#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage" +#define NID_setct_AuthRevResBaggage 529 +#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L + +#define SN_setct_CapTokenSeq "setct-CapTokenSeq" +#define NID_setct_CapTokenSeq 530 +#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L + +#define SN_setct_PInitResData "setct-PInitResData" +#define NID_setct_PInitResData 531 +#define OBJ_setct_PInitResData OBJ_set_ctype,12L + +#define SN_setct_PI_TBS "setct-PI-TBS" +#define NID_setct_PI_TBS 532 +#define OBJ_setct_PI_TBS OBJ_set_ctype,13L + +#define SN_setct_PResData "setct-PResData" +#define NID_setct_PResData 533 +#define OBJ_setct_PResData OBJ_set_ctype,14L + +#define SN_setct_AuthReqTBS "setct-AuthReqTBS" +#define NID_setct_AuthReqTBS 534 +#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L + +#define SN_setct_AuthResTBS "setct-AuthResTBS" +#define NID_setct_AuthResTBS 535 +#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L + +#define SN_setct_AuthResTBSX "setct-AuthResTBSX" +#define NID_setct_AuthResTBSX 536 +#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L + +#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS" +#define NID_setct_AuthTokenTBS 537 +#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L + +#define SN_setct_CapTokenData "setct-CapTokenData" +#define NID_setct_CapTokenData 538 +#define OBJ_setct_CapTokenData OBJ_set_ctype,20L + +#define SN_setct_CapTokenTBS "setct-CapTokenTBS" +#define NID_setct_CapTokenTBS 539 +#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L + +#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg" +#define NID_setct_AcqCardCodeMsg 540 +#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L + +#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS" +#define NID_setct_AuthRevReqTBS 541 +#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L + +#define SN_setct_AuthRevResData "setct-AuthRevResData" +#define NID_setct_AuthRevResData 542 +#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L + +#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS" +#define NID_setct_AuthRevResTBS 543 +#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L + +#define SN_setct_CapReqTBS "setct-CapReqTBS" +#define NID_setct_CapReqTBS 544 +#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L + +#define SN_setct_CapReqTBSX "setct-CapReqTBSX" +#define NID_setct_CapReqTBSX 545 +#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L + +#define SN_setct_CapResData "setct-CapResData" +#define NID_setct_CapResData 546 +#define OBJ_setct_CapResData OBJ_set_ctype,28L + +#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS" +#define NID_setct_CapRevReqTBS 547 +#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L + +#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX" +#define NID_setct_CapRevReqTBSX 548 +#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L + +#define SN_setct_CapRevResData "setct-CapRevResData" +#define NID_setct_CapRevResData 549 +#define OBJ_setct_CapRevResData OBJ_set_ctype,31L + +#define SN_setct_CredReqTBS "setct-CredReqTBS" +#define NID_setct_CredReqTBS 550 +#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L + +#define SN_setct_CredReqTBSX "setct-CredReqTBSX" +#define NID_setct_CredReqTBSX 551 +#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L + +#define SN_setct_CredResData "setct-CredResData" +#define NID_setct_CredResData 552 +#define OBJ_setct_CredResData OBJ_set_ctype,34L + +#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS" +#define NID_setct_CredRevReqTBS 553 +#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L + +#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX" +#define NID_setct_CredRevReqTBSX 554 +#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L + +#define SN_setct_CredRevResData "setct-CredRevResData" +#define NID_setct_CredRevResData 555 +#define OBJ_setct_CredRevResData OBJ_set_ctype,37L + +#define SN_setct_PCertReqData "setct-PCertReqData" +#define NID_setct_PCertReqData 556 +#define OBJ_setct_PCertReqData OBJ_set_ctype,38L + +#define SN_setct_PCertResTBS "setct-PCertResTBS" +#define NID_setct_PCertResTBS 557 +#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L + +#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData" +#define NID_setct_BatchAdminReqData 558 +#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L + +#define SN_setct_BatchAdminResData "setct-BatchAdminResData" +#define NID_setct_BatchAdminResData 559 +#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L + +#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS" +#define NID_setct_CardCInitResTBS 560 +#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L + +#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS" +#define NID_setct_MeAqCInitResTBS 561 +#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L + +#define SN_setct_RegFormResTBS "setct-RegFormResTBS" +#define NID_setct_RegFormResTBS 562 +#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L + +#define SN_setct_CertReqData "setct-CertReqData" +#define NID_setct_CertReqData 563 +#define OBJ_setct_CertReqData OBJ_set_ctype,45L + +#define SN_setct_CertReqTBS "setct-CertReqTBS" +#define NID_setct_CertReqTBS 564 +#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L + +#define SN_setct_CertResData "setct-CertResData" +#define NID_setct_CertResData 565 +#define OBJ_setct_CertResData OBJ_set_ctype,47L + +#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS" +#define NID_setct_CertInqReqTBS 566 +#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L + +#define SN_setct_ErrorTBS "setct-ErrorTBS" +#define NID_setct_ErrorTBS 567 +#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L + +#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE" +#define NID_setct_PIDualSignedTBE 568 +#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L + +#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE" +#define NID_setct_PIUnsignedTBE 569 +#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L + +#define SN_setct_AuthReqTBE "setct-AuthReqTBE" +#define NID_setct_AuthReqTBE 570 +#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L + +#define SN_setct_AuthResTBE "setct-AuthResTBE" +#define NID_setct_AuthResTBE 571 +#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L + +#define SN_setct_AuthResTBEX "setct-AuthResTBEX" +#define NID_setct_AuthResTBEX 572 +#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L + +#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE" +#define NID_setct_AuthTokenTBE 573 +#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L + +#define SN_setct_CapTokenTBE "setct-CapTokenTBE" +#define NID_setct_CapTokenTBE 574 +#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L + +#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX" +#define NID_setct_CapTokenTBEX 575 +#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L + +#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE" +#define NID_setct_AcqCardCodeMsgTBE 576 +#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L + +#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE" +#define NID_setct_AuthRevReqTBE 577 +#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L + +#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE" +#define NID_setct_AuthRevResTBE 578 +#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L + +#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB" +#define NID_setct_AuthRevResTBEB 579 +#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L + +#define SN_setct_CapReqTBE "setct-CapReqTBE" +#define NID_setct_CapReqTBE 580 +#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L + +#define SN_setct_CapReqTBEX "setct-CapReqTBEX" +#define NID_setct_CapReqTBEX 581 +#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L + +#define SN_setct_CapResTBE "setct-CapResTBE" +#define NID_setct_CapResTBE 582 +#define OBJ_setct_CapResTBE OBJ_set_ctype,64L + +#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE" +#define NID_setct_CapRevReqTBE 583 +#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L + +#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX" +#define NID_setct_CapRevReqTBEX 584 +#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L + +#define SN_setct_CapRevResTBE "setct-CapRevResTBE" +#define NID_setct_CapRevResTBE 585 +#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L + +#define SN_setct_CredReqTBE "setct-CredReqTBE" +#define NID_setct_CredReqTBE 586 +#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L + +#define SN_setct_CredReqTBEX "setct-CredReqTBEX" +#define NID_setct_CredReqTBEX 587 +#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L + +#define SN_setct_CredResTBE "setct-CredResTBE" +#define NID_setct_CredResTBE 588 +#define OBJ_setct_CredResTBE OBJ_set_ctype,70L + +#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE" +#define NID_setct_CredRevReqTBE 589 +#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L + +#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX" +#define NID_setct_CredRevReqTBEX 590 +#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L + +#define SN_setct_CredRevResTBE "setct-CredRevResTBE" +#define NID_setct_CredRevResTBE 591 +#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L + +#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE" +#define NID_setct_BatchAdminReqTBE 592 +#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L + +#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE" +#define NID_setct_BatchAdminResTBE 593 +#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L + +#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE" +#define NID_setct_RegFormReqTBE 594 +#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L + +#define SN_setct_CertReqTBE "setct-CertReqTBE" +#define NID_setct_CertReqTBE 595 +#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L + +#define SN_setct_CertReqTBEX "setct-CertReqTBEX" +#define NID_setct_CertReqTBEX 596 +#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L + +#define SN_setct_CertResTBE "setct-CertResTBE" +#define NID_setct_CertResTBE 597 +#define OBJ_setct_CertResTBE OBJ_set_ctype,79L + +#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS" +#define NID_setct_CRLNotificationTBS 598 +#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L + +#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS" +#define NID_setct_CRLNotificationResTBS 599 +#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L + +#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS" +#define NID_setct_BCIDistributionTBS 600 +#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L + +#define SN_setext_genCrypt "setext-genCrypt" +#define LN_setext_genCrypt "generic cryptogram" +#define NID_setext_genCrypt 601 +#define OBJ_setext_genCrypt OBJ_set_msgExt,1L + +#define SN_setext_miAuth "setext-miAuth" +#define LN_setext_miAuth "merchant initiated auth" +#define NID_setext_miAuth 602 +#define OBJ_setext_miAuth OBJ_set_msgExt,3L + +#define SN_setext_pinSecure "setext-pinSecure" +#define NID_setext_pinSecure 603 +#define OBJ_setext_pinSecure OBJ_set_msgExt,4L + +#define SN_setext_pinAny "setext-pinAny" +#define NID_setext_pinAny 604 +#define OBJ_setext_pinAny OBJ_set_msgExt,5L + +#define SN_setext_track2 "setext-track2" +#define NID_setext_track2 605 +#define OBJ_setext_track2 OBJ_set_msgExt,7L + +#define SN_setext_cv "setext-cv" +#define LN_setext_cv "additional verification" +#define NID_setext_cv 606 +#define OBJ_setext_cv OBJ_set_msgExt,8L + +#define SN_set_policy_root "set-policy-root" +#define NID_set_policy_root 607 +#define OBJ_set_policy_root OBJ_set_policy,0L + +#define SN_setCext_hashedRoot "setCext-hashedRoot" +#define NID_setCext_hashedRoot 608 +#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L + +#define SN_setCext_certType "setCext-certType" +#define NID_setCext_certType 609 +#define OBJ_setCext_certType OBJ_set_certExt,1L + +#define SN_setCext_merchData "setCext-merchData" +#define NID_setCext_merchData 610 +#define OBJ_setCext_merchData OBJ_set_certExt,2L + +#define SN_setCext_cCertRequired "setCext-cCertRequired" +#define NID_setCext_cCertRequired 611 +#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L + +#define SN_setCext_tunneling "setCext-tunneling" +#define NID_setCext_tunneling 612 +#define OBJ_setCext_tunneling OBJ_set_certExt,4L + +#define SN_setCext_setExt "setCext-setExt" +#define NID_setCext_setExt 613 +#define OBJ_setCext_setExt OBJ_set_certExt,5L + +#define SN_setCext_setQualf "setCext-setQualf" +#define NID_setCext_setQualf 614 +#define OBJ_setCext_setQualf OBJ_set_certExt,6L + +#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities" +#define NID_setCext_PGWYcapabilities 615 +#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L + +#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier" +#define NID_setCext_TokenIdentifier 616 +#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L + +#define SN_setCext_Track2Data "setCext-Track2Data" +#define NID_setCext_Track2Data 617 +#define OBJ_setCext_Track2Data OBJ_set_certExt,9L + +#define SN_setCext_TokenType "setCext-TokenType" +#define NID_setCext_TokenType 618 +#define OBJ_setCext_TokenType OBJ_set_certExt,10L + +#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities" +#define NID_setCext_IssuerCapabilities 619 +#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L + +#define SN_setAttr_Cert "setAttr-Cert" +#define NID_setAttr_Cert 620 +#define OBJ_setAttr_Cert OBJ_set_attr,0L + +#define SN_setAttr_PGWYcap "setAttr-PGWYcap" +#define LN_setAttr_PGWYcap "payment gateway capabilities" +#define NID_setAttr_PGWYcap 621 +#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L + +#define SN_setAttr_TokenType "setAttr-TokenType" +#define NID_setAttr_TokenType 622 +#define OBJ_setAttr_TokenType OBJ_set_attr,2L + +#define SN_setAttr_IssCap "setAttr-IssCap" +#define LN_setAttr_IssCap "issuer capabilities" +#define NID_setAttr_IssCap 623 +#define OBJ_setAttr_IssCap OBJ_set_attr,3L + +#define SN_set_rootKeyThumb "set-rootKeyThumb" +#define NID_set_rootKeyThumb 624 +#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L + +#define SN_set_addPolicy "set-addPolicy" +#define NID_set_addPolicy 625 +#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L + +#define SN_setAttr_Token_EMV "setAttr-Token-EMV" +#define NID_setAttr_Token_EMV 626 +#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L + +#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime" +#define NID_setAttr_Token_B0Prime 627 +#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L + +#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM" +#define NID_setAttr_IssCap_CVM 628 +#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L + +#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2" +#define NID_setAttr_IssCap_T2 629 +#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L + +#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig" +#define NID_setAttr_IssCap_Sig 630 +#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L + +#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm" +#define LN_setAttr_GenCryptgrm "generate cryptogram" +#define NID_setAttr_GenCryptgrm 631 +#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L + +#define SN_setAttr_T2Enc "setAttr-T2Enc" +#define LN_setAttr_T2Enc "encrypted track 2" +#define NID_setAttr_T2Enc 632 +#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L + +#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt" +#define LN_setAttr_T2cleartxt "cleartext track 2" +#define NID_setAttr_T2cleartxt 633 +#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L + +#define SN_setAttr_TokICCsig "setAttr-TokICCsig" +#define LN_setAttr_TokICCsig "ICC or token signature" +#define NID_setAttr_TokICCsig 634 +#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L + +#define SN_setAttr_SecDevSig "setAttr-SecDevSig" +#define LN_setAttr_SecDevSig "secure device signature" +#define NID_setAttr_SecDevSig 635 +#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L + +#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA" +#define NID_set_brand_IATA_ATA 636 +#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L + +#define SN_set_brand_Diners "set-brand-Diners" +#define NID_set_brand_Diners 637 +#define OBJ_set_brand_Diners OBJ_set_brand,30L + +#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress" +#define NID_set_brand_AmericanExpress 638 +#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L + +#define SN_set_brand_JCB "set-brand-JCB" +#define NID_set_brand_JCB 639 +#define OBJ_set_brand_JCB OBJ_set_brand,35L + +#define SN_set_brand_Visa "set-brand-Visa" +#define NID_set_brand_Visa 640 +#define OBJ_set_brand_Visa OBJ_set_brand,4L + +#define SN_set_brand_MasterCard "set-brand-MasterCard" +#define NID_set_brand_MasterCard 641 +#define OBJ_set_brand_MasterCard OBJ_set_brand,5L + +#define SN_set_brand_Novus "set-brand-Novus" +#define NID_set_brand_Novus 642 +#define OBJ_set_brand_Novus OBJ_set_brand,6011L + +#define SN_des_cdmf "DES-CDMF" +#define LN_des_cdmf "des-cdmf" +#define NID_des_cdmf 643 +#define OBJ_des_cdmf OBJ_rsadsi,3L,10L + +#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET" +#define NID_rsaOAEPEncryptionSET 644 +#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L + +#define SN_ipsec3 "Oakley-EC2N-3" +#define LN_ipsec3 "ipsec3" +#define NID_ipsec3 749 + +#define SN_ipsec4 "Oakley-EC2N-4" +#define LN_ipsec4 "ipsec4" +#define NID_ipsec4 750 + +#define SN_whirlpool "whirlpool" +#define NID_whirlpool 804 +#define OBJ_whirlpool OBJ_iso,0L,10118L,3L,0L,55L + +#define SN_cryptopro "cryptopro" +#define NID_cryptopro 805 +#define OBJ_cryptopro OBJ_member_body,643L,2L,2L + +#define SN_cryptocom "cryptocom" +#define NID_cryptocom 806 +#define OBJ_cryptocom OBJ_member_body,643L,2L,9L + +#define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" +#define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" +#define NID_id_GostR3411_94_with_GostR3410_2001 807 +#define OBJ_id_GostR3411_94_with_GostR3410_2001 OBJ_cryptopro,3L + +#define SN_id_GostR3411_94_with_GostR3410_94 "id-GostR3411-94-with-GostR3410-94" +#define LN_id_GostR3411_94_with_GostR3410_94 "GOST R 34.11-94 with GOST R 34.10-94" +#define NID_id_GostR3411_94_with_GostR3410_94 808 +#define OBJ_id_GostR3411_94_with_GostR3410_94 OBJ_cryptopro,4L + +#define SN_id_GostR3411_94 "md_gost94" +#define LN_id_GostR3411_94 "GOST R 34.11-94" +#define NID_id_GostR3411_94 809 +#define OBJ_id_GostR3411_94 OBJ_cryptopro,9L + +#define SN_id_HMACGostR3411_94 "id-HMACGostR3411-94" +#define LN_id_HMACGostR3411_94 "HMAC GOST 34.11-94" +#define NID_id_HMACGostR3411_94 810 +#define OBJ_id_HMACGostR3411_94 OBJ_cryptopro,10L + +#define SN_id_GostR3410_2001 "gost2001" +#define LN_id_GostR3410_2001 "GOST R 34.10-2001" +#define NID_id_GostR3410_2001 811 +#define OBJ_id_GostR3410_2001 OBJ_cryptopro,19L + +#define SN_id_GostR3410_94 "gost94" +#define LN_id_GostR3410_94 "GOST R 34.10-94" +#define NID_id_GostR3410_94 812 +#define OBJ_id_GostR3410_94 OBJ_cryptopro,20L + +#define SN_id_Gost28147_89 "gost89" +#define LN_id_Gost28147_89 "GOST 28147-89" +#define NID_id_Gost28147_89 813 +#define OBJ_id_Gost28147_89 OBJ_cryptopro,21L + +#define SN_gost89_cnt "gost89-cnt" +#define NID_gost89_cnt 814 + +#define SN_id_Gost28147_89_MAC "gost-mac" +#define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" +#define NID_id_Gost28147_89_MAC 815 +#define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L + +#define SN_id_GostR3411_94_prf "prf-gostr3411-94" +#define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" +#define NID_id_GostR3411_94_prf 816 +#define OBJ_id_GostR3411_94_prf OBJ_cryptopro,23L + +#define SN_id_GostR3410_2001DH "id-GostR3410-2001DH" +#define LN_id_GostR3410_2001DH "GOST R 34.10-2001 DH" +#define NID_id_GostR3410_2001DH 817 +#define OBJ_id_GostR3410_2001DH OBJ_cryptopro,98L + +#define SN_id_GostR3410_94DH "id-GostR3410-94DH" +#define LN_id_GostR3410_94DH "GOST R 34.10-94 DH" +#define NID_id_GostR3410_94DH 818 +#define OBJ_id_GostR3410_94DH OBJ_cryptopro,99L + +#define SN_id_Gost28147_89_CryptoPro_KeyMeshing "id-Gost28147-89-CryptoPro-KeyMeshing" +#define NID_id_Gost28147_89_CryptoPro_KeyMeshing 819 +#define OBJ_id_Gost28147_89_CryptoPro_KeyMeshing OBJ_cryptopro,14L,1L + +#define SN_id_Gost28147_89_None_KeyMeshing "id-Gost28147-89-None-KeyMeshing" +#define NID_id_Gost28147_89_None_KeyMeshing 820 +#define OBJ_id_Gost28147_89_None_KeyMeshing OBJ_cryptopro,14L,0L + +#define SN_id_GostR3411_94_TestParamSet "id-GostR3411-94-TestParamSet" +#define NID_id_GostR3411_94_TestParamSet 821 +#define OBJ_id_GostR3411_94_TestParamSet OBJ_cryptopro,30L,0L + +#define SN_id_GostR3411_94_CryptoProParamSet "id-GostR3411-94-CryptoProParamSet" +#define NID_id_GostR3411_94_CryptoProParamSet 822 +#define OBJ_id_GostR3411_94_CryptoProParamSet OBJ_cryptopro,30L,1L + +#define SN_id_Gost28147_89_TestParamSet "id-Gost28147-89-TestParamSet" +#define NID_id_Gost28147_89_TestParamSet 823 +#define OBJ_id_Gost28147_89_TestParamSet OBJ_cryptopro,31L,0L + +#define SN_id_Gost28147_89_CryptoPro_A_ParamSet "id-Gost28147-89-CryptoPro-A-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_A_ParamSet 824 +#define OBJ_id_Gost28147_89_CryptoPro_A_ParamSet OBJ_cryptopro,31L,1L + +#define SN_id_Gost28147_89_CryptoPro_B_ParamSet "id-Gost28147-89-CryptoPro-B-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_B_ParamSet 825 +#define OBJ_id_Gost28147_89_CryptoPro_B_ParamSet OBJ_cryptopro,31L,2L + +#define SN_id_Gost28147_89_CryptoPro_C_ParamSet "id-Gost28147-89-CryptoPro-C-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_C_ParamSet 826 +#define OBJ_id_Gost28147_89_CryptoPro_C_ParamSet OBJ_cryptopro,31L,3L + +#define SN_id_Gost28147_89_CryptoPro_D_ParamSet "id-Gost28147-89-CryptoPro-D-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_D_ParamSet 827 +#define OBJ_id_Gost28147_89_CryptoPro_D_ParamSet OBJ_cryptopro,31L,4L + +#define SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet 828 +#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet OBJ_cryptopro,31L,5L + +#define SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet 829 +#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet OBJ_cryptopro,31L,6L + +#define SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet "id-Gost28147-89-CryptoPro-RIC-1-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet 830 +#define OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet OBJ_cryptopro,31L,7L + +#define SN_id_GostR3410_94_TestParamSet "id-GostR3410-94-TestParamSet" +#define NID_id_GostR3410_94_TestParamSet 831 +#define OBJ_id_GostR3410_94_TestParamSet OBJ_cryptopro,32L,0L + +#define SN_id_GostR3410_94_CryptoPro_A_ParamSet "id-GostR3410-94-CryptoPro-A-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_A_ParamSet 832 +#define OBJ_id_GostR3410_94_CryptoPro_A_ParamSet OBJ_cryptopro,32L,2L + +#define SN_id_GostR3410_94_CryptoPro_B_ParamSet "id-GostR3410-94-CryptoPro-B-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_B_ParamSet 833 +#define OBJ_id_GostR3410_94_CryptoPro_B_ParamSet OBJ_cryptopro,32L,3L + +#define SN_id_GostR3410_94_CryptoPro_C_ParamSet "id-GostR3410-94-CryptoPro-C-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_C_ParamSet 834 +#define OBJ_id_GostR3410_94_CryptoPro_C_ParamSet OBJ_cryptopro,32L,4L + +#define SN_id_GostR3410_94_CryptoPro_D_ParamSet "id-GostR3410-94-CryptoPro-D-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_D_ParamSet 835 +#define OBJ_id_GostR3410_94_CryptoPro_D_ParamSet OBJ_cryptopro,32L,5L + +#define SN_id_GostR3410_94_CryptoPro_XchA_ParamSet "id-GostR3410-94-CryptoPro-XchA-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_XchA_ParamSet 836 +#define OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet OBJ_cryptopro,33L,1L + +#define SN_id_GostR3410_94_CryptoPro_XchB_ParamSet "id-GostR3410-94-CryptoPro-XchB-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_XchB_ParamSet 837 +#define OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet OBJ_cryptopro,33L,2L + +#define SN_id_GostR3410_94_CryptoPro_XchC_ParamSet "id-GostR3410-94-CryptoPro-XchC-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_XchC_ParamSet 838 +#define OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet OBJ_cryptopro,33L,3L + +#define SN_id_GostR3410_2001_TestParamSet "id-GostR3410-2001-TestParamSet" +#define NID_id_GostR3410_2001_TestParamSet 839 +#define OBJ_id_GostR3410_2001_TestParamSet OBJ_cryptopro,35L,0L + +#define SN_id_GostR3410_2001_CryptoPro_A_ParamSet "id-GostR3410-2001-CryptoPro-A-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_A_ParamSet 840 +#define OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet OBJ_cryptopro,35L,1L + +#define SN_id_GostR3410_2001_CryptoPro_B_ParamSet "id-GostR3410-2001-CryptoPro-B-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_B_ParamSet 841 +#define OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet OBJ_cryptopro,35L,2L + +#define SN_id_GostR3410_2001_CryptoPro_C_ParamSet "id-GostR3410-2001-CryptoPro-C-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_C_ParamSet 842 +#define OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet OBJ_cryptopro,35L,3L + +#define SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet "id-GostR3410-2001-CryptoPro-XchA-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet 843 +#define OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet OBJ_cryptopro,36L,0L + +#define SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet "id-GostR3410-2001-CryptoPro-XchB-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet 844 +#define OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet OBJ_cryptopro,36L,1L + +#define SN_id_GostR3410_94_a "id-GostR3410-94-a" +#define NID_id_GostR3410_94_a 845 +#define OBJ_id_GostR3410_94_a OBJ_id_GostR3410_94,1L + +#define SN_id_GostR3410_94_aBis "id-GostR3410-94-aBis" +#define NID_id_GostR3410_94_aBis 846 +#define OBJ_id_GostR3410_94_aBis OBJ_id_GostR3410_94,2L + +#define SN_id_GostR3410_94_b "id-GostR3410-94-b" +#define NID_id_GostR3410_94_b 847 +#define OBJ_id_GostR3410_94_b OBJ_id_GostR3410_94,3L + +#define SN_id_GostR3410_94_bBis "id-GostR3410-94-bBis" +#define NID_id_GostR3410_94_bBis 848 +#define OBJ_id_GostR3410_94_bBis OBJ_id_GostR3410_94,4L + +#define SN_id_Gost28147_89_cc "id-Gost28147-89-cc" +#define LN_id_Gost28147_89_cc "GOST 28147-89 Cryptocom ParamSet" +#define NID_id_Gost28147_89_cc 849 +#define OBJ_id_Gost28147_89_cc OBJ_cryptocom,1L,6L,1L + +#define SN_id_GostR3410_94_cc "gost94cc" +#define LN_id_GostR3410_94_cc "GOST 34.10-94 Cryptocom" +#define NID_id_GostR3410_94_cc 850 +#define OBJ_id_GostR3410_94_cc OBJ_cryptocom,1L,5L,3L + +#define SN_id_GostR3410_2001_cc "gost2001cc" +#define LN_id_GostR3410_2001_cc "GOST 34.10-2001 Cryptocom" +#define NID_id_GostR3410_2001_cc 851 +#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L + +#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc" +#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" +#define NID_id_GostR3411_94_with_GostR3410_94_cc 852 +#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L + +#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc" +#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" +#define NID_id_GostR3411_94_with_GostR3410_2001_cc 853 +#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L + +#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc" +#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom" +#define NID_id_GostR3410_2001_ParamSet_cc 854 +#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L + +#define SN_camellia_128_cbc "CAMELLIA-128-CBC" +#define LN_camellia_128_cbc "camellia-128-cbc" +#define NID_camellia_128_cbc 751 +#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L + +#define SN_camellia_192_cbc "CAMELLIA-192-CBC" +#define LN_camellia_192_cbc "camellia-192-cbc" +#define NID_camellia_192_cbc 752 +#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L + +#define SN_camellia_256_cbc "CAMELLIA-256-CBC" +#define LN_camellia_256_cbc "camellia-256-cbc" +#define NID_camellia_256_cbc 753 +#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L + +#define SN_id_camellia128_wrap "id-camellia128-wrap" +#define NID_id_camellia128_wrap 907 +#define OBJ_id_camellia128_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,2L + +#define SN_id_camellia192_wrap "id-camellia192-wrap" +#define NID_id_camellia192_wrap 908 +#define OBJ_id_camellia192_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,3L + +#define SN_id_camellia256_wrap "id-camellia256-wrap" +#define NID_id_camellia256_wrap 909 +#define OBJ_id_camellia256_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,4L + +#define OBJ_ntt_ds 0L,3L,4401L,5L + +#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L + +#define SN_camellia_128_ecb "CAMELLIA-128-ECB" +#define LN_camellia_128_ecb "camellia-128-ecb" +#define NID_camellia_128_ecb 754 +#define OBJ_camellia_128_ecb OBJ_camellia,1L + +#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB" +#define LN_camellia_128_ofb128 "camellia-128-ofb" +#define NID_camellia_128_ofb128 766 +#define OBJ_camellia_128_ofb128 OBJ_camellia,3L + +#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB" +#define LN_camellia_128_cfb128 "camellia-128-cfb" +#define NID_camellia_128_cfb128 757 +#define OBJ_camellia_128_cfb128 OBJ_camellia,4L + +#define SN_camellia_192_ecb "CAMELLIA-192-ECB" +#define LN_camellia_192_ecb "camellia-192-ecb" +#define NID_camellia_192_ecb 755 +#define OBJ_camellia_192_ecb OBJ_camellia,21L + +#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB" +#define LN_camellia_192_ofb128 "camellia-192-ofb" +#define NID_camellia_192_ofb128 767 +#define OBJ_camellia_192_ofb128 OBJ_camellia,23L + +#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB" +#define LN_camellia_192_cfb128 "camellia-192-cfb" +#define NID_camellia_192_cfb128 758 +#define OBJ_camellia_192_cfb128 OBJ_camellia,24L + +#define SN_camellia_256_ecb "CAMELLIA-256-ECB" +#define LN_camellia_256_ecb "camellia-256-ecb" +#define NID_camellia_256_ecb 756 +#define OBJ_camellia_256_ecb OBJ_camellia,41L + +#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB" +#define LN_camellia_256_ofb128 "camellia-256-ofb" +#define NID_camellia_256_ofb128 768 +#define OBJ_camellia_256_ofb128 OBJ_camellia,43L + +#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB" +#define LN_camellia_256_cfb128 "camellia-256-cfb" +#define NID_camellia_256_cfb128 759 +#define OBJ_camellia_256_cfb128 OBJ_camellia,44L + +#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" +#define LN_camellia_128_cfb1 "camellia-128-cfb1" +#define NID_camellia_128_cfb1 760 + +#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1" +#define LN_camellia_192_cfb1 "camellia-192-cfb1" +#define NID_camellia_192_cfb1 761 + +#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1" +#define LN_camellia_256_cfb1 "camellia-256-cfb1" +#define NID_camellia_256_cfb1 762 + +#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8" +#define LN_camellia_128_cfb8 "camellia-128-cfb8" +#define NID_camellia_128_cfb8 763 + +#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8" +#define LN_camellia_192_cfb8 "camellia-192-cfb8" +#define NID_camellia_192_cfb8 764 + +#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8" +#define LN_camellia_256_cfb8 "camellia-256-cfb8" +#define NID_camellia_256_cfb8 765 + +#define SN_kisa "KISA" +#define LN_kisa "kisa" +#define NID_kisa 773 +#define OBJ_kisa OBJ_member_body,410L,200004L + +#define SN_seed_ecb "SEED-ECB" +#define LN_seed_ecb "seed-ecb" +#define NID_seed_ecb 776 +#define OBJ_seed_ecb OBJ_kisa,1L,3L + +#define SN_seed_cbc "SEED-CBC" +#define LN_seed_cbc "seed-cbc" +#define NID_seed_cbc 777 +#define OBJ_seed_cbc OBJ_kisa,1L,4L + +#define SN_seed_cfb128 "SEED-CFB" +#define LN_seed_cfb128 "seed-cfb" +#define NID_seed_cfb128 779 +#define OBJ_seed_cfb128 OBJ_kisa,1L,5L + +#define SN_seed_ofb128 "SEED-OFB" +#define LN_seed_ofb128 "seed-ofb" +#define NID_seed_ofb128 778 +#define OBJ_seed_ofb128 OBJ_kisa,1L,6L + +#define SN_hmac "HMAC" +#define LN_hmac "hmac" +#define NID_hmac 855 + +#define SN_cmac "CMAC" +#define LN_cmac "cmac" +#define NID_cmac 894 + +#define SN_rc4_hmac_md5 "RC4-HMAC-MD5" +#define LN_rc4_hmac_md5 "rc4-hmac-md5" +#define NID_rc4_hmac_md5 915 + +#define SN_aes_128_cbc_hmac_sha1 "AES-128-CBC-HMAC-SHA1" +#define LN_aes_128_cbc_hmac_sha1 "aes-128-cbc-hmac-sha1" +#define NID_aes_128_cbc_hmac_sha1 916 + +#define SN_aes_192_cbc_hmac_sha1 "AES-192-CBC-HMAC-SHA1" +#define LN_aes_192_cbc_hmac_sha1 "aes-192-cbc-hmac-sha1" +#define NID_aes_192_cbc_hmac_sha1 917 + +#define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" +#define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" +#define NID_aes_256_cbc_hmac_sha1 918 + +#define SN_aes_128_cbc_hmac_sha256 "AES-128-CBC-HMAC-SHA256" +#define LN_aes_128_cbc_hmac_sha256 "aes-128-cbc-hmac-sha256" +#define NID_aes_128_cbc_hmac_sha256 948 + +#define SN_aes_192_cbc_hmac_sha256 "AES-192-CBC-HMAC-SHA256" +#define LN_aes_192_cbc_hmac_sha256 "aes-192-cbc-hmac-sha256" +#define NID_aes_192_cbc_hmac_sha256 949 + +#define SN_aes_256_cbc_hmac_sha256 "AES-256-CBC-HMAC-SHA256" +#define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" +#define NID_aes_256_cbc_hmac_sha256 950 + +#define SN_dhpublicnumber "dhpublicnumber" +#define LN_dhpublicnumber "X9.42 DH" +#define NID_dhpublicnumber 920 +#define OBJ_dhpublicnumber OBJ_ISO_US,10046L,2L,1L + +#define SN_brainpoolP160r1 "brainpoolP160r1" +#define NID_brainpoolP160r1 921 +#define OBJ_brainpoolP160r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L + +#define SN_brainpoolP160t1 "brainpoolP160t1" +#define NID_brainpoolP160t1 922 +#define OBJ_brainpoolP160t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L + +#define SN_brainpoolP192r1 "brainpoolP192r1" +#define NID_brainpoolP192r1 923 +#define OBJ_brainpoolP192r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L + +#define SN_brainpoolP192t1 "brainpoolP192t1" +#define NID_brainpoolP192t1 924 +#define OBJ_brainpoolP192t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L + +#define SN_brainpoolP224r1 "brainpoolP224r1" +#define NID_brainpoolP224r1 925 +#define OBJ_brainpoolP224r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L + +#define SN_brainpoolP224t1 "brainpoolP224t1" +#define NID_brainpoolP224t1 926 +#define OBJ_brainpoolP224t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L + +#define SN_brainpoolP256r1 "brainpoolP256r1" +#define NID_brainpoolP256r1 927 +#define OBJ_brainpoolP256r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L + +#define SN_brainpoolP256t1 "brainpoolP256t1" +#define NID_brainpoolP256t1 928 +#define OBJ_brainpoolP256t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L + +#define SN_brainpoolP320r1 "brainpoolP320r1" +#define NID_brainpoolP320r1 929 +#define OBJ_brainpoolP320r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L + +#define SN_brainpoolP320t1 "brainpoolP320t1" +#define NID_brainpoolP320t1 930 +#define OBJ_brainpoolP320t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L + +#define SN_brainpoolP384r1 "brainpoolP384r1" +#define NID_brainpoolP384r1 931 +#define OBJ_brainpoolP384r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L + +#define SN_brainpoolP384t1 "brainpoolP384t1" +#define NID_brainpoolP384t1 932 +#define OBJ_brainpoolP384t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L + +#define SN_brainpoolP512r1 "brainpoolP512r1" +#define NID_brainpoolP512r1 933 +#define OBJ_brainpoolP512r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L + +#define SN_brainpoolP512t1 "brainpoolP512t1" +#define NID_brainpoolP512t1 934 +#define OBJ_brainpoolP512t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L + +#define OBJ_x9_63_scheme 1L,3L,133L,16L,840L,63L,0L + +#define OBJ_secg_scheme OBJ_certicom_arc,1L + +#define SN_dhSinglePass_stdDH_sha1kdf_scheme "dhSinglePass-stdDH-sha1kdf-scheme" +#define NID_dhSinglePass_stdDH_sha1kdf_scheme 936 +#define OBJ_dhSinglePass_stdDH_sha1kdf_scheme OBJ_x9_63_scheme,2L + +#define SN_dhSinglePass_stdDH_sha224kdf_scheme "dhSinglePass-stdDH-sha224kdf-scheme" +#define NID_dhSinglePass_stdDH_sha224kdf_scheme 937 +#define OBJ_dhSinglePass_stdDH_sha224kdf_scheme OBJ_secg_scheme,11L,0L + +#define SN_dhSinglePass_stdDH_sha256kdf_scheme "dhSinglePass-stdDH-sha256kdf-scheme" +#define NID_dhSinglePass_stdDH_sha256kdf_scheme 938 +#define OBJ_dhSinglePass_stdDH_sha256kdf_scheme OBJ_secg_scheme,11L,1L + +#define SN_dhSinglePass_stdDH_sha384kdf_scheme "dhSinglePass-stdDH-sha384kdf-scheme" +#define NID_dhSinglePass_stdDH_sha384kdf_scheme 939 +#define OBJ_dhSinglePass_stdDH_sha384kdf_scheme OBJ_secg_scheme,11L,2L + +#define SN_dhSinglePass_stdDH_sha512kdf_scheme "dhSinglePass-stdDH-sha512kdf-scheme" +#define NID_dhSinglePass_stdDH_sha512kdf_scheme 940 +#define OBJ_dhSinglePass_stdDH_sha512kdf_scheme OBJ_secg_scheme,11L,3L + +#define SN_dhSinglePass_cofactorDH_sha1kdf_scheme "dhSinglePass-cofactorDH-sha1kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha1kdf_scheme 941 +#define OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme OBJ_x9_63_scheme,3L + +#define SN_dhSinglePass_cofactorDH_sha224kdf_scheme "dhSinglePass-cofactorDH-sha224kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha224kdf_scheme 942 +#define OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme OBJ_secg_scheme,14L,0L + +#define SN_dhSinglePass_cofactorDH_sha256kdf_scheme "dhSinglePass-cofactorDH-sha256kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha256kdf_scheme 943 +#define OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme OBJ_secg_scheme,14L,1L + +#define SN_dhSinglePass_cofactorDH_sha384kdf_scheme "dhSinglePass-cofactorDH-sha384kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha384kdf_scheme 944 +#define OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme OBJ_secg_scheme,14L,2L + +#define SN_dhSinglePass_cofactorDH_sha512kdf_scheme "dhSinglePass-cofactorDH-sha512kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha512kdf_scheme 945 +#define OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme OBJ_secg_scheme,14L,3L + +#define SN_dh_std_kdf "dh-std-kdf" +#define NID_dh_std_kdf 946 + +#define SN_dh_cofactor_kdf "dh-cofactor-kdf" +#define NID_dh_cofactor_kdf 947 + +#define SN_ct_precert_scts "ct_precert_scts" +#define LN_ct_precert_scts "CT Precertificate SCTs" +#define NID_ct_precert_scts 951 +#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L + +#define SN_ct_precert_poison "ct_precert_poison" +#define LN_ct_precert_poison "CT Precertificate Poison" +#define NID_ct_precert_poison 952 +#define OBJ_ct_precert_poison 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L + +#define SN_ct_precert_signer "ct_precert_signer" +#define LN_ct_precert_signer "CT Precertificate Signer" +#define NID_ct_precert_signer 953 +#define OBJ_ct_precert_signer 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L + +#define SN_ct_cert_scts "ct_cert_scts" +#define LN_ct_cert_scts "CT Certificate SCTs" +#define NID_ct_cert_scts 954 +#define OBJ_ct_cert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L + +#define SN_jurisdictionLocalityName "jurisdictionL" +#define LN_jurisdictionLocalityName "jurisdictionLocalityName" +#define NID_jurisdictionLocalityName 955 +#define OBJ_jurisdictionLocalityName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,1L + +#define SN_jurisdictionStateOrProvinceName "jurisdictionST" +#define LN_jurisdictionStateOrProvinceName "jurisdictionStateOrProvinceName" +#define NID_jurisdictionStateOrProvinceName 956 +#define OBJ_jurisdictionStateOrProvinceName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,2L + +#define SN_jurisdictionCountryName "jurisdictionC" +#define LN_jurisdictionCountryName "jurisdictionCountryName" +#define NID_jurisdictionCountryName 957 +#define OBJ_jurisdictionCountryName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,3L diff --git a/External/include/openssl/objects.h b/External/include/openssl/objects.h new file mode 100644 index 00000000..b8dafa89 --- /dev/null +++ b/External/include/openssl/objects.h @@ -0,0 +1,1143 @@ +/* crypto/objects/objects.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_OBJECTS_H +# define HEADER_OBJECTS_H + +# define USE_OBJ_MAC + +# ifdef USE_OBJ_MAC +# include +# else +# define SN_undef "UNDEF" +# define LN_undef "undefined" +# define NID_undef 0 +# define OBJ_undef 0L + +# define SN_Algorithm "Algorithm" +# define LN_algorithm "algorithm" +# define NID_algorithm 38 +# define OBJ_algorithm 1L,3L,14L,3L,2L + +# define LN_rsadsi "rsadsi" +# define NID_rsadsi 1 +# define OBJ_rsadsi 1L,2L,840L,113549L + +# define LN_pkcs "pkcs" +# define NID_pkcs 2 +# define OBJ_pkcs OBJ_rsadsi,1L + +# define SN_md2 "MD2" +# define LN_md2 "md2" +# define NID_md2 3 +# define OBJ_md2 OBJ_rsadsi,2L,2L + +# define SN_md5 "MD5" +# define LN_md5 "md5" +# define NID_md5 4 +# define OBJ_md5 OBJ_rsadsi,2L,5L + +# define SN_rc4 "RC4" +# define LN_rc4 "rc4" +# define NID_rc4 5 +# define OBJ_rc4 OBJ_rsadsi,3L,4L + +# define LN_rsaEncryption "rsaEncryption" +# define NID_rsaEncryption 6 +# define OBJ_rsaEncryption OBJ_pkcs,1L,1L + +# define SN_md2WithRSAEncryption "RSA-MD2" +# define LN_md2WithRSAEncryption "md2WithRSAEncryption" +# define NID_md2WithRSAEncryption 7 +# define OBJ_md2WithRSAEncryption OBJ_pkcs,1L,2L + +# define SN_md5WithRSAEncryption "RSA-MD5" +# define LN_md5WithRSAEncryption "md5WithRSAEncryption" +# define NID_md5WithRSAEncryption 8 +# define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L + +# define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" +# define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" +# define NID_pbeWithMD2AndDES_CBC 9 +# define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L + +# define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" +# define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" +# define NID_pbeWithMD5AndDES_CBC 10 +# define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L + +# define LN_X500 "X500" +# define NID_X500 11 +# define OBJ_X500 2L,5L + +# define LN_X509 "X509" +# define NID_X509 12 +# define OBJ_X509 OBJ_X500,4L + +# define SN_commonName "CN" +# define LN_commonName "commonName" +# define NID_commonName 13 +# define OBJ_commonName OBJ_X509,3L + +# define SN_countryName "C" +# define LN_countryName "countryName" +# define NID_countryName 14 +# define OBJ_countryName OBJ_X509,6L + +# define SN_localityName "L" +# define LN_localityName "localityName" +# define NID_localityName 15 +# define OBJ_localityName OBJ_X509,7L + +/* Postal Address? PA */ + +/* should be "ST" (rfc1327) but MS uses 'S' */ +# define SN_stateOrProvinceName "ST" +# define LN_stateOrProvinceName "stateOrProvinceName" +# define NID_stateOrProvinceName 16 +# define OBJ_stateOrProvinceName OBJ_X509,8L + +# define SN_organizationName "O" +# define LN_organizationName "organizationName" +# define NID_organizationName 17 +# define OBJ_organizationName OBJ_X509,10L + +# define SN_organizationalUnitName "OU" +# define LN_organizationalUnitName "organizationalUnitName" +# define NID_organizationalUnitName 18 +# define OBJ_organizationalUnitName OBJ_X509,11L + +# define SN_rsa "RSA" +# define LN_rsa "rsa" +# define NID_rsa 19 +# define OBJ_rsa OBJ_X500,8L,1L,1L + +# define LN_pkcs7 "pkcs7" +# define NID_pkcs7 20 +# define OBJ_pkcs7 OBJ_pkcs,7L + +# define LN_pkcs7_data "pkcs7-data" +# define NID_pkcs7_data 21 +# define OBJ_pkcs7_data OBJ_pkcs7,1L + +# define LN_pkcs7_signed "pkcs7-signedData" +# define NID_pkcs7_signed 22 +# define OBJ_pkcs7_signed OBJ_pkcs7,2L + +# define LN_pkcs7_enveloped "pkcs7-envelopedData" +# define NID_pkcs7_enveloped 23 +# define OBJ_pkcs7_enveloped OBJ_pkcs7,3L + +# define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" +# define NID_pkcs7_signedAndEnveloped 24 +# define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L + +# define LN_pkcs7_digest "pkcs7-digestData" +# define NID_pkcs7_digest 25 +# define OBJ_pkcs7_digest OBJ_pkcs7,5L + +# define LN_pkcs7_encrypted "pkcs7-encryptedData" +# define NID_pkcs7_encrypted 26 +# define OBJ_pkcs7_encrypted OBJ_pkcs7,6L + +# define LN_pkcs3 "pkcs3" +# define NID_pkcs3 27 +# define OBJ_pkcs3 OBJ_pkcs,3L + +# define LN_dhKeyAgreement "dhKeyAgreement" +# define NID_dhKeyAgreement 28 +# define OBJ_dhKeyAgreement OBJ_pkcs3,1L + +# define SN_des_ecb "DES-ECB" +# define LN_des_ecb "des-ecb" +# define NID_des_ecb 29 +# define OBJ_des_ecb OBJ_algorithm,6L + +# define SN_des_cfb64 "DES-CFB" +# define LN_des_cfb64 "des-cfb" +# define NID_des_cfb64 30 +/* IV + num */ +# define OBJ_des_cfb64 OBJ_algorithm,9L + +# define SN_des_cbc "DES-CBC" +# define LN_des_cbc "des-cbc" +# define NID_des_cbc 31 +/* IV */ +# define OBJ_des_cbc OBJ_algorithm,7L + +# define SN_des_ede "DES-EDE" +# define LN_des_ede "des-ede" +# define NID_des_ede 32 +/* ?? */ +# define OBJ_des_ede OBJ_algorithm,17L + +# define SN_des_ede3 "DES-EDE3" +# define LN_des_ede3 "des-ede3" +# define NID_des_ede3 33 + +# define SN_idea_cbc "IDEA-CBC" +# define LN_idea_cbc "idea-cbc" +# define NID_idea_cbc 34 +# define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L + +# define SN_idea_cfb64 "IDEA-CFB" +# define LN_idea_cfb64 "idea-cfb" +# define NID_idea_cfb64 35 + +# define SN_idea_ecb "IDEA-ECB" +# define LN_idea_ecb "idea-ecb" +# define NID_idea_ecb 36 + +# define SN_rc2_cbc "RC2-CBC" +# define LN_rc2_cbc "rc2-cbc" +# define NID_rc2_cbc 37 +# define OBJ_rc2_cbc OBJ_rsadsi,3L,2L + +# define SN_rc2_ecb "RC2-ECB" +# define LN_rc2_ecb "rc2-ecb" +# define NID_rc2_ecb 38 + +# define SN_rc2_cfb64 "RC2-CFB" +# define LN_rc2_cfb64 "rc2-cfb" +# define NID_rc2_cfb64 39 + +# define SN_rc2_ofb64 "RC2-OFB" +# define LN_rc2_ofb64 "rc2-ofb" +# define NID_rc2_ofb64 40 + +# define SN_sha "SHA" +# define LN_sha "sha" +# define NID_sha 41 +# define OBJ_sha OBJ_algorithm,18L + +# define SN_shaWithRSAEncryption "RSA-SHA" +# define LN_shaWithRSAEncryption "shaWithRSAEncryption" +# define NID_shaWithRSAEncryption 42 +# define OBJ_shaWithRSAEncryption OBJ_algorithm,15L + +# define SN_des_ede_cbc "DES-EDE-CBC" +# define LN_des_ede_cbc "des-ede-cbc" +# define NID_des_ede_cbc 43 + +# define SN_des_ede3_cbc "DES-EDE3-CBC" +# define LN_des_ede3_cbc "des-ede3-cbc" +# define NID_des_ede3_cbc 44 +# define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L + +# define SN_des_ofb64 "DES-OFB" +# define LN_des_ofb64 "des-ofb" +# define NID_des_ofb64 45 +# define OBJ_des_ofb64 OBJ_algorithm,8L + +# define SN_idea_ofb64 "IDEA-OFB" +# define LN_idea_ofb64 "idea-ofb" +# define NID_idea_ofb64 46 + +# define LN_pkcs9 "pkcs9" +# define NID_pkcs9 47 +# define OBJ_pkcs9 OBJ_pkcs,9L + +# define SN_pkcs9_emailAddress "Email" +# define LN_pkcs9_emailAddress "emailAddress" +# define NID_pkcs9_emailAddress 48 +# define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L + +# define LN_pkcs9_unstructuredName "unstructuredName" +# define NID_pkcs9_unstructuredName 49 +# define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L + +# define LN_pkcs9_contentType "contentType" +# define NID_pkcs9_contentType 50 +# define OBJ_pkcs9_contentType OBJ_pkcs9,3L + +# define LN_pkcs9_messageDigest "messageDigest" +# define NID_pkcs9_messageDigest 51 +# define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L + +# define LN_pkcs9_signingTime "signingTime" +# define NID_pkcs9_signingTime 52 +# define OBJ_pkcs9_signingTime OBJ_pkcs9,5L + +# define LN_pkcs9_countersignature "countersignature" +# define NID_pkcs9_countersignature 53 +# define OBJ_pkcs9_countersignature OBJ_pkcs9,6L + +# define LN_pkcs9_challengePassword "challengePassword" +# define NID_pkcs9_challengePassword 54 +# define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L + +# define LN_pkcs9_unstructuredAddress "unstructuredAddress" +# define NID_pkcs9_unstructuredAddress 55 +# define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L + +# define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" +# define NID_pkcs9_extCertAttributes 56 +# define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L + +# define SN_netscape "Netscape" +# define LN_netscape "Netscape Communications Corp." +# define NID_netscape 57 +# define OBJ_netscape 2L,16L,840L,1L,113730L + +# define SN_netscape_cert_extension "nsCertExt" +# define LN_netscape_cert_extension "Netscape Certificate Extension" +# define NID_netscape_cert_extension 58 +# define OBJ_netscape_cert_extension OBJ_netscape,1L + +# define SN_netscape_data_type "nsDataType" +# define LN_netscape_data_type "Netscape Data Type" +# define NID_netscape_data_type 59 +# define OBJ_netscape_data_type OBJ_netscape,2L + +# define SN_des_ede_cfb64 "DES-EDE-CFB" +# define LN_des_ede_cfb64 "des-ede-cfb" +# define NID_des_ede_cfb64 60 + +# define SN_des_ede3_cfb64 "DES-EDE3-CFB" +# define LN_des_ede3_cfb64 "des-ede3-cfb" +# define NID_des_ede3_cfb64 61 + +# define SN_des_ede_ofb64 "DES-EDE-OFB" +# define LN_des_ede_ofb64 "des-ede-ofb" +# define NID_des_ede_ofb64 62 + +# define SN_des_ede3_ofb64 "DES-EDE3-OFB" +# define LN_des_ede3_ofb64 "des-ede3-ofb" +# define NID_des_ede3_ofb64 63 + +/* I'm not sure about the object ID */ +# define SN_sha1 "SHA1" +# define LN_sha1 "sha1" +# define NID_sha1 64 +# define OBJ_sha1 OBJ_algorithm,26L +/* 28 Jun 1996 - eay */ +/* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */ + +# define SN_sha1WithRSAEncryption "RSA-SHA1" +# define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" +# define NID_sha1WithRSAEncryption 65 +# define OBJ_sha1WithRSAEncryption OBJ_pkcs,1L,5L + +# define SN_dsaWithSHA "DSA-SHA" +# define LN_dsaWithSHA "dsaWithSHA" +# define NID_dsaWithSHA 66 +# define OBJ_dsaWithSHA OBJ_algorithm,13L + +# define SN_dsa_2 "DSA-old" +# define LN_dsa_2 "dsaEncryption-old" +# define NID_dsa_2 67 +# define OBJ_dsa_2 OBJ_algorithm,12L + +/* proposed by microsoft to RSA */ +# define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" +# define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" +# define NID_pbeWithSHA1AndRC2_CBC 68 +# define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L + +/* + * proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now defined + * explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something completely + * different. + */ +# define LN_id_pbkdf2 "PBKDF2" +# define NID_id_pbkdf2 69 +# define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L + +# define SN_dsaWithSHA1_2 "DSA-SHA1-old" +# define LN_dsaWithSHA1_2 "dsaWithSHA1-old" +# define NID_dsaWithSHA1_2 70 +/* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */ +# define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L + +# define SN_netscape_cert_type "nsCertType" +# define LN_netscape_cert_type "Netscape Cert Type" +# define NID_netscape_cert_type 71 +# define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L + +# define SN_netscape_base_url "nsBaseUrl" +# define LN_netscape_base_url "Netscape Base Url" +# define NID_netscape_base_url 72 +# define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L + +# define SN_netscape_revocation_url "nsRevocationUrl" +# define LN_netscape_revocation_url "Netscape Revocation Url" +# define NID_netscape_revocation_url 73 +# define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L + +# define SN_netscape_ca_revocation_url "nsCaRevocationUrl" +# define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" +# define NID_netscape_ca_revocation_url 74 +# define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L + +# define SN_netscape_renewal_url "nsRenewalUrl" +# define LN_netscape_renewal_url "Netscape Renewal Url" +# define NID_netscape_renewal_url 75 +# define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L + +# define SN_netscape_ca_policy_url "nsCaPolicyUrl" +# define LN_netscape_ca_policy_url "Netscape CA Policy Url" +# define NID_netscape_ca_policy_url 76 +# define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L + +# define SN_netscape_ssl_server_name "nsSslServerName" +# define LN_netscape_ssl_server_name "Netscape SSL Server Name" +# define NID_netscape_ssl_server_name 77 +# define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L + +# define SN_netscape_comment "nsComment" +# define LN_netscape_comment "Netscape Comment" +# define NID_netscape_comment 78 +# define OBJ_netscape_comment OBJ_netscape_cert_extension,13L + +# define SN_netscape_cert_sequence "nsCertSequence" +# define LN_netscape_cert_sequence "Netscape Certificate Sequence" +# define NID_netscape_cert_sequence 79 +# define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L + +# define SN_desx_cbc "DESX-CBC" +# define LN_desx_cbc "desx-cbc" +# define NID_desx_cbc 80 + +# define SN_id_ce "id-ce" +# define NID_id_ce 81 +# define OBJ_id_ce 2L,5L,29L + +# define SN_subject_key_identifier "subjectKeyIdentifier" +# define LN_subject_key_identifier "X509v3 Subject Key Identifier" +# define NID_subject_key_identifier 82 +# define OBJ_subject_key_identifier OBJ_id_ce,14L + +# define SN_key_usage "keyUsage" +# define LN_key_usage "X509v3 Key Usage" +# define NID_key_usage 83 +# define OBJ_key_usage OBJ_id_ce,15L + +# define SN_private_key_usage_period "privateKeyUsagePeriod" +# define LN_private_key_usage_period "X509v3 Private Key Usage Period" +# define NID_private_key_usage_period 84 +# define OBJ_private_key_usage_period OBJ_id_ce,16L + +# define SN_subject_alt_name "subjectAltName" +# define LN_subject_alt_name "X509v3 Subject Alternative Name" +# define NID_subject_alt_name 85 +# define OBJ_subject_alt_name OBJ_id_ce,17L + +# define SN_issuer_alt_name "issuerAltName" +# define LN_issuer_alt_name "X509v3 Issuer Alternative Name" +# define NID_issuer_alt_name 86 +# define OBJ_issuer_alt_name OBJ_id_ce,18L + +# define SN_basic_constraints "basicConstraints" +# define LN_basic_constraints "X509v3 Basic Constraints" +# define NID_basic_constraints 87 +# define OBJ_basic_constraints OBJ_id_ce,19L + +# define SN_crl_number "crlNumber" +# define LN_crl_number "X509v3 CRL Number" +# define NID_crl_number 88 +# define OBJ_crl_number OBJ_id_ce,20L + +# define SN_certificate_policies "certificatePolicies" +# define LN_certificate_policies "X509v3 Certificate Policies" +# define NID_certificate_policies 89 +# define OBJ_certificate_policies OBJ_id_ce,32L + +# define SN_authority_key_identifier "authorityKeyIdentifier" +# define LN_authority_key_identifier "X509v3 Authority Key Identifier" +# define NID_authority_key_identifier 90 +# define OBJ_authority_key_identifier OBJ_id_ce,35L + +# define SN_bf_cbc "BF-CBC" +# define LN_bf_cbc "bf-cbc" +# define NID_bf_cbc 91 +# define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L + +# define SN_bf_ecb "BF-ECB" +# define LN_bf_ecb "bf-ecb" +# define NID_bf_ecb 92 + +# define SN_bf_cfb64 "BF-CFB" +# define LN_bf_cfb64 "bf-cfb" +# define NID_bf_cfb64 93 + +# define SN_bf_ofb64 "BF-OFB" +# define LN_bf_ofb64 "bf-ofb" +# define NID_bf_ofb64 94 + +# define SN_mdc2 "MDC2" +# define LN_mdc2 "mdc2" +# define NID_mdc2 95 +# define OBJ_mdc2 2L,5L,8L,3L,101L +/* An alternative? 1L,3L,14L,3L,2L,19L */ + +# define SN_mdc2WithRSA "RSA-MDC2" +# define LN_mdc2WithRSA "mdc2withRSA" +# define NID_mdc2WithRSA 96 +# define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L + +# define SN_rc4_40 "RC4-40" +# define LN_rc4_40 "rc4-40" +# define NID_rc4_40 97 + +# define SN_rc2_40_cbc "RC2-40-CBC" +# define LN_rc2_40_cbc "rc2-40-cbc" +# define NID_rc2_40_cbc 98 + +# define SN_givenName "G" +# define LN_givenName "givenName" +# define NID_givenName 99 +# define OBJ_givenName OBJ_X509,42L + +# define SN_surname "S" +# define LN_surname "surname" +# define NID_surname 100 +# define OBJ_surname OBJ_X509,4L + +# define SN_initials "I" +# define LN_initials "initials" +# define NID_initials 101 +# define OBJ_initials OBJ_X509,43L + +# define SN_uniqueIdentifier "UID" +# define LN_uniqueIdentifier "uniqueIdentifier" +# define NID_uniqueIdentifier 102 +# define OBJ_uniqueIdentifier OBJ_X509,45L + +# define SN_crl_distribution_points "crlDistributionPoints" +# define LN_crl_distribution_points "X509v3 CRL Distribution Points" +# define NID_crl_distribution_points 103 +# define OBJ_crl_distribution_points OBJ_id_ce,31L + +# define SN_md5WithRSA "RSA-NP-MD5" +# define LN_md5WithRSA "md5WithRSA" +# define NID_md5WithRSA 104 +# define OBJ_md5WithRSA OBJ_algorithm,3L + +# define SN_serialNumber "SN" +# define LN_serialNumber "serialNumber" +# define NID_serialNumber 105 +# define OBJ_serialNumber OBJ_X509,5L + +# define SN_title "T" +# define LN_title "title" +# define NID_title 106 +# define OBJ_title OBJ_X509,12L + +# define SN_description "D" +# define LN_description "description" +# define NID_description 107 +# define OBJ_description OBJ_X509,13L + +/* CAST5 is CAST-128, I'm just sticking with the documentation */ +# define SN_cast5_cbc "CAST5-CBC" +# define LN_cast5_cbc "cast5-cbc" +# define NID_cast5_cbc 108 +# define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L + +# define SN_cast5_ecb "CAST5-ECB" +# define LN_cast5_ecb "cast5-ecb" +# define NID_cast5_ecb 109 + +# define SN_cast5_cfb64 "CAST5-CFB" +# define LN_cast5_cfb64 "cast5-cfb" +# define NID_cast5_cfb64 110 + +# define SN_cast5_ofb64 "CAST5-OFB" +# define LN_cast5_ofb64 "cast5-ofb" +# define NID_cast5_ofb64 111 + +# define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" +# define NID_pbeWithMD5AndCast5_CBC 112 +# define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L + +/*- + * This is one sun will soon be using :-( + * id-dsa-with-sha1 ID ::= { + * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } + */ +# define SN_dsaWithSHA1 "DSA-SHA1" +# define LN_dsaWithSHA1 "dsaWithSHA1" +# define NID_dsaWithSHA1 113 +# define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L + +# define NID_md5_sha1 114 +# define SN_md5_sha1 "MD5-SHA1" +# define LN_md5_sha1 "md5-sha1" + +# define SN_sha1WithRSA "RSA-SHA1-2" +# define LN_sha1WithRSA "sha1WithRSA" +# define NID_sha1WithRSA 115 +# define OBJ_sha1WithRSA OBJ_algorithm,29L + +# define SN_dsa "DSA" +# define LN_dsa "dsaEncryption" +# define NID_dsa 116 +# define OBJ_dsa 1L,2L,840L,10040L,4L,1L + +# define SN_ripemd160 "RIPEMD160" +# define LN_ripemd160 "ripemd160" +# define NID_ripemd160 117 +# define OBJ_ripemd160 1L,3L,36L,3L,2L,1L + +/* + * The name should actually be rsaSignatureWithripemd160, but I'm going to + * continue using the convention I'm using with the other ciphers + */ +# define SN_ripemd160WithRSA "RSA-RIPEMD160" +# define LN_ripemd160WithRSA "ripemd160WithRSA" +# define NID_ripemd160WithRSA 119 +# define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L + +/*- + * Taken from rfc2040 + * RC5_CBC_Parameters ::= SEQUENCE { + * version INTEGER (v1_0(16)), + * rounds INTEGER (8..127), + * blockSizeInBits INTEGER (64, 128), + * iv OCTET STRING OPTIONAL + * } + */ +# define SN_rc5_cbc "RC5-CBC" +# define LN_rc5_cbc "rc5-cbc" +# define NID_rc5_cbc 120 +# define OBJ_rc5_cbc OBJ_rsadsi,3L,8L + +# define SN_rc5_ecb "RC5-ECB" +# define LN_rc5_ecb "rc5-ecb" +# define NID_rc5_ecb 121 + +# define SN_rc5_cfb64 "RC5-CFB" +# define LN_rc5_cfb64 "rc5-cfb" +# define NID_rc5_cfb64 122 + +# define SN_rc5_ofb64 "RC5-OFB" +# define LN_rc5_ofb64 "rc5-ofb" +# define NID_rc5_ofb64 123 + +# define SN_rle_compression "RLE" +# define LN_rle_compression "run length compression" +# define NID_rle_compression 124 +# define OBJ_rle_compression 1L,1L,1L,1L,666L,1L + +# define SN_zlib_compression "ZLIB" +# define LN_zlib_compression "zlib compression" +# define NID_zlib_compression 125 +# define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L + +# define SN_ext_key_usage "extendedKeyUsage" +# define LN_ext_key_usage "X509v3 Extended Key Usage" +# define NID_ext_key_usage 126 +# define OBJ_ext_key_usage OBJ_id_ce,37 + +# define SN_id_pkix "PKIX" +# define NID_id_pkix 127 +# define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L + +# define SN_id_kp "id-kp" +# define NID_id_kp 128 +# define OBJ_id_kp OBJ_id_pkix,3L + +/* PKIX extended key usage OIDs */ + +# define SN_server_auth "serverAuth" +# define LN_server_auth "TLS Web Server Authentication" +# define NID_server_auth 129 +# define OBJ_server_auth OBJ_id_kp,1L + +# define SN_client_auth "clientAuth" +# define LN_client_auth "TLS Web Client Authentication" +# define NID_client_auth 130 +# define OBJ_client_auth OBJ_id_kp,2L + +# define SN_code_sign "codeSigning" +# define LN_code_sign "Code Signing" +# define NID_code_sign 131 +# define OBJ_code_sign OBJ_id_kp,3L + +# define SN_email_protect "emailProtection" +# define LN_email_protect "E-mail Protection" +# define NID_email_protect 132 +# define OBJ_email_protect OBJ_id_kp,4L + +# define SN_time_stamp "timeStamping" +# define LN_time_stamp "Time Stamping" +# define NID_time_stamp 133 +# define OBJ_time_stamp OBJ_id_kp,8L + +/* Additional extended key usage OIDs: Microsoft */ + +# define SN_ms_code_ind "msCodeInd" +# define LN_ms_code_ind "Microsoft Individual Code Signing" +# define NID_ms_code_ind 134 +# define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L + +# define SN_ms_code_com "msCodeCom" +# define LN_ms_code_com "Microsoft Commercial Code Signing" +# define NID_ms_code_com 135 +# define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L + +# define SN_ms_ctl_sign "msCTLSign" +# define LN_ms_ctl_sign "Microsoft Trust List Signing" +# define NID_ms_ctl_sign 136 +# define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L + +# define SN_ms_sgc "msSGC" +# define LN_ms_sgc "Microsoft Server Gated Crypto" +# define NID_ms_sgc 137 +# define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L + +# define SN_ms_efs "msEFS" +# define LN_ms_efs "Microsoft Encrypted File System" +# define NID_ms_efs 138 +# define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L + +/* Additional usage: Netscape */ + +# define SN_ns_sgc "nsSGC" +# define LN_ns_sgc "Netscape Server Gated Crypto" +# define NID_ns_sgc 139 +# define OBJ_ns_sgc OBJ_netscape,4L,1L + +# define SN_delta_crl "deltaCRL" +# define LN_delta_crl "X509v3 Delta CRL Indicator" +# define NID_delta_crl 140 +# define OBJ_delta_crl OBJ_id_ce,27L + +# define SN_crl_reason "CRLReason" +# define LN_crl_reason "CRL Reason Code" +# define NID_crl_reason 141 +# define OBJ_crl_reason OBJ_id_ce,21L + +# define SN_invalidity_date "invalidityDate" +# define LN_invalidity_date "Invalidity Date" +# define NID_invalidity_date 142 +# define OBJ_invalidity_date OBJ_id_ce,24L + +# define SN_sxnet "SXNetID" +# define LN_sxnet "Strong Extranet ID" +# define NID_sxnet 143 +# define OBJ_sxnet 1L,3L,101L,1L,4L,1L + +/* PKCS12 and related OBJECT IDENTIFIERS */ + +# define OBJ_pkcs12 OBJ_pkcs,12L +# define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 + +# define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" +# define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" +# define NID_pbe_WithSHA1And128BitRC4 144 +# define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L + +# define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" +# define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" +# define NID_pbe_WithSHA1And40BitRC4 145 +# define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L + +# define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" +# define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" +# define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 +# define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L + +# define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" +# define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" +# define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 +# define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L + +# define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" +# define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" +# define NID_pbe_WithSHA1And128BitRC2_CBC 148 +# define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L + +# define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" +# define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" +# define NID_pbe_WithSHA1And40BitRC2_CBC 149 +# define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L + +# define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L + +# define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L + +# define LN_keyBag "keyBag" +# define NID_keyBag 150 +# define OBJ_keyBag OBJ_pkcs12_BagIds, 1L + +# define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" +# define NID_pkcs8ShroudedKeyBag 151 +# define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L + +# define LN_certBag "certBag" +# define NID_certBag 152 +# define OBJ_certBag OBJ_pkcs12_BagIds, 3L + +# define LN_crlBag "crlBag" +# define NID_crlBag 153 +# define OBJ_crlBag OBJ_pkcs12_BagIds, 4L + +# define LN_secretBag "secretBag" +# define NID_secretBag 154 +# define OBJ_secretBag OBJ_pkcs12_BagIds, 5L + +# define LN_safeContentsBag "safeContentsBag" +# define NID_safeContentsBag 155 +# define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L + +# define LN_friendlyName "friendlyName" +# define NID_friendlyName 156 +# define OBJ_friendlyName OBJ_pkcs9, 20L + +# define LN_localKeyID "localKeyID" +# define NID_localKeyID 157 +# define OBJ_localKeyID OBJ_pkcs9, 21L + +# define OBJ_certTypes OBJ_pkcs9, 22L + +# define LN_x509Certificate "x509Certificate" +# define NID_x509Certificate 158 +# define OBJ_x509Certificate OBJ_certTypes, 1L + +# define LN_sdsiCertificate "sdsiCertificate" +# define NID_sdsiCertificate 159 +# define OBJ_sdsiCertificate OBJ_certTypes, 2L + +# define OBJ_crlTypes OBJ_pkcs9, 23L + +# define LN_x509Crl "x509Crl" +# define NID_x509Crl 160 +# define OBJ_x509Crl OBJ_crlTypes, 1L + +/* PKCS#5 v2 OIDs */ + +# define LN_pbes2 "PBES2" +# define NID_pbes2 161 +# define OBJ_pbes2 OBJ_pkcs,5L,13L + +# define LN_pbmac1 "PBMAC1" +# define NID_pbmac1 162 +# define OBJ_pbmac1 OBJ_pkcs,5L,14L + +# define LN_hmacWithSHA1 "hmacWithSHA1" +# define NID_hmacWithSHA1 163 +# define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L + +/* Policy Qualifier Ids */ + +# define LN_id_qt_cps "Policy Qualifier CPS" +# define SN_id_qt_cps "id-qt-cps" +# define NID_id_qt_cps 164 +# define OBJ_id_qt_cps OBJ_id_pkix,2L,1L + +# define LN_id_qt_unotice "Policy Qualifier User Notice" +# define SN_id_qt_unotice "id-qt-unotice" +# define NID_id_qt_unotice 165 +# define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L + +# define SN_rc2_64_cbc "RC2-64-CBC" +# define LN_rc2_64_cbc "rc2-64-cbc" +# define NID_rc2_64_cbc 166 + +# define SN_SMIMECapabilities "SMIME-CAPS" +# define LN_SMIMECapabilities "S/MIME Capabilities" +# define NID_SMIMECapabilities 167 +# define OBJ_SMIMECapabilities OBJ_pkcs9,15L + +# define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" +# define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" +# define NID_pbeWithMD2AndRC2_CBC 168 +# define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L + +# define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" +# define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" +# define NID_pbeWithMD5AndRC2_CBC 169 +# define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L + +# define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" +# define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" +# define NID_pbeWithSHA1AndDES_CBC 170 +# define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L + +/* Extension request OIDs */ + +# define LN_ms_ext_req "Microsoft Extension Request" +# define SN_ms_ext_req "msExtReq" +# define NID_ms_ext_req 171 +# define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L + +# define LN_ext_req "Extension Request" +# define SN_ext_req "extReq" +# define NID_ext_req 172 +# define OBJ_ext_req OBJ_pkcs9,14L + +# define SN_name "name" +# define LN_name "name" +# define NID_name 173 +# define OBJ_name OBJ_X509,41L + +# define SN_dnQualifier "dnQualifier" +# define LN_dnQualifier "dnQualifier" +# define NID_dnQualifier 174 +# define OBJ_dnQualifier OBJ_X509,46L + +# define SN_id_pe "id-pe" +# define NID_id_pe 175 +# define OBJ_id_pe OBJ_id_pkix,1L + +# define SN_id_ad "id-ad" +# define NID_id_ad 176 +# define OBJ_id_ad OBJ_id_pkix,48L + +# define SN_info_access "authorityInfoAccess" +# define LN_info_access "Authority Information Access" +# define NID_info_access 177 +# define OBJ_info_access OBJ_id_pe,1L + +# define SN_ad_OCSP "OCSP" +# define LN_ad_OCSP "OCSP" +# define NID_ad_OCSP 178 +# define OBJ_ad_OCSP OBJ_id_ad,1L + +# define SN_ad_ca_issuers "caIssuers" +# define LN_ad_ca_issuers "CA Issuers" +# define NID_ad_ca_issuers 179 +# define OBJ_ad_ca_issuers OBJ_id_ad,2L + +# define SN_OCSP_sign "OCSPSigning" +# define LN_OCSP_sign "OCSP Signing" +# define NID_OCSP_sign 180 +# define OBJ_OCSP_sign OBJ_id_kp,9L +# endif /* USE_OBJ_MAC */ + +# include +# include + +# define OBJ_NAME_TYPE_UNDEF 0x00 +# define OBJ_NAME_TYPE_MD_METH 0x01 +# define OBJ_NAME_TYPE_CIPHER_METH 0x02 +# define OBJ_NAME_TYPE_PKEY_METH 0x03 +# define OBJ_NAME_TYPE_COMP_METH 0x04 +# define OBJ_NAME_TYPE_NUM 0x05 + +# define OBJ_NAME_ALIAS 0x8000 + +# define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 +# define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct obj_name_st { + int type; + int alias; + const char *name; + const char *data; +} OBJ_NAME; + +# define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) + +int OBJ_NAME_init(void); +int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), + int (*cmp_func) (const char *, const char *), + void (*free_func) (const char *, int, const char *)); +const char *OBJ_NAME_get(const char *name, int type); +int OBJ_NAME_add(const char *name, int type, const char *data); +int OBJ_NAME_remove(const char *name, int type); +void OBJ_NAME_cleanup(int type); /* -1 for everything */ +void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), + void *arg); +void OBJ_NAME_do_all_sorted(int type, + void (*fn) (const OBJ_NAME *, void *arg), + void *arg); + +ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); +ASN1_OBJECT *OBJ_nid2obj(int n); +const char *OBJ_nid2ln(int n); +const char *OBJ_nid2sn(int n); +int OBJ_obj2nid(const ASN1_OBJECT *o); +ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); +int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); +int OBJ_txt2nid(const char *s); +int OBJ_ln2nid(const char *s); +int OBJ_sn2nid(const char *s); +int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); +const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, + int (*cmp) (const void *, const void *)); +const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, + int size, + int (*cmp) (const void *, const void *), + int flags); + +# define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ + static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ + static int nm##_cmp(type1 const *, type2 const *); \ + scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) + +# define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ + _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) +# define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ + type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) + +/*- + * Unsolved problem: if a type is actually a pointer type, like + * nid_triple is, then its impossible to get a const where you need + * it. Consider: + * + * typedef int nid_triple[3]; + * const void *a_; + * const nid_triple const *a = a_; + * + * The assignement discards a const because what you really want is: + * + * const int const * const *a = a_; + * + * But if you do that, you lose the fact that a is an array of 3 ints, + * which breaks comparison functions. + * + * Thus we end up having to cast, sadly, or unpack the + * declarations. Or, as I finally did in this case, delcare nid_triple + * to be a struct, which it should have been in the first place. + * + * Ben, August 2008. + * + * Also, strictly speaking not all types need be const, but handling + * the non-constness means a lot of complication, and in practice + * comparison routines do always not touch their arguments. + */ + +# define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ + static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ + { \ + type1 const *a = a_; \ + type2 const *b = b_; \ + return nm##_cmp(a,b); \ + } \ + static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ + { \ + return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ + nm##_cmp_BSEARCH_CMP_FN); \ + } \ + extern void dummy_prototype(void) + +# define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ + static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ + { \ + type1 const *a = a_; \ + type2 const *b = b_; \ + return nm##_cmp(a,b); \ + } \ + type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ + { \ + return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ + nm##_cmp_BSEARCH_CMP_FN); \ + } \ + extern void dummy_prototype(void) + +# define OBJ_bsearch(type1,key,type2,base,num,cmp) \ + ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ + num,sizeof(type2), \ + ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ + (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ + cmp##_BSEARCH_CMP_FN))) + +# define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ + ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ + num,sizeof(type2), \ + ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ + (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ + cmp##_BSEARCH_CMP_FN)),flags) + +int OBJ_new_nid(int num); +int OBJ_add_object(const ASN1_OBJECT *obj); +int OBJ_create(const char *oid, const char *sn, const char *ln); +void OBJ_cleanup(void); +int OBJ_create_objects(BIO *in); + +int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); +int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); +int OBJ_add_sigid(int signid, int dig_id, int pkey_id); +void OBJ_sigid_free(void); + +extern int obj_cleanup_defer; +void check_defer(int nid); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_OBJ_strings(void); + +/* Error codes for the OBJ functions. */ + +/* Function codes. */ +# define OBJ_F_OBJ_ADD_OBJECT 105 +# define OBJ_F_OBJ_CREATE 100 +# define OBJ_F_OBJ_DUP 101 +# define OBJ_F_OBJ_NAME_NEW_INDEX 106 +# define OBJ_F_OBJ_NID2LN 102 +# define OBJ_F_OBJ_NID2OBJ 103 +# define OBJ_F_OBJ_NID2SN 104 + +/* Reason codes. */ +# define OBJ_R_MALLOC_FAILURE 100 +# define OBJ_R_UNKNOWN_NID 101 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/ocsp.h b/External/include/openssl/ocsp.h new file mode 100644 index 00000000..ca2ee76d --- /dev/null +++ b/External/include/openssl/ocsp.h @@ -0,0 +1,637 @@ +/* ocsp.h */ +/* + * Written by Tom Titchener for the OpenSSL + * project. + */ + +/* + * History: This file was transfered to Richard Levitte from CertCo by Kathy + * Weinhold in mid-spring 2000 to be included in OpenSSL or released as a + * patch kit. + */ + +/* ==================================================================== + * Copyright (c) 1998-2000 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_OCSP_H +# define HEADER_OCSP_H + +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Various flags and values */ + +# define OCSP_DEFAULT_NONCE_LENGTH 16 + +# define OCSP_NOCERTS 0x1 +# define OCSP_NOINTERN 0x2 +# define OCSP_NOSIGS 0x4 +# define OCSP_NOCHAIN 0x8 +# define OCSP_NOVERIFY 0x10 +# define OCSP_NOEXPLICIT 0x20 +# define OCSP_NOCASIGN 0x40 +# define OCSP_NODELEGATED 0x80 +# define OCSP_NOCHECKS 0x100 +# define OCSP_TRUSTOTHER 0x200 +# define OCSP_RESPID_KEY 0x400 +# define OCSP_NOTIME 0x800 + +/*- CertID ::= SEQUENCE { + * hashAlgorithm AlgorithmIdentifier, + * issuerNameHash OCTET STRING, -- Hash of Issuer's DN + * issuerKeyHash OCTET STRING, -- Hash of Issuers public key (excluding the tag & length fields) + * serialNumber CertificateSerialNumber } + */ +typedef struct ocsp_cert_id_st { + X509_ALGOR *hashAlgorithm; + ASN1_OCTET_STRING *issuerNameHash; + ASN1_OCTET_STRING *issuerKeyHash; + ASN1_INTEGER *serialNumber; +} OCSP_CERTID; + +DECLARE_STACK_OF(OCSP_CERTID) + +/*- Request ::= SEQUENCE { + * reqCert CertID, + * singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL } + */ +typedef struct ocsp_one_request_st { + OCSP_CERTID *reqCert; + STACK_OF(X509_EXTENSION) *singleRequestExtensions; +} OCSP_ONEREQ; + +DECLARE_STACK_OF(OCSP_ONEREQ) +DECLARE_ASN1_SET_OF(OCSP_ONEREQ) + +/*- TBSRequest ::= SEQUENCE { + * version [0] EXPLICIT Version DEFAULT v1, + * requestorName [1] EXPLICIT GeneralName OPTIONAL, + * requestList SEQUENCE OF Request, + * requestExtensions [2] EXPLICIT Extensions OPTIONAL } + */ +typedef struct ocsp_req_info_st { + ASN1_INTEGER *version; + GENERAL_NAME *requestorName; + STACK_OF(OCSP_ONEREQ) *requestList; + STACK_OF(X509_EXTENSION) *requestExtensions; +} OCSP_REQINFO; + +/*- Signature ::= SEQUENCE { + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING, + * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } + */ +typedef struct ocsp_signature_st { + X509_ALGOR *signatureAlgorithm; + ASN1_BIT_STRING *signature; + STACK_OF(X509) *certs; +} OCSP_SIGNATURE; + +/*- OCSPRequest ::= SEQUENCE { + * tbsRequest TBSRequest, + * optionalSignature [0] EXPLICIT Signature OPTIONAL } + */ +typedef struct ocsp_request_st { + OCSP_REQINFO *tbsRequest; + OCSP_SIGNATURE *optionalSignature; /* OPTIONAL */ +} OCSP_REQUEST; + +/*- OCSPResponseStatus ::= ENUMERATED { + * successful (0), --Response has valid confirmations + * malformedRequest (1), --Illegal confirmation request + * internalError (2), --Internal error in issuer + * tryLater (3), --Try again later + * --(4) is not used + * sigRequired (5), --Must sign the request + * unauthorized (6) --Request unauthorized + * } + */ +# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 +# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 +# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 +# define OCSP_RESPONSE_STATUS_TRYLATER 3 +# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 +# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 + +/*- ResponseBytes ::= SEQUENCE { + * responseType OBJECT IDENTIFIER, + * response OCTET STRING } + */ +typedef struct ocsp_resp_bytes_st { + ASN1_OBJECT *responseType; + ASN1_OCTET_STRING *response; +} OCSP_RESPBYTES; + +/*- OCSPResponse ::= SEQUENCE { + * responseStatus OCSPResponseStatus, + * responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } + */ +struct ocsp_response_st { + ASN1_ENUMERATED *responseStatus; + OCSP_RESPBYTES *responseBytes; +}; + +/*- ResponderID ::= CHOICE { + * byName [1] Name, + * byKey [2] KeyHash } + */ +# define V_OCSP_RESPID_NAME 0 +# define V_OCSP_RESPID_KEY 1 +struct ocsp_responder_id_st { + int type; + union { + X509_NAME *byName; + ASN1_OCTET_STRING *byKey; + } value; +}; + +DECLARE_STACK_OF(OCSP_RESPID) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) + +/*- KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key + * --(excluding the tag and length fields) + */ + +/*- RevokedInfo ::= SEQUENCE { + * revocationTime GeneralizedTime, + * revocationReason [0] EXPLICIT CRLReason OPTIONAL } + */ +typedef struct ocsp_revoked_info_st { + ASN1_GENERALIZEDTIME *revocationTime; + ASN1_ENUMERATED *revocationReason; +} OCSP_REVOKEDINFO; + +/*- CertStatus ::= CHOICE { + * good [0] IMPLICIT NULL, + * revoked [1] IMPLICIT RevokedInfo, + * unknown [2] IMPLICIT UnknownInfo } + */ +# define V_OCSP_CERTSTATUS_GOOD 0 +# define V_OCSP_CERTSTATUS_REVOKED 1 +# define V_OCSP_CERTSTATUS_UNKNOWN 2 +typedef struct ocsp_cert_status_st { + int type; + union { + ASN1_NULL *good; + OCSP_REVOKEDINFO *revoked; + ASN1_NULL *unknown; + } value; +} OCSP_CERTSTATUS; + +/*- SingleResponse ::= SEQUENCE { + * certID CertID, + * certStatus CertStatus, + * thisUpdate GeneralizedTime, + * nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, + * singleExtensions [1] EXPLICIT Extensions OPTIONAL } + */ +typedef struct ocsp_single_response_st { + OCSP_CERTID *certId; + OCSP_CERTSTATUS *certStatus; + ASN1_GENERALIZEDTIME *thisUpdate; + ASN1_GENERALIZEDTIME *nextUpdate; + STACK_OF(X509_EXTENSION) *singleExtensions; +} OCSP_SINGLERESP; + +DECLARE_STACK_OF(OCSP_SINGLERESP) +DECLARE_ASN1_SET_OF(OCSP_SINGLERESP) + +/*- ResponseData ::= SEQUENCE { + * version [0] EXPLICIT Version DEFAULT v1, + * responderID ResponderID, + * producedAt GeneralizedTime, + * responses SEQUENCE OF SingleResponse, + * responseExtensions [1] EXPLICIT Extensions OPTIONAL } + */ +typedef struct ocsp_response_data_st { + ASN1_INTEGER *version; + OCSP_RESPID *responderId; + ASN1_GENERALIZEDTIME *producedAt; + STACK_OF(OCSP_SINGLERESP) *responses; + STACK_OF(X509_EXTENSION) *responseExtensions; +} OCSP_RESPDATA; + +/*- BasicOCSPResponse ::= SEQUENCE { + * tbsResponseData ResponseData, + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING, + * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } + */ + /* + * Note 1: The value for "signature" is specified in the OCSP rfc2560 as + * follows: "The value for the signature SHALL be computed on the hash of + * the DER encoding ResponseData." This means that you must hash the + * DER-encoded tbsResponseData, and then run it through a crypto-signing + * function, which will (at least w/RSA) do a hash-'n'-private-encrypt + * operation. This seems a bit odd, but that's the spec. Also note that + * the data structures do not leave anywhere to independently specify the + * algorithm used for the initial hash. So, we look at the + * signature-specification algorithm, and try to do something intelligent. + * -- Kathy Weinhold, CertCo + */ + /* + * Note 2: It seems that the mentioned passage from RFC 2560 (section + * 4.2.1) is open for interpretation. I've done tests against another + * responder, and found that it doesn't do the double hashing that the RFC + * seems to say one should. Therefore, all relevant functions take a flag + * saying which variant should be used. -- Richard Levitte, OpenSSL team + * and CeloCom + */ +typedef struct ocsp_basic_response_st { + OCSP_RESPDATA *tbsResponseData; + X509_ALGOR *signatureAlgorithm; + ASN1_BIT_STRING *signature; + STACK_OF(X509) *certs; +} OCSP_BASICRESP; + +/*- + * CRLReason ::= ENUMERATED { + * unspecified (0), + * keyCompromise (1), + * cACompromise (2), + * affiliationChanged (3), + * superseded (4), + * cessationOfOperation (5), + * certificateHold (6), + * removeFromCRL (8) } + */ +# define OCSP_REVOKED_STATUS_NOSTATUS -1 +# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 +# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 +# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 +# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 +# define OCSP_REVOKED_STATUS_SUPERSEDED 4 +# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 +# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 +# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 + +/*- + * CrlID ::= SEQUENCE { + * crlUrl [0] EXPLICIT IA5String OPTIONAL, + * crlNum [1] EXPLICIT INTEGER OPTIONAL, + * crlTime [2] EXPLICIT GeneralizedTime OPTIONAL } + */ +typedef struct ocsp_crl_id_st { + ASN1_IA5STRING *crlUrl; + ASN1_INTEGER *crlNum; + ASN1_GENERALIZEDTIME *crlTime; +} OCSP_CRLID; + +/*- + * ServiceLocator ::= SEQUENCE { + * issuer Name, + * locator AuthorityInfoAccessSyntax OPTIONAL } + */ +typedef struct ocsp_service_locator_st { + X509_NAME *issuer; + STACK_OF(ACCESS_DESCRIPTION) *locator; +} OCSP_SERVICELOC; + +# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" +# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" + +# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) + +# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) + +# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ + (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,bp,(char **)x,cb,NULL) + +# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\ + (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,bp,(char **)x,cb,NULL) + +# define PEM_write_bio_OCSP_REQUEST(bp,o) \ + PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ + bp,(char *)o, NULL,NULL,0,NULL,NULL) + +# define PEM_write_bio_OCSP_RESPONSE(bp,o) \ + PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ + bp,(char *)o, NULL,NULL,0,NULL,NULL) + +# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) + +# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) + +# define OCSP_REQUEST_sign(o,pkey,md) \ + ASN1_item_sign(ASN1_ITEM_rptr(OCSP_REQINFO),\ + o->optionalSignature->signatureAlgorithm,NULL,\ + o->optionalSignature->signature,o->tbsRequest,pkey,md) + +# define OCSP_BASICRESP_sign(o,pkey,md,d) \ + ASN1_item_sign(ASN1_ITEM_rptr(OCSP_RESPDATA),o->signatureAlgorithm,NULL,\ + o->signature,o->tbsResponseData,pkey,md) + +# define OCSP_REQUEST_verify(a,r) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_REQINFO),\ + a->optionalSignature->signatureAlgorithm,\ + a->optionalSignature->signature,a->tbsRequest,r) + +# define OCSP_BASICRESP_verify(a,r,d) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_RESPDATA),\ + a->signatureAlgorithm,a->signature,a->tbsResponseData,r) + +# define ASN1_BIT_STRING_digest(data,type,md,len) \ + ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) + +# define OCSP_CERTSTATUS_dup(cs)\ + (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\ + (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs)) + +OCSP_CERTID *OCSP_CERTID_dup(OCSP_CERTID *id); + +OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); +OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req, + int maxline); +int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx); +int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx); +OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline); +void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx); +void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len); +int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, + ASN1_VALUE *val); +int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval, + const ASN1_ITEM *it); +BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx); +int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, + ASN1_VALUE *val); +int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); +int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); +int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, + const char *name, const char *value); + +OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer); + +OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, + X509_NAME *issuerName, + ASN1_BIT_STRING *issuerKey, + ASN1_INTEGER *serialNumber); + +OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); + +int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); +int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); +int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); +int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); + +int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm); +int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); + +int OCSP_request_sign(OCSP_REQUEST *req, + X509 *signer, + EVP_PKEY *key, + const EVP_MD *dgst, + STACK_OF(X509) *certs, unsigned long flags); + +int OCSP_response_status(OCSP_RESPONSE *resp); +OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); + +int OCSP_resp_count(OCSP_BASICRESP *bs); +OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); +int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); +int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, + ASN1_GENERALIZEDTIME **revtime, + ASN1_GENERALIZEDTIME **thisupd, + ASN1_GENERALIZEDTIME **nextupd); +int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, + int *reason, + ASN1_GENERALIZEDTIME **revtime, + ASN1_GENERALIZEDTIME **thisupd, + ASN1_GENERALIZEDTIME **nextupd); +int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, + ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec); + +int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, + X509_STORE *store, unsigned long flags); + +int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, + int *pssl); + +int OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b); +int OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b); + +int OCSP_request_onereq_count(OCSP_REQUEST *req); +OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); +OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); +int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, + ASN1_OCTET_STRING **pikeyHash, + ASN1_INTEGER **pserial, OCSP_CERTID *cid); +int OCSP_request_is_signed(OCSP_REQUEST *req); +OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); +OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, + OCSP_CERTID *cid, + int status, int reason, + ASN1_TIME *revtime, + ASN1_TIME *thisupd, + ASN1_TIME *nextupd); +int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); +int OCSP_basic_sign(OCSP_BASICRESP *brsp, + X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, + STACK_OF(X509) *certs, unsigned long flags); + +X509_EXTENSION *OCSP_crlID_new(char *url, long *n, char *tim); + +X509_EXTENSION *OCSP_accept_responses_new(char **oids); + +X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); + +X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, char **urls); + +int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); +int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); +int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, ASN1_OBJECT *obj, + int lastpos); +int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); +X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); +X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); +void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, + int *idx); +int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, + unsigned long flags); +int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); + +int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); +int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); +int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, ASN1_OBJECT *obj, int lastpos); +int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); +X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); +X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); +void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); +int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, + unsigned long flags); +int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); + +int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); +int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); +int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, ASN1_OBJECT *obj, + int lastpos); +int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, + int lastpos); +X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); +X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); +void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, + int *idx); +int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, + int crit, unsigned long flags); +int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); + +int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); +int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); +int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, ASN1_OBJECT *obj, + int lastpos); +int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, + int lastpos); +X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); +X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); +void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, + int *idx); +int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, + int crit, unsigned long flags); +int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); + +DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) +DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) +DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) +DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) +DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) +DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) +DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) +DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) +DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) +DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) +DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) + +const char *OCSP_response_status_str(long s); +const char *OCSP_cert_status_str(long s); +const char *OCSP_crl_reason_str(long s); + +int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags); +int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags); + +int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, + X509_STORE *st, unsigned long flags); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_OCSP_strings(void); + +/* Error codes for the OCSP functions. */ + +/* Function codes. */ +# define OCSP_F_ASN1_STRING_ENCODE 100 +# define OCSP_F_D2I_OCSP_NONCE 102 +# define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 +# define OCSP_F_OCSP_BASIC_SIGN 104 +# define OCSP_F_OCSP_BASIC_VERIFY 105 +# define OCSP_F_OCSP_CERT_ID_NEW 101 +# define OCSP_F_OCSP_CHECK_DELEGATED 106 +# define OCSP_F_OCSP_CHECK_IDS 107 +# define OCSP_F_OCSP_CHECK_ISSUER 108 +# define OCSP_F_OCSP_CHECK_VALIDITY 115 +# define OCSP_F_OCSP_MATCH_ISSUERID 109 +# define OCSP_F_OCSP_PARSE_URL 114 +# define OCSP_F_OCSP_REQUEST_SIGN 110 +# define OCSP_F_OCSP_REQUEST_VERIFY 116 +# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 +# define OCSP_F_OCSP_SENDREQ_BIO 112 +# define OCSP_F_OCSP_SENDREQ_NBIO 117 +# define OCSP_F_PARSE_HTTP_LINE1 118 +# define OCSP_F_REQUEST_VERIFY 113 + +/* Reason codes. */ +# define OCSP_R_BAD_DATA 100 +# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 +# define OCSP_R_DIGEST_ERR 102 +# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 +# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 +# define OCSP_R_ERROR_PARSING_URL 121 +# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 +# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 +# define OCSP_R_NOT_BASIC_RESPONSE 104 +# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 +# define OCSP_R_NO_CONTENT 106 +# define OCSP_R_NO_PUBLIC_KEY 107 +# define OCSP_R_NO_RESPONSE_DATA 108 +# define OCSP_R_NO_REVOKED_TIME 109 +# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 +# define OCSP_R_REQUEST_NOT_SIGNED 128 +# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 +# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 +# define OCSP_R_SERVER_READ_ERROR 113 +# define OCSP_R_SERVER_RESPONSE_ERROR 114 +# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 +# define OCSP_R_SERVER_WRITE_ERROR 116 +# define OCSP_R_SIGNATURE_FAILURE 117 +# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 +# define OCSP_R_STATUS_EXPIRED 125 +# define OCSP_R_STATUS_NOT_YET_VALID 126 +# define OCSP_R_STATUS_TOO_OLD 127 +# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 +# define OCSP_R_UNKNOWN_NID 120 +# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/opensslconf.h b/External/include/openssl/opensslconf.h new file mode 100644 index 00000000..4b17a584 --- /dev/null +++ b/External/include/openssl/opensslconf.h @@ -0,0 +1,271 @@ +/* opensslconf.h */ +/* WARNING: Generated automatically from opensslconf.h.in by Configure. */ + +#ifdef __cplusplus +extern "C" { +#endif +/* OpenSSL was configured with the following options: */ +#ifndef OPENSSL_SYSNAME_WIN32 +# define OPENSSL_SYSNAME_WIN32 +#endif +#ifndef OPENSSL_DOING_MAKEDEPEND + + +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_GMP +# define OPENSSL_NO_GMP +#endif +#ifndef OPENSSL_NO_JPAKE +# define OPENSSL_NO_JPAKE +#endif +#ifndef OPENSSL_NO_KRB5 +# define OPENSSL_NO_KRB5 +#endif +#ifndef OPENSSL_NO_LIBUNBOUND +# define OPENSSL_NO_LIBUNBOUND +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_NO_RFC3779 +# define OPENSSL_NO_RFC3779 +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL2 +# define OPENSSL_NO_SSL2 +#endif +#ifndef OPENSSL_NO_STORE +# define OPENSSL_NO_STORE +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif + +#endif /* OPENSSL_DOING_MAKEDEPEND */ + +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif + +/* The OPENSSL_NO_* macros are also defined as NO_* if the application + asks for it. This is a transient feature that is provided for those + who haven't had the time to do the appropriate changes in their + applications. */ +#ifdef OPENSSL_ALGORITHM_DEFINES +# if defined(OPENSSL_NO_EC_NISTP_64_GCC_128) && !defined(NO_EC_NISTP_64_GCC_128) +# define NO_EC_NISTP_64_GCC_128 +# endif +# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP) +# define NO_GMP +# endif +# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE) +# define NO_JPAKE +# endif +# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5) +# define NO_KRB5 +# endif +# if defined(OPENSSL_NO_LIBUNBOUND) && !defined(NO_LIBUNBOUND) +# define NO_LIBUNBOUND +# endif +# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2) +# define NO_MD2 +# endif +# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5) +# define NO_RC5 +# endif +# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779) +# define NO_RFC3779 +# endif +# if defined(OPENSSL_NO_SCTP) && !defined(NO_SCTP) +# define NO_SCTP +# endif +# if defined(OPENSSL_NO_SSL_TRACE) && !defined(NO_SSL_TRACE) +# define NO_SSL_TRACE +# endif +# if defined(OPENSSL_NO_SSL2) && !defined(NO_SSL2) +# define NO_SSL2 +# endif +# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE) +# define NO_STORE +# endif +# if defined(OPENSSL_NO_UNIT_TEST) && !defined(NO_UNIT_TEST) +# define NO_UNIT_TEST +# endif +# if defined(OPENSSL_NO_WEAK_SSL_CIPHERS) && !defined(NO_WEAK_SSL_CIPHERS) +# define NO_WEAK_SSL_CIPHERS +# endif +#endif + +#define OPENSSL_CPUID_OBJ + +/* crypto/opensslconf.h.in */ + +/* Generate 80386 code? */ +#undef I386_ONLY + +#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ +#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) +#define ENGINESDIR "/usr/local/ssl/lib/engines" +#define OPENSSLDIR "/usr/local/ssl" +#endif +#endif + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION +#define OPENSSL_EXPORT_VAR_AS_FUNCTION + +#if defined(HEADER_IDEA_H) && !defined(IDEA_INT) +#define IDEA_INT unsigned int +#endif + +#if defined(HEADER_MD2_H) && !defined(MD2_INT) +#define MD2_INT unsigned int +#endif + +#if defined(HEADER_RC2_H) && !defined(RC2_INT) +/* I need to put in a mod for the alpha - eay */ +#define RC2_INT unsigned int +#endif + +#if defined(HEADER_RC4_H) +#if !defined(RC4_INT) +/* using int types make the structure larger but make the code faster + * on most boxes I have tested - up to %20 faster. */ +/* + * I don't know what does "most" mean, but declaring "int" is a must on: + * - Intel P6 because partial register stalls are very expensive; + * - elder Alpha because it lacks byte load/store instructions; + */ +#define RC4_INT unsigned int +#endif +#if !defined(RC4_CHUNK) +/* + * This enables code handling data aligned at natural CPU word + * boundary. See crypto/rc4/rc4_enc.c for further details. + */ +#undef RC4_CHUNK +#endif +#endif + +#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG) +/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a + * %20 speed up (longs are 8 bytes, int's are 4). */ +#ifndef DES_LONG +#define DES_LONG unsigned long +#endif +#endif + +#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) +#define CONFIG_HEADER_BN_H +#define BN_LLONG + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT +#endif + +#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H) +#define CONFIG_HEADER_RC4_LOCL_H +/* if this is defined data[i] is used instead of *data, this is a %20 + * speedup on x86 */ +#define RC4_INDEX +#endif + +#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H) +#define CONFIG_HEADER_BF_LOCL_H +#undef BF_PTR +#endif /* HEADER_BF_LOCL_H */ + +#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H) +#define CONFIG_HEADER_DES_LOCL_H +#ifndef DES_DEFAULT_OPTIONS +/* the following is tweaked from a config script, that is why it is a + * protected undef/define */ +#ifndef DES_PTR +#undef DES_PTR +#endif + +/* This helps C compiler generate the correct code for multiple functional + * units. It reduces register dependancies at the expense of 2 more + * registers */ +#ifndef DES_RISC1 +#undef DES_RISC1 +#endif + +#ifndef DES_RISC2 +#undef DES_RISC2 +#endif + +#if defined(DES_RISC1) && defined(DES_RISC2) +#error YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! +#endif + +/* Unroll the inner loop, this sometimes helps, sometimes hinders. + * Very mucy CPU dependant */ +#ifndef DES_UNROLL +#undef DES_UNROLL +#endif + +/* These default values were supplied by + * Peter Gutman + * They are only used if nothing else has been defined */ +#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL) +/* Special defines which change the way the code is built depending on the + CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find + even newer MIPS CPU's, but at the moment one size fits all for + optimization options. Older Sparc's work better with only UNROLL, but + there's no way to tell at compile time what it is you're running on */ + +#if defined( __sun ) || defined ( sun ) /* Newer Sparc's */ +# define DES_PTR +# define DES_RISC1 +# define DES_UNROLL +#elif defined( __ultrix ) /* Older MIPS */ +# define DES_PTR +# define DES_RISC2 +# define DES_UNROLL +#elif defined( __osf1__ ) /* Alpha */ +# define DES_PTR +# define DES_RISC2 +#elif defined ( _AIX ) /* RS6000 */ + /* Unknown */ +#elif defined( __hpux ) /* HP-PA */ + /* Unknown */ +#elif defined( __aux ) /* 68K */ + /* Unknown */ +#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */ +# define DES_UNROLL +#elif defined( __sgi ) /* Newer MIPS */ +# define DES_PTR +# define DES_RISC2 +# define DES_UNROLL +#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */ +# define DES_PTR +# define DES_RISC1 +# define DES_UNROLL +#endif /* Systems-specific speed defines */ +#endif + +#endif /* DES_DEFAULT_OPTIONS */ +#endif /* HEADER_DES_LOCL_H */ +#ifdef __cplusplus +} +#endif diff --git a/External/include/openssl/opensslv.h b/External/include/openssl/opensslv.h new file mode 100644 index 00000000..13fe4402 --- /dev/null +++ b/External/include/openssl/opensslv.h @@ -0,0 +1,97 @@ +#ifndef HEADER_OPENSSLV_H +# define HEADER_OPENSSLV_H + +#ifdef __cplusplus +extern "C" { +#endif + +/*- + * Numeric release version identifier: + * MNNFFPPS: major minor fix patch status + * The status nibble has one of the values 0 for development, 1 to e for betas + * 1 to 14, and f for release. The patch level is exactly that. + * For example: + * 0.9.3-dev 0x00903000 + * 0.9.3-beta1 0x00903001 + * 0.9.3-beta2-dev 0x00903002 + * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) + * 0.9.3 0x0090300f + * 0.9.3a 0x0090301f + * 0.9.4 0x0090400f + * 1.2.3z 0x102031af + * + * For continuity reasons (because 0.9.5 is already out, and is coded + * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level + * part is slightly different, by setting the highest bit. This means + * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start + * with 0x0090600S... + * + * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) + * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for + * major minor fix final patch/beta) + */ +# define OPENSSL_VERSION_NUMBER 0x1000208fL +# ifdef OPENSSL_FIPS +# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2h-fips 3 May 2016" +# else +# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2h 3 May 2016" +# endif +# define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT + +/*- + * The macros below are to be used for shared library (.so, .dll, ...) + * versioning. That kind of versioning works a bit differently between + * operating systems. The most usual scheme is to set a major and a minor + * number, and have the runtime loader check that the major number is equal + * to what it was at application link time, while the minor number has to + * be greater or equal to what it was at application link time. With this + * scheme, the version number is usually part of the file name, like this: + * + * libcrypto.so.0.9 + * + * Some unixen also make a softlink with the major verson number only: + * + * libcrypto.so.0 + * + * On Tru64 and IRIX 6.x it works a little bit differently. There, the + * shared library version is stored in the file, and is actually a series + * of versions, separated by colons. The rightmost version present in the + * library when linking an application is stored in the application to be + * matched at run time. When the application is run, a check is done to + * see if the library version stored in the application matches any of the + * versions in the version string of the library itself. + * This version string can be constructed in any way, depending on what + * kind of matching is desired. However, to implement the same scheme as + * the one used in the other unixen, all compatible versions, from lowest + * to highest, should be part of the string. Consecutive builds would + * give the following versions strings: + * + * 3.0 + * 3.0:3.1 + * 3.0:3.1:3.2 + * 4.0 + * 4.0:4.1 + * + * Notice how version 4 is completely incompatible with version, and + * therefore give the breach you can see. + * + * There may be other schemes as well that I haven't yet discovered. + * + * So, here's the way it works here: first of all, the library version + * number doesn't need at all to match the overall OpenSSL version. + * However, it's nice and more understandable if it actually does. + * The current library version is stored in the macro SHLIB_VERSION_NUMBER, + * which is just a piece of text in the format "M.m.e" (Major, minor, edit). + * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, + * we need to keep a history of version numbers, which is done in the + * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and + * should only keep the versions that are binary compatible with the current. + */ +# define SHLIB_VERSION_HISTORY "" +# define SHLIB_VERSION_NUMBER "1.0.0" + + +#ifdef __cplusplus +} +#endif +#endif /* HEADER_OPENSSLV_H */ diff --git a/External/include/openssl/ossl_typ.h b/External/include/openssl/ossl_typ.h new file mode 100644 index 00000000..9144ea2c --- /dev/null +++ b/External/include/openssl/ossl_typ.h @@ -0,0 +1,211 @@ +/* ==================================================================== + * Copyright (c) 1998-2001 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_OPENSSL_TYPES_H +# define HEADER_OPENSSL_TYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +# ifdef NO_ASN1_TYPEDEFS +# define ASN1_INTEGER ASN1_STRING +# define ASN1_ENUMERATED ASN1_STRING +# define ASN1_BIT_STRING ASN1_STRING +# define ASN1_OCTET_STRING ASN1_STRING +# define ASN1_PRINTABLESTRING ASN1_STRING +# define ASN1_T61STRING ASN1_STRING +# define ASN1_IA5STRING ASN1_STRING +# define ASN1_UTCTIME ASN1_STRING +# define ASN1_GENERALIZEDTIME ASN1_STRING +# define ASN1_TIME ASN1_STRING +# define ASN1_GENERALSTRING ASN1_STRING +# define ASN1_UNIVERSALSTRING ASN1_STRING +# define ASN1_BMPSTRING ASN1_STRING +# define ASN1_VISIBLESTRING ASN1_STRING +# define ASN1_UTF8STRING ASN1_STRING +# define ASN1_BOOLEAN int +# define ASN1_NULL int +# else +typedef struct asn1_string_st ASN1_INTEGER; +typedef struct asn1_string_st ASN1_ENUMERATED; +typedef struct asn1_string_st ASN1_BIT_STRING; +typedef struct asn1_string_st ASN1_OCTET_STRING; +typedef struct asn1_string_st ASN1_PRINTABLESTRING; +typedef struct asn1_string_st ASN1_T61STRING; +typedef struct asn1_string_st ASN1_IA5STRING; +typedef struct asn1_string_st ASN1_GENERALSTRING; +typedef struct asn1_string_st ASN1_UNIVERSALSTRING; +typedef struct asn1_string_st ASN1_BMPSTRING; +typedef struct asn1_string_st ASN1_UTCTIME; +typedef struct asn1_string_st ASN1_TIME; +typedef struct asn1_string_st ASN1_GENERALIZEDTIME; +typedef struct asn1_string_st ASN1_VISIBLESTRING; +typedef struct asn1_string_st ASN1_UTF8STRING; +typedef struct asn1_string_st ASN1_STRING; +typedef int ASN1_BOOLEAN; +typedef int ASN1_NULL; +# endif + +typedef struct asn1_object_st ASN1_OBJECT; + +typedef struct ASN1_ITEM_st ASN1_ITEM; +typedef struct asn1_pctx_st ASN1_PCTX; + +# ifdef OPENSSL_SYS_WIN32 +# undef X509_NAME +# undef X509_EXTENSIONS +# undef X509_CERT_PAIR +# undef PKCS7_ISSUER_AND_SERIAL +# undef OCSP_REQUEST +# undef OCSP_RESPONSE +# endif + +# ifdef BIGNUM +# undef BIGNUM +# endif +typedef struct bignum_st BIGNUM; +typedef struct bignum_ctx BN_CTX; +typedef struct bn_blinding_st BN_BLINDING; +typedef struct bn_mont_ctx_st BN_MONT_CTX; +typedef struct bn_recp_ctx_st BN_RECP_CTX; +typedef struct bn_gencb_st BN_GENCB; + +typedef struct buf_mem_st BUF_MEM; + +typedef struct evp_cipher_st EVP_CIPHER; +typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; +typedef struct env_md_st EVP_MD; +typedef struct env_md_ctx_st EVP_MD_CTX; +typedef struct evp_pkey_st EVP_PKEY; + +typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; + +typedef struct evp_pkey_method_st EVP_PKEY_METHOD; +typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; + +typedef struct dh_st DH; +typedef struct dh_method DH_METHOD; + +typedef struct dsa_st DSA; +typedef struct dsa_method DSA_METHOD; + +typedef struct rsa_st RSA; +typedef struct rsa_meth_st RSA_METHOD; + +typedef struct rand_meth_st RAND_METHOD; + +typedef struct ecdh_method ECDH_METHOD; +typedef struct ecdsa_method ECDSA_METHOD; + +typedef struct x509_st X509; +typedef struct X509_algor_st X509_ALGOR; +typedef struct X509_crl_st X509_CRL; +typedef struct x509_crl_method_st X509_CRL_METHOD; +typedef struct x509_revoked_st X509_REVOKED; +typedef struct X509_name_st X509_NAME; +typedef struct X509_pubkey_st X509_PUBKEY; +typedef struct x509_store_st X509_STORE; +typedef struct x509_store_ctx_st X509_STORE_CTX; + +typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; + +typedef struct v3_ext_ctx X509V3_CTX; +typedef struct conf_st CONF; + +typedef struct store_st STORE; +typedef struct store_method_st STORE_METHOD; + +typedef struct ui_st UI; +typedef struct ui_method_st UI_METHOD; + +typedef struct st_ERR_FNS ERR_FNS; + +typedef struct engine_st ENGINE; +typedef struct ssl_st SSL; +typedef struct ssl_ctx_st SSL_CTX; + +typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; +typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; +typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; +typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; + +typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; +typedef struct DIST_POINT_st DIST_POINT; +typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; +typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; + + /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */ +# define DECLARE_PKCS12_STACK_OF(type)/* Nothing */ +# define IMPLEMENT_PKCS12_STACK_OF(type)/* Nothing */ + +typedef struct crypto_ex_data_st CRYPTO_EX_DATA; +/* Callback types for crypto.h */ +typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, + void *from_d, int idx, long argl, void *argp); + +typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; +typedef struct ocsp_response_st OCSP_RESPONSE; +typedef struct ocsp_responder_id_st OCSP_RESPID; + +#ifdef __cplusplus +} +#endif +#endif /* def HEADER_OPENSSL_TYPES_H */ diff --git a/External/include/openssl/pem.h b/External/include/openssl/pem.h new file mode 100644 index 00000000..d3b23fc9 --- /dev/null +++ b/External/include/openssl/pem.h @@ -0,0 +1,615 @@ +/* crypto/pem/pem.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_PEM_H +# define HEADER_PEM_H + +# include +# ifndef OPENSSL_NO_BIO +# include +# endif +# ifndef OPENSSL_NO_STACK +# include +# endif +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define PEM_BUFSIZE 1024 + +# define PEM_OBJ_UNDEF 0 +# define PEM_OBJ_X509 1 +# define PEM_OBJ_X509_REQ 2 +# define PEM_OBJ_CRL 3 +# define PEM_OBJ_SSL_SESSION 4 +# define PEM_OBJ_PRIV_KEY 10 +# define PEM_OBJ_PRIV_RSA 11 +# define PEM_OBJ_PRIV_DSA 12 +# define PEM_OBJ_PRIV_DH 13 +# define PEM_OBJ_PUB_RSA 14 +# define PEM_OBJ_PUB_DSA 15 +# define PEM_OBJ_PUB_DH 16 +# define PEM_OBJ_DHPARAMS 17 +# define PEM_OBJ_DSAPARAMS 18 +# define PEM_OBJ_PRIV_RSA_PUBLIC 19 +# define PEM_OBJ_PRIV_ECDSA 20 +# define PEM_OBJ_PUB_ECDSA 21 +# define PEM_OBJ_ECPARAMETERS 22 + +# define PEM_ERROR 30 +# define PEM_DEK_DES_CBC 40 +# define PEM_DEK_IDEA_CBC 45 +# define PEM_DEK_DES_EDE 50 +# define PEM_DEK_DES_ECB 60 +# define PEM_DEK_RSA 70 +# define PEM_DEK_RSA_MD2 80 +# define PEM_DEK_RSA_MD5 90 + +# define PEM_MD_MD2 NID_md2 +# define PEM_MD_MD5 NID_md5 +# define PEM_MD_SHA NID_sha +# define PEM_MD_MD2_RSA NID_md2WithRSAEncryption +# define PEM_MD_MD5_RSA NID_md5WithRSAEncryption +# define PEM_MD_SHA_RSA NID_sha1WithRSAEncryption + +# define PEM_STRING_X509_OLD "X509 CERTIFICATE" +# define PEM_STRING_X509 "CERTIFICATE" +# define PEM_STRING_X509_PAIR "CERTIFICATE PAIR" +# define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" +# define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" +# define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" +# define PEM_STRING_X509_CRL "X509 CRL" +# define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" +# define PEM_STRING_PUBLIC "PUBLIC KEY" +# define PEM_STRING_RSA "RSA PRIVATE KEY" +# define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" +# define PEM_STRING_DSA "DSA PRIVATE KEY" +# define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" +# define PEM_STRING_PKCS7 "PKCS7" +# define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" +# define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" +# define PEM_STRING_PKCS8INF "PRIVATE KEY" +# define PEM_STRING_DHPARAMS "DH PARAMETERS" +# define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS" +# define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" +# define PEM_STRING_DSAPARAMS "DSA PARAMETERS" +# define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" +# define PEM_STRING_ECPARAMETERS "EC PARAMETERS" +# define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" +# define PEM_STRING_PARAMETERS "PARAMETERS" +# define PEM_STRING_CMS "CMS" + + /* + * Note that this structure is initialised by PEM_SealInit and cleaned up + * by PEM_SealFinal (at least for now) + */ +typedef struct PEM_Encode_Seal_st { + EVP_ENCODE_CTX encode; + EVP_MD_CTX md; + EVP_CIPHER_CTX cipher; +} PEM_ENCODE_SEAL_CTX; + +/* enc_type is one off */ +# define PEM_TYPE_ENCRYPTED 10 +# define PEM_TYPE_MIC_ONLY 20 +# define PEM_TYPE_MIC_CLEAR 30 +# define PEM_TYPE_CLEAR 40 + +typedef struct pem_recip_st { + char *name; + X509_NAME *dn; + int cipher; + int key_enc; + /* char iv[8]; unused and wrong size */ +} PEM_USER; + +typedef struct pem_ctx_st { + int type; /* what type of object */ + struct { + int version; + int mode; + } proc_type; + + char *domain; + + struct { + int cipher; + /*- + unused, and wrong size + unsigned char iv[8]; */ + } DEK_info; + + PEM_USER *originator; + + int num_recipient; + PEM_USER **recipient; +/*- + XXX(ben): don#t think this is used! + STACK *x509_chain; / * certificate chain */ + EVP_MD *md; /* signature type */ + + int md_enc; /* is the md encrypted or not? */ + int md_len; /* length of md_data */ + char *md_data; /* message digest, could be pkey encrypted */ + + EVP_CIPHER *dec; /* date encryption cipher */ + int key_len; /* key length */ + unsigned char *key; /* key */ + /*- + unused, and wrong size + unsigned char iv[8]; */ + + int data_enc; /* is the data encrypted */ + int data_len; + unsigned char *data; +} PEM_CTX; + +/* + * These macros make the PEM_read/PEM_write functions easier to maintain and + * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or + * IMPLEMENT_PEM_rw_cb(...) + */ + +# ifdef OPENSSL_NO_FP_API + +# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ +# else + +# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ +type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ +{ \ +return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \ +} + +# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, type *x) \ +{ \ +return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, const type *x) \ +{ \ +return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, \ + void *u) \ + { \ + return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ + } + +# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, \ + void *u) \ + { \ + return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ + } + +# endif + +# define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ +type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\ +{ \ +return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str,bp,(void **)x,cb,u); \ +} + +# define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, type *x) \ +{ \ +return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, const type *x) \ +{ \ +return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ + { \ + return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u); \ + } + +# define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ + { \ + return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); \ + } + +# define IMPLEMENT_PEM_write(name, type, str, asn1) \ + IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ + IMPLEMENT_PEM_write_fp(name, type, str, asn1) + +# define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) + +# define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) + +# define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) + +# define IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ + IMPLEMENT_PEM_read_fp(name, type, str, asn1) + +# define IMPLEMENT_PEM_rw(name, type, str, asn1) \ + IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_write(name, type, str, asn1) + +# define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ + IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_write_const(name, type, str, asn1) + +# define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ + IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb(name, type, str, asn1) + +/* These are the same except they are for the declarations */ + +# if defined(OPENSSL_NO_FP_API) + +# define DECLARE_PEM_read_fp(name, type) /**/ +# define DECLARE_PEM_write_fp(name, type) /**/ +# define DECLARE_PEM_write_cb_fp(name, type) /**/ +# else + +# define DECLARE_PEM_read_fp(name, type) \ + type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u); + +# define DECLARE_PEM_write_fp(name, type) \ + int PEM_write_##name(FILE *fp, type *x); + +# define DECLARE_PEM_write_fp_const(name, type) \ + int PEM_write_##name(FILE *fp, const type *x); + +# define DECLARE_PEM_write_cb_fp(name, type) \ + int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u); + +# endif + +# ifndef OPENSSL_NO_BIO +# define DECLARE_PEM_read_bio(name, type) \ + type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u); + +# define DECLARE_PEM_write_bio(name, type) \ + int PEM_write_bio_##name(BIO *bp, type *x); + +# define DECLARE_PEM_write_bio_const(name, type) \ + int PEM_write_bio_##name(BIO *bp, const type *x); + +# define DECLARE_PEM_write_cb_bio(name, type) \ + int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u); + +# else + +# define DECLARE_PEM_read_bio(name, type) /**/ +# define DECLARE_PEM_write_bio(name, type) /**/ +# define DECLARE_PEM_write_bio_const(name, type) /**/ +# define DECLARE_PEM_write_cb_bio(name, type) /**/ +# endif +# define DECLARE_PEM_write(name, type) \ + DECLARE_PEM_write_bio(name, type) \ + DECLARE_PEM_write_fp(name, type) +# define DECLARE_PEM_write_const(name, type) \ + DECLARE_PEM_write_bio_const(name, type) \ + DECLARE_PEM_write_fp_const(name, type) +# define DECLARE_PEM_write_cb(name, type) \ + DECLARE_PEM_write_cb_bio(name, type) \ + DECLARE_PEM_write_cb_fp(name, type) +# define DECLARE_PEM_read(name, type) \ + DECLARE_PEM_read_bio(name, type) \ + DECLARE_PEM_read_fp(name, type) +# define DECLARE_PEM_rw(name, type) \ + DECLARE_PEM_read(name, type) \ + DECLARE_PEM_write(name, type) +# define DECLARE_PEM_rw_const(name, type) \ + DECLARE_PEM_read(name, type) \ + DECLARE_PEM_write_const(name, type) +# define DECLARE_PEM_rw_cb(name, type) \ + DECLARE_PEM_read(name, type) \ + DECLARE_PEM_write_cb(name, type) +# if 1 +/* "userdata": new with OpenSSL 0.9.4 */ +typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); +# else +/* OpenSSL 0.9.3, 0.9.3a */ +typedef int pem_password_cb (char *buf, int size, int rwflag); +# endif + +int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); +int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, + pem_password_cb *callback, void *u); + +# ifndef OPENSSL_NO_BIO +int PEM_read_bio(BIO *bp, char **name, char **header, + unsigned char **data, long *len); +int PEM_write_bio(BIO *bp, const char *name, const char *hdr, + const unsigned char *data, long len); +int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, + const char *name, BIO *bp, pem_password_cb *cb, + void *u); +void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, + pem_password_cb *cb, void *u); +int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, + const EVP_CIPHER *enc, unsigned char *kstr, int klen, + pem_password_cb *cb, void *u); + +STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, + pem_password_cb *cb, void *u); +int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, + unsigned char *kstr, int klen, + pem_password_cb *cd, void *u); +# endif + +int PEM_read(FILE *fp, char **name, char **header, + unsigned char **data, long *len); +int PEM_write(FILE *fp, const char *name, const char *hdr, + const unsigned char *data, long len); +void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, + pem_password_cb *cb, void *u); +int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, + void *x, const EVP_CIPHER *enc, unsigned char *kstr, + int klen, pem_password_cb *callback, void *u); +STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, + pem_password_cb *cb, void *u); + +int PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, + EVP_MD *md_type, unsigned char **ek, int *ekl, + unsigned char *iv, EVP_PKEY **pubk, int npubk); +void PEM_SealUpdate(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *out, int *outl, + unsigned char *in, int inl); +int PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl, + unsigned char *out, int *outl, EVP_PKEY *priv); + +void PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); +void PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); +int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, + unsigned int *siglen, EVP_PKEY *pkey); + +int PEM_def_callback(char *buf, int num, int w, void *key); +void PEM_proc_type(char *buf, int type); +void PEM_dek_info(char *buf, const char *type, int len, char *str); + +# include + +DECLARE_PEM_rw(X509, X509) +DECLARE_PEM_rw(X509_AUX, X509) +DECLARE_PEM_rw(X509_CERT_PAIR, X509_CERT_PAIR) +DECLARE_PEM_rw(X509_REQ, X509_REQ) +DECLARE_PEM_write(X509_REQ_NEW, X509_REQ) +DECLARE_PEM_rw(X509_CRL, X509_CRL) +DECLARE_PEM_rw(PKCS7, PKCS7) +DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) +DECLARE_PEM_rw(PKCS8, X509_SIG) +DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) +# ifndef OPENSSL_NO_RSA +DECLARE_PEM_rw_cb(RSAPrivateKey, RSA) +DECLARE_PEM_rw_const(RSAPublicKey, RSA) +DECLARE_PEM_rw(RSA_PUBKEY, RSA) +# endif +# ifndef OPENSSL_NO_DSA +DECLARE_PEM_rw_cb(DSAPrivateKey, DSA) +DECLARE_PEM_rw(DSA_PUBKEY, DSA) +DECLARE_PEM_rw_const(DSAparams, DSA) +# endif +# ifndef OPENSSL_NO_EC +DECLARE_PEM_rw_const(ECPKParameters, EC_GROUP) +DECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY) +DECLARE_PEM_rw(EC_PUBKEY, EC_KEY) +# endif +# ifndef OPENSSL_NO_DH +DECLARE_PEM_rw_const(DHparams, DH) +DECLARE_PEM_write_const(DHxparams, DH) +# endif +DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) +DECLARE_PEM_rw(PUBKEY, EVP_PKEY) + +int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, + char *, int, pem_password_cb *, void *); +int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, + void *u); + +int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); + +EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, + void *u); + +int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, pem_password_cb *cd, + void *u); + +EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); +int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); + +EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); +EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); +EVP_PKEY *b2i_PrivateKey_bio(BIO *in); +EVP_PKEY *b2i_PublicKey_bio(BIO *in); +int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk); +int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); +# ifndef OPENSSL_NO_RC4 +EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); +int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, + pem_password_cb *cb, void *u); +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_PEM_strings(void); + +/* Error codes for the PEM functions. */ + +/* Function codes. */ +# define PEM_F_B2I_DSS 127 +# define PEM_F_B2I_PVK_BIO 128 +# define PEM_F_B2I_RSA 129 +# define PEM_F_CHECK_BITLEN_DSA 130 +# define PEM_F_CHECK_BITLEN_RSA 131 +# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 +# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 +# define PEM_F_DO_B2I 132 +# define PEM_F_DO_B2I_BIO 133 +# define PEM_F_DO_BLOB_HEADER 134 +# define PEM_F_DO_PK8PKEY 126 +# define PEM_F_DO_PK8PKEY_FP 125 +# define PEM_F_DO_PVK_BODY 135 +# define PEM_F_DO_PVK_HEADER 136 +# define PEM_F_I2B_PVK 137 +# define PEM_F_I2B_PVK_BIO 138 +# define PEM_F_LOAD_IV 101 +# define PEM_F_PEM_ASN1_READ 102 +# define PEM_F_PEM_ASN1_READ_BIO 103 +# define PEM_F_PEM_ASN1_WRITE 104 +# define PEM_F_PEM_ASN1_WRITE_BIO 105 +# define PEM_F_PEM_DEF_CALLBACK 100 +# define PEM_F_PEM_DO_HEADER 106 +# define PEM_F_PEM_F_PEM_WRITE_PKCS8PRIVATEKEY 118 +# define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 +# define PEM_F_PEM_PK8PKEY 119 +# define PEM_F_PEM_READ 108 +# define PEM_F_PEM_READ_BIO 109 +# define PEM_F_PEM_READ_BIO_DHPARAMS 141 +# define PEM_F_PEM_READ_BIO_PARAMETERS 140 +# define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 +# define PEM_F_PEM_READ_DHPARAMS 142 +# define PEM_F_PEM_READ_PRIVATEKEY 124 +# define PEM_F_PEM_SEALFINAL 110 +# define PEM_F_PEM_SEALINIT 111 +# define PEM_F_PEM_SIGNFINAL 112 +# define PEM_F_PEM_WRITE 113 +# define PEM_F_PEM_WRITE_BIO 114 +# define PEM_F_PEM_WRITE_PRIVATEKEY 139 +# define PEM_F_PEM_X509_INFO_READ 115 +# define PEM_F_PEM_X509_INFO_READ_BIO 116 +# define PEM_F_PEM_X509_INFO_WRITE_BIO 117 + +/* Reason codes. */ +# define PEM_R_BAD_BASE64_DECODE 100 +# define PEM_R_BAD_DECRYPT 101 +# define PEM_R_BAD_END_LINE 102 +# define PEM_R_BAD_IV_CHARS 103 +# define PEM_R_BAD_MAGIC_NUMBER 116 +# define PEM_R_BAD_PASSWORD_READ 104 +# define PEM_R_BAD_VERSION_NUMBER 117 +# define PEM_R_BIO_WRITE_FAILURE 118 +# define PEM_R_CIPHER_IS_NULL 127 +# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 +# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 +# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 +# define PEM_R_INCONSISTENT_HEADER 121 +# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 +# define PEM_R_KEYBLOB_TOO_SHORT 123 +# define PEM_R_NOT_DEK_INFO 105 +# define PEM_R_NOT_ENCRYPTED 106 +# define PEM_R_NOT_PROC_TYPE 107 +# define PEM_R_NO_START_LINE 108 +# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 +# define PEM_R_PUBLIC_KEY_NO_RSA 110 +# define PEM_R_PVK_DATA_TOO_SHORT 124 +# define PEM_R_PVK_TOO_SHORT 125 +# define PEM_R_READ_KEY 111 +# define PEM_R_SHORT_HEADER 112 +# define PEM_R_UNSUPPORTED_CIPHER 113 +# define PEM_R_UNSUPPORTED_ENCRYPTION 114 +# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/pem2.h b/External/include/openssl/pem2.h new file mode 100644 index 00000000..84897d5e --- /dev/null +++ b/External/include/openssl/pem2.h @@ -0,0 +1,70 @@ +/* ==================================================================== + * Copyright (c) 1999 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +/* + * This header only exists to break a circular dependency between pem and err + * Ben 30 Jan 1999. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef HEADER_PEM_H +void ERR_load_PEM_strings(void); +#endif + +#ifdef __cplusplus +} +#endif diff --git a/External/include/openssl/pkcs12.h b/External/include/openssl/pkcs12.h new file mode 100644 index 00000000..a39adf5e --- /dev/null +++ b/External/include/openssl/pkcs12.h @@ -0,0 +1,342 @@ +/* pkcs12.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project + * 1999. + */ +/* ==================================================================== + * Copyright (c) 1999 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_PKCS12_H +# define HEADER_PKCS12_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define PKCS12_KEY_ID 1 +# define PKCS12_IV_ID 2 +# define PKCS12_MAC_ID 3 + +/* Default iteration count */ +# ifndef PKCS12_DEFAULT_ITER +# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER +# endif + +# define PKCS12_MAC_KEY_LENGTH 20 + +# define PKCS12_SALT_LEN 8 + +/* Uncomment out next line for unicode password and names, otherwise ASCII */ + +/* + * #define PBE_UNICODE + */ + +# ifdef PBE_UNICODE +# define PKCS12_key_gen PKCS12_key_gen_uni +# define PKCS12_add_friendlyname PKCS12_add_friendlyname_uni +# else +# define PKCS12_key_gen PKCS12_key_gen_asc +# define PKCS12_add_friendlyname PKCS12_add_friendlyname_asc +# endif + +/* MS key usage constants */ + +# define KEY_EX 0x10 +# define KEY_SIG 0x80 + +typedef struct { + X509_SIG *dinfo; + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *iter; /* defaults to 1 */ +} PKCS12_MAC_DATA; + +typedef struct { + ASN1_INTEGER *version; + PKCS12_MAC_DATA *mac; + PKCS7 *authsafes; +} PKCS12; + +typedef struct { + ASN1_OBJECT *type; + union { + struct pkcs12_bag_st *bag; /* secret, crl and certbag */ + struct pkcs8_priv_key_info_st *keybag; /* keybag */ + X509_SIG *shkeybag; /* shrouded key bag */ + STACK_OF(PKCS12_SAFEBAG) *safes; + ASN1_TYPE *other; + } value; + STACK_OF(X509_ATTRIBUTE) *attrib; +} PKCS12_SAFEBAG; + +DECLARE_STACK_OF(PKCS12_SAFEBAG) +DECLARE_ASN1_SET_OF(PKCS12_SAFEBAG) +DECLARE_PKCS12_STACK_OF(PKCS12_SAFEBAG) + +typedef struct pkcs12_bag_st { + ASN1_OBJECT *type; + union { + ASN1_OCTET_STRING *x509cert; + ASN1_OCTET_STRING *x509crl; + ASN1_OCTET_STRING *octet; + ASN1_IA5STRING *sdsicert; + ASN1_TYPE *other; /* Secret or other bag */ + } value; +} PKCS12_BAGS; + +# define PKCS12_ERROR 0 +# define PKCS12_OK 1 + +/* Compatibility macros */ + +# define M_PKCS12_x5092certbag PKCS12_x5092certbag +# define M_PKCS12_x509crl2certbag PKCS12_x509crl2certbag + +# define M_PKCS12_certbag2x509 PKCS12_certbag2x509 +# define M_PKCS12_certbag2x509crl PKCS12_certbag2x509crl + +# define M_PKCS12_unpack_p7data PKCS12_unpack_p7data +# define M_PKCS12_pack_authsafes PKCS12_pack_authsafes +# define M_PKCS12_unpack_authsafes PKCS12_unpack_authsafes +# define M_PKCS12_unpack_p7encdata PKCS12_unpack_p7encdata + +# define M_PKCS12_decrypt_skey PKCS12_decrypt_skey +# define M_PKCS8_decrypt PKCS8_decrypt + +# define M_PKCS12_bag_type(bg) OBJ_obj2nid((bg)->type) +# define M_PKCS12_cert_bag_type(bg) OBJ_obj2nid((bg)->value.bag->type) +# define M_PKCS12_crl_bag_type M_PKCS12_cert_bag_type + +# define PKCS12_get_attr(bag, attr_nid) \ + PKCS12_get_attr_gen(bag->attrib, attr_nid) + +# define PKCS8_get_attr(p8, attr_nid) \ + PKCS12_get_attr_gen(p8->attributes, attr_nid) + +# define PKCS12_mac_present(p12) ((p12)->mac ? 1 : 0) + +PKCS12_SAFEBAG *PKCS12_x5092certbag(X509 *x509); +PKCS12_SAFEBAG *PKCS12_x509crl2certbag(X509_CRL *crl); +X509 *PKCS12_certbag2x509(PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_certbag2x509crl(PKCS12_SAFEBAG *bag); + +PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, + int nid1, int nid2); +PKCS12_SAFEBAG *PKCS12_MAKE_KEYBAG(PKCS8_PRIV_KEY_INFO *p8); +PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(X509_SIG *p8, const char *pass, + int passlen); +PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(PKCS12_SAFEBAG *bag, + const char *pass, int passlen); +X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, + const char *pass, int passlen, unsigned char *salt, + int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); +PKCS12_SAFEBAG *PKCS12_MAKE_SHKEYBAG(int pbe_nid, const char *pass, + int passlen, unsigned char *salt, + int saltlen, int iter, + PKCS8_PRIV_KEY_INFO *p8); +PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); +STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); +PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + STACK_OF(PKCS12_SAFEBAG) *bags); +STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, + int passlen); + +int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); +STACK_OF(PKCS7) *PKCS12_unpack_authsafes(PKCS12 *p12); + +int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, + int namelen); +int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, + int namelen); +int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, + int namelen); +int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, + const unsigned char *name, int namelen); +int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); +ASN1_TYPE *PKCS12_get_attr_gen(STACK_OF(X509_ATTRIBUTE) *attrs, int attr_nid); +char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); +unsigned char *PKCS12_pbe_crypt(X509_ALGOR *algor, const char *pass, + int passlen, unsigned char *in, int inlen, + unsigned char **data, int *datalen, + int en_de); +void *PKCS12_item_decrypt_d2i(X509_ALGOR *algor, const ASN1_ITEM *it, + const char *pass, int passlen, + ASN1_OCTET_STRING *oct, int zbuf); +ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, + const ASN1_ITEM *it, + const char *pass, int passlen, + void *obj, int zbuf); +PKCS12 *PKCS12_init(int mode); +int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); +int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); +int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md_type, int en_de); +int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, + unsigned char *mac, unsigned int *maclen); +int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); +int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type); +int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, + int saltlen, const EVP_MD *md_type); +unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, + unsigned char **uni, int *unilen); +char *OPENSSL_uni2asc(unsigned char *uni, int unilen); + +DECLARE_ASN1_FUNCTIONS(PKCS12) +DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) +DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) +DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) + +DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) +DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) + +void PKCS12_PBE_add(void); +int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, + STACK_OF(X509) **ca); +PKCS12 *PKCS12_create(char *pass, char *name, EVP_PKEY *pkey, X509 *cert, + STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, + int mac_iter, int keytype); + +PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); +PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, + EVP_PKEY *key, int key_usage, int iter, + int key_nid, char *pass); +int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, + int safe_nid, int iter, char *pass); +PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); + +int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); +int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); +PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); +PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); +int PKCS12_newpass(PKCS12 *p12, char *oldpass, char *newpass); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_PKCS12_strings(void); + +/* Error codes for the PKCS12 functions. */ + +/* Function codes. */ +# define PKCS12_F_PARSE_BAG 129 +# define PKCS12_F_PARSE_BAGS 103 +# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME 100 +# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_ASC 127 +# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_UNI 102 +# define PKCS12_F_PKCS12_ADD_LOCALKEYID 104 +# define PKCS12_F_PKCS12_CREATE 105 +# define PKCS12_F_PKCS12_GEN_MAC 107 +# define PKCS12_F_PKCS12_INIT 109 +# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 +# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 +# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 +# define PKCS12_F_PKCS12_KEY_GEN_ASC 110 +# define PKCS12_F_PKCS12_KEY_GEN_UNI 111 +# define PKCS12_F_PKCS12_MAKE_KEYBAG 112 +# define PKCS12_F_PKCS12_MAKE_SHKEYBAG 113 +# define PKCS12_F_PKCS12_NEWPASS 128 +# define PKCS12_F_PKCS12_PACK_P7DATA 114 +# define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 +# define PKCS12_F_PKCS12_PARSE 118 +# define PKCS12_F_PKCS12_PBE_CRYPT 119 +# define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 +# define PKCS12_F_PKCS12_SETUP_MAC 122 +# define PKCS12_F_PKCS12_SET_MAC 123 +# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 +# define PKCS12_F_PKCS12_UNPACK_P7DATA 131 +# define PKCS12_F_PKCS12_VERIFY_MAC 126 +# define PKCS12_F_PKCS8_ADD_KEYUSAGE 124 +# define PKCS12_F_PKCS8_ENCRYPT 125 + +/* Reason codes. */ +# define PKCS12_R_CANT_PACK_STRUCTURE 100 +# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 +# define PKCS12_R_DECODE_ERROR 101 +# define PKCS12_R_ENCODE_ERROR 102 +# define PKCS12_R_ENCRYPT_ERROR 103 +# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 +# define PKCS12_R_INVALID_NULL_ARGUMENT 104 +# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 +# define PKCS12_R_IV_GEN_ERROR 106 +# define PKCS12_R_KEY_GEN_ERROR 107 +# define PKCS12_R_MAC_ABSENT 108 +# define PKCS12_R_MAC_GENERATION_ERROR 109 +# define PKCS12_R_MAC_SETUP_ERROR 110 +# define PKCS12_R_MAC_STRING_SET_ERROR 111 +# define PKCS12_R_MAC_VERIFY_ERROR 112 +# define PKCS12_R_MAC_VERIFY_FAILURE 113 +# define PKCS12_R_PARSE_ERROR 114 +# define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 +# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 +# define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 +# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 +# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/pkcs7.h b/External/include/openssl/pkcs7.h new file mode 100644 index 00000000..b51b3863 --- /dev/null +++ b/External/include/openssl/pkcs7.h @@ -0,0 +1,481 @@ +/* crypto/pkcs7/pkcs7.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_PKCS7_H +# define HEADER_PKCS7_H + +# include +# include +# include + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_SYS_WIN32 +/* Under Win32 thes are defined in wincrypt.h */ +# undef PKCS7_ISSUER_AND_SERIAL +# undef PKCS7_SIGNER_INFO +# endif + +/*- +Encryption_ID DES-CBC +Digest_ID MD5 +Digest_Encryption_ID rsaEncryption +Key_Encryption_ID rsaEncryption +*/ + +typedef struct pkcs7_issuer_and_serial_st { + X509_NAME *issuer; + ASN1_INTEGER *serial; +} PKCS7_ISSUER_AND_SERIAL; + +typedef struct pkcs7_signer_info_st { + ASN1_INTEGER *version; /* version 1 */ + PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; + X509_ALGOR *digest_alg; + STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ + X509_ALGOR *digest_enc_alg; + ASN1_OCTET_STRING *enc_digest; + STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ + /* The private key to sign with */ + EVP_PKEY *pkey; +} PKCS7_SIGNER_INFO; + +DECLARE_STACK_OF(PKCS7_SIGNER_INFO) +DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) + +typedef struct pkcs7_recip_info_st { + ASN1_INTEGER *version; /* version 0 */ + PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; + X509_ALGOR *key_enc_algor; + ASN1_OCTET_STRING *enc_key; + X509 *cert; /* get the pub-key from this */ +} PKCS7_RECIP_INFO; + +DECLARE_STACK_OF(PKCS7_RECIP_INFO) +DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) + +typedef struct pkcs7_signed_st { + ASN1_INTEGER *version; /* version 1 */ + STACK_OF(X509_ALGOR) *md_algs; /* md used */ + STACK_OF(X509) *cert; /* [ 0 ] */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(PKCS7_SIGNER_INFO) *signer_info; + struct pkcs7_st *contents; +} PKCS7_SIGNED; +/* + * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about + * merging the two + */ + +typedef struct pkcs7_enc_content_st { + ASN1_OBJECT *content_type; + X509_ALGOR *algorithm; + ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ + const EVP_CIPHER *cipher; +} PKCS7_ENC_CONTENT; + +typedef struct pkcs7_enveloped_st { + ASN1_INTEGER *version; /* version 0 */ + STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; + PKCS7_ENC_CONTENT *enc_data; +} PKCS7_ENVELOPE; + +typedef struct pkcs7_signedandenveloped_st { + ASN1_INTEGER *version; /* version 1 */ + STACK_OF(X509_ALGOR) *md_algs; /* md used */ + STACK_OF(X509) *cert; /* [ 0 ] */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(PKCS7_SIGNER_INFO) *signer_info; + PKCS7_ENC_CONTENT *enc_data; + STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; +} PKCS7_SIGN_ENVELOPE; + +typedef struct pkcs7_digest_st { + ASN1_INTEGER *version; /* version 0 */ + X509_ALGOR *md; /* md used */ + struct pkcs7_st *contents; + ASN1_OCTET_STRING *digest; +} PKCS7_DIGEST; + +typedef struct pkcs7_encrypted_st { + ASN1_INTEGER *version; /* version 0 */ + PKCS7_ENC_CONTENT *enc_data; +} PKCS7_ENCRYPT; + +typedef struct pkcs7_st { + /* + * The following is non NULL if it contains ASN1 encoding of this + * structure + */ + unsigned char *asn1; + long length; +# define PKCS7_S_HEADER 0 +# define PKCS7_S_BODY 1 +# define PKCS7_S_TAIL 2 + int state; /* used during processing */ + int detached; + ASN1_OBJECT *type; + /* content as defined by the type */ + /* + * all encryption/message digests are applied to the 'contents', leaving + * out the 'type' field. + */ + union { + char *ptr; + /* NID_pkcs7_data */ + ASN1_OCTET_STRING *data; + /* NID_pkcs7_signed */ + PKCS7_SIGNED *sign; + /* NID_pkcs7_enveloped */ + PKCS7_ENVELOPE *enveloped; + /* NID_pkcs7_signedAndEnveloped */ + PKCS7_SIGN_ENVELOPE *signed_and_enveloped; + /* NID_pkcs7_digest */ + PKCS7_DIGEST *digest; + /* NID_pkcs7_encrypted */ + PKCS7_ENCRYPT *encrypted; + /* Anything else */ + ASN1_TYPE *other; + } d; +} PKCS7; + +DECLARE_STACK_OF(PKCS7) +DECLARE_ASN1_SET_OF(PKCS7) +DECLARE_PKCS12_STACK_OF(PKCS7) + +# define PKCS7_OP_SET_DETACHED_SIGNATURE 1 +# define PKCS7_OP_GET_DETACHED_SIGNATURE 2 + +# define PKCS7_get_signed_attributes(si) ((si)->auth_attr) +# define PKCS7_get_attributes(si) ((si)->unauth_attr) + +# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) +# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) +# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) +# define PKCS7_type_is_signedAndEnveloped(a) \ + (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) +# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) +# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) + +# define PKCS7_set_detached(p,v) \ + PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) +# define PKCS7_get_detached(p) \ + PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) + +# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) + +/* S/MIME related flags */ + +# define PKCS7_TEXT 0x1 +# define PKCS7_NOCERTS 0x2 +# define PKCS7_NOSIGS 0x4 +# define PKCS7_NOCHAIN 0x8 +# define PKCS7_NOINTERN 0x10 +# define PKCS7_NOVERIFY 0x20 +# define PKCS7_DETACHED 0x40 +# define PKCS7_BINARY 0x80 +# define PKCS7_NOATTR 0x100 +# define PKCS7_NOSMIMECAP 0x200 +# define PKCS7_NOOLDMIMETYPE 0x400 +# define PKCS7_CRLFEOL 0x800 +# define PKCS7_STREAM 0x1000 +# define PKCS7_NOCRL 0x2000 +# define PKCS7_PARTIAL 0x4000 +# define PKCS7_REUSE_DIGEST 0x8000 + +/* Flags: for compatibility with older code */ + +# define SMIME_TEXT PKCS7_TEXT +# define SMIME_NOCERTS PKCS7_NOCERTS +# define SMIME_NOSIGS PKCS7_NOSIGS +# define SMIME_NOCHAIN PKCS7_NOCHAIN +# define SMIME_NOINTERN PKCS7_NOINTERN +# define SMIME_NOVERIFY PKCS7_NOVERIFY +# define SMIME_DETACHED PKCS7_DETACHED +# define SMIME_BINARY PKCS7_BINARY +# define SMIME_NOATTR PKCS7_NOATTR + +DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) + +int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, + const EVP_MD *type, unsigned char *md, + unsigned int *len); +# ifndef OPENSSL_NO_FP_API +PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); +int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); +# endif +PKCS7 *PKCS7_dup(PKCS7 *p7); +PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); +int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); +int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); +int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); + +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) +DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) +DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) +DECLARE_ASN1_FUNCTIONS(PKCS7) + +DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) +DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) + +DECLARE_ASN1_NDEF_FUNCTION(PKCS7) +DECLARE_ASN1_PRINT_FUNCTION(PKCS7) + +long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); + +int PKCS7_set_type(PKCS7 *p7, int type); +int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); +int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); +int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, + const EVP_MD *dgst); +int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); +int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); +int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_content_new(PKCS7 *p7, int nid); +int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, + BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); +int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, + X509 *x509); + +BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); +int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); +BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); + +PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, + EVP_PKEY *pkey, const EVP_MD *dgst); +X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); +int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); +STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); + +PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); +void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, + X509_ALGOR **pdig, X509_ALGOR **psig); +void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); +int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); +int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); +int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); +int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); + +PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); +ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); +int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, + void *data); +int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, + void *value); +ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); +ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); +int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, + STACK_OF(X509_ATTRIBUTE) *sk); +int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, + STACK_OF(X509_ATTRIBUTE) *sk); + +PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, + BIO *data, int flags); + +PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, + X509 *signcert, EVP_PKEY *pkey, + const EVP_MD *md, int flags); + +int PKCS7_final(PKCS7 *p7, BIO *data, int flags); +int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, + BIO *indata, BIO *out, int flags); +STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, + int flags); +PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, + int flags); +int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, + int flags); + +int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, + STACK_OF(X509_ALGOR) *cap); +STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); +int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); + +int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); +int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); +int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, + const unsigned char *md, int mdlen); + +int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); +PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); + +BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_PKCS7_strings(void); + +/* Error codes for the PKCS7 functions. */ + +/* Function codes. */ +# define PKCS7_F_B64_READ_PKCS7 120 +# define PKCS7_F_B64_WRITE_PKCS7 121 +# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 +# define PKCS7_F_I2D_PKCS7_BIO_STREAM 140 +# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 +# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 +# define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 +# define PKCS7_F_PKCS7_ADD_CRL 101 +# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 +# define PKCS7_F_PKCS7_ADD_SIGNATURE 131 +# define PKCS7_F_PKCS7_ADD_SIGNER 103 +# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 +# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 +# define PKCS7_F_PKCS7_CTRL 104 +# define PKCS7_F_PKCS7_DATADECODE 112 +# define PKCS7_F_PKCS7_DATAFINAL 128 +# define PKCS7_F_PKCS7_DATAINIT 105 +# define PKCS7_F_PKCS7_DATASIGN 106 +# define PKCS7_F_PKCS7_DATAVERIFY 107 +# define PKCS7_F_PKCS7_DECRYPT 114 +# define PKCS7_F_PKCS7_DECRYPT_RINFO 133 +# define PKCS7_F_PKCS7_ENCODE_RINFO 132 +# define PKCS7_F_PKCS7_ENCRYPT 115 +# define PKCS7_F_PKCS7_FINAL 134 +# define PKCS7_F_PKCS7_FIND_DIGEST 127 +# define PKCS7_F_PKCS7_GET0_SIGNERS 124 +# define PKCS7_F_PKCS7_RECIP_INFO_SET 130 +# define PKCS7_F_PKCS7_SET_CIPHER 108 +# define PKCS7_F_PKCS7_SET_CONTENT 109 +# define PKCS7_F_PKCS7_SET_DIGEST 126 +# define PKCS7_F_PKCS7_SET_TYPE 110 +# define PKCS7_F_PKCS7_SIGN 116 +# define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 +# define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 +# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 +# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 +# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 +# define PKCS7_F_PKCS7_VERIFY 117 +# define PKCS7_F_SMIME_READ_PKCS7 122 +# define PKCS7_F_SMIME_TEXT 123 + +/* Reason codes. */ +# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 +# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 +# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 +# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 +# define PKCS7_R_CTRL_ERROR 152 +# define PKCS7_R_DECODE_ERROR 130 +# define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH 100 +# define PKCS7_R_DECRYPT_ERROR 119 +# define PKCS7_R_DIGEST_FAILURE 101 +# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 +# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 +# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 +# define PKCS7_R_ERROR_SETTING_CIPHER 121 +# define PKCS7_R_INVALID_MIME_TYPE 131 +# define PKCS7_R_INVALID_NULL_POINTER 143 +# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 +# define PKCS7_R_MIME_NO_CONTENT_TYPE 132 +# define PKCS7_R_MIME_PARSE_ERROR 133 +# define PKCS7_R_MIME_SIG_PARSE_ERROR 134 +# define PKCS7_R_MISSING_CERIPEND_INFO 103 +# define PKCS7_R_NO_CONTENT 122 +# define PKCS7_R_NO_CONTENT_TYPE 135 +# define PKCS7_R_NO_DEFAULT_DIGEST 151 +# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 +# define PKCS7_R_NO_MULTIPART_BODY_FAILURE 136 +# define PKCS7_R_NO_MULTIPART_BOUNDARY 137 +# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 +# define PKCS7_R_NO_RECIPIENT_MATCHES_KEY 146 +# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 +# define PKCS7_R_NO_SIGNERS 142 +# define PKCS7_R_NO_SIG_CONTENT_TYPE 138 +# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 +# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 +# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 +# define PKCS7_R_PKCS7_DATAFINAL 126 +# define PKCS7_R_PKCS7_DATAFINAL_ERROR 125 +# define PKCS7_R_PKCS7_DATASIGN 145 +# define PKCS7_R_PKCS7_PARSE_ERROR 139 +# define PKCS7_R_PKCS7_SIG_PARSE_ERROR 140 +# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 +# define PKCS7_R_SIGNATURE_FAILURE 105 +# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 +# define PKCS7_R_SIGNING_CTRL_FAILURE 147 +# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 +# define PKCS7_R_SIG_INVALID_MIME_TYPE 141 +# define PKCS7_R_SMIME_TEXT_ERROR 129 +# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 +# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 +# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 +# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 +# define PKCS7_R_UNKNOWN_OPERATION 110 +# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 +# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 +# define PKCS7_R_WRONG_CONTENT_TYPE 113 +# define PKCS7_R_WRONG_PKCS7_TYPE 114 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/pqueue.h b/External/include/openssl/pqueue.h new file mode 100644 index 00000000..d40d9c7d --- /dev/null +++ b/External/include/openssl/pqueue.h @@ -0,0 +1,99 @@ +/* crypto/pqueue/pqueue.h */ +/* + * DTLS implementation written by Nagendra Modadugu + * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. + */ +/* ==================================================================== + * Copyright (c) 1999-2005 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_PQUEUE_H +# define HEADER_PQUEUE_H + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif +typedef struct _pqueue *pqueue; + +typedef struct _pitem { + unsigned char priority[8]; /* 64-bit value in big-endian encoding */ + void *data; + struct _pitem *next; +} pitem; + +typedef struct _pitem *piterator; + +pitem *pitem_new(unsigned char *prio64be, void *data); +void pitem_free(pitem *item); + +pqueue pqueue_new(void); +void pqueue_free(pqueue pq); + +pitem *pqueue_insert(pqueue pq, pitem *item); +pitem *pqueue_peek(pqueue pq); +pitem *pqueue_pop(pqueue pq); +pitem *pqueue_find(pqueue pq, unsigned char *prio64be); +pitem *pqueue_iterator(pqueue pq); +pitem *pqueue_next(piterator *iter); + +void pqueue_print(pqueue pq); +int pqueue_size(pqueue pq); + +#ifdef __cplusplus +} +#endif +#endif /* ! HEADER_PQUEUE_H */ diff --git a/External/include/openssl/rand.h b/External/include/openssl/rand.h new file mode 100644 index 00000000..2553afda --- /dev/null +++ b/External/include/openssl/rand.h @@ -0,0 +1,150 @@ +/* crypto/rand/rand.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_RAND_H +# define HEADER_RAND_H + +# include +# include +# include + +# if defined(OPENSSL_SYS_WINDOWS) +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# if defined(OPENSSL_FIPS) +# define FIPS_RAND_SIZE_T size_t +# endif + +/* Already defined in ossl_typ.h */ +/* typedef struct rand_meth_st RAND_METHOD; */ + +struct rand_meth_st { + void (*seed) (const void *buf, int num); + int (*bytes) (unsigned char *buf, int num); + void (*cleanup) (void); + void (*add) (const void *buf, int num, double entropy); + int (*pseudorand) (unsigned char *buf, int num); + int (*status) (void); +}; + +# ifdef BN_DEBUG +extern int rand_predictable; +# endif + +int RAND_set_rand_method(const RAND_METHOD *meth); +const RAND_METHOD *RAND_get_rand_method(void); +# ifndef OPENSSL_NO_ENGINE +int RAND_set_rand_engine(ENGINE *engine); +# endif +RAND_METHOD *RAND_SSLeay(void); +void RAND_cleanup(void); +int RAND_bytes(unsigned char *buf, int num); +int RAND_pseudo_bytes(unsigned char *buf, int num); +void RAND_seed(const void *buf, int num); +void RAND_add(const void *buf, int num, double entropy); +int RAND_load_file(const char *file, long max_bytes); +int RAND_write_file(const char *file); +const char *RAND_file_name(char *file, size_t num); +int RAND_status(void); +int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); +int RAND_egd(const char *path); +int RAND_egd_bytes(const char *path, int bytes); +int RAND_poll(void); + +# if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) + +void RAND_screen(void); +int RAND_event(UINT, WPARAM, LPARAM); + +# endif + +# ifdef OPENSSL_FIPS +void RAND_set_fips_drbg_type(int type, int flags); +int RAND_init_fips(void); +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_RAND_strings(void); + +/* Error codes for the RAND functions. */ + +/* Function codes. */ +# define RAND_F_RAND_GET_RAND_METHOD 101 +# define RAND_F_RAND_INIT_FIPS 102 +# define RAND_F_SSLEAY_RAND_BYTES 100 + +/* Reason codes. */ +# define RAND_R_DUAL_EC_DRBG_DISABLED 104 +# define RAND_R_ERROR_INITIALISING_DRBG 102 +# define RAND_R_ERROR_INSTANTIATING_DRBG 103 +# define RAND_R_NO_FIPS_RANDOM_METHOD_SET 101 +# define RAND_R_PRNG_NOT_SEEDED 100 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/rc2.h b/External/include/openssl/rc2.h new file mode 100644 index 00000000..29d02d73 --- /dev/null +++ b/External/include/openssl/rc2.h @@ -0,0 +1,103 @@ +/* crypto/rc2/rc2.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_RC2_H +# define HEADER_RC2_H + +# include /* OPENSSL_NO_RC2, RC2_INT */ +# ifdef OPENSSL_NO_RC2 +# error RC2 is disabled. +# endif + +# define RC2_ENCRYPT 1 +# define RC2_DECRYPT 0 + +# define RC2_BLOCK 8 +# define RC2_KEY_LENGTH 16 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct rc2_key_st { + RC2_INT data[64]; +} RC2_KEY; + +# ifdef OPENSSL_FIPS +void private_RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, + int bits); +# endif +void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits); +void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out, + RC2_KEY *key, int enc); +void RC2_encrypt(unsigned long *data, RC2_KEY *key); +void RC2_decrypt(unsigned long *data, RC2_KEY *key); +void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, + RC2_KEY *ks, unsigned char *iv, int enc); +void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, RC2_KEY *schedule, unsigned char *ivec, + int *num, int enc); +void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, RC2_KEY *schedule, unsigned char *ivec, + int *num); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/rc4.h b/External/include/openssl/rc4.h new file mode 100644 index 00000000..39162b16 --- /dev/null +++ b/External/include/openssl/rc4.h @@ -0,0 +1,88 @@ +/* crypto/rc4/rc4.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_RC4_H +# define HEADER_RC4_H + +# include /* OPENSSL_NO_RC4, RC4_INT */ +# ifdef OPENSSL_NO_RC4 +# error RC4 is disabled. +# endif + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct rc4_key_st { + RC4_INT x, y; + RC4_INT data[256]; +} RC4_KEY; + +const char *RC4_options(void); +void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); +void private_RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); +void RC4(RC4_KEY *key, size_t len, const unsigned char *indata, + unsigned char *outdata); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/ripemd.h b/External/include/openssl/ripemd.h new file mode 100644 index 00000000..b88ef25e --- /dev/null +++ b/External/include/openssl/ripemd.h @@ -0,0 +1,105 @@ +/* crypto/ripemd/ripemd.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_RIPEMD_H +# define HEADER_RIPEMD_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_NO_RIPEMD +# error RIPEMD is disabled. +# endif + +# if defined(__LP32__) +# define RIPEMD160_LONG unsigned long +# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) +# define RIPEMD160_LONG unsigned long +# define RIPEMD160_LONG_LOG2 3 +# else +# define RIPEMD160_LONG unsigned int +# endif + +# define RIPEMD160_CBLOCK 64 +# define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) +# define RIPEMD160_DIGEST_LENGTH 20 + +typedef struct RIPEMD160state_st { + RIPEMD160_LONG A, B, C, D, E; + RIPEMD160_LONG Nl, Nh; + RIPEMD160_LONG data[RIPEMD160_LBLOCK]; + unsigned int num; +} RIPEMD160_CTX; + +# ifdef OPENSSL_FIPS +int private_RIPEMD160_Init(RIPEMD160_CTX *c); +# endif +int RIPEMD160_Init(RIPEMD160_CTX *c); +int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len); +int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); +unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned char *md); +void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/rsa.h b/External/include/openssl/rsa.h new file mode 100644 index 00000000..d2ee3740 --- /dev/null +++ b/External/include/openssl/rsa.h @@ -0,0 +1,664 @@ +/* crypto/rsa/rsa.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_RSA_H +# define HEADER_RSA_H + +# include + +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +# ifdef OPENSSL_NO_RSA +# error RSA is disabled. +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Declared already in ossl_typ.h */ +/* typedef struct rsa_st RSA; */ +/* typedef struct rsa_meth_st RSA_METHOD; */ + +struct rsa_meth_st { + const char *name; + int (*rsa_pub_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); + int (*rsa_pub_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); + int (*rsa_priv_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); + int (*rsa_priv_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); + /* Can be null */ + int (*rsa_mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); + /* Can be null */ + int (*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); + /* called at new */ + int (*init) (RSA *rsa); + /* called at free */ + int (*finish) (RSA *rsa); + /* RSA_METHOD_FLAG_* things */ + int flags; + /* may be needed! */ + char *app_data; + /* + * New sign and verify functions: some libraries don't allow arbitrary + * data to be signed/verified: this allows them to be used. Note: for + * this to work the RSA_public_decrypt() and RSA_private_encrypt() should + * *NOT* be used RSA_sign(), RSA_verify() should be used instead. Note: + * for backwards compatibility this functionality is only enabled if the + * RSA_FLAG_SIGN_VER option is set in 'flags'. + */ + int (*rsa_sign) (int type, + const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + const RSA *rsa); + int (*rsa_verify) (int dtype, const unsigned char *m, + unsigned int m_length, const unsigned char *sigbuf, + unsigned int siglen, const RSA *rsa); + /* + * If this callback is NULL, the builtin software RSA key-gen will be + * used. This is for behavioural compatibility whilst the code gets + * rewired, but one day it would be nice to assume there are no such + * things as "builtin software" implementations. + */ + int (*rsa_keygen) (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); +}; + +struct rsa_st { + /* + * The first parameter is used to pickup errors where this is passed + * instead of aEVP_PKEY, it is set to 0 + */ + int pad; + long version; + const RSA_METHOD *meth; + /* functional reference if 'meth' is ENGINE-provided */ + ENGINE *engine; + BIGNUM *n; + BIGNUM *e; + BIGNUM *d; + BIGNUM *p; + BIGNUM *q; + BIGNUM *dmp1; + BIGNUM *dmq1; + BIGNUM *iqmp; + /* be careful using this if the RSA structure is shared */ + CRYPTO_EX_DATA ex_data; + int references; + int flags; + /* Used to cache montgomery values */ + BN_MONT_CTX *_method_mod_n; + BN_MONT_CTX *_method_mod_p; + BN_MONT_CTX *_method_mod_q; + /* + * all BIGNUM values are actually in the following data, if it is not + * NULL + */ + char *bignum_data; + BN_BLINDING *blinding; + BN_BLINDING *mt_blinding; +}; + +# ifndef OPENSSL_RSA_MAX_MODULUS_BITS +# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 +# endif + +# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS +# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 +# endif +# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS + +/* exponent limit enforced for "large" modulus only */ +# define OPENSSL_RSA_MAX_PUBEXP_BITS 64 +# endif + +# define RSA_3 0x3L +# define RSA_F4 0x10001L + +# define RSA_METHOD_FLAG_NO_CHECK 0x0001/* don't check pub/private + * match */ + +# define RSA_FLAG_CACHE_PUBLIC 0x0002 +# define RSA_FLAG_CACHE_PRIVATE 0x0004 +# define RSA_FLAG_BLINDING 0x0008 +# define RSA_FLAG_THREAD_SAFE 0x0010 +/* + * This flag means the private key operations will be handled by rsa_mod_exp + * and that they do not depend on the private key components being present: + * for example a key stored in external hardware. Without this flag + * bn_mod_exp gets called when private key components are absent. + */ +# define RSA_FLAG_EXT_PKEY 0x0020 + +/* + * This flag in the RSA_METHOD enables the new rsa_sign, rsa_verify + * functions. + */ +# define RSA_FLAG_SIGN_VER 0x0040 + +/* + * new with 0.9.6j and 0.9.7b; the built-in + * RSA implementation now uses blinding by + * default (ignoring RSA_FLAG_BLINDING), + * but other engines might not need it + */ +# define RSA_FLAG_NO_BLINDING 0x0080 +/* + * new with 0.9.8f; the built-in RSA + * implementation now uses constant time + * operations by default in private key operations, + * e.g., constant time modular exponentiation, + * modular inverse without leaking branches, + * division without leaking branches. This + * flag disables these constant time + * operations and results in faster RSA + * private key operations. + */ +# define RSA_FLAG_NO_CONSTTIME 0x0100 +# ifdef OPENSSL_USE_DEPRECATED +/* deprecated name for the flag*/ +/* + * new with 0.9.7h; the built-in RSA + * implementation now uses constant time + * modular exponentiation for secret exponents + * by default. This flag causes the + * faster variable sliding window method to + * be used for all exponents. + */ +# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME +# endif + +# define EVP_PKEY_CTX_set_rsa_padding(ctx, pad) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, EVP_PKEY_CTRL_RSA_PADDING, \ + pad, NULL) + +# define EVP_PKEY_CTX_get_rsa_padding(ctx, ppad) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, \ + EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) + +# define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ + (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ + EVP_PKEY_CTRL_RSA_PSS_SALTLEN, \ + len, NULL) + +# define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ + (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ + EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, \ + 0, plen) + +# define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) + +# define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) + +# define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ + EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ + EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_get_rsa_oaep_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_OAEP_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, l, llen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_OAEP_LABEL, llen, (void *)l) + +# define EVP_PKEY_CTX_get0_rsa_oaep_label(ctx, l) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL, 0, (void *)l) + +# define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2) + +# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5) + +# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) + +# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10) + +# define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12) + +# define RSA_PKCS1_PADDING 1 +# define RSA_SSLV23_PADDING 2 +# define RSA_NO_PADDING 3 +# define RSA_PKCS1_OAEP_PADDING 4 +# define RSA_X931_PADDING 5 +/* EVP_PKEY_ only */ +# define RSA_PKCS1_PSS_PADDING 6 + +# define RSA_PKCS1_PADDING_SIZE 11 + +# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) +# define RSA_get_app_data(s) RSA_get_ex_data(s,0) + +RSA *RSA_new(void); +RSA *RSA_new_method(ENGINE *engine); +int RSA_size(const RSA *rsa); + +/* Deprecated version */ +# ifndef OPENSSL_NO_DEPRECATED +RSA *RSA_generate_key(int bits, unsigned long e, void + (*callback) (int, int, void *), void *cb_arg); +# endif /* !defined(OPENSSL_NO_DEPRECATED) */ + +/* New version */ +int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); + +int RSA_check_key(const RSA *); + /* next 4 return -1 on error */ +int RSA_public_encrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_private_encrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_public_decrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_private_decrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +void RSA_free(RSA *r); +/* "up" the RSA object's reference count */ +int RSA_up_ref(RSA *r); + +int RSA_flags(const RSA *r); + +void RSA_set_default_method(const RSA_METHOD *meth); +const RSA_METHOD *RSA_get_default_method(void); +const RSA_METHOD *RSA_get_method(const RSA *rsa); +int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); + +/* This function needs the memory locking malloc callbacks to be installed */ +int RSA_memory_lock(RSA *r); + +/* these are the actual SSLeay RSA functions */ +const RSA_METHOD *RSA_PKCS1_SSLeay(void); + +const RSA_METHOD *RSA_null_method(void); + +DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) +DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) + +typedef struct rsa_pss_params_st { + X509_ALGOR *hashAlgorithm; + X509_ALGOR *maskGenAlgorithm; + ASN1_INTEGER *saltLength; + ASN1_INTEGER *trailerField; +} RSA_PSS_PARAMS; + +DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) + +typedef struct rsa_oaep_params_st { + X509_ALGOR *hashFunc; + X509_ALGOR *maskGenFunc; + X509_ALGOR *pSourceFunc; +} RSA_OAEP_PARAMS; + +DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) + +# ifndef OPENSSL_NO_FP_API +int RSA_print_fp(FILE *fp, const RSA *r, int offset); +# endif + +# ifndef OPENSSL_NO_BIO +int RSA_print(BIO *bp, const RSA *r, int offset); +# endif + +# ifndef OPENSSL_NO_RC4 +int i2d_RSA_NET(const RSA *a, unsigned char **pp, + int (*cb) (char *buf, int len, const char *prompt, + int verify), int sgckey); +RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, + int (*cb) (char *buf, int len, const char *prompt, + int verify), int sgckey); + +int i2d_Netscape_RSA(const RSA *a, unsigned char **pp, + int (*cb) (char *buf, int len, const char *prompt, + int verify)); +RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, + int (*cb) (char *buf, int len, const char *prompt, + int verify)); +# endif + +/* + * The following 2 functions sign and verify a X509_SIG ASN1 object inside + * PKCS#1 padded RSA encryption + */ +int RSA_sign(int type, const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, RSA *rsa); +int RSA_verify(int type, const unsigned char *m, unsigned int m_length, + const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); + +/* + * The following 2 function sign and verify a ASN1_OCTET_STRING object inside + * PKCS#1 padded RSA encryption + */ +int RSA_sign_ASN1_OCTET_STRING(int type, + const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + RSA *rsa); +int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, + unsigned int m_length, unsigned char *sigbuf, + unsigned int siglen, RSA *rsa); + +int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); +void RSA_blinding_off(RSA *rsa); +BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); + +int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, + const unsigned char *f, int fl, + int rsa_len); +int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, + const unsigned char *f, int fl, + int rsa_len); +int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, + long seedlen, const EVP_MD *dgst); +int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, + const unsigned char *f, int fl, + const unsigned char *p, int pl); +int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len, + const unsigned char *p, int pl); +int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + const unsigned char *param, int plen, + const EVP_MD *md, const EVP_MD *mgf1md); +int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + int num, const unsigned char *param, + int plen, const EVP_MD *md, + const EVP_MD *mgf1md); +int RSA_padding_add_SSLv23(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_SSLv23(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, + int fl); +int RSA_padding_check_none(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, + int fl); +int RSA_padding_check_X931(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_X931_hash_id(int nid); + +int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, + const EVP_MD *Hash, const unsigned char *EM, + int sLen); +int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, + const unsigned char *mHash, const EVP_MD *Hash, + int sLen); + +int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, + const EVP_MD *Hash, const EVP_MD *mgf1Hash, + const unsigned char *EM, int sLen); + +int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, + const unsigned char *mHash, + const EVP_MD *Hash, const EVP_MD *mgf1Hash, + int sLen); + +int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int RSA_set_ex_data(RSA *r, int idx, void *arg); +void *RSA_get_ex_data(const RSA *r, int idx); + +RSA *RSAPublicKey_dup(RSA *rsa); +RSA *RSAPrivateKey_dup(RSA *rsa); + +/* + * If this flag is set the RSA method is FIPS compliant and can be used in + * FIPS mode. This is set in the validated module method. If an application + * sets this flag in its own methods it is its responsibility to ensure the + * result is compliant. + */ + +# define RSA_FLAG_FIPS_METHOD 0x0400 + +/* + * If this flag is set the operations normally disabled in FIPS mode are + * permitted it is then the applications responsibility to ensure that the + * usage is compliant. + */ + +# define RSA_FLAG_NON_FIPS_ALLOW 0x0400 +/* + * Application has decided PRNG is good enough to generate a key: don't + * check. + */ +# define RSA_FLAG_CHECKED 0x0800 + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_RSA_strings(void); + +/* Error codes for the RSA functions. */ + +/* Function codes. */ +# define RSA_F_CHECK_PADDING_MD 140 +# define RSA_F_DO_RSA_PRINT 146 +# define RSA_F_INT_RSA_VERIFY 145 +# define RSA_F_MEMORY_LOCK 100 +# define RSA_F_OLD_RSA_PRIV_DECODE 147 +# define RSA_F_PKEY_RSA_CTRL 143 +# define RSA_F_PKEY_RSA_CTRL_STR 144 +# define RSA_F_PKEY_RSA_SIGN 142 +# define RSA_F_PKEY_RSA_VERIFY 154 +# define RSA_F_PKEY_RSA_VERIFYRECOVER 141 +# define RSA_F_RSA_ALGOR_TO_MD 157 +# define RSA_F_RSA_BUILTIN_KEYGEN 129 +# define RSA_F_RSA_CHECK_KEY 123 +# define RSA_F_RSA_CMS_DECRYPT 158 +# define RSA_F_RSA_EAY_PRIVATE_DECRYPT 101 +# define RSA_F_RSA_EAY_PRIVATE_ENCRYPT 102 +# define RSA_F_RSA_EAY_PUBLIC_DECRYPT 103 +# define RSA_F_RSA_EAY_PUBLIC_ENCRYPT 104 +# define RSA_F_RSA_GENERATE_KEY 105 +# define RSA_F_RSA_GENERATE_KEY_EX 155 +# define RSA_F_RSA_ITEM_VERIFY 156 +# define RSA_F_RSA_MEMORY_LOCK 130 +# define RSA_F_RSA_MGF1_TO_MD 159 +# define RSA_F_RSA_NEW_METHOD 106 +# define RSA_F_RSA_NULL 124 +# define RSA_F_RSA_NULL_MOD_EXP 131 +# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 +# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 +# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 +# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 +# define RSA_F_RSA_PADDING_ADD_NONE 107 +# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 +# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 160 +# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 +# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 148 +# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 +# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 +# define RSA_F_RSA_PADDING_ADD_SSLV23 110 +# define RSA_F_RSA_PADDING_ADD_X931 127 +# define RSA_F_RSA_PADDING_CHECK_NONE 111 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 161 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 +# define RSA_F_RSA_PADDING_CHECK_SSLV23 114 +# define RSA_F_RSA_PADDING_CHECK_X931 128 +# define RSA_F_RSA_PRINT 115 +# define RSA_F_RSA_PRINT_FP 116 +# define RSA_F_RSA_PRIVATE_DECRYPT 150 +# define RSA_F_RSA_PRIVATE_ENCRYPT 151 +# define RSA_F_RSA_PRIV_DECODE 137 +# define RSA_F_RSA_PRIV_ENCODE 138 +# define RSA_F_RSA_PSS_TO_CTX 162 +# define RSA_F_RSA_PUBLIC_DECRYPT 152 +# define RSA_F_RSA_PUBLIC_ENCRYPT 153 +# define RSA_F_RSA_PUB_DECODE 139 +# define RSA_F_RSA_SETUP_BLINDING 136 +# define RSA_F_RSA_SIGN 117 +# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 +# define RSA_F_RSA_VERIFY 119 +# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 +# define RSA_F_RSA_VERIFY_PKCS1_PSS 126 +# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 149 + +/* Reason codes. */ +# define RSA_R_ALGORITHM_MISMATCH 100 +# define RSA_R_BAD_E_VALUE 101 +# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 +# define RSA_R_BAD_PAD_BYTE_COUNT 103 +# define RSA_R_BAD_SIGNATURE 104 +# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 +# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 +# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 +# define RSA_R_DATA_TOO_LARGE 109 +# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 +# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 +# define RSA_R_DATA_TOO_SMALL 111 +# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 +# define RSA_R_DIGEST_DOES_NOT_MATCH 166 +# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 +# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 +# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 +# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 +# define RSA_R_FIRST_OCTET_INVALID 133 +# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 +# define RSA_R_INVALID_DIGEST 160 +# define RSA_R_INVALID_DIGEST_LENGTH 143 +# define RSA_R_INVALID_HEADER 137 +# define RSA_R_INVALID_KEYBITS 145 +# define RSA_R_INVALID_LABEL 161 +# define RSA_R_INVALID_MESSAGE_LENGTH 131 +# define RSA_R_INVALID_MGF1_MD 156 +# define RSA_R_INVALID_OAEP_PARAMETERS 162 +# define RSA_R_INVALID_PADDING 138 +# define RSA_R_INVALID_PADDING_MODE 141 +# define RSA_R_INVALID_PSS_PARAMETERS 149 +# define RSA_R_INVALID_PSS_SALTLEN 146 +# define RSA_R_INVALID_SALT_LENGTH 150 +# define RSA_R_INVALID_TRAILER 139 +# define RSA_R_INVALID_X931_DIGEST 142 +# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 +# define RSA_R_KEY_SIZE_TOO_SMALL 120 +# define RSA_R_LAST_OCTET_INVALID 134 +# define RSA_R_MODULUS_TOO_LARGE 105 +# define RSA_R_NON_FIPS_RSA_METHOD 157 +# define RSA_R_NO_PUBLIC_EXPONENT 140 +# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 +# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 +# define RSA_R_OAEP_DECODING_ERROR 121 +# define RSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE 158 +# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 +# define RSA_R_PADDING_CHECK_FAILED 114 +# define RSA_R_PKCS_DECODING_ERROR 159 +# define RSA_R_P_NOT_PRIME 128 +# define RSA_R_Q_NOT_PRIME 129 +# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 +# define RSA_R_SLEN_CHECK_FAILED 136 +# define RSA_R_SLEN_RECOVERY_FAILED 135 +# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 +# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 +# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 +# define RSA_R_UNKNOWN_DIGEST 163 +# define RSA_R_UNKNOWN_MASK_DIGEST 151 +# define RSA_R_UNKNOWN_PADDING_TYPE 118 +# define RSA_R_UNKNOWN_PSS_DIGEST 152 +# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 164 +# define RSA_R_UNSUPPORTED_LABEL_SOURCE 165 +# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 +# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 +# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 +# define RSA_R_VALUE_MISSING 147 +# define RSA_R_WRONG_SIGNATURE_LENGTH 119 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/safestack.h b/External/include/openssl/safestack.h new file mode 100644 index 00000000..1d4f87ea --- /dev/null +++ b/External/include/openssl/safestack.h @@ -0,0 +1,2672 @@ +/* ==================================================================== + * Copyright (c) 1999 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_SAFESTACK_H +# define HEADER_SAFESTACK_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef CHECKED_PTR_OF +# define CHECKED_PTR_OF(type, p) \ + ((void*) (1 ? p : (type*)0)) +# endif + +/* + * In C++ we get problems because an explicit cast is needed from (void *) we + * use CHECKED_STACK_OF to ensure the correct type is passed in the macros + * below. + */ + +# define CHECKED_STACK_OF(type, p) \ + ((_STACK*) (1 ? p : (STACK_OF(type)*)0)) + +# define CHECKED_SK_COPY_FUNC(type, p) \ + ((void *(*)(void *)) ((1 ? p : (type *(*)(const type *))0))) + +# define CHECKED_SK_FREE_FUNC(type, p) \ + ((void (*)(void *)) ((1 ? p : (void (*)(type *))0))) + +# define CHECKED_SK_CMP_FUNC(type, p) \ + ((int (*)(const void *, const void *)) \ + ((1 ? p : (int (*)(const type * const *, const type * const *))0))) + +# define STACK_OF(type) struct stack_st_##type +# define PREDECLARE_STACK_OF(type) STACK_OF(type); + +# define DECLARE_STACK_OF(type) \ +STACK_OF(type) \ + { \ + _STACK stack; \ + }; +# define DECLARE_SPECIAL_STACK_OF(type, type2) \ +STACK_OF(type) \ + { \ + _STACK stack; \ + }; + +/* nada (obsolete in new safestack approach)*/ +# define IMPLEMENT_STACK_OF(type) + +/*- + * Strings are special: normally an lhash entry will point to a single + * (somewhat) mutable object. In the case of strings: + * + * a) Instead of a single char, there is an array of chars, NUL-terminated. + * b) The string may have be immutable. + * + * So, they need their own declarations. Especially important for + * type-checking tools, such as Deputy. + * + * In practice, however, it appears to be hard to have a const + * string. For now, I'm settling for dealing with the fact it is a + * string at all. + */ +typedef char *OPENSSL_STRING; + +typedef const char *OPENSSL_CSTRING; + +/* + * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but + * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned + * above, instead of a single char each entry is a NUL-terminated array of + * chars. So, we have to implement STRING specially for STACK_OF. This is + * dealt with in the autogenerated macros below. + */ + +DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char) + +/* + * Similarly, we sometimes use a block of characters, NOT nul-terminated. + * These should also be distinguished from "normal" stacks. + */ +typedef void *OPENSSL_BLOCK; +DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) + +/* + * SKM_sk_... stack macros are internal to safestack.h: never use them + * directly, use sk__... instead + */ +# define SKM_sk_new(type, cmp) \ + ((STACK_OF(type) *)sk_new(CHECKED_SK_CMP_FUNC(type, cmp))) +# define SKM_sk_new_null(type) \ + ((STACK_OF(type) *)sk_new_null()) +# define SKM_sk_free(type, st) \ + sk_free(CHECKED_STACK_OF(type, st)) +# define SKM_sk_num(type, st) \ + sk_num(CHECKED_STACK_OF(type, st)) +# define SKM_sk_value(type, st,i) \ + ((type *)sk_value(CHECKED_STACK_OF(type, st), i)) +# define SKM_sk_set(type, st,i,val) \ + sk_set(CHECKED_STACK_OF(type, st), i, CHECKED_PTR_OF(type, val)) +# define SKM_sk_zero(type, st) \ + sk_zero(CHECKED_STACK_OF(type, st)) +# define SKM_sk_push(type, st, val) \ + sk_push(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) +# define SKM_sk_unshift(type, st, val) \ + sk_unshift(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) +# define SKM_sk_find(type, st, val) \ + sk_find(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) +# define SKM_sk_find_ex(type, st, val) \ + sk_find_ex(CHECKED_STACK_OF(type, st), \ + CHECKED_PTR_OF(type, val)) +# define SKM_sk_delete(type, st, i) \ + (type *)sk_delete(CHECKED_STACK_OF(type, st), i) +# define SKM_sk_delete_ptr(type, st, ptr) \ + (type *)sk_delete_ptr(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, ptr)) +# define SKM_sk_insert(type, st,val, i) \ + sk_insert(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val), i) +# define SKM_sk_set_cmp_func(type, st, cmp) \ + ((int (*)(const type * const *,const type * const *)) \ + sk_set_cmp_func(CHECKED_STACK_OF(type, st), CHECKED_SK_CMP_FUNC(type, cmp))) +# define SKM_sk_dup(type, st) \ + (STACK_OF(type) *)sk_dup(CHECKED_STACK_OF(type, st)) +# define SKM_sk_pop_free(type, st, free_func) \ + sk_pop_free(CHECKED_STACK_OF(type, st), CHECKED_SK_FREE_FUNC(type, free_func)) +# define SKM_sk_deep_copy(type, st, copy_func, free_func) \ + (STACK_OF(type) *)sk_deep_copy(CHECKED_STACK_OF(type, st), CHECKED_SK_COPY_FUNC(type, copy_func), CHECKED_SK_FREE_FUNC(type, free_func)) +# define SKM_sk_shift(type, st) \ + (type *)sk_shift(CHECKED_STACK_OF(type, st)) +# define SKM_sk_pop(type, st) \ + (type *)sk_pop(CHECKED_STACK_OF(type, st)) +# define SKM_sk_sort(type, st) \ + sk_sort(CHECKED_STACK_OF(type, st)) +# define SKM_sk_is_sorted(type, st) \ + sk_is_sorted(CHECKED_STACK_OF(type, st)) +# define SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + (STACK_OF(type) *)d2i_ASN1_SET( \ + (STACK_OF(OPENSSL_BLOCK) **)CHECKED_PTR_OF(STACK_OF(type)*, st), \ + pp, length, \ + CHECKED_D2I_OF(type, d2i_func), \ + CHECKED_SK_FREE_FUNC(type, free_func), \ + ex_tag, ex_class) +# define SKM_ASN1_SET_OF_i2d(type, st, pp, i2d_func, ex_tag, ex_class, is_set) \ + i2d_ASN1_SET((STACK_OF(OPENSSL_BLOCK) *)CHECKED_STACK_OF(type, st), pp, \ + CHECKED_I2D_OF(type, i2d_func), \ + ex_tag, ex_class, is_set) +# define SKM_ASN1_seq_pack(type, st, i2d_func, buf, len) \ + ASN1_seq_pack(CHECKED_PTR_OF(STACK_OF(type), st), \ + CHECKED_I2D_OF(type, i2d_func), buf, len) +# define SKM_ASN1_seq_unpack(type, buf, len, d2i_func, free_func) \ + (STACK_OF(type) *)ASN1_seq_unpack(buf, len, CHECKED_D2I_OF(type, d2i_func), CHECKED_SK_FREE_FUNC(type, free_func)) +# define SKM_PKCS12_decrypt_d2i(type, algor, d2i_func, free_func, pass, passlen, oct, seq) \ + (STACK_OF(type) *)PKCS12_decrypt_d2i(algor, \ + CHECKED_D2I_OF(type, d2i_func), \ + CHECKED_SK_FREE_FUNC(type, free_func), \ + pass, passlen, oct, seq) +/* + * This block of defines is updated by util/mkstack.pl, please do not touch! + */ +# define sk_ACCESS_DESCRIPTION_new(cmp) SKM_sk_new(ACCESS_DESCRIPTION, (cmp)) +# define sk_ACCESS_DESCRIPTION_new_null() SKM_sk_new_null(ACCESS_DESCRIPTION) +# define sk_ACCESS_DESCRIPTION_free(st) SKM_sk_free(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_num(st) SKM_sk_num(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_value(st, i) SKM_sk_value(ACCESS_DESCRIPTION, (st), (i)) +# define sk_ACCESS_DESCRIPTION_set(st, i, val) SKM_sk_set(ACCESS_DESCRIPTION, (st), (i), (val)) +# define sk_ACCESS_DESCRIPTION_zero(st) SKM_sk_zero(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_push(st, val) SKM_sk_push(ACCESS_DESCRIPTION, (st), (val)) +# define sk_ACCESS_DESCRIPTION_unshift(st, val) SKM_sk_unshift(ACCESS_DESCRIPTION, (st), (val)) +# define sk_ACCESS_DESCRIPTION_find(st, val) SKM_sk_find(ACCESS_DESCRIPTION, (st), (val)) +# define sk_ACCESS_DESCRIPTION_find_ex(st, val) SKM_sk_find_ex(ACCESS_DESCRIPTION, (st), (val)) +# define sk_ACCESS_DESCRIPTION_delete(st, i) SKM_sk_delete(ACCESS_DESCRIPTION, (st), (i)) +# define sk_ACCESS_DESCRIPTION_delete_ptr(st, ptr) SKM_sk_delete_ptr(ACCESS_DESCRIPTION, (st), (ptr)) +# define sk_ACCESS_DESCRIPTION_insert(st, val, i) SKM_sk_insert(ACCESS_DESCRIPTION, (st), (val), (i)) +# define sk_ACCESS_DESCRIPTION_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ACCESS_DESCRIPTION, (st), (cmp)) +# define sk_ACCESS_DESCRIPTION_dup(st) SKM_sk_dup(ACCESS_DESCRIPTION, st) +# define sk_ACCESS_DESCRIPTION_pop_free(st, free_func) SKM_sk_pop_free(ACCESS_DESCRIPTION, (st), (free_func)) +# define sk_ACCESS_DESCRIPTION_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ACCESS_DESCRIPTION, (st), (copy_func), (free_func)) +# define sk_ACCESS_DESCRIPTION_shift(st) SKM_sk_shift(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_pop(st) SKM_sk_pop(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_sort(st) SKM_sk_sort(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_is_sorted(st) SKM_sk_is_sorted(ACCESS_DESCRIPTION, (st)) +# define sk_ASIdOrRange_new(cmp) SKM_sk_new(ASIdOrRange, (cmp)) +# define sk_ASIdOrRange_new_null() SKM_sk_new_null(ASIdOrRange) +# define sk_ASIdOrRange_free(st) SKM_sk_free(ASIdOrRange, (st)) +# define sk_ASIdOrRange_num(st) SKM_sk_num(ASIdOrRange, (st)) +# define sk_ASIdOrRange_value(st, i) SKM_sk_value(ASIdOrRange, (st), (i)) +# define sk_ASIdOrRange_set(st, i, val) SKM_sk_set(ASIdOrRange, (st), (i), (val)) +# define sk_ASIdOrRange_zero(st) SKM_sk_zero(ASIdOrRange, (st)) +# define sk_ASIdOrRange_push(st, val) SKM_sk_push(ASIdOrRange, (st), (val)) +# define sk_ASIdOrRange_unshift(st, val) SKM_sk_unshift(ASIdOrRange, (st), (val)) +# define sk_ASIdOrRange_find(st, val) SKM_sk_find(ASIdOrRange, (st), (val)) +# define sk_ASIdOrRange_find_ex(st, val) SKM_sk_find_ex(ASIdOrRange, (st), (val)) +# define sk_ASIdOrRange_delete(st, i) SKM_sk_delete(ASIdOrRange, (st), (i)) +# define sk_ASIdOrRange_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASIdOrRange, (st), (ptr)) +# define sk_ASIdOrRange_insert(st, val, i) SKM_sk_insert(ASIdOrRange, (st), (val), (i)) +# define sk_ASIdOrRange_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASIdOrRange, (st), (cmp)) +# define sk_ASIdOrRange_dup(st) SKM_sk_dup(ASIdOrRange, st) +# define sk_ASIdOrRange_pop_free(st, free_func) SKM_sk_pop_free(ASIdOrRange, (st), (free_func)) +# define sk_ASIdOrRange_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASIdOrRange, (st), (copy_func), (free_func)) +# define sk_ASIdOrRange_shift(st) SKM_sk_shift(ASIdOrRange, (st)) +# define sk_ASIdOrRange_pop(st) SKM_sk_pop(ASIdOrRange, (st)) +# define sk_ASIdOrRange_sort(st) SKM_sk_sort(ASIdOrRange, (st)) +# define sk_ASIdOrRange_is_sorted(st) SKM_sk_is_sorted(ASIdOrRange, (st)) +# define sk_ASN1_GENERALSTRING_new(cmp) SKM_sk_new(ASN1_GENERALSTRING, (cmp)) +# define sk_ASN1_GENERALSTRING_new_null() SKM_sk_new_null(ASN1_GENERALSTRING) +# define sk_ASN1_GENERALSTRING_free(st) SKM_sk_free(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_num(st) SKM_sk_num(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_value(st, i) SKM_sk_value(ASN1_GENERALSTRING, (st), (i)) +# define sk_ASN1_GENERALSTRING_set(st, i, val) SKM_sk_set(ASN1_GENERALSTRING, (st), (i), (val)) +# define sk_ASN1_GENERALSTRING_zero(st) SKM_sk_zero(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_push(st, val) SKM_sk_push(ASN1_GENERALSTRING, (st), (val)) +# define sk_ASN1_GENERALSTRING_unshift(st, val) SKM_sk_unshift(ASN1_GENERALSTRING, (st), (val)) +# define sk_ASN1_GENERALSTRING_find(st, val) SKM_sk_find(ASN1_GENERALSTRING, (st), (val)) +# define sk_ASN1_GENERALSTRING_find_ex(st, val) SKM_sk_find_ex(ASN1_GENERALSTRING, (st), (val)) +# define sk_ASN1_GENERALSTRING_delete(st, i) SKM_sk_delete(ASN1_GENERALSTRING, (st), (i)) +# define sk_ASN1_GENERALSTRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_GENERALSTRING, (st), (ptr)) +# define sk_ASN1_GENERALSTRING_insert(st, val, i) SKM_sk_insert(ASN1_GENERALSTRING, (st), (val), (i)) +# define sk_ASN1_GENERALSTRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_GENERALSTRING, (st), (cmp)) +# define sk_ASN1_GENERALSTRING_dup(st) SKM_sk_dup(ASN1_GENERALSTRING, st) +# define sk_ASN1_GENERALSTRING_pop_free(st, free_func) SKM_sk_pop_free(ASN1_GENERALSTRING, (st), (free_func)) +# define sk_ASN1_GENERALSTRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_GENERALSTRING, (st), (copy_func), (free_func)) +# define sk_ASN1_GENERALSTRING_shift(st) SKM_sk_shift(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_pop(st) SKM_sk_pop(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_sort(st) SKM_sk_sort(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_is_sorted(st) SKM_sk_is_sorted(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_INTEGER_new(cmp) SKM_sk_new(ASN1_INTEGER, (cmp)) +# define sk_ASN1_INTEGER_new_null() SKM_sk_new_null(ASN1_INTEGER) +# define sk_ASN1_INTEGER_free(st) SKM_sk_free(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_num(st) SKM_sk_num(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_value(st, i) SKM_sk_value(ASN1_INTEGER, (st), (i)) +# define sk_ASN1_INTEGER_set(st, i, val) SKM_sk_set(ASN1_INTEGER, (st), (i), (val)) +# define sk_ASN1_INTEGER_zero(st) SKM_sk_zero(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_push(st, val) SKM_sk_push(ASN1_INTEGER, (st), (val)) +# define sk_ASN1_INTEGER_unshift(st, val) SKM_sk_unshift(ASN1_INTEGER, (st), (val)) +# define sk_ASN1_INTEGER_find(st, val) SKM_sk_find(ASN1_INTEGER, (st), (val)) +# define sk_ASN1_INTEGER_find_ex(st, val) SKM_sk_find_ex(ASN1_INTEGER, (st), (val)) +# define sk_ASN1_INTEGER_delete(st, i) SKM_sk_delete(ASN1_INTEGER, (st), (i)) +# define sk_ASN1_INTEGER_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_INTEGER, (st), (ptr)) +# define sk_ASN1_INTEGER_insert(st, val, i) SKM_sk_insert(ASN1_INTEGER, (st), (val), (i)) +# define sk_ASN1_INTEGER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_INTEGER, (st), (cmp)) +# define sk_ASN1_INTEGER_dup(st) SKM_sk_dup(ASN1_INTEGER, st) +# define sk_ASN1_INTEGER_pop_free(st, free_func) SKM_sk_pop_free(ASN1_INTEGER, (st), (free_func)) +# define sk_ASN1_INTEGER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_INTEGER, (st), (copy_func), (free_func)) +# define sk_ASN1_INTEGER_shift(st) SKM_sk_shift(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_pop(st) SKM_sk_pop(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_sort(st) SKM_sk_sort(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_is_sorted(st) SKM_sk_is_sorted(ASN1_INTEGER, (st)) +# define sk_ASN1_OBJECT_new(cmp) SKM_sk_new(ASN1_OBJECT, (cmp)) +# define sk_ASN1_OBJECT_new_null() SKM_sk_new_null(ASN1_OBJECT) +# define sk_ASN1_OBJECT_free(st) SKM_sk_free(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_num(st) SKM_sk_num(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_value(st, i) SKM_sk_value(ASN1_OBJECT, (st), (i)) +# define sk_ASN1_OBJECT_set(st, i, val) SKM_sk_set(ASN1_OBJECT, (st), (i), (val)) +# define sk_ASN1_OBJECT_zero(st) SKM_sk_zero(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_push(st, val) SKM_sk_push(ASN1_OBJECT, (st), (val)) +# define sk_ASN1_OBJECT_unshift(st, val) SKM_sk_unshift(ASN1_OBJECT, (st), (val)) +# define sk_ASN1_OBJECT_find(st, val) SKM_sk_find(ASN1_OBJECT, (st), (val)) +# define sk_ASN1_OBJECT_find_ex(st, val) SKM_sk_find_ex(ASN1_OBJECT, (st), (val)) +# define sk_ASN1_OBJECT_delete(st, i) SKM_sk_delete(ASN1_OBJECT, (st), (i)) +# define sk_ASN1_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_OBJECT, (st), (ptr)) +# define sk_ASN1_OBJECT_insert(st, val, i) SKM_sk_insert(ASN1_OBJECT, (st), (val), (i)) +# define sk_ASN1_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_OBJECT, (st), (cmp)) +# define sk_ASN1_OBJECT_dup(st) SKM_sk_dup(ASN1_OBJECT, st) +# define sk_ASN1_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(ASN1_OBJECT, (st), (free_func)) +# define sk_ASN1_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_OBJECT, (st), (copy_func), (free_func)) +# define sk_ASN1_OBJECT_shift(st) SKM_sk_shift(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_pop(st) SKM_sk_pop(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_sort(st) SKM_sk_sort(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_is_sorted(st) SKM_sk_is_sorted(ASN1_OBJECT, (st)) +# define sk_ASN1_STRING_TABLE_new(cmp) SKM_sk_new(ASN1_STRING_TABLE, (cmp)) +# define sk_ASN1_STRING_TABLE_new_null() SKM_sk_new_null(ASN1_STRING_TABLE) +# define sk_ASN1_STRING_TABLE_free(st) SKM_sk_free(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_num(st) SKM_sk_num(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_value(st, i) SKM_sk_value(ASN1_STRING_TABLE, (st), (i)) +# define sk_ASN1_STRING_TABLE_set(st, i, val) SKM_sk_set(ASN1_STRING_TABLE, (st), (i), (val)) +# define sk_ASN1_STRING_TABLE_zero(st) SKM_sk_zero(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_push(st, val) SKM_sk_push(ASN1_STRING_TABLE, (st), (val)) +# define sk_ASN1_STRING_TABLE_unshift(st, val) SKM_sk_unshift(ASN1_STRING_TABLE, (st), (val)) +# define sk_ASN1_STRING_TABLE_find(st, val) SKM_sk_find(ASN1_STRING_TABLE, (st), (val)) +# define sk_ASN1_STRING_TABLE_find_ex(st, val) SKM_sk_find_ex(ASN1_STRING_TABLE, (st), (val)) +# define sk_ASN1_STRING_TABLE_delete(st, i) SKM_sk_delete(ASN1_STRING_TABLE, (st), (i)) +# define sk_ASN1_STRING_TABLE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_STRING_TABLE, (st), (ptr)) +# define sk_ASN1_STRING_TABLE_insert(st, val, i) SKM_sk_insert(ASN1_STRING_TABLE, (st), (val), (i)) +# define sk_ASN1_STRING_TABLE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_STRING_TABLE, (st), (cmp)) +# define sk_ASN1_STRING_TABLE_dup(st) SKM_sk_dup(ASN1_STRING_TABLE, st) +# define sk_ASN1_STRING_TABLE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_STRING_TABLE, (st), (free_func)) +# define sk_ASN1_STRING_TABLE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_STRING_TABLE, (st), (copy_func), (free_func)) +# define sk_ASN1_STRING_TABLE_shift(st) SKM_sk_shift(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_pop(st) SKM_sk_pop(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_sort(st) SKM_sk_sort(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_is_sorted(st) SKM_sk_is_sorted(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_TYPE_new(cmp) SKM_sk_new(ASN1_TYPE, (cmp)) +# define sk_ASN1_TYPE_new_null() SKM_sk_new_null(ASN1_TYPE) +# define sk_ASN1_TYPE_free(st) SKM_sk_free(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_num(st) SKM_sk_num(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_value(st, i) SKM_sk_value(ASN1_TYPE, (st), (i)) +# define sk_ASN1_TYPE_set(st, i, val) SKM_sk_set(ASN1_TYPE, (st), (i), (val)) +# define sk_ASN1_TYPE_zero(st) SKM_sk_zero(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_push(st, val) SKM_sk_push(ASN1_TYPE, (st), (val)) +# define sk_ASN1_TYPE_unshift(st, val) SKM_sk_unshift(ASN1_TYPE, (st), (val)) +# define sk_ASN1_TYPE_find(st, val) SKM_sk_find(ASN1_TYPE, (st), (val)) +# define sk_ASN1_TYPE_find_ex(st, val) SKM_sk_find_ex(ASN1_TYPE, (st), (val)) +# define sk_ASN1_TYPE_delete(st, i) SKM_sk_delete(ASN1_TYPE, (st), (i)) +# define sk_ASN1_TYPE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_TYPE, (st), (ptr)) +# define sk_ASN1_TYPE_insert(st, val, i) SKM_sk_insert(ASN1_TYPE, (st), (val), (i)) +# define sk_ASN1_TYPE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_TYPE, (st), (cmp)) +# define sk_ASN1_TYPE_dup(st) SKM_sk_dup(ASN1_TYPE, st) +# define sk_ASN1_TYPE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_TYPE, (st), (free_func)) +# define sk_ASN1_TYPE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_TYPE, (st), (copy_func), (free_func)) +# define sk_ASN1_TYPE_shift(st) SKM_sk_shift(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_pop(st) SKM_sk_pop(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_sort(st) SKM_sk_sort(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_is_sorted(st) SKM_sk_is_sorted(ASN1_TYPE, (st)) +# define sk_ASN1_UTF8STRING_new(cmp) SKM_sk_new(ASN1_UTF8STRING, (cmp)) +# define sk_ASN1_UTF8STRING_new_null() SKM_sk_new_null(ASN1_UTF8STRING) +# define sk_ASN1_UTF8STRING_free(st) SKM_sk_free(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_num(st) SKM_sk_num(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_value(st, i) SKM_sk_value(ASN1_UTF8STRING, (st), (i)) +# define sk_ASN1_UTF8STRING_set(st, i, val) SKM_sk_set(ASN1_UTF8STRING, (st), (i), (val)) +# define sk_ASN1_UTF8STRING_zero(st) SKM_sk_zero(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_push(st, val) SKM_sk_push(ASN1_UTF8STRING, (st), (val)) +# define sk_ASN1_UTF8STRING_unshift(st, val) SKM_sk_unshift(ASN1_UTF8STRING, (st), (val)) +# define sk_ASN1_UTF8STRING_find(st, val) SKM_sk_find(ASN1_UTF8STRING, (st), (val)) +# define sk_ASN1_UTF8STRING_find_ex(st, val) SKM_sk_find_ex(ASN1_UTF8STRING, (st), (val)) +# define sk_ASN1_UTF8STRING_delete(st, i) SKM_sk_delete(ASN1_UTF8STRING, (st), (i)) +# define sk_ASN1_UTF8STRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_UTF8STRING, (st), (ptr)) +# define sk_ASN1_UTF8STRING_insert(st, val, i) SKM_sk_insert(ASN1_UTF8STRING, (st), (val), (i)) +# define sk_ASN1_UTF8STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_UTF8STRING, (st), (cmp)) +# define sk_ASN1_UTF8STRING_dup(st) SKM_sk_dup(ASN1_UTF8STRING, st) +# define sk_ASN1_UTF8STRING_pop_free(st, free_func) SKM_sk_pop_free(ASN1_UTF8STRING, (st), (free_func)) +# define sk_ASN1_UTF8STRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_UTF8STRING, (st), (copy_func), (free_func)) +# define sk_ASN1_UTF8STRING_shift(st) SKM_sk_shift(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_pop(st) SKM_sk_pop(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_sort(st) SKM_sk_sort(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_is_sorted(st) SKM_sk_is_sorted(ASN1_UTF8STRING, (st)) +# define sk_ASN1_VALUE_new(cmp) SKM_sk_new(ASN1_VALUE, (cmp)) +# define sk_ASN1_VALUE_new_null() SKM_sk_new_null(ASN1_VALUE) +# define sk_ASN1_VALUE_free(st) SKM_sk_free(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_num(st) SKM_sk_num(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_value(st, i) SKM_sk_value(ASN1_VALUE, (st), (i)) +# define sk_ASN1_VALUE_set(st, i, val) SKM_sk_set(ASN1_VALUE, (st), (i), (val)) +# define sk_ASN1_VALUE_zero(st) SKM_sk_zero(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_push(st, val) SKM_sk_push(ASN1_VALUE, (st), (val)) +# define sk_ASN1_VALUE_unshift(st, val) SKM_sk_unshift(ASN1_VALUE, (st), (val)) +# define sk_ASN1_VALUE_find(st, val) SKM_sk_find(ASN1_VALUE, (st), (val)) +# define sk_ASN1_VALUE_find_ex(st, val) SKM_sk_find_ex(ASN1_VALUE, (st), (val)) +# define sk_ASN1_VALUE_delete(st, i) SKM_sk_delete(ASN1_VALUE, (st), (i)) +# define sk_ASN1_VALUE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_VALUE, (st), (ptr)) +# define sk_ASN1_VALUE_insert(st, val, i) SKM_sk_insert(ASN1_VALUE, (st), (val), (i)) +# define sk_ASN1_VALUE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_VALUE, (st), (cmp)) +# define sk_ASN1_VALUE_dup(st) SKM_sk_dup(ASN1_VALUE, st) +# define sk_ASN1_VALUE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_VALUE, (st), (free_func)) +# define sk_ASN1_VALUE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_VALUE, (st), (copy_func), (free_func)) +# define sk_ASN1_VALUE_shift(st) SKM_sk_shift(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_pop(st) SKM_sk_pop(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_sort(st) SKM_sk_sort(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_is_sorted(st) SKM_sk_is_sorted(ASN1_VALUE, (st)) +# define sk_BIO_new(cmp) SKM_sk_new(BIO, (cmp)) +# define sk_BIO_new_null() SKM_sk_new_null(BIO) +# define sk_BIO_free(st) SKM_sk_free(BIO, (st)) +# define sk_BIO_num(st) SKM_sk_num(BIO, (st)) +# define sk_BIO_value(st, i) SKM_sk_value(BIO, (st), (i)) +# define sk_BIO_set(st, i, val) SKM_sk_set(BIO, (st), (i), (val)) +# define sk_BIO_zero(st) SKM_sk_zero(BIO, (st)) +# define sk_BIO_push(st, val) SKM_sk_push(BIO, (st), (val)) +# define sk_BIO_unshift(st, val) SKM_sk_unshift(BIO, (st), (val)) +# define sk_BIO_find(st, val) SKM_sk_find(BIO, (st), (val)) +# define sk_BIO_find_ex(st, val) SKM_sk_find_ex(BIO, (st), (val)) +# define sk_BIO_delete(st, i) SKM_sk_delete(BIO, (st), (i)) +# define sk_BIO_delete_ptr(st, ptr) SKM_sk_delete_ptr(BIO, (st), (ptr)) +# define sk_BIO_insert(st, val, i) SKM_sk_insert(BIO, (st), (val), (i)) +# define sk_BIO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BIO, (st), (cmp)) +# define sk_BIO_dup(st) SKM_sk_dup(BIO, st) +# define sk_BIO_pop_free(st, free_func) SKM_sk_pop_free(BIO, (st), (free_func)) +# define sk_BIO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BIO, (st), (copy_func), (free_func)) +# define sk_BIO_shift(st) SKM_sk_shift(BIO, (st)) +# define sk_BIO_pop(st) SKM_sk_pop(BIO, (st)) +# define sk_BIO_sort(st) SKM_sk_sort(BIO, (st)) +# define sk_BIO_is_sorted(st) SKM_sk_is_sorted(BIO, (st)) +# define sk_BY_DIR_ENTRY_new(cmp) SKM_sk_new(BY_DIR_ENTRY, (cmp)) +# define sk_BY_DIR_ENTRY_new_null() SKM_sk_new_null(BY_DIR_ENTRY) +# define sk_BY_DIR_ENTRY_free(st) SKM_sk_free(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_num(st) SKM_sk_num(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_value(st, i) SKM_sk_value(BY_DIR_ENTRY, (st), (i)) +# define sk_BY_DIR_ENTRY_set(st, i, val) SKM_sk_set(BY_DIR_ENTRY, (st), (i), (val)) +# define sk_BY_DIR_ENTRY_zero(st) SKM_sk_zero(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_push(st, val) SKM_sk_push(BY_DIR_ENTRY, (st), (val)) +# define sk_BY_DIR_ENTRY_unshift(st, val) SKM_sk_unshift(BY_DIR_ENTRY, (st), (val)) +# define sk_BY_DIR_ENTRY_find(st, val) SKM_sk_find(BY_DIR_ENTRY, (st), (val)) +# define sk_BY_DIR_ENTRY_find_ex(st, val) SKM_sk_find_ex(BY_DIR_ENTRY, (st), (val)) +# define sk_BY_DIR_ENTRY_delete(st, i) SKM_sk_delete(BY_DIR_ENTRY, (st), (i)) +# define sk_BY_DIR_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(BY_DIR_ENTRY, (st), (ptr)) +# define sk_BY_DIR_ENTRY_insert(st, val, i) SKM_sk_insert(BY_DIR_ENTRY, (st), (val), (i)) +# define sk_BY_DIR_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BY_DIR_ENTRY, (st), (cmp)) +# define sk_BY_DIR_ENTRY_dup(st) SKM_sk_dup(BY_DIR_ENTRY, st) +# define sk_BY_DIR_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(BY_DIR_ENTRY, (st), (free_func)) +# define sk_BY_DIR_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BY_DIR_ENTRY, (st), (copy_func), (free_func)) +# define sk_BY_DIR_ENTRY_shift(st) SKM_sk_shift(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_pop(st) SKM_sk_pop(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_sort(st) SKM_sk_sort(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_is_sorted(st) SKM_sk_is_sorted(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_HASH_new(cmp) SKM_sk_new(BY_DIR_HASH, (cmp)) +# define sk_BY_DIR_HASH_new_null() SKM_sk_new_null(BY_DIR_HASH) +# define sk_BY_DIR_HASH_free(st) SKM_sk_free(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_num(st) SKM_sk_num(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_value(st, i) SKM_sk_value(BY_DIR_HASH, (st), (i)) +# define sk_BY_DIR_HASH_set(st, i, val) SKM_sk_set(BY_DIR_HASH, (st), (i), (val)) +# define sk_BY_DIR_HASH_zero(st) SKM_sk_zero(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_push(st, val) SKM_sk_push(BY_DIR_HASH, (st), (val)) +# define sk_BY_DIR_HASH_unshift(st, val) SKM_sk_unshift(BY_DIR_HASH, (st), (val)) +# define sk_BY_DIR_HASH_find(st, val) SKM_sk_find(BY_DIR_HASH, (st), (val)) +# define sk_BY_DIR_HASH_find_ex(st, val) SKM_sk_find_ex(BY_DIR_HASH, (st), (val)) +# define sk_BY_DIR_HASH_delete(st, i) SKM_sk_delete(BY_DIR_HASH, (st), (i)) +# define sk_BY_DIR_HASH_delete_ptr(st, ptr) SKM_sk_delete_ptr(BY_DIR_HASH, (st), (ptr)) +# define sk_BY_DIR_HASH_insert(st, val, i) SKM_sk_insert(BY_DIR_HASH, (st), (val), (i)) +# define sk_BY_DIR_HASH_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BY_DIR_HASH, (st), (cmp)) +# define sk_BY_DIR_HASH_dup(st) SKM_sk_dup(BY_DIR_HASH, st) +# define sk_BY_DIR_HASH_pop_free(st, free_func) SKM_sk_pop_free(BY_DIR_HASH, (st), (free_func)) +# define sk_BY_DIR_HASH_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BY_DIR_HASH, (st), (copy_func), (free_func)) +# define sk_BY_DIR_HASH_shift(st) SKM_sk_shift(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_pop(st) SKM_sk_pop(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_sort(st) SKM_sk_sort(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_is_sorted(st) SKM_sk_is_sorted(BY_DIR_HASH, (st)) +# define sk_CMS_CertificateChoices_new(cmp) SKM_sk_new(CMS_CertificateChoices, (cmp)) +# define sk_CMS_CertificateChoices_new_null() SKM_sk_new_null(CMS_CertificateChoices) +# define sk_CMS_CertificateChoices_free(st) SKM_sk_free(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_num(st) SKM_sk_num(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_value(st, i) SKM_sk_value(CMS_CertificateChoices, (st), (i)) +# define sk_CMS_CertificateChoices_set(st, i, val) SKM_sk_set(CMS_CertificateChoices, (st), (i), (val)) +# define sk_CMS_CertificateChoices_zero(st) SKM_sk_zero(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_push(st, val) SKM_sk_push(CMS_CertificateChoices, (st), (val)) +# define sk_CMS_CertificateChoices_unshift(st, val) SKM_sk_unshift(CMS_CertificateChoices, (st), (val)) +# define sk_CMS_CertificateChoices_find(st, val) SKM_sk_find(CMS_CertificateChoices, (st), (val)) +# define sk_CMS_CertificateChoices_find_ex(st, val) SKM_sk_find_ex(CMS_CertificateChoices, (st), (val)) +# define sk_CMS_CertificateChoices_delete(st, i) SKM_sk_delete(CMS_CertificateChoices, (st), (i)) +# define sk_CMS_CertificateChoices_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_CertificateChoices, (st), (ptr)) +# define sk_CMS_CertificateChoices_insert(st, val, i) SKM_sk_insert(CMS_CertificateChoices, (st), (val), (i)) +# define sk_CMS_CertificateChoices_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_CertificateChoices, (st), (cmp)) +# define sk_CMS_CertificateChoices_dup(st) SKM_sk_dup(CMS_CertificateChoices, st) +# define sk_CMS_CertificateChoices_pop_free(st, free_func) SKM_sk_pop_free(CMS_CertificateChoices, (st), (free_func)) +# define sk_CMS_CertificateChoices_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_CertificateChoices, (st), (copy_func), (free_func)) +# define sk_CMS_CertificateChoices_shift(st) SKM_sk_shift(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_pop(st) SKM_sk_pop(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_sort(st) SKM_sk_sort(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_is_sorted(st) SKM_sk_is_sorted(CMS_CertificateChoices, (st)) +# define sk_CMS_RecipientEncryptedKey_new(cmp) SKM_sk_new(CMS_RecipientEncryptedKey, (cmp)) +# define sk_CMS_RecipientEncryptedKey_new_null() SKM_sk_new_null(CMS_RecipientEncryptedKey) +# define sk_CMS_RecipientEncryptedKey_free(st) SKM_sk_free(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_num(st) SKM_sk_num(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_value(st, i) SKM_sk_value(CMS_RecipientEncryptedKey, (st), (i)) +# define sk_CMS_RecipientEncryptedKey_set(st, i, val) SKM_sk_set(CMS_RecipientEncryptedKey, (st), (i), (val)) +# define sk_CMS_RecipientEncryptedKey_zero(st) SKM_sk_zero(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_push(st, val) SKM_sk_push(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_unshift(st, val) SKM_sk_unshift(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_find(st, val) SKM_sk_find(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_find_ex(st, val) SKM_sk_find_ex(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_delete(st, i) SKM_sk_delete(CMS_RecipientEncryptedKey, (st), (i)) +# define sk_CMS_RecipientEncryptedKey_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RecipientEncryptedKey, (st), (ptr)) +# define sk_CMS_RecipientEncryptedKey_insert(st, val, i) SKM_sk_insert(CMS_RecipientEncryptedKey, (st), (val), (i)) +# define sk_CMS_RecipientEncryptedKey_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RecipientEncryptedKey, (st), (cmp)) +# define sk_CMS_RecipientEncryptedKey_dup(st) SKM_sk_dup(CMS_RecipientEncryptedKey, st) +# define sk_CMS_RecipientEncryptedKey_pop_free(st, free_func) SKM_sk_pop_free(CMS_RecipientEncryptedKey, (st), (free_func)) +# define sk_CMS_RecipientEncryptedKey_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RecipientEncryptedKey, (st), (copy_func), (free_func)) +# define sk_CMS_RecipientEncryptedKey_shift(st) SKM_sk_shift(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_pop(st) SKM_sk_pop(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_sort(st) SKM_sk_sort(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_is_sorted(st) SKM_sk_is_sorted(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientInfo_new(cmp) SKM_sk_new(CMS_RecipientInfo, (cmp)) +# define sk_CMS_RecipientInfo_new_null() SKM_sk_new_null(CMS_RecipientInfo) +# define sk_CMS_RecipientInfo_free(st) SKM_sk_free(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_num(st) SKM_sk_num(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_value(st, i) SKM_sk_value(CMS_RecipientInfo, (st), (i)) +# define sk_CMS_RecipientInfo_set(st, i, val) SKM_sk_set(CMS_RecipientInfo, (st), (i), (val)) +# define sk_CMS_RecipientInfo_zero(st) SKM_sk_zero(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_push(st, val) SKM_sk_push(CMS_RecipientInfo, (st), (val)) +# define sk_CMS_RecipientInfo_unshift(st, val) SKM_sk_unshift(CMS_RecipientInfo, (st), (val)) +# define sk_CMS_RecipientInfo_find(st, val) SKM_sk_find(CMS_RecipientInfo, (st), (val)) +# define sk_CMS_RecipientInfo_find_ex(st, val) SKM_sk_find_ex(CMS_RecipientInfo, (st), (val)) +# define sk_CMS_RecipientInfo_delete(st, i) SKM_sk_delete(CMS_RecipientInfo, (st), (i)) +# define sk_CMS_RecipientInfo_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RecipientInfo, (st), (ptr)) +# define sk_CMS_RecipientInfo_insert(st, val, i) SKM_sk_insert(CMS_RecipientInfo, (st), (val), (i)) +# define sk_CMS_RecipientInfo_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RecipientInfo, (st), (cmp)) +# define sk_CMS_RecipientInfo_dup(st) SKM_sk_dup(CMS_RecipientInfo, st) +# define sk_CMS_RecipientInfo_pop_free(st, free_func) SKM_sk_pop_free(CMS_RecipientInfo, (st), (free_func)) +# define sk_CMS_RecipientInfo_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RecipientInfo, (st), (copy_func), (free_func)) +# define sk_CMS_RecipientInfo_shift(st) SKM_sk_shift(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_pop(st) SKM_sk_pop(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_sort(st) SKM_sk_sort(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_is_sorted(st) SKM_sk_is_sorted(CMS_RecipientInfo, (st)) +# define sk_CMS_RevocationInfoChoice_new(cmp) SKM_sk_new(CMS_RevocationInfoChoice, (cmp)) +# define sk_CMS_RevocationInfoChoice_new_null() SKM_sk_new_null(CMS_RevocationInfoChoice) +# define sk_CMS_RevocationInfoChoice_free(st) SKM_sk_free(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_num(st) SKM_sk_num(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_value(st, i) SKM_sk_value(CMS_RevocationInfoChoice, (st), (i)) +# define sk_CMS_RevocationInfoChoice_set(st, i, val) SKM_sk_set(CMS_RevocationInfoChoice, (st), (i), (val)) +# define sk_CMS_RevocationInfoChoice_zero(st) SKM_sk_zero(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_push(st, val) SKM_sk_push(CMS_RevocationInfoChoice, (st), (val)) +# define sk_CMS_RevocationInfoChoice_unshift(st, val) SKM_sk_unshift(CMS_RevocationInfoChoice, (st), (val)) +# define sk_CMS_RevocationInfoChoice_find(st, val) SKM_sk_find(CMS_RevocationInfoChoice, (st), (val)) +# define sk_CMS_RevocationInfoChoice_find_ex(st, val) SKM_sk_find_ex(CMS_RevocationInfoChoice, (st), (val)) +# define sk_CMS_RevocationInfoChoice_delete(st, i) SKM_sk_delete(CMS_RevocationInfoChoice, (st), (i)) +# define sk_CMS_RevocationInfoChoice_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RevocationInfoChoice, (st), (ptr)) +# define sk_CMS_RevocationInfoChoice_insert(st, val, i) SKM_sk_insert(CMS_RevocationInfoChoice, (st), (val), (i)) +# define sk_CMS_RevocationInfoChoice_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RevocationInfoChoice, (st), (cmp)) +# define sk_CMS_RevocationInfoChoice_dup(st) SKM_sk_dup(CMS_RevocationInfoChoice, st) +# define sk_CMS_RevocationInfoChoice_pop_free(st, free_func) SKM_sk_pop_free(CMS_RevocationInfoChoice, (st), (free_func)) +# define sk_CMS_RevocationInfoChoice_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RevocationInfoChoice, (st), (copy_func), (free_func)) +# define sk_CMS_RevocationInfoChoice_shift(st) SKM_sk_shift(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_pop(st) SKM_sk_pop(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_sort(st) SKM_sk_sort(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_is_sorted(st) SKM_sk_is_sorted(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_SignerInfo_new(cmp) SKM_sk_new(CMS_SignerInfo, (cmp)) +# define sk_CMS_SignerInfo_new_null() SKM_sk_new_null(CMS_SignerInfo) +# define sk_CMS_SignerInfo_free(st) SKM_sk_free(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_num(st) SKM_sk_num(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_value(st, i) SKM_sk_value(CMS_SignerInfo, (st), (i)) +# define sk_CMS_SignerInfo_set(st, i, val) SKM_sk_set(CMS_SignerInfo, (st), (i), (val)) +# define sk_CMS_SignerInfo_zero(st) SKM_sk_zero(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_push(st, val) SKM_sk_push(CMS_SignerInfo, (st), (val)) +# define sk_CMS_SignerInfo_unshift(st, val) SKM_sk_unshift(CMS_SignerInfo, (st), (val)) +# define sk_CMS_SignerInfo_find(st, val) SKM_sk_find(CMS_SignerInfo, (st), (val)) +# define sk_CMS_SignerInfo_find_ex(st, val) SKM_sk_find_ex(CMS_SignerInfo, (st), (val)) +# define sk_CMS_SignerInfo_delete(st, i) SKM_sk_delete(CMS_SignerInfo, (st), (i)) +# define sk_CMS_SignerInfo_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_SignerInfo, (st), (ptr)) +# define sk_CMS_SignerInfo_insert(st, val, i) SKM_sk_insert(CMS_SignerInfo, (st), (val), (i)) +# define sk_CMS_SignerInfo_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_SignerInfo, (st), (cmp)) +# define sk_CMS_SignerInfo_dup(st) SKM_sk_dup(CMS_SignerInfo, st) +# define sk_CMS_SignerInfo_pop_free(st, free_func) SKM_sk_pop_free(CMS_SignerInfo, (st), (free_func)) +# define sk_CMS_SignerInfo_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_SignerInfo, (st), (copy_func), (free_func)) +# define sk_CMS_SignerInfo_shift(st) SKM_sk_shift(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_pop(st) SKM_sk_pop(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_sort(st) SKM_sk_sort(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_is_sorted(st) SKM_sk_is_sorted(CMS_SignerInfo, (st)) +# define sk_CONF_IMODULE_new(cmp) SKM_sk_new(CONF_IMODULE, (cmp)) +# define sk_CONF_IMODULE_new_null() SKM_sk_new_null(CONF_IMODULE) +# define sk_CONF_IMODULE_free(st) SKM_sk_free(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_num(st) SKM_sk_num(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_value(st, i) SKM_sk_value(CONF_IMODULE, (st), (i)) +# define sk_CONF_IMODULE_set(st, i, val) SKM_sk_set(CONF_IMODULE, (st), (i), (val)) +# define sk_CONF_IMODULE_zero(st) SKM_sk_zero(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_push(st, val) SKM_sk_push(CONF_IMODULE, (st), (val)) +# define sk_CONF_IMODULE_unshift(st, val) SKM_sk_unshift(CONF_IMODULE, (st), (val)) +# define sk_CONF_IMODULE_find(st, val) SKM_sk_find(CONF_IMODULE, (st), (val)) +# define sk_CONF_IMODULE_find_ex(st, val) SKM_sk_find_ex(CONF_IMODULE, (st), (val)) +# define sk_CONF_IMODULE_delete(st, i) SKM_sk_delete(CONF_IMODULE, (st), (i)) +# define sk_CONF_IMODULE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_IMODULE, (st), (ptr)) +# define sk_CONF_IMODULE_insert(st, val, i) SKM_sk_insert(CONF_IMODULE, (st), (val), (i)) +# define sk_CONF_IMODULE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_IMODULE, (st), (cmp)) +# define sk_CONF_IMODULE_dup(st) SKM_sk_dup(CONF_IMODULE, st) +# define sk_CONF_IMODULE_pop_free(st, free_func) SKM_sk_pop_free(CONF_IMODULE, (st), (free_func)) +# define sk_CONF_IMODULE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_IMODULE, (st), (copy_func), (free_func)) +# define sk_CONF_IMODULE_shift(st) SKM_sk_shift(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_pop(st) SKM_sk_pop(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_sort(st) SKM_sk_sort(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_is_sorted(st) SKM_sk_is_sorted(CONF_IMODULE, (st)) +# define sk_CONF_MODULE_new(cmp) SKM_sk_new(CONF_MODULE, (cmp)) +# define sk_CONF_MODULE_new_null() SKM_sk_new_null(CONF_MODULE) +# define sk_CONF_MODULE_free(st) SKM_sk_free(CONF_MODULE, (st)) +# define sk_CONF_MODULE_num(st) SKM_sk_num(CONF_MODULE, (st)) +# define sk_CONF_MODULE_value(st, i) SKM_sk_value(CONF_MODULE, (st), (i)) +# define sk_CONF_MODULE_set(st, i, val) SKM_sk_set(CONF_MODULE, (st), (i), (val)) +# define sk_CONF_MODULE_zero(st) SKM_sk_zero(CONF_MODULE, (st)) +# define sk_CONF_MODULE_push(st, val) SKM_sk_push(CONF_MODULE, (st), (val)) +# define sk_CONF_MODULE_unshift(st, val) SKM_sk_unshift(CONF_MODULE, (st), (val)) +# define sk_CONF_MODULE_find(st, val) SKM_sk_find(CONF_MODULE, (st), (val)) +# define sk_CONF_MODULE_find_ex(st, val) SKM_sk_find_ex(CONF_MODULE, (st), (val)) +# define sk_CONF_MODULE_delete(st, i) SKM_sk_delete(CONF_MODULE, (st), (i)) +# define sk_CONF_MODULE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_MODULE, (st), (ptr)) +# define sk_CONF_MODULE_insert(st, val, i) SKM_sk_insert(CONF_MODULE, (st), (val), (i)) +# define sk_CONF_MODULE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_MODULE, (st), (cmp)) +# define sk_CONF_MODULE_dup(st) SKM_sk_dup(CONF_MODULE, st) +# define sk_CONF_MODULE_pop_free(st, free_func) SKM_sk_pop_free(CONF_MODULE, (st), (free_func)) +# define sk_CONF_MODULE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_MODULE, (st), (copy_func), (free_func)) +# define sk_CONF_MODULE_shift(st) SKM_sk_shift(CONF_MODULE, (st)) +# define sk_CONF_MODULE_pop(st) SKM_sk_pop(CONF_MODULE, (st)) +# define sk_CONF_MODULE_sort(st) SKM_sk_sort(CONF_MODULE, (st)) +# define sk_CONF_MODULE_is_sorted(st) SKM_sk_is_sorted(CONF_MODULE, (st)) +# define sk_CONF_VALUE_new(cmp) SKM_sk_new(CONF_VALUE, (cmp)) +# define sk_CONF_VALUE_new_null() SKM_sk_new_null(CONF_VALUE) +# define sk_CONF_VALUE_free(st) SKM_sk_free(CONF_VALUE, (st)) +# define sk_CONF_VALUE_num(st) SKM_sk_num(CONF_VALUE, (st)) +# define sk_CONF_VALUE_value(st, i) SKM_sk_value(CONF_VALUE, (st), (i)) +# define sk_CONF_VALUE_set(st, i, val) SKM_sk_set(CONF_VALUE, (st), (i), (val)) +# define sk_CONF_VALUE_zero(st) SKM_sk_zero(CONF_VALUE, (st)) +# define sk_CONF_VALUE_push(st, val) SKM_sk_push(CONF_VALUE, (st), (val)) +# define sk_CONF_VALUE_unshift(st, val) SKM_sk_unshift(CONF_VALUE, (st), (val)) +# define sk_CONF_VALUE_find(st, val) SKM_sk_find(CONF_VALUE, (st), (val)) +# define sk_CONF_VALUE_find_ex(st, val) SKM_sk_find_ex(CONF_VALUE, (st), (val)) +# define sk_CONF_VALUE_delete(st, i) SKM_sk_delete(CONF_VALUE, (st), (i)) +# define sk_CONF_VALUE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_VALUE, (st), (ptr)) +# define sk_CONF_VALUE_insert(st, val, i) SKM_sk_insert(CONF_VALUE, (st), (val), (i)) +# define sk_CONF_VALUE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_VALUE, (st), (cmp)) +# define sk_CONF_VALUE_dup(st) SKM_sk_dup(CONF_VALUE, st) +# define sk_CONF_VALUE_pop_free(st, free_func) SKM_sk_pop_free(CONF_VALUE, (st), (free_func)) +# define sk_CONF_VALUE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_VALUE, (st), (copy_func), (free_func)) +# define sk_CONF_VALUE_shift(st) SKM_sk_shift(CONF_VALUE, (st)) +# define sk_CONF_VALUE_pop(st) SKM_sk_pop(CONF_VALUE, (st)) +# define sk_CONF_VALUE_sort(st) SKM_sk_sort(CONF_VALUE, (st)) +# define sk_CONF_VALUE_is_sorted(st) SKM_sk_is_sorted(CONF_VALUE, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_new(cmp) SKM_sk_new(CRYPTO_EX_DATA_FUNCS, (cmp)) +# define sk_CRYPTO_EX_DATA_FUNCS_new_null() SKM_sk_new_null(CRYPTO_EX_DATA_FUNCS) +# define sk_CRYPTO_EX_DATA_FUNCS_free(st) SKM_sk_free(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_num(st) SKM_sk_num(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_value(st, i) SKM_sk_value(CRYPTO_EX_DATA_FUNCS, (st), (i)) +# define sk_CRYPTO_EX_DATA_FUNCS_set(st, i, val) SKM_sk_set(CRYPTO_EX_DATA_FUNCS, (st), (i), (val)) +# define sk_CRYPTO_EX_DATA_FUNCS_zero(st) SKM_sk_zero(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_push(st, val) SKM_sk_push(CRYPTO_EX_DATA_FUNCS, (st), (val)) +# define sk_CRYPTO_EX_DATA_FUNCS_unshift(st, val) SKM_sk_unshift(CRYPTO_EX_DATA_FUNCS, (st), (val)) +# define sk_CRYPTO_EX_DATA_FUNCS_find(st, val) SKM_sk_find(CRYPTO_EX_DATA_FUNCS, (st), (val)) +# define sk_CRYPTO_EX_DATA_FUNCS_find_ex(st, val) SKM_sk_find_ex(CRYPTO_EX_DATA_FUNCS, (st), (val)) +# define sk_CRYPTO_EX_DATA_FUNCS_delete(st, i) SKM_sk_delete(CRYPTO_EX_DATA_FUNCS, (st), (i)) +# define sk_CRYPTO_EX_DATA_FUNCS_delete_ptr(st, ptr) SKM_sk_delete_ptr(CRYPTO_EX_DATA_FUNCS, (st), (ptr)) +# define sk_CRYPTO_EX_DATA_FUNCS_insert(st, val, i) SKM_sk_insert(CRYPTO_EX_DATA_FUNCS, (st), (val), (i)) +# define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CRYPTO_EX_DATA_FUNCS, (st), (cmp)) +# define sk_CRYPTO_EX_DATA_FUNCS_dup(st) SKM_sk_dup(CRYPTO_EX_DATA_FUNCS, st) +# define sk_CRYPTO_EX_DATA_FUNCS_pop_free(st, free_func) SKM_sk_pop_free(CRYPTO_EX_DATA_FUNCS, (st), (free_func)) +# define sk_CRYPTO_EX_DATA_FUNCS_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CRYPTO_EX_DATA_FUNCS, (st), (copy_func), (free_func)) +# define sk_CRYPTO_EX_DATA_FUNCS_shift(st) SKM_sk_shift(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_pop(st) SKM_sk_pop(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_sort(st) SKM_sk_sort(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_is_sorted(st) SKM_sk_is_sorted(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_dynlock_new(cmp) SKM_sk_new(CRYPTO_dynlock, (cmp)) +# define sk_CRYPTO_dynlock_new_null() SKM_sk_new_null(CRYPTO_dynlock) +# define sk_CRYPTO_dynlock_free(st) SKM_sk_free(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_num(st) SKM_sk_num(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_value(st, i) SKM_sk_value(CRYPTO_dynlock, (st), (i)) +# define sk_CRYPTO_dynlock_set(st, i, val) SKM_sk_set(CRYPTO_dynlock, (st), (i), (val)) +# define sk_CRYPTO_dynlock_zero(st) SKM_sk_zero(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_push(st, val) SKM_sk_push(CRYPTO_dynlock, (st), (val)) +# define sk_CRYPTO_dynlock_unshift(st, val) SKM_sk_unshift(CRYPTO_dynlock, (st), (val)) +# define sk_CRYPTO_dynlock_find(st, val) SKM_sk_find(CRYPTO_dynlock, (st), (val)) +# define sk_CRYPTO_dynlock_find_ex(st, val) SKM_sk_find_ex(CRYPTO_dynlock, (st), (val)) +# define sk_CRYPTO_dynlock_delete(st, i) SKM_sk_delete(CRYPTO_dynlock, (st), (i)) +# define sk_CRYPTO_dynlock_delete_ptr(st, ptr) SKM_sk_delete_ptr(CRYPTO_dynlock, (st), (ptr)) +# define sk_CRYPTO_dynlock_insert(st, val, i) SKM_sk_insert(CRYPTO_dynlock, (st), (val), (i)) +# define sk_CRYPTO_dynlock_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CRYPTO_dynlock, (st), (cmp)) +# define sk_CRYPTO_dynlock_dup(st) SKM_sk_dup(CRYPTO_dynlock, st) +# define sk_CRYPTO_dynlock_pop_free(st, free_func) SKM_sk_pop_free(CRYPTO_dynlock, (st), (free_func)) +# define sk_CRYPTO_dynlock_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CRYPTO_dynlock, (st), (copy_func), (free_func)) +# define sk_CRYPTO_dynlock_shift(st) SKM_sk_shift(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_pop(st) SKM_sk_pop(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_sort(st) SKM_sk_sort(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_is_sorted(st) SKM_sk_is_sorted(CRYPTO_dynlock, (st)) +# define sk_DIST_POINT_new(cmp) SKM_sk_new(DIST_POINT, (cmp)) +# define sk_DIST_POINT_new_null() SKM_sk_new_null(DIST_POINT) +# define sk_DIST_POINT_free(st) SKM_sk_free(DIST_POINT, (st)) +# define sk_DIST_POINT_num(st) SKM_sk_num(DIST_POINT, (st)) +# define sk_DIST_POINT_value(st, i) SKM_sk_value(DIST_POINT, (st), (i)) +# define sk_DIST_POINT_set(st, i, val) SKM_sk_set(DIST_POINT, (st), (i), (val)) +# define sk_DIST_POINT_zero(st) SKM_sk_zero(DIST_POINT, (st)) +# define sk_DIST_POINT_push(st, val) SKM_sk_push(DIST_POINT, (st), (val)) +# define sk_DIST_POINT_unshift(st, val) SKM_sk_unshift(DIST_POINT, (st), (val)) +# define sk_DIST_POINT_find(st, val) SKM_sk_find(DIST_POINT, (st), (val)) +# define sk_DIST_POINT_find_ex(st, val) SKM_sk_find_ex(DIST_POINT, (st), (val)) +# define sk_DIST_POINT_delete(st, i) SKM_sk_delete(DIST_POINT, (st), (i)) +# define sk_DIST_POINT_delete_ptr(st, ptr) SKM_sk_delete_ptr(DIST_POINT, (st), (ptr)) +# define sk_DIST_POINT_insert(st, val, i) SKM_sk_insert(DIST_POINT, (st), (val), (i)) +# define sk_DIST_POINT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(DIST_POINT, (st), (cmp)) +# define sk_DIST_POINT_dup(st) SKM_sk_dup(DIST_POINT, st) +# define sk_DIST_POINT_pop_free(st, free_func) SKM_sk_pop_free(DIST_POINT, (st), (free_func)) +# define sk_DIST_POINT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(DIST_POINT, (st), (copy_func), (free_func)) +# define sk_DIST_POINT_shift(st) SKM_sk_shift(DIST_POINT, (st)) +# define sk_DIST_POINT_pop(st) SKM_sk_pop(DIST_POINT, (st)) +# define sk_DIST_POINT_sort(st) SKM_sk_sort(DIST_POINT, (st)) +# define sk_DIST_POINT_is_sorted(st) SKM_sk_is_sorted(DIST_POINT, (st)) +# define sk_ENGINE_new(cmp) SKM_sk_new(ENGINE, (cmp)) +# define sk_ENGINE_new_null() SKM_sk_new_null(ENGINE) +# define sk_ENGINE_free(st) SKM_sk_free(ENGINE, (st)) +# define sk_ENGINE_num(st) SKM_sk_num(ENGINE, (st)) +# define sk_ENGINE_value(st, i) SKM_sk_value(ENGINE, (st), (i)) +# define sk_ENGINE_set(st, i, val) SKM_sk_set(ENGINE, (st), (i), (val)) +# define sk_ENGINE_zero(st) SKM_sk_zero(ENGINE, (st)) +# define sk_ENGINE_push(st, val) SKM_sk_push(ENGINE, (st), (val)) +# define sk_ENGINE_unshift(st, val) SKM_sk_unshift(ENGINE, (st), (val)) +# define sk_ENGINE_find(st, val) SKM_sk_find(ENGINE, (st), (val)) +# define sk_ENGINE_find_ex(st, val) SKM_sk_find_ex(ENGINE, (st), (val)) +# define sk_ENGINE_delete(st, i) SKM_sk_delete(ENGINE, (st), (i)) +# define sk_ENGINE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ENGINE, (st), (ptr)) +# define sk_ENGINE_insert(st, val, i) SKM_sk_insert(ENGINE, (st), (val), (i)) +# define sk_ENGINE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ENGINE, (st), (cmp)) +# define sk_ENGINE_dup(st) SKM_sk_dup(ENGINE, st) +# define sk_ENGINE_pop_free(st, free_func) SKM_sk_pop_free(ENGINE, (st), (free_func)) +# define sk_ENGINE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ENGINE, (st), (copy_func), (free_func)) +# define sk_ENGINE_shift(st) SKM_sk_shift(ENGINE, (st)) +# define sk_ENGINE_pop(st) SKM_sk_pop(ENGINE, (st)) +# define sk_ENGINE_sort(st) SKM_sk_sort(ENGINE, (st)) +# define sk_ENGINE_is_sorted(st) SKM_sk_is_sorted(ENGINE, (st)) +# define sk_ENGINE_CLEANUP_ITEM_new(cmp) SKM_sk_new(ENGINE_CLEANUP_ITEM, (cmp)) +# define sk_ENGINE_CLEANUP_ITEM_new_null() SKM_sk_new_null(ENGINE_CLEANUP_ITEM) +# define sk_ENGINE_CLEANUP_ITEM_free(st) SKM_sk_free(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_num(st) SKM_sk_num(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_value(st, i) SKM_sk_value(ENGINE_CLEANUP_ITEM, (st), (i)) +# define sk_ENGINE_CLEANUP_ITEM_set(st, i, val) SKM_sk_set(ENGINE_CLEANUP_ITEM, (st), (i), (val)) +# define sk_ENGINE_CLEANUP_ITEM_zero(st) SKM_sk_zero(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_push(st, val) SKM_sk_push(ENGINE_CLEANUP_ITEM, (st), (val)) +# define sk_ENGINE_CLEANUP_ITEM_unshift(st, val) SKM_sk_unshift(ENGINE_CLEANUP_ITEM, (st), (val)) +# define sk_ENGINE_CLEANUP_ITEM_find(st, val) SKM_sk_find(ENGINE_CLEANUP_ITEM, (st), (val)) +# define sk_ENGINE_CLEANUP_ITEM_find_ex(st, val) SKM_sk_find_ex(ENGINE_CLEANUP_ITEM, (st), (val)) +# define sk_ENGINE_CLEANUP_ITEM_delete(st, i) SKM_sk_delete(ENGINE_CLEANUP_ITEM, (st), (i)) +# define sk_ENGINE_CLEANUP_ITEM_delete_ptr(st, ptr) SKM_sk_delete_ptr(ENGINE_CLEANUP_ITEM, (st), (ptr)) +# define sk_ENGINE_CLEANUP_ITEM_insert(st, val, i) SKM_sk_insert(ENGINE_CLEANUP_ITEM, (st), (val), (i)) +# define sk_ENGINE_CLEANUP_ITEM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ENGINE_CLEANUP_ITEM, (st), (cmp)) +# define sk_ENGINE_CLEANUP_ITEM_dup(st) SKM_sk_dup(ENGINE_CLEANUP_ITEM, st) +# define sk_ENGINE_CLEANUP_ITEM_pop_free(st, free_func) SKM_sk_pop_free(ENGINE_CLEANUP_ITEM, (st), (free_func)) +# define sk_ENGINE_CLEANUP_ITEM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ENGINE_CLEANUP_ITEM, (st), (copy_func), (free_func)) +# define sk_ENGINE_CLEANUP_ITEM_shift(st) SKM_sk_shift(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_pop(st) SKM_sk_pop(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_sort(st) SKM_sk_sort(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_is_sorted(st) SKM_sk_is_sorted(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ESS_CERT_ID_new(cmp) SKM_sk_new(ESS_CERT_ID, (cmp)) +# define sk_ESS_CERT_ID_new_null() SKM_sk_new_null(ESS_CERT_ID) +# define sk_ESS_CERT_ID_free(st) SKM_sk_free(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_num(st) SKM_sk_num(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_value(st, i) SKM_sk_value(ESS_CERT_ID, (st), (i)) +# define sk_ESS_CERT_ID_set(st, i, val) SKM_sk_set(ESS_CERT_ID, (st), (i), (val)) +# define sk_ESS_CERT_ID_zero(st) SKM_sk_zero(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_push(st, val) SKM_sk_push(ESS_CERT_ID, (st), (val)) +# define sk_ESS_CERT_ID_unshift(st, val) SKM_sk_unshift(ESS_CERT_ID, (st), (val)) +# define sk_ESS_CERT_ID_find(st, val) SKM_sk_find(ESS_CERT_ID, (st), (val)) +# define sk_ESS_CERT_ID_find_ex(st, val) SKM_sk_find_ex(ESS_CERT_ID, (st), (val)) +# define sk_ESS_CERT_ID_delete(st, i) SKM_sk_delete(ESS_CERT_ID, (st), (i)) +# define sk_ESS_CERT_ID_delete_ptr(st, ptr) SKM_sk_delete_ptr(ESS_CERT_ID, (st), (ptr)) +# define sk_ESS_CERT_ID_insert(st, val, i) SKM_sk_insert(ESS_CERT_ID, (st), (val), (i)) +# define sk_ESS_CERT_ID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ESS_CERT_ID, (st), (cmp)) +# define sk_ESS_CERT_ID_dup(st) SKM_sk_dup(ESS_CERT_ID, st) +# define sk_ESS_CERT_ID_pop_free(st, free_func) SKM_sk_pop_free(ESS_CERT_ID, (st), (free_func)) +# define sk_ESS_CERT_ID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ESS_CERT_ID, (st), (copy_func), (free_func)) +# define sk_ESS_CERT_ID_shift(st) SKM_sk_shift(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_pop(st) SKM_sk_pop(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_sort(st) SKM_sk_sort(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_is_sorted(st) SKM_sk_is_sorted(ESS_CERT_ID, (st)) +# define sk_EVP_MD_new(cmp) SKM_sk_new(EVP_MD, (cmp)) +# define sk_EVP_MD_new_null() SKM_sk_new_null(EVP_MD) +# define sk_EVP_MD_free(st) SKM_sk_free(EVP_MD, (st)) +# define sk_EVP_MD_num(st) SKM_sk_num(EVP_MD, (st)) +# define sk_EVP_MD_value(st, i) SKM_sk_value(EVP_MD, (st), (i)) +# define sk_EVP_MD_set(st, i, val) SKM_sk_set(EVP_MD, (st), (i), (val)) +# define sk_EVP_MD_zero(st) SKM_sk_zero(EVP_MD, (st)) +# define sk_EVP_MD_push(st, val) SKM_sk_push(EVP_MD, (st), (val)) +# define sk_EVP_MD_unshift(st, val) SKM_sk_unshift(EVP_MD, (st), (val)) +# define sk_EVP_MD_find(st, val) SKM_sk_find(EVP_MD, (st), (val)) +# define sk_EVP_MD_find_ex(st, val) SKM_sk_find_ex(EVP_MD, (st), (val)) +# define sk_EVP_MD_delete(st, i) SKM_sk_delete(EVP_MD, (st), (i)) +# define sk_EVP_MD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_MD, (st), (ptr)) +# define sk_EVP_MD_insert(st, val, i) SKM_sk_insert(EVP_MD, (st), (val), (i)) +# define sk_EVP_MD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_MD, (st), (cmp)) +# define sk_EVP_MD_dup(st) SKM_sk_dup(EVP_MD, st) +# define sk_EVP_MD_pop_free(st, free_func) SKM_sk_pop_free(EVP_MD, (st), (free_func)) +# define sk_EVP_MD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_MD, (st), (copy_func), (free_func)) +# define sk_EVP_MD_shift(st) SKM_sk_shift(EVP_MD, (st)) +# define sk_EVP_MD_pop(st) SKM_sk_pop(EVP_MD, (st)) +# define sk_EVP_MD_sort(st) SKM_sk_sort(EVP_MD, (st)) +# define sk_EVP_MD_is_sorted(st) SKM_sk_is_sorted(EVP_MD, (st)) +# define sk_EVP_PBE_CTL_new(cmp) SKM_sk_new(EVP_PBE_CTL, (cmp)) +# define sk_EVP_PBE_CTL_new_null() SKM_sk_new_null(EVP_PBE_CTL) +# define sk_EVP_PBE_CTL_free(st) SKM_sk_free(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_num(st) SKM_sk_num(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_value(st, i) SKM_sk_value(EVP_PBE_CTL, (st), (i)) +# define sk_EVP_PBE_CTL_set(st, i, val) SKM_sk_set(EVP_PBE_CTL, (st), (i), (val)) +# define sk_EVP_PBE_CTL_zero(st) SKM_sk_zero(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_push(st, val) SKM_sk_push(EVP_PBE_CTL, (st), (val)) +# define sk_EVP_PBE_CTL_unshift(st, val) SKM_sk_unshift(EVP_PBE_CTL, (st), (val)) +# define sk_EVP_PBE_CTL_find(st, val) SKM_sk_find(EVP_PBE_CTL, (st), (val)) +# define sk_EVP_PBE_CTL_find_ex(st, val) SKM_sk_find_ex(EVP_PBE_CTL, (st), (val)) +# define sk_EVP_PBE_CTL_delete(st, i) SKM_sk_delete(EVP_PBE_CTL, (st), (i)) +# define sk_EVP_PBE_CTL_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PBE_CTL, (st), (ptr)) +# define sk_EVP_PBE_CTL_insert(st, val, i) SKM_sk_insert(EVP_PBE_CTL, (st), (val), (i)) +# define sk_EVP_PBE_CTL_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PBE_CTL, (st), (cmp)) +# define sk_EVP_PBE_CTL_dup(st) SKM_sk_dup(EVP_PBE_CTL, st) +# define sk_EVP_PBE_CTL_pop_free(st, free_func) SKM_sk_pop_free(EVP_PBE_CTL, (st), (free_func)) +# define sk_EVP_PBE_CTL_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PBE_CTL, (st), (copy_func), (free_func)) +# define sk_EVP_PBE_CTL_shift(st) SKM_sk_shift(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_pop(st) SKM_sk_pop(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_sort(st) SKM_sk_sort(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_is_sorted(st) SKM_sk_is_sorted(EVP_PBE_CTL, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_new(cmp) SKM_sk_new(EVP_PKEY_ASN1_METHOD, (cmp)) +# define sk_EVP_PKEY_ASN1_METHOD_new_null() SKM_sk_new_null(EVP_PKEY_ASN1_METHOD) +# define sk_EVP_PKEY_ASN1_METHOD_free(st) SKM_sk_free(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_num(st) SKM_sk_num(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_value(st, i) SKM_sk_value(EVP_PKEY_ASN1_METHOD, (st), (i)) +# define sk_EVP_PKEY_ASN1_METHOD_set(st, i, val) SKM_sk_set(EVP_PKEY_ASN1_METHOD, (st), (i), (val)) +# define sk_EVP_PKEY_ASN1_METHOD_zero(st) SKM_sk_zero(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_push(st, val) SKM_sk_push(EVP_PKEY_ASN1_METHOD, (st), (val)) +# define sk_EVP_PKEY_ASN1_METHOD_unshift(st, val) SKM_sk_unshift(EVP_PKEY_ASN1_METHOD, (st), (val)) +# define sk_EVP_PKEY_ASN1_METHOD_find(st, val) SKM_sk_find(EVP_PKEY_ASN1_METHOD, (st), (val)) +# define sk_EVP_PKEY_ASN1_METHOD_find_ex(st, val) SKM_sk_find_ex(EVP_PKEY_ASN1_METHOD, (st), (val)) +# define sk_EVP_PKEY_ASN1_METHOD_delete(st, i) SKM_sk_delete(EVP_PKEY_ASN1_METHOD, (st), (i)) +# define sk_EVP_PKEY_ASN1_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PKEY_ASN1_METHOD, (st), (ptr)) +# define sk_EVP_PKEY_ASN1_METHOD_insert(st, val, i) SKM_sk_insert(EVP_PKEY_ASN1_METHOD, (st), (val), (i)) +# define sk_EVP_PKEY_ASN1_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PKEY_ASN1_METHOD, (st), (cmp)) +# define sk_EVP_PKEY_ASN1_METHOD_dup(st) SKM_sk_dup(EVP_PKEY_ASN1_METHOD, st) +# define sk_EVP_PKEY_ASN1_METHOD_pop_free(st, free_func) SKM_sk_pop_free(EVP_PKEY_ASN1_METHOD, (st), (free_func)) +# define sk_EVP_PKEY_ASN1_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PKEY_ASN1_METHOD, (st), (copy_func), (free_func)) +# define sk_EVP_PKEY_ASN1_METHOD_shift(st) SKM_sk_shift(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_pop(st) SKM_sk_pop(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_sort(st) SKM_sk_sort(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_is_sorted(st) SKM_sk_is_sorted(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_new(cmp) SKM_sk_new(EVP_PKEY_METHOD, (cmp)) +# define sk_EVP_PKEY_METHOD_new_null() SKM_sk_new_null(EVP_PKEY_METHOD) +# define sk_EVP_PKEY_METHOD_free(st) SKM_sk_free(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_num(st) SKM_sk_num(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_value(st, i) SKM_sk_value(EVP_PKEY_METHOD, (st), (i)) +# define sk_EVP_PKEY_METHOD_set(st, i, val) SKM_sk_set(EVP_PKEY_METHOD, (st), (i), (val)) +# define sk_EVP_PKEY_METHOD_zero(st) SKM_sk_zero(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_push(st, val) SKM_sk_push(EVP_PKEY_METHOD, (st), (val)) +# define sk_EVP_PKEY_METHOD_unshift(st, val) SKM_sk_unshift(EVP_PKEY_METHOD, (st), (val)) +# define sk_EVP_PKEY_METHOD_find(st, val) SKM_sk_find(EVP_PKEY_METHOD, (st), (val)) +# define sk_EVP_PKEY_METHOD_find_ex(st, val) SKM_sk_find_ex(EVP_PKEY_METHOD, (st), (val)) +# define sk_EVP_PKEY_METHOD_delete(st, i) SKM_sk_delete(EVP_PKEY_METHOD, (st), (i)) +# define sk_EVP_PKEY_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PKEY_METHOD, (st), (ptr)) +# define sk_EVP_PKEY_METHOD_insert(st, val, i) SKM_sk_insert(EVP_PKEY_METHOD, (st), (val), (i)) +# define sk_EVP_PKEY_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PKEY_METHOD, (st), (cmp)) +# define sk_EVP_PKEY_METHOD_dup(st) SKM_sk_dup(EVP_PKEY_METHOD, st) +# define sk_EVP_PKEY_METHOD_pop_free(st, free_func) SKM_sk_pop_free(EVP_PKEY_METHOD, (st), (free_func)) +# define sk_EVP_PKEY_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PKEY_METHOD, (st), (copy_func), (free_func)) +# define sk_EVP_PKEY_METHOD_shift(st) SKM_sk_shift(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_pop(st) SKM_sk_pop(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_sort(st) SKM_sk_sort(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_is_sorted(st) SKM_sk_is_sorted(EVP_PKEY_METHOD, (st)) +# define sk_GENERAL_NAME_new(cmp) SKM_sk_new(GENERAL_NAME, (cmp)) +# define sk_GENERAL_NAME_new_null() SKM_sk_new_null(GENERAL_NAME) +# define sk_GENERAL_NAME_free(st) SKM_sk_free(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_num(st) SKM_sk_num(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_value(st, i) SKM_sk_value(GENERAL_NAME, (st), (i)) +# define sk_GENERAL_NAME_set(st, i, val) SKM_sk_set(GENERAL_NAME, (st), (i), (val)) +# define sk_GENERAL_NAME_zero(st) SKM_sk_zero(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_push(st, val) SKM_sk_push(GENERAL_NAME, (st), (val)) +# define sk_GENERAL_NAME_unshift(st, val) SKM_sk_unshift(GENERAL_NAME, (st), (val)) +# define sk_GENERAL_NAME_find(st, val) SKM_sk_find(GENERAL_NAME, (st), (val)) +# define sk_GENERAL_NAME_find_ex(st, val) SKM_sk_find_ex(GENERAL_NAME, (st), (val)) +# define sk_GENERAL_NAME_delete(st, i) SKM_sk_delete(GENERAL_NAME, (st), (i)) +# define sk_GENERAL_NAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_NAME, (st), (ptr)) +# define sk_GENERAL_NAME_insert(st, val, i) SKM_sk_insert(GENERAL_NAME, (st), (val), (i)) +# define sk_GENERAL_NAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_NAME, (st), (cmp)) +# define sk_GENERAL_NAME_dup(st) SKM_sk_dup(GENERAL_NAME, st) +# define sk_GENERAL_NAME_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_NAME, (st), (free_func)) +# define sk_GENERAL_NAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_NAME, (st), (copy_func), (free_func)) +# define sk_GENERAL_NAME_shift(st) SKM_sk_shift(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_pop(st) SKM_sk_pop(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_sort(st) SKM_sk_sort(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_is_sorted(st) SKM_sk_is_sorted(GENERAL_NAME, (st)) +# define sk_GENERAL_NAMES_new(cmp) SKM_sk_new(GENERAL_NAMES, (cmp)) +# define sk_GENERAL_NAMES_new_null() SKM_sk_new_null(GENERAL_NAMES) +# define sk_GENERAL_NAMES_free(st) SKM_sk_free(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_num(st) SKM_sk_num(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_value(st, i) SKM_sk_value(GENERAL_NAMES, (st), (i)) +# define sk_GENERAL_NAMES_set(st, i, val) SKM_sk_set(GENERAL_NAMES, (st), (i), (val)) +# define sk_GENERAL_NAMES_zero(st) SKM_sk_zero(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_push(st, val) SKM_sk_push(GENERAL_NAMES, (st), (val)) +# define sk_GENERAL_NAMES_unshift(st, val) SKM_sk_unshift(GENERAL_NAMES, (st), (val)) +# define sk_GENERAL_NAMES_find(st, val) SKM_sk_find(GENERAL_NAMES, (st), (val)) +# define sk_GENERAL_NAMES_find_ex(st, val) SKM_sk_find_ex(GENERAL_NAMES, (st), (val)) +# define sk_GENERAL_NAMES_delete(st, i) SKM_sk_delete(GENERAL_NAMES, (st), (i)) +# define sk_GENERAL_NAMES_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_NAMES, (st), (ptr)) +# define sk_GENERAL_NAMES_insert(st, val, i) SKM_sk_insert(GENERAL_NAMES, (st), (val), (i)) +# define sk_GENERAL_NAMES_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_NAMES, (st), (cmp)) +# define sk_GENERAL_NAMES_dup(st) SKM_sk_dup(GENERAL_NAMES, st) +# define sk_GENERAL_NAMES_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_NAMES, (st), (free_func)) +# define sk_GENERAL_NAMES_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_NAMES, (st), (copy_func), (free_func)) +# define sk_GENERAL_NAMES_shift(st) SKM_sk_shift(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_pop(st) SKM_sk_pop(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_sort(st) SKM_sk_sort(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_is_sorted(st) SKM_sk_is_sorted(GENERAL_NAMES, (st)) +# define sk_GENERAL_SUBTREE_new(cmp) SKM_sk_new(GENERAL_SUBTREE, (cmp)) +# define sk_GENERAL_SUBTREE_new_null() SKM_sk_new_null(GENERAL_SUBTREE) +# define sk_GENERAL_SUBTREE_free(st) SKM_sk_free(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_num(st) SKM_sk_num(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_value(st, i) SKM_sk_value(GENERAL_SUBTREE, (st), (i)) +# define sk_GENERAL_SUBTREE_set(st, i, val) SKM_sk_set(GENERAL_SUBTREE, (st), (i), (val)) +# define sk_GENERAL_SUBTREE_zero(st) SKM_sk_zero(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_push(st, val) SKM_sk_push(GENERAL_SUBTREE, (st), (val)) +# define sk_GENERAL_SUBTREE_unshift(st, val) SKM_sk_unshift(GENERAL_SUBTREE, (st), (val)) +# define sk_GENERAL_SUBTREE_find(st, val) SKM_sk_find(GENERAL_SUBTREE, (st), (val)) +# define sk_GENERAL_SUBTREE_find_ex(st, val) SKM_sk_find_ex(GENERAL_SUBTREE, (st), (val)) +# define sk_GENERAL_SUBTREE_delete(st, i) SKM_sk_delete(GENERAL_SUBTREE, (st), (i)) +# define sk_GENERAL_SUBTREE_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_SUBTREE, (st), (ptr)) +# define sk_GENERAL_SUBTREE_insert(st, val, i) SKM_sk_insert(GENERAL_SUBTREE, (st), (val), (i)) +# define sk_GENERAL_SUBTREE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_SUBTREE, (st), (cmp)) +# define sk_GENERAL_SUBTREE_dup(st) SKM_sk_dup(GENERAL_SUBTREE, st) +# define sk_GENERAL_SUBTREE_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_SUBTREE, (st), (free_func)) +# define sk_GENERAL_SUBTREE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_SUBTREE, (st), (copy_func), (free_func)) +# define sk_GENERAL_SUBTREE_shift(st) SKM_sk_shift(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_pop(st) SKM_sk_pop(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_sort(st) SKM_sk_sort(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_is_sorted(st) SKM_sk_is_sorted(GENERAL_SUBTREE, (st)) +# define sk_IPAddressFamily_new(cmp) SKM_sk_new(IPAddressFamily, (cmp)) +# define sk_IPAddressFamily_new_null() SKM_sk_new_null(IPAddressFamily) +# define sk_IPAddressFamily_free(st) SKM_sk_free(IPAddressFamily, (st)) +# define sk_IPAddressFamily_num(st) SKM_sk_num(IPAddressFamily, (st)) +# define sk_IPAddressFamily_value(st, i) SKM_sk_value(IPAddressFamily, (st), (i)) +# define sk_IPAddressFamily_set(st, i, val) SKM_sk_set(IPAddressFamily, (st), (i), (val)) +# define sk_IPAddressFamily_zero(st) SKM_sk_zero(IPAddressFamily, (st)) +# define sk_IPAddressFamily_push(st, val) SKM_sk_push(IPAddressFamily, (st), (val)) +# define sk_IPAddressFamily_unshift(st, val) SKM_sk_unshift(IPAddressFamily, (st), (val)) +# define sk_IPAddressFamily_find(st, val) SKM_sk_find(IPAddressFamily, (st), (val)) +# define sk_IPAddressFamily_find_ex(st, val) SKM_sk_find_ex(IPAddressFamily, (st), (val)) +# define sk_IPAddressFamily_delete(st, i) SKM_sk_delete(IPAddressFamily, (st), (i)) +# define sk_IPAddressFamily_delete_ptr(st, ptr) SKM_sk_delete_ptr(IPAddressFamily, (st), (ptr)) +# define sk_IPAddressFamily_insert(st, val, i) SKM_sk_insert(IPAddressFamily, (st), (val), (i)) +# define sk_IPAddressFamily_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(IPAddressFamily, (st), (cmp)) +# define sk_IPAddressFamily_dup(st) SKM_sk_dup(IPAddressFamily, st) +# define sk_IPAddressFamily_pop_free(st, free_func) SKM_sk_pop_free(IPAddressFamily, (st), (free_func)) +# define sk_IPAddressFamily_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(IPAddressFamily, (st), (copy_func), (free_func)) +# define sk_IPAddressFamily_shift(st) SKM_sk_shift(IPAddressFamily, (st)) +# define sk_IPAddressFamily_pop(st) SKM_sk_pop(IPAddressFamily, (st)) +# define sk_IPAddressFamily_sort(st) SKM_sk_sort(IPAddressFamily, (st)) +# define sk_IPAddressFamily_is_sorted(st) SKM_sk_is_sorted(IPAddressFamily, (st)) +# define sk_IPAddressOrRange_new(cmp) SKM_sk_new(IPAddressOrRange, (cmp)) +# define sk_IPAddressOrRange_new_null() SKM_sk_new_null(IPAddressOrRange) +# define sk_IPAddressOrRange_free(st) SKM_sk_free(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_num(st) SKM_sk_num(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_value(st, i) SKM_sk_value(IPAddressOrRange, (st), (i)) +# define sk_IPAddressOrRange_set(st, i, val) SKM_sk_set(IPAddressOrRange, (st), (i), (val)) +# define sk_IPAddressOrRange_zero(st) SKM_sk_zero(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_push(st, val) SKM_sk_push(IPAddressOrRange, (st), (val)) +# define sk_IPAddressOrRange_unshift(st, val) SKM_sk_unshift(IPAddressOrRange, (st), (val)) +# define sk_IPAddressOrRange_find(st, val) SKM_sk_find(IPAddressOrRange, (st), (val)) +# define sk_IPAddressOrRange_find_ex(st, val) SKM_sk_find_ex(IPAddressOrRange, (st), (val)) +# define sk_IPAddressOrRange_delete(st, i) SKM_sk_delete(IPAddressOrRange, (st), (i)) +# define sk_IPAddressOrRange_delete_ptr(st, ptr) SKM_sk_delete_ptr(IPAddressOrRange, (st), (ptr)) +# define sk_IPAddressOrRange_insert(st, val, i) SKM_sk_insert(IPAddressOrRange, (st), (val), (i)) +# define sk_IPAddressOrRange_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(IPAddressOrRange, (st), (cmp)) +# define sk_IPAddressOrRange_dup(st) SKM_sk_dup(IPAddressOrRange, st) +# define sk_IPAddressOrRange_pop_free(st, free_func) SKM_sk_pop_free(IPAddressOrRange, (st), (free_func)) +# define sk_IPAddressOrRange_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(IPAddressOrRange, (st), (copy_func), (free_func)) +# define sk_IPAddressOrRange_shift(st) SKM_sk_shift(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_pop(st) SKM_sk_pop(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_sort(st) SKM_sk_sort(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_is_sorted(st) SKM_sk_is_sorted(IPAddressOrRange, (st)) +# define sk_KRB5_APREQBODY_new(cmp) SKM_sk_new(KRB5_APREQBODY, (cmp)) +# define sk_KRB5_APREQBODY_new_null() SKM_sk_new_null(KRB5_APREQBODY) +# define sk_KRB5_APREQBODY_free(st) SKM_sk_free(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_num(st) SKM_sk_num(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_value(st, i) SKM_sk_value(KRB5_APREQBODY, (st), (i)) +# define sk_KRB5_APREQBODY_set(st, i, val) SKM_sk_set(KRB5_APREQBODY, (st), (i), (val)) +# define sk_KRB5_APREQBODY_zero(st) SKM_sk_zero(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_push(st, val) SKM_sk_push(KRB5_APREQBODY, (st), (val)) +# define sk_KRB5_APREQBODY_unshift(st, val) SKM_sk_unshift(KRB5_APREQBODY, (st), (val)) +# define sk_KRB5_APREQBODY_find(st, val) SKM_sk_find(KRB5_APREQBODY, (st), (val)) +# define sk_KRB5_APREQBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_APREQBODY, (st), (val)) +# define sk_KRB5_APREQBODY_delete(st, i) SKM_sk_delete(KRB5_APREQBODY, (st), (i)) +# define sk_KRB5_APREQBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_APREQBODY, (st), (ptr)) +# define sk_KRB5_APREQBODY_insert(st, val, i) SKM_sk_insert(KRB5_APREQBODY, (st), (val), (i)) +# define sk_KRB5_APREQBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_APREQBODY, (st), (cmp)) +# define sk_KRB5_APREQBODY_dup(st) SKM_sk_dup(KRB5_APREQBODY, st) +# define sk_KRB5_APREQBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_APREQBODY, (st), (free_func)) +# define sk_KRB5_APREQBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_APREQBODY, (st), (copy_func), (free_func)) +# define sk_KRB5_APREQBODY_shift(st) SKM_sk_shift(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_pop(st) SKM_sk_pop(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_sort(st) SKM_sk_sort(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_APREQBODY, (st)) +# define sk_KRB5_AUTHDATA_new(cmp) SKM_sk_new(KRB5_AUTHDATA, (cmp)) +# define sk_KRB5_AUTHDATA_new_null() SKM_sk_new_null(KRB5_AUTHDATA) +# define sk_KRB5_AUTHDATA_free(st) SKM_sk_free(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_num(st) SKM_sk_num(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_value(st, i) SKM_sk_value(KRB5_AUTHDATA, (st), (i)) +# define sk_KRB5_AUTHDATA_set(st, i, val) SKM_sk_set(KRB5_AUTHDATA, (st), (i), (val)) +# define sk_KRB5_AUTHDATA_zero(st) SKM_sk_zero(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_push(st, val) SKM_sk_push(KRB5_AUTHDATA, (st), (val)) +# define sk_KRB5_AUTHDATA_unshift(st, val) SKM_sk_unshift(KRB5_AUTHDATA, (st), (val)) +# define sk_KRB5_AUTHDATA_find(st, val) SKM_sk_find(KRB5_AUTHDATA, (st), (val)) +# define sk_KRB5_AUTHDATA_find_ex(st, val) SKM_sk_find_ex(KRB5_AUTHDATA, (st), (val)) +# define sk_KRB5_AUTHDATA_delete(st, i) SKM_sk_delete(KRB5_AUTHDATA, (st), (i)) +# define sk_KRB5_AUTHDATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_AUTHDATA, (st), (ptr)) +# define sk_KRB5_AUTHDATA_insert(st, val, i) SKM_sk_insert(KRB5_AUTHDATA, (st), (val), (i)) +# define sk_KRB5_AUTHDATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_AUTHDATA, (st), (cmp)) +# define sk_KRB5_AUTHDATA_dup(st) SKM_sk_dup(KRB5_AUTHDATA, st) +# define sk_KRB5_AUTHDATA_pop_free(st, free_func) SKM_sk_pop_free(KRB5_AUTHDATA, (st), (free_func)) +# define sk_KRB5_AUTHDATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_AUTHDATA, (st), (copy_func), (free_func)) +# define sk_KRB5_AUTHDATA_shift(st) SKM_sk_shift(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_pop(st) SKM_sk_pop(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_sort(st) SKM_sk_sort(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHENTBODY_new(cmp) SKM_sk_new(KRB5_AUTHENTBODY, (cmp)) +# define sk_KRB5_AUTHENTBODY_new_null() SKM_sk_new_null(KRB5_AUTHENTBODY) +# define sk_KRB5_AUTHENTBODY_free(st) SKM_sk_free(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_num(st) SKM_sk_num(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_value(st, i) SKM_sk_value(KRB5_AUTHENTBODY, (st), (i)) +# define sk_KRB5_AUTHENTBODY_set(st, i, val) SKM_sk_set(KRB5_AUTHENTBODY, (st), (i), (val)) +# define sk_KRB5_AUTHENTBODY_zero(st) SKM_sk_zero(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_push(st, val) SKM_sk_push(KRB5_AUTHENTBODY, (st), (val)) +# define sk_KRB5_AUTHENTBODY_unshift(st, val) SKM_sk_unshift(KRB5_AUTHENTBODY, (st), (val)) +# define sk_KRB5_AUTHENTBODY_find(st, val) SKM_sk_find(KRB5_AUTHENTBODY, (st), (val)) +# define sk_KRB5_AUTHENTBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_AUTHENTBODY, (st), (val)) +# define sk_KRB5_AUTHENTBODY_delete(st, i) SKM_sk_delete(KRB5_AUTHENTBODY, (st), (i)) +# define sk_KRB5_AUTHENTBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_AUTHENTBODY, (st), (ptr)) +# define sk_KRB5_AUTHENTBODY_insert(st, val, i) SKM_sk_insert(KRB5_AUTHENTBODY, (st), (val), (i)) +# define sk_KRB5_AUTHENTBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_AUTHENTBODY, (st), (cmp)) +# define sk_KRB5_AUTHENTBODY_dup(st) SKM_sk_dup(KRB5_AUTHENTBODY, st) +# define sk_KRB5_AUTHENTBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_AUTHENTBODY, (st), (free_func)) +# define sk_KRB5_AUTHENTBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_AUTHENTBODY, (st), (copy_func), (free_func)) +# define sk_KRB5_AUTHENTBODY_shift(st) SKM_sk_shift(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_pop(st) SKM_sk_pop(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_sort(st) SKM_sk_sort(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_CHECKSUM_new(cmp) SKM_sk_new(KRB5_CHECKSUM, (cmp)) +# define sk_KRB5_CHECKSUM_new_null() SKM_sk_new_null(KRB5_CHECKSUM) +# define sk_KRB5_CHECKSUM_free(st) SKM_sk_free(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_num(st) SKM_sk_num(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_value(st, i) SKM_sk_value(KRB5_CHECKSUM, (st), (i)) +# define sk_KRB5_CHECKSUM_set(st, i, val) SKM_sk_set(KRB5_CHECKSUM, (st), (i), (val)) +# define sk_KRB5_CHECKSUM_zero(st) SKM_sk_zero(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_push(st, val) SKM_sk_push(KRB5_CHECKSUM, (st), (val)) +# define sk_KRB5_CHECKSUM_unshift(st, val) SKM_sk_unshift(KRB5_CHECKSUM, (st), (val)) +# define sk_KRB5_CHECKSUM_find(st, val) SKM_sk_find(KRB5_CHECKSUM, (st), (val)) +# define sk_KRB5_CHECKSUM_find_ex(st, val) SKM_sk_find_ex(KRB5_CHECKSUM, (st), (val)) +# define sk_KRB5_CHECKSUM_delete(st, i) SKM_sk_delete(KRB5_CHECKSUM, (st), (i)) +# define sk_KRB5_CHECKSUM_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_CHECKSUM, (st), (ptr)) +# define sk_KRB5_CHECKSUM_insert(st, val, i) SKM_sk_insert(KRB5_CHECKSUM, (st), (val), (i)) +# define sk_KRB5_CHECKSUM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_CHECKSUM, (st), (cmp)) +# define sk_KRB5_CHECKSUM_dup(st) SKM_sk_dup(KRB5_CHECKSUM, st) +# define sk_KRB5_CHECKSUM_pop_free(st, free_func) SKM_sk_pop_free(KRB5_CHECKSUM, (st), (free_func)) +# define sk_KRB5_CHECKSUM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_CHECKSUM, (st), (copy_func), (free_func)) +# define sk_KRB5_CHECKSUM_shift(st) SKM_sk_shift(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_pop(st) SKM_sk_pop(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_sort(st) SKM_sk_sort(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_is_sorted(st) SKM_sk_is_sorted(KRB5_CHECKSUM, (st)) +# define sk_KRB5_ENCDATA_new(cmp) SKM_sk_new(KRB5_ENCDATA, (cmp)) +# define sk_KRB5_ENCDATA_new_null() SKM_sk_new_null(KRB5_ENCDATA) +# define sk_KRB5_ENCDATA_free(st) SKM_sk_free(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_num(st) SKM_sk_num(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_value(st, i) SKM_sk_value(KRB5_ENCDATA, (st), (i)) +# define sk_KRB5_ENCDATA_set(st, i, val) SKM_sk_set(KRB5_ENCDATA, (st), (i), (val)) +# define sk_KRB5_ENCDATA_zero(st) SKM_sk_zero(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_push(st, val) SKM_sk_push(KRB5_ENCDATA, (st), (val)) +# define sk_KRB5_ENCDATA_unshift(st, val) SKM_sk_unshift(KRB5_ENCDATA, (st), (val)) +# define sk_KRB5_ENCDATA_find(st, val) SKM_sk_find(KRB5_ENCDATA, (st), (val)) +# define sk_KRB5_ENCDATA_find_ex(st, val) SKM_sk_find_ex(KRB5_ENCDATA, (st), (val)) +# define sk_KRB5_ENCDATA_delete(st, i) SKM_sk_delete(KRB5_ENCDATA, (st), (i)) +# define sk_KRB5_ENCDATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_ENCDATA, (st), (ptr)) +# define sk_KRB5_ENCDATA_insert(st, val, i) SKM_sk_insert(KRB5_ENCDATA, (st), (val), (i)) +# define sk_KRB5_ENCDATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_ENCDATA, (st), (cmp)) +# define sk_KRB5_ENCDATA_dup(st) SKM_sk_dup(KRB5_ENCDATA, st) +# define sk_KRB5_ENCDATA_pop_free(st, free_func) SKM_sk_pop_free(KRB5_ENCDATA, (st), (free_func)) +# define sk_KRB5_ENCDATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_ENCDATA, (st), (copy_func), (free_func)) +# define sk_KRB5_ENCDATA_shift(st) SKM_sk_shift(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_pop(st) SKM_sk_pop(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_sort(st) SKM_sk_sort(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCKEY_new(cmp) SKM_sk_new(KRB5_ENCKEY, (cmp)) +# define sk_KRB5_ENCKEY_new_null() SKM_sk_new_null(KRB5_ENCKEY) +# define sk_KRB5_ENCKEY_free(st) SKM_sk_free(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_num(st) SKM_sk_num(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_value(st, i) SKM_sk_value(KRB5_ENCKEY, (st), (i)) +# define sk_KRB5_ENCKEY_set(st, i, val) SKM_sk_set(KRB5_ENCKEY, (st), (i), (val)) +# define sk_KRB5_ENCKEY_zero(st) SKM_sk_zero(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_push(st, val) SKM_sk_push(KRB5_ENCKEY, (st), (val)) +# define sk_KRB5_ENCKEY_unshift(st, val) SKM_sk_unshift(KRB5_ENCKEY, (st), (val)) +# define sk_KRB5_ENCKEY_find(st, val) SKM_sk_find(KRB5_ENCKEY, (st), (val)) +# define sk_KRB5_ENCKEY_find_ex(st, val) SKM_sk_find_ex(KRB5_ENCKEY, (st), (val)) +# define sk_KRB5_ENCKEY_delete(st, i) SKM_sk_delete(KRB5_ENCKEY, (st), (i)) +# define sk_KRB5_ENCKEY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_ENCKEY, (st), (ptr)) +# define sk_KRB5_ENCKEY_insert(st, val, i) SKM_sk_insert(KRB5_ENCKEY, (st), (val), (i)) +# define sk_KRB5_ENCKEY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_ENCKEY, (st), (cmp)) +# define sk_KRB5_ENCKEY_dup(st) SKM_sk_dup(KRB5_ENCKEY, st) +# define sk_KRB5_ENCKEY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_ENCKEY, (st), (free_func)) +# define sk_KRB5_ENCKEY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_ENCKEY, (st), (copy_func), (free_func)) +# define sk_KRB5_ENCKEY_shift(st) SKM_sk_shift(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_pop(st) SKM_sk_pop(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_sort(st) SKM_sk_sort(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCKEY, (st)) +# define sk_KRB5_PRINCNAME_new(cmp) SKM_sk_new(KRB5_PRINCNAME, (cmp)) +# define sk_KRB5_PRINCNAME_new_null() SKM_sk_new_null(KRB5_PRINCNAME) +# define sk_KRB5_PRINCNAME_free(st) SKM_sk_free(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_num(st) SKM_sk_num(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_value(st, i) SKM_sk_value(KRB5_PRINCNAME, (st), (i)) +# define sk_KRB5_PRINCNAME_set(st, i, val) SKM_sk_set(KRB5_PRINCNAME, (st), (i), (val)) +# define sk_KRB5_PRINCNAME_zero(st) SKM_sk_zero(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_push(st, val) SKM_sk_push(KRB5_PRINCNAME, (st), (val)) +# define sk_KRB5_PRINCNAME_unshift(st, val) SKM_sk_unshift(KRB5_PRINCNAME, (st), (val)) +# define sk_KRB5_PRINCNAME_find(st, val) SKM_sk_find(KRB5_PRINCNAME, (st), (val)) +# define sk_KRB5_PRINCNAME_find_ex(st, val) SKM_sk_find_ex(KRB5_PRINCNAME, (st), (val)) +# define sk_KRB5_PRINCNAME_delete(st, i) SKM_sk_delete(KRB5_PRINCNAME, (st), (i)) +# define sk_KRB5_PRINCNAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_PRINCNAME, (st), (ptr)) +# define sk_KRB5_PRINCNAME_insert(st, val, i) SKM_sk_insert(KRB5_PRINCNAME, (st), (val), (i)) +# define sk_KRB5_PRINCNAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_PRINCNAME, (st), (cmp)) +# define sk_KRB5_PRINCNAME_dup(st) SKM_sk_dup(KRB5_PRINCNAME, st) +# define sk_KRB5_PRINCNAME_pop_free(st, free_func) SKM_sk_pop_free(KRB5_PRINCNAME, (st), (free_func)) +# define sk_KRB5_PRINCNAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_PRINCNAME, (st), (copy_func), (free_func)) +# define sk_KRB5_PRINCNAME_shift(st) SKM_sk_shift(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_pop(st) SKM_sk_pop(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_sort(st) SKM_sk_sort(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_is_sorted(st) SKM_sk_is_sorted(KRB5_PRINCNAME, (st)) +# define sk_KRB5_TKTBODY_new(cmp) SKM_sk_new(KRB5_TKTBODY, (cmp)) +# define sk_KRB5_TKTBODY_new_null() SKM_sk_new_null(KRB5_TKTBODY) +# define sk_KRB5_TKTBODY_free(st) SKM_sk_free(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_num(st) SKM_sk_num(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_value(st, i) SKM_sk_value(KRB5_TKTBODY, (st), (i)) +# define sk_KRB5_TKTBODY_set(st, i, val) SKM_sk_set(KRB5_TKTBODY, (st), (i), (val)) +# define sk_KRB5_TKTBODY_zero(st) SKM_sk_zero(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_push(st, val) SKM_sk_push(KRB5_TKTBODY, (st), (val)) +# define sk_KRB5_TKTBODY_unshift(st, val) SKM_sk_unshift(KRB5_TKTBODY, (st), (val)) +# define sk_KRB5_TKTBODY_find(st, val) SKM_sk_find(KRB5_TKTBODY, (st), (val)) +# define sk_KRB5_TKTBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_TKTBODY, (st), (val)) +# define sk_KRB5_TKTBODY_delete(st, i) SKM_sk_delete(KRB5_TKTBODY, (st), (i)) +# define sk_KRB5_TKTBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_TKTBODY, (st), (ptr)) +# define sk_KRB5_TKTBODY_insert(st, val, i) SKM_sk_insert(KRB5_TKTBODY, (st), (val), (i)) +# define sk_KRB5_TKTBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_TKTBODY, (st), (cmp)) +# define sk_KRB5_TKTBODY_dup(st) SKM_sk_dup(KRB5_TKTBODY, st) +# define sk_KRB5_TKTBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_TKTBODY, (st), (free_func)) +# define sk_KRB5_TKTBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_TKTBODY, (st), (copy_func), (free_func)) +# define sk_KRB5_TKTBODY_shift(st) SKM_sk_shift(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_pop(st) SKM_sk_pop(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_sort(st) SKM_sk_sort(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_TKTBODY, (st)) +# define sk_MEM_OBJECT_DATA_new(cmp) SKM_sk_new(MEM_OBJECT_DATA, (cmp)) +# define sk_MEM_OBJECT_DATA_new_null() SKM_sk_new_null(MEM_OBJECT_DATA) +# define sk_MEM_OBJECT_DATA_free(st) SKM_sk_free(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_num(st) SKM_sk_num(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_value(st, i) SKM_sk_value(MEM_OBJECT_DATA, (st), (i)) +# define sk_MEM_OBJECT_DATA_set(st, i, val) SKM_sk_set(MEM_OBJECT_DATA, (st), (i), (val)) +# define sk_MEM_OBJECT_DATA_zero(st) SKM_sk_zero(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_push(st, val) SKM_sk_push(MEM_OBJECT_DATA, (st), (val)) +# define sk_MEM_OBJECT_DATA_unshift(st, val) SKM_sk_unshift(MEM_OBJECT_DATA, (st), (val)) +# define sk_MEM_OBJECT_DATA_find(st, val) SKM_sk_find(MEM_OBJECT_DATA, (st), (val)) +# define sk_MEM_OBJECT_DATA_find_ex(st, val) SKM_sk_find_ex(MEM_OBJECT_DATA, (st), (val)) +# define sk_MEM_OBJECT_DATA_delete(st, i) SKM_sk_delete(MEM_OBJECT_DATA, (st), (i)) +# define sk_MEM_OBJECT_DATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(MEM_OBJECT_DATA, (st), (ptr)) +# define sk_MEM_OBJECT_DATA_insert(st, val, i) SKM_sk_insert(MEM_OBJECT_DATA, (st), (val), (i)) +# define sk_MEM_OBJECT_DATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MEM_OBJECT_DATA, (st), (cmp)) +# define sk_MEM_OBJECT_DATA_dup(st) SKM_sk_dup(MEM_OBJECT_DATA, st) +# define sk_MEM_OBJECT_DATA_pop_free(st, free_func) SKM_sk_pop_free(MEM_OBJECT_DATA, (st), (free_func)) +# define sk_MEM_OBJECT_DATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MEM_OBJECT_DATA, (st), (copy_func), (free_func)) +# define sk_MEM_OBJECT_DATA_shift(st) SKM_sk_shift(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_pop(st) SKM_sk_pop(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_sort(st) SKM_sk_sort(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_is_sorted(st) SKM_sk_is_sorted(MEM_OBJECT_DATA, (st)) +# define sk_MIME_HEADER_new(cmp) SKM_sk_new(MIME_HEADER, (cmp)) +# define sk_MIME_HEADER_new_null() SKM_sk_new_null(MIME_HEADER) +# define sk_MIME_HEADER_free(st) SKM_sk_free(MIME_HEADER, (st)) +# define sk_MIME_HEADER_num(st) SKM_sk_num(MIME_HEADER, (st)) +# define sk_MIME_HEADER_value(st, i) SKM_sk_value(MIME_HEADER, (st), (i)) +# define sk_MIME_HEADER_set(st, i, val) SKM_sk_set(MIME_HEADER, (st), (i), (val)) +# define sk_MIME_HEADER_zero(st) SKM_sk_zero(MIME_HEADER, (st)) +# define sk_MIME_HEADER_push(st, val) SKM_sk_push(MIME_HEADER, (st), (val)) +# define sk_MIME_HEADER_unshift(st, val) SKM_sk_unshift(MIME_HEADER, (st), (val)) +# define sk_MIME_HEADER_find(st, val) SKM_sk_find(MIME_HEADER, (st), (val)) +# define sk_MIME_HEADER_find_ex(st, val) SKM_sk_find_ex(MIME_HEADER, (st), (val)) +# define sk_MIME_HEADER_delete(st, i) SKM_sk_delete(MIME_HEADER, (st), (i)) +# define sk_MIME_HEADER_delete_ptr(st, ptr) SKM_sk_delete_ptr(MIME_HEADER, (st), (ptr)) +# define sk_MIME_HEADER_insert(st, val, i) SKM_sk_insert(MIME_HEADER, (st), (val), (i)) +# define sk_MIME_HEADER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MIME_HEADER, (st), (cmp)) +# define sk_MIME_HEADER_dup(st) SKM_sk_dup(MIME_HEADER, st) +# define sk_MIME_HEADER_pop_free(st, free_func) SKM_sk_pop_free(MIME_HEADER, (st), (free_func)) +# define sk_MIME_HEADER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MIME_HEADER, (st), (copy_func), (free_func)) +# define sk_MIME_HEADER_shift(st) SKM_sk_shift(MIME_HEADER, (st)) +# define sk_MIME_HEADER_pop(st) SKM_sk_pop(MIME_HEADER, (st)) +# define sk_MIME_HEADER_sort(st) SKM_sk_sort(MIME_HEADER, (st)) +# define sk_MIME_HEADER_is_sorted(st) SKM_sk_is_sorted(MIME_HEADER, (st)) +# define sk_MIME_PARAM_new(cmp) SKM_sk_new(MIME_PARAM, (cmp)) +# define sk_MIME_PARAM_new_null() SKM_sk_new_null(MIME_PARAM) +# define sk_MIME_PARAM_free(st) SKM_sk_free(MIME_PARAM, (st)) +# define sk_MIME_PARAM_num(st) SKM_sk_num(MIME_PARAM, (st)) +# define sk_MIME_PARAM_value(st, i) SKM_sk_value(MIME_PARAM, (st), (i)) +# define sk_MIME_PARAM_set(st, i, val) SKM_sk_set(MIME_PARAM, (st), (i), (val)) +# define sk_MIME_PARAM_zero(st) SKM_sk_zero(MIME_PARAM, (st)) +# define sk_MIME_PARAM_push(st, val) SKM_sk_push(MIME_PARAM, (st), (val)) +# define sk_MIME_PARAM_unshift(st, val) SKM_sk_unshift(MIME_PARAM, (st), (val)) +# define sk_MIME_PARAM_find(st, val) SKM_sk_find(MIME_PARAM, (st), (val)) +# define sk_MIME_PARAM_find_ex(st, val) SKM_sk_find_ex(MIME_PARAM, (st), (val)) +# define sk_MIME_PARAM_delete(st, i) SKM_sk_delete(MIME_PARAM, (st), (i)) +# define sk_MIME_PARAM_delete_ptr(st, ptr) SKM_sk_delete_ptr(MIME_PARAM, (st), (ptr)) +# define sk_MIME_PARAM_insert(st, val, i) SKM_sk_insert(MIME_PARAM, (st), (val), (i)) +# define sk_MIME_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MIME_PARAM, (st), (cmp)) +# define sk_MIME_PARAM_dup(st) SKM_sk_dup(MIME_PARAM, st) +# define sk_MIME_PARAM_pop_free(st, free_func) SKM_sk_pop_free(MIME_PARAM, (st), (free_func)) +# define sk_MIME_PARAM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MIME_PARAM, (st), (copy_func), (free_func)) +# define sk_MIME_PARAM_shift(st) SKM_sk_shift(MIME_PARAM, (st)) +# define sk_MIME_PARAM_pop(st) SKM_sk_pop(MIME_PARAM, (st)) +# define sk_MIME_PARAM_sort(st) SKM_sk_sort(MIME_PARAM, (st)) +# define sk_MIME_PARAM_is_sorted(st) SKM_sk_is_sorted(MIME_PARAM, (st)) +# define sk_NAME_FUNCS_new(cmp) SKM_sk_new(NAME_FUNCS, (cmp)) +# define sk_NAME_FUNCS_new_null() SKM_sk_new_null(NAME_FUNCS) +# define sk_NAME_FUNCS_free(st) SKM_sk_free(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_num(st) SKM_sk_num(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_value(st, i) SKM_sk_value(NAME_FUNCS, (st), (i)) +# define sk_NAME_FUNCS_set(st, i, val) SKM_sk_set(NAME_FUNCS, (st), (i), (val)) +# define sk_NAME_FUNCS_zero(st) SKM_sk_zero(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_push(st, val) SKM_sk_push(NAME_FUNCS, (st), (val)) +# define sk_NAME_FUNCS_unshift(st, val) SKM_sk_unshift(NAME_FUNCS, (st), (val)) +# define sk_NAME_FUNCS_find(st, val) SKM_sk_find(NAME_FUNCS, (st), (val)) +# define sk_NAME_FUNCS_find_ex(st, val) SKM_sk_find_ex(NAME_FUNCS, (st), (val)) +# define sk_NAME_FUNCS_delete(st, i) SKM_sk_delete(NAME_FUNCS, (st), (i)) +# define sk_NAME_FUNCS_delete_ptr(st, ptr) SKM_sk_delete_ptr(NAME_FUNCS, (st), (ptr)) +# define sk_NAME_FUNCS_insert(st, val, i) SKM_sk_insert(NAME_FUNCS, (st), (val), (i)) +# define sk_NAME_FUNCS_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(NAME_FUNCS, (st), (cmp)) +# define sk_NAME_FUNCS_dup(st) SKM_sk_dup(NAME_FUNCS, st) +# define sk_NAME_FUNCS_pop_free(st, free_func) SKM_sk_pop_free(NAME_FUNCS, (st), (free_func)) +# define sk_NAME_FUNCS_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(NAME_FUNCS, (st), (copy_func), (free_func)) +# define sk_NAME_FUNCS_shift(st) SKM_sk_shift(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_pop(st) SKM_sk_pop(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_sort(st) SKM_sk_sort(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_is_sorted(st) SKM_sk_is_sorted(NAME_FUNCS, (st)) +# define sk_OCSP_CERTID_new(cmp) SKM_sk_new(OCSP_CERTID, (cmp)) +# define sk_OCSP_CERTID_new_null() SKM_sk_new_null(OCSP_CERTID) +# define sk_OCSP_CERTID_free(st) SKM_sk_free(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_num(st) SKM_sk_num(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_value(st, i) SKM_sk_value(OCSP_CERTID, (st), (i)) +# define sk_OCSP_CERTID_set(st, i, val) SKM_sk_set(OCSP_CERTID, (st), (i), (val)) +# define sk_OCSP_CERTID_zero(st) SKM_sk_zero(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_push(st, val) SKM_sk_push(OCSP_CERTID, (st), (val)) +# define sk_OCSP_CERTID_unshift(st, val) SKM_sk_unshift(OCSP_CERTID, (st), (val)) +# define sk_OCSP_CERTID_find(st, val) SKM_sk_find(OCSP_CERTID, (st), (val)) +# define sk_OCSP_CERTID_find_ex(st, val) SKM_sk_find_ex(OCSP_CERTID, (st), (val)) +# define sk_OCSP_CERTID_delete(st, i) SKM_sk_delete(OCSP_CERTID, (st), (i)) +# define sk_OCSP_CERTID_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_CERTID, (st), (ptr)) +# define sk_OCSP_CERTID_insert(st, val, i) SKM_sk_insert(OCSP_CERTID, (st), (val), (i)) +# define sk_OCSP_CERTID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_CERTID, (st), (cmp)) +# define sk_OCSP_CERTID_dup(st) SKM_sk_dup(OCSP_CERTID, st) +# define sk_OCSP_CERTID_pop_free(st, free_func) SKM_sk_pop_free(OCSP_CERTID, (st), (free_func)) +# define sk_OCSP_CERTID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_CERTID, (st), (copy_func), (free_func)) +# define sk_OCSP_CERTID_shift(st) SKM_sk_shift(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_pop(st) SKM_sk_pop(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_sort(st) SKM_sk_sort(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_is_sorted(st) SKM_sk_is_sorted(OCSP_CERTID, (st)) +# define sk_OCSP_ONEREQ_new(cmp) SKM_sk_new(OCSP_ONEREQ, (cmp)) +# define sk_OCSP_ONEREQ_new_null() SKM_sk_new_null(OCSP_ONEREQ) +# define sk_OCSP_ONEREQ_free(st) SKM_sk_free(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_num(st) SKM_sk_num(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_value(st, i) SKM_sk_value(OCSP_ONEREQ, (st), (i)) +# define sk_OCSP_ONEREQ_set(st, i, val) SKM_sk_set(OCSP_ONEREQ, (st), (i), (val)) +# define sk_OCSP_ONEREQ_zero(st) SKM_sk_zero(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_push(st, val) SKM_sk_push(OCSP_ONEREQ, (st), (val)) +# define sk_OCSP_ONEREQ_unshift(st, val) SKM_sk_unshift(OCSP_ONEREQ, (st), (val)) +# define sk_OCSP_ONEREQ_find(st, val) SKM_sk_find(OCSP_ONEREQ, (st), (val)) +# define sk_OCSP_ONEREQ_find_ex(st, val) SKM_sk_find_ex(OCSP_ONEREQ, (st), (val)) +# define sk_OCSP_ONEREQ_delete(st, i) SKM_sk_delete(OCSP_ONEREQ, (st), (i)) +# define sk_OCSP_ONEREQ_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_ONEREQ, (st), (ptr)) +# define sk_OCSP_ONEREQ_insert(st, val, i) SKM_sk_insert(OCSP_ONEREQ, (st), (val), (i)) +# define sk_OCSP_ONEREQ_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_ONEREQ, (st), (cmp)) +# define sk_OCSP_ONEREQ_dup(st) SKM_sk_dup(OCSP_ONEREQ, st) +# define sk_OCSP_ONEREQ_pop_free(st, free_func) SKM_sk_pop_free(OCSP_ONEREQ, (st), (free_func)) +# define sk_OCSP_ONEREQ_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_ONEREQ, (st), (copy_func), (free_func)) +# define sk_OCSP_ONEREQ_shift(st) SKM_sk_shift(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_pop(st) SKM_sk_pop(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_sort(st) SKM_sk_sort(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_is_sorted(st) SKM_sk_is_sorted(OCSP_ONEREQ, (st)) +# define sk_OCSP_RESPID_new(cmp) SKM_sk_new(OCSP_RESPID, (cmp)) +# define sk_OCSP_RESPID_new_null() SKM_sk_new_null(OCSP_RESPID) +# define sk_OCSP_RESPID_free(st) SKM_sk_free(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_num(st) SKM_sk_num(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_value(st, i) SKM_sk_value(OCSP_RESPID, (st), (i)) +# define sk_OCSP_RESPID_set(st, i, val) SKM_sk_set(OCSP_RESPID, (st), (i), (val)) +# define sk_OCSP_RESPID_zero(st) SKM_sk_zero(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_push(st, val) SKM_sk_push(OCSP_RESPID, (st), (val)) +# define sk_OCSP_RESPID_unshift(st, val) SKM_sk_unshift(OCSP_RESPID, (st), (val)) +# define sk_OCSP_RESPID_find(st, val) SKM_sk_find(OCSP_RESPID, (st), (val)) +# define sk_OCSP_RESPID_find_ex(st, val) SKM_sk_find_ex(OCSP_RESPID, (st), (val)) +# define sk_OCSP_RESPID_delete(st, i) SKM_sk_delete(OCSP_RESPID, (st), (i)) +# define sk_OCSP_RESPID_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_RESPID, (st), (ptr)) +# define sk_OCSP_RESPID_insert(st, val, i) SKM_sk_insert(OCSP_RESPID, (st), (val), (i)) +# define sk_OCSP_RESPID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_RESPID, (st), (cmp)) +# define sk_OCSP_RESPID_dup(st) SKM_sk_dup(OCSP_RESPID, st) +# define sk_OCSP_RESPID_pop_free(st, free_func) SKM_sk_pop_free(OCSP_RESPID, (st), (free_func)) +# define sk_OCSP_RESPID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_RESPID, (st), (copy_func), (free_func)) +# define sk_OCSP_RESPID_shift(st) SKM_sk_shift(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_pop(st) SKM_sk_pop(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_sort(st) SKM_sk_sort(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_is_sorted(st) SKM_sk_is_sorted(OCSP_RESPID, (st)) +# define sk_OCSP_SINGLERESP_new(cmp) SKM_sk_new(OCSP_SINGLERESP, (cmp)) +# define sk_OCSP_SINGLERESP_new_null() SKM_sk_new_null(OCSP_SINGLERESP) +# define sk_OCSP_SINGLERESP_free(st) SKM_sk_free(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_num(st) SKM_sk_num(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_value(st, i) SKM_sk_value(OCSP_SINGLERESP, (st), (i)) +# define sk_OCSP_SINGLERESP_set(st, i, val) SKM_sk_set(OCSP_SINGLERESP, (st), (i), (val)) +# define sk_OCSP_SINGLERESP_zero(st) SKM_sk_zero(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_push(st, val) SKM_sk_push(OCSP_SINGLERESP, (st), (val)) +# define sk_OCSP_SINGLERESP_unshift(st, val) SKM_sk_unshift(OCSP_SINGLERESP, (st), (val)) +# define sk_OCSP_SINGLERESP_find(st, val) SKM_sk_find(OCSP_SINGLERESP, (st), (val)) +# define sk_OCSP_SINGLERESP_find_ex(st, val) SKM_sk_find_ex(OCSP_SINGLERESP, (st), (val)) +# define sk_OCSP_SINGLERESP_delete(st, i) SKM_sk_delete(OCSP_SINGLERESP, (st), (i)) +# define sk_OCSP_SINGLERESP_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_SINGLERESP, (st), (ptr)) +# define sk_OCSP_SINGLERESP_insert(st, val, i) SKM_sk_insert(OCSP_SINGLERESP, (st), (val), (i)) +# define sk_OCSP_SINGLERESP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_SINGLERESP, (st), (cmp)) +# define sk_OCSP_SINGLERESP_dup(st) SKM_sk_dup(OCSP_SINGLERESP, st) +# define sk_OCSP_SINGLERESP_pop_free(st, free_func) SKM_sk_pop_free(OCSP_SINGLERESP, (st), (free_func)) +# define sk_OCSP_SINGLERESP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_SINGLERESP, (st), (copy_func), (free_func)) +# define sk_OCSP_SINGLERESP_shift(st) SKM_sk_shift(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_pop(st) SKM_sk_pop(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_sort(st) SKM_sk_sort(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_is_sorted(st) SKM_sk_is_sorted(OCSP_SINGLERESP, (st)) +# define sk_PKCS12_SAFEBAG_new(cmp) SKM_sk_new(PKCS12_SAFEBAG, (cmp)) +# define sk_PKCS12_SAFEBAG_new_null() SKM_sk_new_null(PKCS12_SAFEBAG) +# define sk_PKCS12_SAFEBAG_free(st) SKM_sk_free(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_num(st) SKM_sk_num(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_value(st, i) SKM_sk_value(PKCS12_SAFEBAG, (st), (i)) +# define sk_PKCS12_SAFEBAG_set(st, i, val) SKM_sk_set(PKCS12_SAFEBAG, (st), (i), (val)) +# define sk_PKCS12_SAFEBAG_zero(st) SKM_sk_zero(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_push(st, val) SKM_sk_push(PKCS12_SAFEBAG, (st), (val)) +# define sk_PKCS12_SAFEBAG_unshift(st, val) SKM_sk_unshift(PKCS12_SAFEBAG, (st), (val)) +# define sk_PKCS12_SAFEBAG_find(st, val) SKM_sk_find(PKCS12_SAFEBAG, (st), (val)) +# define sk_PKCS12_SAFEBAG_find_ex(st, val) SKM_sk_find_ex(PKCS12_SAFEBAG, (st), (val)) +# define sk_PKCS12_SAFEBAG_delete(st, i) SKM_sk_delete(PKCS12_SAFEBAG, (st), (i)) +# define sk_PKCS12_SAFEBAG_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS12_SAFEBAG, (st), (ptr)) +# define sk_PKCS12_SAFEBAG_insert(st, val, i) SKM_sk_insert(PKCS12_SAFEBAG, (st), (val), (i)) +# define sk_PKCS12_SAFEBAG_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS12_SAFEBAG, (st), (cmp)) +# define sk_PKCS12_SAFEBAG_dup(st) SKM_sk_dup(PKCS12_SAFEBAG, st) +# define sk_PKCS12_SAFEBAG_pop_free(st, free_func) SKM_sk_pop_free(PKCS12_SAFEBAG, (st), (free_func)) +# define sk_PKCS12_SAFEBAG_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS12_SAFEBAG, (st), (copy_func), (free_func)) +# define sk_PKCS12_SAFEBAG_shift(st) SKM_sk_shift(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_pop(st) SKM_sk_pop(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_sort(st) SKM_sk_sort(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_is_sorted(st) SKM_sk_is_sorted(PKCS12_SAFEBAG, (st)) +# define sk_PKCS7_new(cmp) SKM_sk_new(PKCS7, (cmp)) +# define sk_PKCS7_new_null() SKM_sk_new_null(PKCS7) +# define sk_PKCS7_free(st) SKM_sk_free(PKCS7, (st)) +# define sk_PKCS7_num(st) SKM_sk_num(PKCS7, (st)) +# define sk_PKCS7_value(st, i) SKM_sk_value(PKCS7, (st), (i)) +# define sk_PKCS7_set(st, i, val) SKM_sk_set(PKCS7, (st), (i), (val)) +# define sk_PKCS7_zero(st) SKM_sk_zero(PKCS7, (st)) +# define sk_PKCS7_push(st, val) SKM_sk_push(PKCS7, (st), (val)) +# define sk_PKCS7_unshift(st, val) SKM_sk_unshift(PKCS7, (st), (val)) +# define sk_PKCS7_find(st, val) SKM_sk_find(PKCS7, (st), (val)) +# define sk_PKCS7_find_ex(st, val) SKM_sk_find_ex(PKCS7, (st), (val)) +# define sk_PKCS7_delete(st, i) SKM_sk_delete(PKCS7, (st), (i)) +# define sk_PKCS7_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7, (st), (ptr)) +# define sk_PKCS7_insert(st, val, i) SKM_sk_insert(PKCS7, (st), (val), (i)) +# define sk_PKCS7_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7, (st), (cmp)) +# define sk_PKCS7_dup(st) SKM_sk_dup(PKCS7, st) +# define sk_PKCS7_pop_free(st, free_func) SKM_sk_pop_free(PKCS7, (st), (free_func)) +# define sk_PKCS7_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7, (st), (copy_func), (free_func)) +# define sk_PKCS7_shift(st) SKM_sk_shift(PKCS7, (st)) +# define sk_PKCS7_pop(st) SKM_sk_pop(PKCS7, (st)) +# define sk_PKCS7_sort(st) SKM_sk_sort(PKCS7, (st)) +# define sk_PKCS7_is_sorted(st) SKM_sk_is_sorted(PKCS7, (st)) +# define sk_PKCS7_RECIP_INFO_new(cmp) SKM_sk_new(PKCS7_RECIP_INFO, (cmp)) +# define sk_PKCS7_RECIP_INFO_new_null() SKM_sk_new_null(PKCS7_RECIP_INFO) +# define sk_PKCS7_RECIP_INFO_free(st) SKM_sk_free(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_num(st) SKM_sk_num(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_value(st, i) SKM_sk_value(PKCS7_RECIP_INFO, (st), (i)) +# define sk_PKCS7_RECIP_INFO_set(st, i, val) SKM_sk_set(PKCS7_RECIP_INFO, (st), (i), (val)) +# define sk_PKCS7_RECIP_INFO_zero(st) SKM_sk_zero(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_push(st, val) SKM_sk_push(PKCS7_RECIP_INFO, (st), (val)) +# define sk_PKCS7_RECIP_INFO_unshift(st, val) SKM_sk_unshift(PKCS7_RECIP_INFO, (st), (val)) +# define sk_PKCS7_RECIP_INFO_find(st, val) SKM_sk_find(PKCS7_RECIP_INFO, (st), (val)) +# define sk_PKCS7_RECIP_INFO_find_ex(st, val) SKM_sk_find_ex(PKCS7_RECIP_INFO, (st), (val)) +# define sk_PKCS7_RECIP_INFO_delete(st, i) SKM_sk_delete(PKCS7_RECIP_INFO, (st), (i)) +# define sk_PKCS7_RECIP_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7_RECIP_INFO, (st), (ptr)) +# define sk_PKCS7_RECIP_INFO_insert(st, val, i) SKM_sk_insert(PKCS7_RECIP_INFO, (st), (val), (i)) +# define sk_PKCS7_RECIP_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7_RECIP_INFO, (st), (cmp)) +# define sk_PKCS7_RECIP_INFO_dup(st) SKM_sk_dup(PKCS7_RECIP_INFO, st) +# define sk_PKCS7_RECIP_INFO_pop_free(st, free_func) SKM_sk_pop_free(PKCS7_RECIP_INFO, (st), (free_func)) +# define sk_PKCS7_RECIP_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7_RECIP_INFO, (st), (copy_func), (free_func)) +# define sk_PKCS7_RECIP_INFO_shift(st) SKM_sk_shift(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_pop(st) SKM_sk_pop(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_sort(st) SKM_sk_sort(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_new(cmp) SKM_sk_new(PKCS7_SIGNER_INFO, (cmp)) +# define sk_PKCS7_SIGNER_INFO_new_null() SKM_sk_new_null(PKCS7_SIGNER_INFO) +# define sk_PKCS7_SIGNER_INFO_free(st) SKM_sk_free(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_num(st) SKM_sk_num(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_value(st, i) SKM_sk_value(PKCS7_SIGNER_INFO, (st), (i)) +# define sk_PKCS7_SIGNER_INFO_set(st, i, val) SKM_sk_set(PKCS7_SIGNER_INFO, (st), (i), (val)) +# define sk_PKCS7_SIGNER_INFO_zero(st) SKM_sk_zero(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_push(st, val) SKM_sk_push(PKCS7_SIGNER_INFO, (st), (val)) +# define sk_PKCS7_SIGNER_INFO_unshift(st, val) SKM_sk_unshift(PKCS7_SIGNER_INFO, (st), (val)) +# define sk_PKCS7_SIGNER_INFO_find(st, val) SKM_sk_find(PKCS7_SIGNER_INFO, (st), (val)) +# define sk_PKCS7_SIGNER_INFO_find_ex(st, val) SKM_sk_find_ex(PKCS7_SIGNER_INFO, (st), (val)) +# define sk_PKCS7_SIGNER_INFO_delete(st, i) SKM_sk_delete(PKCS7_SIGNER_INFO, (st), (i)) +# define sk_PKCS7_SIGNER_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7_SIGNER_INFO, (st), (ptr)) +# define sk_PKCS7_SIGNER_INFO_insert(st, val, i) SKM_sk_insert(PKCS7_SIGNER_INFO, (st), (val), (i)) +# define sk_PKCS7_SIGNER_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7_SIGNER_INFO, (st), (cmp)) +# define sk_PKCS7_SIGNER_INFO_dup(st) SKM_sk_dup(PKCS7_SIGNER_INFO, st) +# define sk_PKCS7_SIGNER_INFO_pop_free(st, free_func) SKM_sk_pop_free(PKCS7_SIGNER_INFO, (st), (free_func)) +# define sk_PKCS7_SIGNER_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7_SIGNER_INFO, (st), (copy_func), (free_func)) +# define sk_PKCS7_SIGNER_INFO_shift(st) SKM_sk_shift(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_pop(st) SKM_sk_pop(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_sort(st) SKM_sk_sort(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_SIGNER_INFO, (st)) +# define sk_POLICYINFO_new(cmp) SKM_sk_new(POLICYINFO, (cmp)) +# define sk_POLICYINFO_new_null() SKM_sk_new_null(POLICYINFO) +# define sk_POLICYINFO_free(st) SKM_sk_free(POLICYINFO, (st)) +# define sk_POLICYINFO_num(st) SKM_sk_num(POLICYINFO, (st)) +# define sk_POLICYINFO_value(st, i) SKM_sk_value(POLICYINFO, (st), (i)) +# define sk_POLICYINFO_set(st, i, val) SKM_sk_set(POLICYINFO, (st), (i), (val)) +# define sk_POLICYINFO_zero(st) SKM_sk_zero(POLICYINFO, (st)) +# define sk_POLICYINFO_push(st, val) SKM_sk_push(POLICYINFO, (st), (val)) +# define sk_POLICYINFO_unshift(st, val) SKM_sk_unshift(POLICYINFO, (st), (val)) +# define sk_POLICYINFO_find(st, val) SKM_sk_find(POLICYINFO, (st), (val)) +# define sk_POLICYINFO_find_ex(st, val) SKM_sk_find_ex(POLICYINFO, (st), (val)) +# define sk_POLICYINFO_delete(st, i) SKM_sk_delete(POLICYINFO, (st), (i)) +# define sk_POLICYINFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICYINFO, (st), (ptr)) +# define sk_POLICYINFO_insert(st, val, i) SKM_sk_insert(POLICYINFO, (st), (val), (i)) +# define sk_POLICYINFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICYINFO, (st), (cmp)) +# define sk_POLICYINFO_dup(st) SKM_sk_dup(POLICYINFO, st) +# define sk_POLICYINFO_pop_free(st, free_func) SKM_sk_pop_free(POLICYINFO, (st), (free_func)) +# define sk_POLICYINFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICYINFO, (st), (copy_func), (free_func)) +# define sk_POLICYINFO_shift(st) SKM_sk_shift(POLICYINFO, (st)) +# define sk_POLICYINFO_pop(st) SKM_sk_pop(POLICYINFO, (st)) +# define sk_POLICYINFO_sort(st) SKM_sk_sort(POLICYINFO, (st)) +# define sk_POLICYINFO_is_sorted(st) SKM_sk_is_sorted(POLICYINFO, (st)) +# define sk_POLICYQUALINFO_new(cmp) SKM_sk_new(POLICYQUALINFO, (cmp)) +# define sk_POLICYQUALINFO_new_null() SKM_sk_new_null(POLICYQUALINFO) +# define sk_POLICYQUALINFO_free(st) SKM_sk_free(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_num(st) SKM_sk_num(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_value(st, i) SKM_sk_value(POLICYQUALINFO, (st), (i)) +# define sk_POLICYQUALINFO_set(st, i, val) SKM_sk_set(POLICYQUALINFO, (st), (i), (val)) +# define sk_POLICYQUALINFO_zero(st) SKM_sk_zero(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_push(st, val) SKM_sk_push(POLICYQUALINFO, (st), (val)) +# define sk_POLICYQUALINFO_unshift(st, val) SKM_sk_unshift(POLICYQUALINFO, (st), (val)) +# define sk_POLICYQUALINFO_find(st, val) SKM_sk_find(POLICYQUALINFO, (st), (val)) +# define sk_POLICYQUALINFO_find_ex(st, val) SKM_sk_find_ex(POLICYQUALINFO, (st), (val)) +# define sk_POLICYQUALINFO_delete(st, i) SKM_sk_delete(POLICYQUALINFO, (st), (i)) +# define sk_POLICYQUALINFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICYQUALINFO, (st), (ptr)) +# define sk_POLICYQUALINFO_insert(st, val, i) SKM_sk_insert(POLICYQUALINFO, (st), (val), (i)) +# define sk_POLICYQUALINFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICYQUALINFO, (st), (cmp)) +# define sk_POLICYQUALINFO_dup(st) SKM_sk_dup(POLICYQUALINFO, st) +# define sk_POLICYQUALINFO_pop_free(st, free_func) SKM_sk_pop_free(POLICYQUALINFO, (st), (free_func)) +# define sk_POLICYQUALINFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICYQUALINFO, (st), (copy_func), (free_func)) +# define sk_POLICYQUALINFO_shift(st) SKM_sk_shift(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_pop(st) SKM_sk_pop(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_sort(st) SKM_sk_sort(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_is_sorted(st) SKM_sk_is_sorted(POLICYQUALINFO, (st)) +# define sk_POLICY_MAPPING_new(cmp) SKM_sk_new(POLICY_MAPPING, (cmp)) +# define sk_POLICY_MAPPING_new_null() SKM_sk_new_null(POLICY_MAPPING) +# define sk_POLICY_MAPPING_free(st) SKM_sk_free(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_num(st) SKM_sk_num(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_value(st, i) SKM_sk_value(POLICY_MAPPING, (st), (i)) +# define sk_POLICY_MAPPING_set(st, i, val) SKM_sk_set(POLICY_MAPPING, (st), (i), (val)) +# define sk_POLICY_MAPPING_zero(st) SKM_sk_zero(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_push(st, val) SKM_sk_push(POLICY_MAPPING, (st), (val)) +# define sk_POLICY_MAPPING_unshift(st, val) SKM_sk_unshift(POLICY_MAPPING, (st), (val)) +# define sk_POLICY_MAPPING_find(st, val) SKM_sk_find(POLICY_MAPPING, (st), (val)) +# define sk_POLICY_MAPPING_find_ex(st, val) SKM_sk_find_ex(POLICY_MAPPING, (st), (val)) +# define sk_POLICY_MAPPING_delete(st, i) SKM_sk_delete(POLICY_MAPPING, (st), (i)) +# define sk_POLICY_MAPPING_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICY_MAPPING, (st), (ptr)) +# define sk_POLICY_MAPPING_insert(st, val, i) SKM_sk_insert(POLICY_MAPPING, (st), (val), (i)) +# define sk_POLICY_MAPPING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICY_MAPPING, (st), (cmp)) +# define sk_POLICY_MAPPING_dup(st) SKM_sk_dup(POLICY_MAPPING, st) +# define sk_POLICY_MAPPING_pop_free(st, free_func) SKM_sk_pop_free(POLICY_MAPPING, (st), (free_func)) +# define sk_POLICY_MAPPING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICY_MAPPING, (st), (copy_func), (free_func)) +# define sk_POLICY_MAPPING_shift(st) SKM_sk_shift(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_pop(st) SKM_sk_pop(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_sort(st) SKM_sk_sort(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_is_sorted(st) SKM_sk_is_sorted(POLICY_MAPPING, (st)) +# define sk_SCT_new(cmp) SKM_sk_new(SCT, (cmp)) +# define sk_SCT_new_null() SKM_sk_new_null(SCT) +# define sk_SCT_free(st) SKM_sk_free(SCT, (st)) +# define sk_SCT_num(st) SKM_sk_num(SCT, (st)) +# define sk_SCT_value(st, i) SKM_sk_value(SCT, (st), (i)) +# define sk_SCT_set(st, i, val) SKM_sk_set(SCT, (st), (i), (val)) +# define sk_SCT_zero(st) SKM_sk_zero(SCT, (st)) +# define sk_SCT_push(st, val) SKM_sk_push(SCT, (st), (val)) +# define sk_SCT_unshift(st, val) SKM_sk_unshift(SCT, (st), (val)) +# define sk_SCT_find(st, val) SKM_sk_find(SCT, (st), (val)) +# define sk_SCT_find_ex(st, val) SKM_sk_find_ex(SCT, (st), (val)) +# define sk_SCT_delete(st, i) SKM_sk_delete(SCT, (st), (i)) +# define sk_SCT_delete_ptr(st, ptr) SKM_sk_delete_ptr(SCT, (st), (ptr)) +# define sk_SCT_insert(st, val, i) SKM_sk_insert(SCT, (st), (val), (i)) +# define sk_SCT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SCT, (st), (cmp)) +# define sk_SCT_dup(st) SKM_sk_dup(SCT, st) +# define sk_SCT_pop_free(st, free_func) SKM_sk_pop_free(SCT, (st), (free_func)) +# define sk_SCT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SCT, (st), (copy_func), (free_func)) +# define sk_SCT_shift(st) SKM_sk_shift(SCT, (st)) +# define sk_SCT_pop(st) SKM_sk_pop(SCT, (st)) +# define sk_SCT_sort(st) SKM_sk_sort(SCT, (st)) +# define sk_SCT_is_sorted(st) SKM_sk_is_sorted(SCT, (st)) +# define sk_SRP_gN_new(cmp) SKM_sk_new(SRP_gN, (cmp)) +# define sk_SRP_gN_new_null() SKM_sk_new_null(SRP_gN) +# define sk_SRP_gN_free(st) SKM_sk_free(SRP_gN, (st)) +# define sk_SRP_gN_num(st) SKM_sk_num(SRP_gN, (st)) +# define sk_SRP_gN_value(st, i) SKM_sk_value(SRP_gN, (st), (i)) +# define sk_SRP_gN_set(st, i, val) SKM_sk_set(SRP_gN, (st), (i), (val)) +# define sk_SRP_gN_zero(st) SKM_sk_zero(SRP_gN, (st)) +# define sk_SRP_gN_push(st, val) SKM_sk_push(SRP_gN, (st), (val)) +# define sk_SRP_gN_unshift(st, val) SKM_sk_unshift(SRP_gN, (st), (val)) +# define sk_SRP_gN_find(st, val) SKM_sk_find(SRP_gN, (st), (val)) +# define sk_SRP_gN_find_ex(st, val) SKM_sk_find_ex(SRP_gN, (st), (val)) +# define sk_SRP_gN_delete(st, i) SKM_sk_delete(SRP_gN, (st), (i)) +# define sk_SRP_gN_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_gN, (st), (ptr)) +# define sk_SRP_gN_insert(st, val, i) SKM_sk_insert(SRP_gN, (st), (val), (i)) +# define sk_SRP_gN_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_gN, (st), (cmp)) +# define sk_SRP_gN_dup(st) SKM_sk_dup(SRP_gN, st) +# define sk_SRP_gN_pop_free(st, free_func) SKM_sk_pop_free(SRP_gN, (st), (free_func)) +# define sk_SRP_gN_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_gN, (st), (copy_func), (free_func)) +# define sk_SRP_gN_shift(st) SKM_sk_shift(SRP_gN, (st)) +# define sk_SRP_gN_pop(st) SKM_sk_pop(SRP_gN, (st)) +# define sk_SRP_gN_sort(st) SKM_sk_sort(SRP_gN, (st)) +# define sk_SRP_gN_is_sorted(st) SKM_sk_is_sorted(SRP_gN, (st)) +# define sk_SRP_gN_cache_new(cmp) SKM_sk_new(SRP_gN_cache, (cmp)) +# define sk_SRP_gN_cache_new_null() SKM_sk_new_null(SRP_gN_cache) +# define sk_SRP_gN_cache_free(st) SKM_sk_free(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_num(st) SKM_sk_num(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_value(st, i) SKM_sk_value(SRP_gN_cache, (st), (i)) +# define sk_SRP_gN_cache_set(st, i, val) SKM_sk_set(SRP_gN_cache, (st), (i), (val)) +# define sk_SRP_gN_cache_zero(st) SKM_sk_zero(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_push(st, val) SKM_sk_push(SRP_gN_cache, (st), (val)) +# define sk_SRP_gN_cache_unshift(st, val) SKM_sk_unshift(SRP_gN_cache, (st), (val)) +# define sk_SRP_gN_cache_find(st, val) SKM_sk_find(SRP_gN_cache, (st), (val)) +# define sk_SRP_gN_cache_find_ex(st, val) SKM_sk_find_ex(SRP_gN_cache, (st), (val)) +# define sk_SRP_gN_cache_delete(st, i) SKM_sk_delete(SRP_gN_cache, (st), (i)) +# define sk_SRP_gN_cache_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_gN_cache, (st), (ptr)) +# define sk_SRP_gN_cache_insert(st, val, i) SKM_sk_insert(SRP_gN_cache, (st), (val), (i)) +# define sk_SRP_gN_cache_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_gN_cache, (st), (cmp)) +# define sk_SRP_gN_cache_dup(st) SKM_sk_dup(SRP_gN_cache, st) +# define sk_SRP_gN_cache_pop_free(st, free_func) SKM_sk_pop_free(SRP_gN_cache, (st), (free_func)) +# define sk_SRP_gN_cache_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_gN_cache, (st), (copy_func), (free_func)) +# define sk_SRP_gN_cache_shift(st) SKM_sk_shift(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_pop(st) SKM_sk_pop(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_sort(st) SKM_sk_sort(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_is_sorted(st) SKM_sk_is_sorted(SRP_gN_cache, (st)) +# define sk_SRP_user_pwd_new(cmp) SKM_sk_new(SRP_user_pwd, (cmp)) +# define sk_SRP_user_pwd_new_null() SKM_sk_new_null(SRP_user_pwd) +# define sk_SRP_user_pwd_free(st) SKM_sk_free(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_num(st) SKM_sk_num(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_value(st, i) SKM_sk_value(SRP_user_pwd, (st), (i)) +# define sk_SRP_user_pwd_set(st, i, val) SKM_sk_set(SRP_user_pwd, (st), (i), (val)) +# define sk_SRP_user_pwd_zero(st) SKM_sk_zero(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_push(st, val) SKM_sk_push(SRP_user_pwd, (st), (val)) +# define sk_SRP_user_pwd_unshift(st, val) SKM_sk_unshift(SRP_user_pwd, (st), (val)) +# define sk_SRP_user_pwd_find(st, val) SKM_sk_find(SRP_user_pwd, (st), (val)) +# define sk_SRP_user_pwd_find_ex(st, val) SKM_sk_find_ex(SRP_user_pwd, (st), (val)) +# define sk_SRP_user_pwd_delete(st, i) SKM_sk_delete(SRP_user_pwd, (st), (i)) +# define sk_SRP_user_pwd_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_user_pwd, (st), (ptr)) +# define sk_SRP_user_pwd_insert(st, val, i) SKM_sk_insert(SRP_user_pwd, (st), (val), (i)) +# define sk_SRP_user_pwd_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_user_pwd, (st), (cmp)) +# define sk_SRP_user_pwd_dup(st) SKM_sk_dup(SRP_user_pwd, st) +# define sk_SRP_user_pwd_pop_free(st, free_func) SKM_sk_pop_free(SRP_user_pwd, (st), (free_func)) +# define sk_SRP_user_pwd_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_user_pwd, (st), (copy_func), (free_func)) +# define sk_SRP_user_pwd_shift(st) SKM_sk_shift(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_pop(st) SKM_sk_pop(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_sort(st) SKM_sk_sort(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_is_sorted(st) SKM_sk_is_sorted(SRP_user_pwd, (st)) +# define sk_SRTP_PROTECTION_PROFILE_new(cmp) SKM_sk_new(SRTP_PROTECTION_PROFILE, (cmp)) +# define sk_SRTP_PROTECTION_PROFILE_new_null() SKM_sk_new_null(SRTP_PROTECTION_PROFILE) +# define sk_SRTP_PROTECTION_PROFILE_free(st) SKM_sk_free(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_num(st) SKM_sk_num(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_value(st, i) SKM_sk_value(SRTP_PROTECTION_PROFILE, (st), (i)) +# define sk_SRTP_PROTECTION_PROFILE_set(st, i, val) SKM_sk_set(SRTP_PROTECTION_PROFILE, (st), (i), (val)) +# define sk_SRTP_PROTECTION_PROFILE_zero(st) SKM_sk_zero(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_push(st, val) SKM_sk_push(SRTP_PROTECTION_PROFILE, (st), (val)) +# define sk_SRTP_PROTECTION_PROFILE_unshift(st, val) SKM_sk_unshift(SRTP_PROTECTION_PROFILE, (st), (val)) +# define sk_SRTP_PROTECTION_PROFILE_find(st, val) SKM_sk_find(SRTP_PROTECTION_PROFILE, (st), (val)) +# define sk_SRTP_PROTECTION_PROFILE_find_ex(st, val) SKM_sk_find_ex(SRTP_PROTECTION_PROFILE, (st), (val)) +# define sk_SRTP_PROTECTION_PROFILE_delete(st, i) SKM_sk_delete(SRTP_PROTECTION_PROFILE, (st), (i)) +# define sk_SRTP_PROTECTION_PROFILE_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRTP_PROTECTION_PROFILE, (st), (ptr)) +# define sk_SRTP_PROTECTION_PROFILE_insert(st, val, i) SKM_sk_insert(SRTP_PROTECTION_PROFILE, (st), (val), (i)) +# define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRTP_PROTECTION_PROFILE, (st), (cmp)) +# define sk_SRTP_PROTECTION_PROFILE_dup(st) SKM_sk_dup(SRTP_PROTECTION_PROFILE, st) +# define sk_SRTP_PROTECTION_PROFILE_pop_free(st, free_func) SKM_sk_pop_free(SRTP_PROTECTION_PROFILE, (st), (free_func)) +# define sk_SRTP_PROTECTION_PROFILE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRTP_PROTECTION_PROFILE, (st), (copy_func), (free_func)) +# define sk_SRTP_PROTECTION_PROFILE_shift(st) SKM_sk_shift(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_pop(st) SKM_sk_pop(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_sort(st) SKM_sk_sort(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_is_sorted(st) SKM_sk_is_sorted(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SSL_CIPHER_new(cmp) SKM_sk_new(SSL_CIPHER, (cmp)) +# define sk_SSL_CIPHER_new_null() SKM_sk_new_null(SSL_CIPHER) +# define sk_SSL_CIPHER_free(st) SKM_sk_free(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_num(st) SKM_sk_num(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_value(st, i) SKM_sk_value(SSL_CIPHER, (st), (i)) +# define sk_SSL_CIPHER_set(st, i, val) SKM_sk_set(SSL_CIPHER, (st), (i), (val)) +# define sk_SSL_CIPHER_zero(st) SKM_sk_zero(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_push(st, val) SKM_sk_push(SSL_CIPHER, (st), (val)) +# define sk_SSL_CIPHER_unshift(st, val) SKM_sk_unshift(SSL_CIPHER, (st), (val)) +# define sk_SSL_CIPHER_find(st, val) SKM_sk_find(SSL_CIPHER, (st), (val)) +# define sk_SSL_CIPHER_find_ex(st, val) SKM_sk_find_ex(SSL_CIPHER, (st), (val)) +# define sk_SSL_CIPHER_delete(st, i) SKM_sk_delete(SSL_CIPHER, (st), (i)) +# define sk_SSL_CIPHER_delete_ptr(st, ptr) SKM_sk_delete_ptr(SSL_CIPHER, (st), (ptr)) +# define sk_SSL_CIPHER_insert(st, val, i) SKM_sk_insert(SSL_CIPHER, (st), (val), (i)) +# define sk_SSL_CIPHER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SSL_CIPHER, (st), (cmp)) +# define sk_SSL_CIPHER_dup(st) SKM_sk_dup(SSL_CIPHER, st) +# define sk_SSL_CIPHER_pop_free(st, free_func) SKM_sk_pop_free(SSL_CIPHER, (st), (free_func)) +# define sk_SSL_CIPHER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SSL_CIPHER, (st), (copy_func), (free_func)) +# define sk_SSL_CIPHER_shift(st) SKM_sk_shift(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_pop(st) SKM_sk_pop(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_sort(st) SKM_sk_sort(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_is_sorted(st) SKM_sk_is_sorted(SSL_CIPHER, (st)) +# define sk_SSL_COMP_new(cmp) SKM_sk_new(SSL_COMP, (cmp)) +# define sk_SSL_COMP_new_null() SKM_sk_new_null(SSL_COMP) +# define sk_SSL_COMP_free(st) SKM_sk_free(SSL_COMP, (st)) +# define sk_SSL_COMP_num(st) SKM_sk_num(SSL_COMP, (st)) +# define sk_SSL_COMP_value(st, i) SKM_sk_value(SSL_COMP, (st), (i)) +# define sk_SSL_COMP_set(st, i, val) SKM_sk_set(SSL_COMP, (st), (i), (val)) +# define sk_SSL_COMP_zero(st) SKM_sk_zero(SSL_COMP, (st)) +# define sk_SSL_COMP_push(st, val) SKM_sk_push(SSL_COMP, (st), (val)) +# define sk_SSL_COMP_unshift(st, val) SKM_sk_unshift(SSL_COMP, (st), (val)) +# define sk_SSL_COMP_find(st, val) SKM_sk_find(SSL_COMP, (st), (val)) +# define sk_SSL_COMP_find_ex(st, val) SKM_sk_find_ex(SSL_COMP, (st), (val)) +# define sk_SSL_COMP_delete(st, i) SKM_sk_delete(SSL_COMP, (st), (i)) +# define sk_SSL_COMP_delete_ptr(st, ptr) SKM_sk_delete_ptr(SSL_COMP, (st), (ptr)) +# define sk_SSL_COMP_insert(st, val, i) SKM_sk_insert(SSL_COMP, (st), (val), (i)) +# define sk_SSL_COMP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SSL_COMP, (st), (cmp)) +# define sk_SSL_COMP_dup(st) SKM_sk_dup(SSL_COMP, st) +# define sk_SSL_COMP_pop_free(st, free_func) SKM_sk_pop_free(SSL_COMP, (st), (free_func)) +# define sk_SSL_COMP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SSL_COMP, (st), (copy_func), (free_func)) +# define sk_SSL_COMP_shift(st) SKM_sk_shift(SSL_COMP, (st)) +# define sk_SSL_COMP_pop(st) SKM_sk_pop(SSL_COMP, (st)) +# define sk_SSL_COMP_sort(st) SKM_sk_sort(SSL_COMP, (st)) +# define sk_SSL_COMP_is_sorted(st) SKM_sk_is_sorted(SSL_COMP, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_new(cmp) SKM_sk_new(STACK_OF_X509_NAME_ENTRY, (cmp)) +# define sk_STACK_OF_X509_NAME_ENTRY_new_null() SKM_sk_new_null(STACK_OF_X509_NAME_ENTRY) +# define sk_STACK_OF_X509_NAME_ENTRY_free(st) SKM_sk_free(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_num(st) SKM_sk_num(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_value(st, i) SKM_sk_value(STACK_OF_X509_NAME_ENTRY, (st), (i)) +# define sk_STACK_OF_X509_NAME_ENTRY_set(st, i, val) SKM_sk_set(STACK_OF_X509_NAME_ENTRY, (st), (i), (val)) +# define sk_STACK_OF_X509_NAME_ENTRY_zero(st) SKM_sk_zero(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_push(st, val) SKM_sk_push(STACK_OF_X509_NAME_ENTRY, (st), (val)) +# define sk_STACK_OF_X509_NAME_ENTRY_unshift(st, val) SKM_sk_unshift(STACK_OF_X509_NAME_ENTRY, (st), (val)) +# define sk_STACK_OF_X509_NAME_ENTRY_find(st, val) SKM_sk_find(STACK_OF_X509_NAME_ENTRY, (st), (val)) +# define sk_STACK_OF_X509_NAME_ENTRY_find_ex(st, val) SKM_sk_find_ex(STACK_OF_X509_NAME_ENTRY, (st), (val)) +# define sk_STACK_OF_X509_NAME_ENTRY_delete(st, i) SKM_sk_delete(STACK_OF_X509_NAME_ENTRY, (st), (i)) +# define sk_STACK_OF_X509_NAME_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(STACK_OF_X509_NAME_ENTRY, (st), (ptr)) +# define sk_STACK_OF_X509_NAME_ENTRY_insert(st, val, i) SKM_sk_insert(STACK_OF_X509_NAME_ENTRY, (st), (val), (i)) +# define sk_STACK_OF_X509_NAME_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STACK_OF_X509_NAME_ENTRY, (st), (cmp)) +# define sk_STACK_OF_X509_NAME_ENTRY_dup(st) SKM_sk_dup(STACK_OF_X509_NAME_ENTRY, st) +# define sk_STACK_OF_X509_NAME_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(STACK_OF_X509_NAME_ENTRY, (st), (free_func)) +# define sk_STACK_OF_X509_NAME_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STACK_OF_X509_NAME_ENTRY, (st), (copy_func), (free_func)) +# define sk_STACK_OF_X509_NAME_ENTRY_shift(st) SKM_sk_shift(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_pop(st) SKM_sk_pop(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_sort(st) SKM_sk_sort(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_is_sorted(st) SKM_sk_is_sorted(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STORE_ATTR_INFO_new(cmp) SKM_sk_new(STORE_ATTR_INFO, (cmp)) +# define sk_STORE_ATTR_INFO_new_null() SKM_sk_new_null(STORE_ATTR_INFO) +# define sk_STORE_ATTR_INFO_free(st) SKM_sk_free(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_num(st) SKM_sk_num(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_value(st, i) SKM_sk_value(STORE_ATTR_INFO, (st), (i)) +# define sk_STORE_ATTR_INFO_set(st, i, val) SKM_sk_set(STORE_ATTR_INFO, (st), (i), (val)) +# define sk_STORE_ATTR_INFO_zero(st) SKM_sk_zero(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_push(st, val) SKM_sk_push(STORE_ATTR_INFO, (st), (val)) +# define sk_STORE_ATTR_INFO_unshift(st, val) SKM_sk_unshift(STORE_ATTR_INFO, (st), (val)) +# define sk_STORE_ATTR_INFO_find(st, val) SKM_sk_find(STORE_ATTR_INFO, (st), (val)) +# define sk_STORE_ATTR_INFO_find_ex(st, val) SKM_sk_find_ex(STORE_ATTR_INFO, (st), (val)) +# define sk_STORE_ATTR_INFO_delete(st, i) SKM_sk_delete(STORE_ATTR_INFO, (st), (i)) +# define sk_STORE_ATTR_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(STORE_ATTR_INFO, (st), (ptr)) +# define sk_STORE_ATTR_INFO_insert(st, val, i) SKM_sk_insert(STORE_ATTR_INFO, (st), (val), (i)) +# define sk_STORE_ATTR_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STORE_ATTR_INFO, (st), (cmp)) +# define sk_STORE_ATTR_INFO_dup(st) SKM_sk_dup(STORE_ATTR_INFO, st) +# define sk_STORE_ATTR_INFO_pop_free(st, free_func) SKM_sk_pop_free(STORE_ATTR_INFO, (st), (free_func)) +# define sk_STORE_ATTR_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STORE_ATTR_INFO, (st), (copy_func), (free_func)) +# define sk_STORE_ATTR_INFO_shift(st) SKM_sk_shift(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_pop(st) SKM_sk_pop(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_sort(st) SKM_sk_sort(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_is_sorted(st) SKM_sk_is_sorted(STORE_ATTR_INFO, (st)) +# define sk_STORE_OBJECT_new(cmp) SKM_sk_new(STORE_OBJECT, (cmp)) +# define sk_STORE_OBJECT_new_null() SKM_sk_new_null(STORE_OBJECT) +# define sk_STORE_OBJECT_free(st) SKM_sk_free(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_num(st) SKM_sk_num(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_value(st, i) SKM_sk_value(STORE_OBJECT, (st), (i)) +# define sk_STORE_OBJECT_set(st, i, val) SKM_sk_set(STORE_OBJECT, (st), (i), (val)) +# define sk_STORE_OBJECT_zero(st) SKM_sk_zero(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_push(st, val) SKM_sk_push(STORE_OBJECT, (st), (val)) +# define sk_STORE_OBJECT_unshift(st, val) SKM_sk_unshift(STORE_OBJECT, (st), (val)) +# define sk_STORE_OBJECT_find(st, val) SKM_sk_find(STORE_OBJECT, (st), (val)) +# define sk_STORE_OBJECT_find_ex(st, val) SKM_sk_find_ex(STORE_OBJECT, (st), (val)) +# define sk_STORE_OBJECT_delete(st, i) SKM_sk_delete(STORE_OBJECT, (st), (i)) +# define sk_STORE_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(STORE_OBJECT, (st), (ptr)) +# define sk_STORE_OBJECT_insert(st, val, i) SKM_sk_insert(STORE_OBJECT, (st), (val), (i)) +# define sk_STORE_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STORE_OBJECT, (st), (cmp)) +# define sk_STORE_OBJECT_dup(st) SKM_sk_dup(STORE_OBJECT, st) +# define sk_STORE_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(STORE_OBJECT, (st), (free_func)) +# define sk_STORE_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STORE_OBJECT, (st), (copy_func), (free_func)) +# define sk_STORE_OBJECT_shift(st) SKM_sk_shift(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_pop(st) SKM_sk_pop(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_sort(st) SKM_sk_sort(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_is_sorted(st) SKM_sk_is_sorted(STORE_OBJECT, (st)) +# define sk_SXNETID_new(cmp) SKM_sk_new(SXNETID, (cmp)) +# define sk_SXNETID_new_null() SKM_sk_new_null(SXNETID) +# define sk_SXNETID_free(st) SKM_sk_free(SXNETID, (st)) +# define sk_SXNETID_num(st) SKM_sk_num(SXNETID, (st)) +# define sk_SXNETID_value(st, i) SKM_sk_value(SXNETID, (st), (i)) +# define sk_SXNETID_set(st, i, val) SKM_sk_set(SXNETID, (st), (i), (val)) +# define sk_SXNETID_zero(st) SKM_sk_zero(SXNETID, (st)) +# define sk_SXNETID_push(st, val) SKM_sk_push(SXNETID, (st), (val)) +# define sk_SXNETID_unshift(st, val) SKM_sk_unshift(SXNETID, (st), (val)) +# define sk_SXNETID_find(st, val) SKM_sk_find(SXNETID, (st), (val)) +# define sk_SXNETID_find_ex(st, val) SKM_sk_find_ex(SXNETID, (st), (val)) +# define sk_SXNETID_delete(st, i) SKM_sk_delete(SXNETID, (st), (i)) +# define sk_SXNETID_delete_ptr(st, ptr) SKM_sk_delete_ptr(SXNETID, (st), (ptr)) +# define sk_SXNETID_insert(st, val, i) SKM_sk_insert(SXNETID, (st), (val), (i)) +# define sk_SXNETID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SXNETID, (st), (cmp)) +# define sk_SXNETID_dup(st) SKM_sk_dup(SXNETID, st) +# define sk_SXNETID_pop_free(st, free_func) SKM_sk_pop_free(SXNETID, (st), (free_func)) +# define sk_SXNETID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SXNETID, (st), (copy_func), (free_func)) +# define sk_SXNETID_shift(st) SKM_sk_shift(SXNETID, (st)) +# define sk_SXNETID_pop(st) SKM_sk_pop(SXNETID, (st)) +# define sk_SXNETID_sort(st) SKM_sk_sort(SXNETID, (st)) +# define sk_SXNETID_is_sorted(st) SKM_sk_is_sorted(SXNETID, (st)) +# define sk_UI_STRING_new(cmp) SKM_sk_new(UI_STRING, (cmp)) +# define sk_UI_STRING_new_null() SKM_sk_new_null(UI_STRING) +# define sk_UI_STRING_free(st) SKM_sk_free(UI_STRING, (st)) +# define sk_UI_STRING_num(st) SKM_sk_num(UI_STRING, (st)) +# define sk_UI_STRING_value(st, i) SKM_sk_value(UI_STRING, (st), (i)) +# define sk_UI_STRING_set(st, i, val) SKM_sk_set(UI_STRING, (st), (i), (val)) +# define sk_UI_STRING_zero(st) SKM_sk_zero(UI_STRING, (st)) +# define sk_UI_STRING_push(st, val) SKM_sk_push(UI_STRING, (st), (val)) +# define sk_UI_STRING_unshift(st, val) SKM_sk_unshift(UI_STRING, (st), (val)) +# define sk_UI_STRING_find(st, val) SKM_sk_find(UI_STRING, (st), (val)) +# define sk_UI_STRING_find_ex(st, val) SKM_sk_find_ex(UI_STRING, (st), (val)) +# define sk_UI_STRING_delete(st, i) SKM_sk_delete(UI_STRING, (st), (i)) +# define sk_UI_STRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(UI_STRING, (st), (ptr)) +# define sk_UI_STRING_insert(st, val, i) SKM_sk_insert(UI_STRING, (st), (val), (i)) +# define sk_UI_STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(UI_STRING, (st), (cmp)) +# define sk_UI_STRING_dup(st) SKM_sk_dup(UI_STRING, st) +# define sk_UI_STRING_pop_free(st, free_func) SKM_sk_pop_free(UI_STRING, (st), (free_func)) +# define sk_UI_STRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(UI_STRING, (st), (copy_func), (free_func)) +# define sk_UI_STRING_shift(st) SKM_sk_shift(UI_STRING, (st)) +# define sk_UI_STRING_pop(st) SKM_sk_pop(UI_STRING, (st)) +# define sk_UI_STRING_sort(st) SKM_sk_sort(UI_STRING, (st)) +# define sk_UI_STRING_is_sorted(st) SKM_sk_is_sorted(UI_STRING, (st)) +# define sk_X509_new(cmp) SKM_sk_new(X509, (cmp)) +# define sk_X509_new_null() SKM_sk_new_null(X509) +# define sk_X509_free(st) SKM_sk_free(X509, (st)) +# define sk_X509_num(st) SKM_sk_num(X509, (st)) +# define sk_X509_value(st, i) SKM_sk_value(X509, (st), (i)) +# define sk_X509_set(st, i, val) SKM_sk_set(X509, (st), (i), (val)) +# define sk_X509_zero(st) SKM_sk_zero(X509, (st)) +# define sk_X509_push(st, val) SKM_sk_push(X509, (st), (val)) +# define sk_X509_unshift(st, val) SKM_sk_unshift(X509, (st), (val)) +# define sk_X509_find(st, val) SKM_sk_find(X509, (st), (val)) +# define sk_X509_find_ex(st, val) SKM_sk_find_ex(X509, (st), (val)) +# define sk_X509_delete(st, i) SKM_sk_delete(X509, (st), (i)) +# define sk_X509_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509, (st), (ptr)) +# define sk_X509_insert(st, val, i) SKM_sk_insert(X509, (st), (val), (i)) +# define sk_X509_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509, (st), (cmp)) +# define sk_X509_dup(st) SKM_sk_dup(X509, st) +# define sk_X509_pop_free(st, free_func) SKM_sk_pop_free(X509, (st), (free_func)) +# define sk_X509_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509, (st), (copy_func), (free_func)) +# define sk_X509_shift(st) SKM_sk_shift(X509, (st)) +# define sk_X509_pop(st) SKM_sk_pop(X509, (st)) +# define sk_X509_sort(st) SKM_sk_sort(X509, (st)) +# define sk_X509_is_sorted(st) SKM_sk_is_sorted(X509, (st)) +# define sk_X509V3_EXT_METHOD_new(cmp) SKM_sk_new(X509V3_EXT_METHOD, (cmp)) +# define sk_X509V3_EXT_METHOD_new_null() SKM_sk_new_null(X509V3_EXT_METHOD) +# define sk_X509V3_EXT_METHOD_free(st) SKM_sk_free(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_num(st) SKM_sk_num(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_value(st, i) SKM_sk_value(X509V3_EXT_METHOD, (st), (i)) +# define sk_X509V3_EXT_METHOD_set(st, i, val) SKM_sk_set(X509V3_EXT_METHOD, (st), (i), (val)) +# define sk_X509V3_EXT_METHOD_zero(st) SKM_sk_zero(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_push(st, val) SKM_sk_push(X509V3_EXT_METHOD, (st), (val)) +# define sk_X509V3_EXT_METHOD_unshift(st, val) SKM_sk_unshift(X509V3_EXT_METHOD, (st), (val)) +# define sk_X509V3_EXT_METHOD_find(st, val) SKM_sk_find(X509V3_EXT_METHOD, (st), (val)) +# define sk_X509V3_EXT_METHOD_find_ex(st, val) SKM_sk_find_ex(X509V3_EXT_METHOD, (st), (val)) +# define sk_X509V3_EXT_METHOD_delete(st, i) SKM_sk_delete(X509V3_EXT_METHOD, (st), (i)) +# define sk_X509V3_EXT_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509V3_EXT_METHOD, (st), (ptr)) +# define sk_X509V3_EXT_METHOD_insert(st, val, i) SKM_sk_insert(X509V3_EXT_METHOD, (st), (val), (i)) +# define sk_X509V3_EXT_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509V3_EXT_METHOD, (st), (cmp)) +# define sk_X509V3_EXT_METHOD_dup(st) SKM_sk_dup(X509V3_EXT_METHOD, st) +# define sk_X509V3_EXT_METHOD_pop_free(st, free_func) SKM_sk_pop_free(X509V3_EXT_METHOD, (st), (free_func)) +# define sk_X509V3_EXT_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509V3_EXT_METHOD, (st), (copy_func), (free_func)) +# define sk_X509V3_EXT_METHOD_shift(st) SKM_sk_shift(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_pop(st) SKM_sk_pop(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_sort(st) SKM_sk_sort(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_is_sorted(st) SKM_sk_is_sorted(X509V3_EXT_METHOD, (st)) +# define sk_X509_ALGOR_new(cmp) SKM_sk_new(X509_ALGOR, (cmp)) +# define sk_X509_ALGOR_new_null() SKM_sk_new_null(X509_ALGOR) +# define sk_X509_ALGOR_free(st) SKM_sk_free(X509_ALGOR, (st)) +# define sk_X509_ALGOR_num(st) SKM_sk_num(X509_ALGOR, (st)) +# define sk_X509_ALGOR_value(st, i) SKM_sk_value(X509_ALGOR, (st), (i)) +# define sk_X509_ALGOR_set(st, i, val) SKM_sk_set(X509_ALGOR, (st), (i), (val)) +# define sk_X509_ALGOR_zero(st) SKM_sk_zero(X509_ALGOR, (st)) +# define sk_X509_ALGOR_push(st, val) SKM_sk_push(X509_ALGOR, (st), (val)) +# define sk_X509_ALGOR_unshift(st, val) SKM_sk_unshift(X509_ALGOR, (st), (val)) +# define sk_X509_ALGOR_find(st, val) SKM_sk_find(X509_ALGOR, (st), (val)) +# define sk_X509_ALGOR_find_ex(st, val) SKM_sk_find_ex(X509_ALGOR, (st), (val)) +# define sk_X509_ALGOR_delete(st, i) SKM_sk_delete(X509_ALGOR, (st), (i)) +# define sk_X509_ALGOR_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_ALGOR, (st), (ptr)) +# define sk_X509_ALGOR_insert(st, val, i) SKM_sk_insert(X509_ALGOR, (st), (val), (i)) +# define sk_X509_ALGOR_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_ALGOR, (st), (cmp)) +# define sk_X509_ALGOR_dup(st) SKM_sk_dup(X509_ALGOR, st) +# define sk_X509_ALGOR_pop_free(st, free_func) SKM_sk_pop_free(X509_ALGOR, (st), (free_func)) +# define sk_X509_ALGOR_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_ALGOR, (st), (copy_func), (free_func)) +# define sk_X509_ALGOR_shift(st) SKM_sk_shift(X509_ALGOR, (st)) +# define sk_X509_ALGOR_pop(st) SKM_sk_pop(X509_ALGOR, (st)) +# define sk_X509_ALGOR_sort(st) SKM_sk_sort(X509_ALGOR, (st)) +# define sk_X509_ALGOR_is_sorted(st) SKM_sk_is_sorted(X509_ALGOR, (st)) +# define sk_X509_ATTRIBUTE_new(cmp) SKM_sk_new(X509_ATTRIBUTE, (cmp)) +# define sk_X509_ATTRIBUTE_new_null() SKM_sk_new_null(X509_ATTRIBUTE) +# define sk_X509_ATTRIBUTE_free(st) SKM_sk_free(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_num(st) SKM_sk_num(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_value(st, i) SKM_sk_value(X509_ATTRIBUTE, (st), (i)) +# define sk_X509_ATTRIBUTE_set(st, i, val) SKM_sk_set(X509_ATTRIBUTE, (st), (i), (val)) +# define sk_X509_ATTRIBUTE_zero(st) SKM_sk_zero(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_push(st, val) SKM_sk_push(X509_ATTRIBUTE, (st), (val)) +# define sk_X509_ATTRIBUTE_unshift(st, val) SKM_sk_unshift(X509_ATTRIBUTE, (st), (val)) +# define sk_X509_ATTRIBUTE_find(st, val) SKM_sk_find(X509_ATTRIBUTE, (st), (val)) +# define sk_X509_ATTRIBUTE_find_ex(st, val) SKM_sk_find_ex(X509_ATTRIBUTE, (st), (val)) +# define sk_X509_ATTRIBUTE_delete(st, i) SKM_sk_delete(X509_ATTRIBUTE, (st), (i)) +# define sk_X509_ATTRIBUTE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_ATTRIBUTE, (st), (ptr)) +# define sk_X509_ATTRIBUTE_insert(st, val, i) SKM_sk_insert(X509_ATTRIBUTE, (st), (val), (i)) +# define sk_X509_ATTRIBUTE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_ATTRIBUTE, (st), (cmp)) +# define sk_X509_ATTRIBUTE_dup(st) SKM_sk_dup(X509_ATTRIBUTE, st) +# define sk_X509_ATTRIBUTE_pop_free(st, free_func) SKM_sk_pop_free(X509_ATTRIBUTE, (st), (free_func)) +# define sk_X509_ATTRIBUTE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_ATTRIBUTE, (st), (copy_func), (free_func)) +# define sk_X509_ATTRIBUTE_shift(st) SKM_sk_shift(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_pop(st) SKM_sk_pop(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_sort(st) SKM_sk_sort(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_is_sorted(st) SKM_sk_is_sorted(X509_ATTRIBUTE, (st)) +# define sk_X509_CRL_new(cmp) SKM_sk_new(X509_CRL, (cmp)) +# define sk_X509_CRL_new_null() SKM_sk_new_null(X509_CRL) +# define sk_X509_CRL_free(st) SKM_sk_free(X509_CRL, (st)) +# define sk_X509_CRL_num(st) SKM_sk_num(X509_CRL, (st)) +# define sk_X509_CRL_value(st, i) SKM_sk_value(X509_CRL, (st), (i)) +# define sk_X509_CRL_set(st, i, val) SKM_sk_set(X509_CRL, (st), (i), (val)) +# define sk_X509_CRL_zero(st) SKM_sk_zero(X509_CRL, (st)) +# define sk_X509_CRL_push(st, val) SKM_sk_push(X509_CRL, (st), (val)) +# define sk_X509_CRL_unshift(st, val) SKM_sk_unshift(X509_CRL, (st), (val)) +# define sk_X509_CRL_find(st, val) SKM_sk_find(X509_CRL, (st), (val)) +# define sk_X509_CRL_find_ex(st, val) SKM_sk_find_ex(X509_CRL, (st), (val)) +# define sk_X509_CRL_delete(st, i) SKM_sk_delete(X509_CRL, (st), (i)) +# define sk_X509_CRL_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_CRL, (st), (ptr)) +# define sk_X509_CRL_insert(st, val, i) SKM_sk_insert(X509_CRL, (st), (val), (i)) +# define sk_X509_CRL_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_CRL, (st), (cmp)) +# define sk_X509_CRL_dup(st) SKM_sk_dup(X509_CRL, st) +# define sk_X509_CRL_pop_free(st, free_func) SKM_sk_pop_free(X509_CRL, (st), (free_func)) +# define sk_X509_CRL_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_CRL, (st), (copy_func), (free_func)) +# define sk_X509_CRL_shift(st) SKM_sk_shift(X509_CRL, (st)) +# define sk_X509_CRL_pop(st) SKM_sk_pop(X509_CRL, (st)) +# define sk_X509_CRL_sort(st) SKM_sk_sort(X509_CRL, (st)) +# define sk_X509_CRL_is_sorted(st) SKM_sk_is_sorted(X509_CRL, (st)) +# define sk_X509_EXTENSION_new(cmp) SKM_sk_new(X509_EXTENSION, (cmp)) +# define sk_X509_EXTENSION_new_null() SKM_sk_new_null(X509_EXTENSION) +# define sk_X509_EXTENSION_free(st) SKM_sk_free(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_num(st) SKM_sk_num(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_value(st, i) SKM_sk_value(X509_EXTENSION, (st), (i)) +# define sk_X509_EXTENSION_set(st, i, val) SKM_sk_set(X509_EXTENSION, (st), (i), (val)) +# define sk_X509_EXTENSION_zero(st) SKM_sk_zero(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_push(st, val) SKM_sk_push(X509_EXTENSION, (st), (val)) +# define sk_X509_EXTENSION_unshift(st, val) SKM_sk_unshift(X509_EXTENSION, (st), (val)) +# define sk_X509_EXTENSION_find(st, val) SKM_sk_find(X509_EXTENSION, (st), (val)) +# define sk_X509_EXTENSION_find_ex(st, val) SKM_sk_find_ex(X509_EXTENSION, (st), (val)) +# define sk_X509_EXTENSION_delete(st, i) SKM_sk_delete(X509_EXTENSION, (st), (i)) +# define sk_X509_EXTENSION_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_EXTENSION, (st), (ptr)) +# define sk_X509_EXTENSION_insert(st, val, i) SKM_sk_insert(X509_EXTENSION, (st), (val), (i)) +# define sk_X509_EXTENSION_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_EXTENSION, (st), (cmp)) +# define sk_X509_EXTENSION_dup(st) SKM_sk_dup(X509_EXTENSION, st) +# define sk_X509_EXTENSION_pop_free(st, free_func) SKM_sk_pop_free(X509_EXTENSION, (st), (free_func)) +# define sk_X509_EXTENSION_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_EXTENSION, (st), (copy_func), (free_func)) +# define sk_X509_EXTENSION_shift(st) SKM_sk_shift(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_pop(st) SKM_sk_pop(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_sort(st) SKM_sk_sort(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_is_sorted(st) SKM_sk_is_sorted(X509_EXTENSION, (st)) +# define sk_X509_INFO_new(cmp) SKM_sk_new(X509_INFO, (cmp)) +# define sk_X509_INFO_new_null() SKM_sk_new_null(X509_INFO) +# define sk_X509_INFO_free(st) SKM_sk_free(X509_INFO, (st)) +# define sk_X509_INFO_num(st) SKM_sk_num(X509_INFO, (st)) +# define sk_X509_INFO_value(st, i) SKM_sk_value(X509_INFO, (st), (i)) +# define sk_X509_INFO_set(st, i, val) SKM_sk_set(X509_INFO, (st), (i), (val)) +# define sk_X509_INFO_zero(st) SKM_sk_zero(X509_INFO, (st)) +# define sk_X509_INFO_push(st, val) SKM_sk_push(X509_INFO, (st), (val)) +# define sk_X509_INFO_unshift(st, val) SKM_sk_unshift(X509_INFO, (st), (val)) +# define sk_X509_INFO_find(st, val) SKM_sk_find(X509_INFO, (st), (val)) +# define sk_X509_INFO_find_ex(st, val) SKM_sk_find_ex(X509_INFO, (st), (val)) +# define sk_X509_INFO_delete(st, i) SKM_sk_delete(X509_INFO, (st), (i)) +# define sk_X509_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_INFO, (st), (ptr)) +# define sk_X509_INFO_insert(st, val, i) SKM_sk_insert(X509_INFO, (st), (val), (i)) +# define sk_X509_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_INFO, (st), (cmp)) +# define sk_X509_INFO_dup(st) SKM_sk_dup(X509_INFO, st) +# define sk_X509_INFO_pop_free(st, free_func) SKM_sk_pop_free(X509_INFO, (st), (free_func)) +# define sk_X509_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_INFO, (st), (copy_func), (free_func)) +# define sk_X509_INFO_shift(st) SKM_sk_shift(X509_INFO, (st)) +# define sk_X509_INFO_pop(st) SKM_sk_pop(X509_INFO, (st)) +# define sk_X509_INFO_sort(st) SKM_sk_sort(X509_INFO, (st)) +# define sk_X509_INFO_is_sorted(st) SKM_sk_is_sorted(X509_INFO, (st)) +# define sk_X509_LOOKUP_new(cmp) SKM_sk_new(X509_LOOKUP, (cmp)) +# define sk_X509_LOOKUP_new_null() SKM_sk_new_null(X509_LOOKUP) +# define sk_X509_LOOKUP_free(st) SKM_sk_free(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_num(st) SKM_sk_num(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_value(st, i) SKM_sk_value(X509_LOOKUP, (st), (i)) +# define sk_X509_LOOKUP_set(st, i, val) SKM_sk_set(X509_LOOKUP, (st), (i), (val)) +# define sk_X509_LOOKUP_zero(st) SKM_sk_zero(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_push(st, val) SKM_sk_push(X509_LOOKUP, (st), (val)) +# define sk_X509_LOOKUP_unshift(st, val) SKM_sk_unshift(X509_LOOKUP, (st), (val)) +# define sk_X509_LOOKUP_find(st, val) SKM_sk_find(X509_LOOKUP, (st), (val)) +# define sk_X509_LOOKUP_find_ex(st, val) SKM_sk_find_ex(X509_LOOKUP, (st), (val)) +# define sk_X509_LOOKUP_delete(st, i) SKM_sk_delete(X509_LOOKUP, (st), (i)) +# define sk_X509_LOOKUP_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_LOOKUP, (st), (ptr)) +# define sk_X509_LOOKUP_insert(st, val, i) SKM_sk_insert(X509_LOOKUP, (st), (val), (i)) +# define sk_X509_LOOKUP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_LOOKUP, (st), (cmp)) +# define sk_X509_LOOKUP_dup(st) SKM_sk_dup(X509_LOOKUP, st) +# define sk_X509_LOOKUP_pop_free(st, free_func) SKM_sk_pop_free(X509_LOOKUP, (st), (free_func)) +# define sk_X509_LOOKUP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_LOOKUP, (st), (copy_func), (free_func)) +# define sk_X509_LOOKUP_shift(st) SKM_sk_shift(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_pop(st) SKM_sk_pop(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_sort(st) SKM_sk_sort(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_is_sorted(st) SKM_sk_is_sorted(X509_LOOKUP, (st)) +# define sk_X509_NAME_new(cmp) SKM_sk_new(X509_NAME, (cmp)) +# define sk_X509_NAME_new_null() SKM_sk_new_null(X509_NAME) +# define sk_X509_NAME_free(st) SKM_sk_free(X509_NAME, (st)) +# define sk_X509_NAME_num(st) SKM_sk_num(X509_NAME, (st)) +# define sk_X509_NAME_value(st, i) SKM_sk_value(X509_NAME, (st), (i)) +# define sk_X509_NAME_set(st, i, val) SKM_sk_set(X509_NAME, (st), (i), (val)) +# define sk_X509_NAME_zero(st) SKM_sk_zero(X509_NAME, (st)) +# define sk_X509_NAME_push(st, val) SKM_sk_push(X509_NAME, (st), (val)) +# define sk_X509_NAME_unshift(st, val) SKM_sk_unshift(X509_NAME, (st), (val)) +# define sk_X509_NAME_find(st, val) SKM_sk_find(X509_NAME, (st), (val)) +# define sk_X509_NAME_find_ex(st, val) SKM_sk_find_ex(X509_NAME, (st), (val)) +# define sk_X509_NAME_delete(st, i) SKM_sk_delete(X509_NAME, (st), (i)) +# define sk_X509_NAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_NAME, (st), (ptr)) +# define sk_X509_NAME_insert(st, val, i) SKM_sk_insert(X509_NAME, (st), (val), (i)) +# define sk_X509_NAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_NAME, (st), (cmp)) +# define sk_X509_NAME_dup(st) SKM_sk_dup(X509_NAME, st) +# define sk_X509_NAME_pop_free(st, free_func) SKM_sk_pop_free(X509_NAME, (st), (free_func)) +# define sk_X509_NAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_NAME, (st), (copy_func), (free_func)) +# define sk_X509_NAME_shift(st) SKM_sk_shift(X509_NAME, (st)) +# define sk_X509_NAME_pop(st) SKM_sk_pop(X509_NAME, (st)) +# define sk_X509_NAME_sort(st) SKM_sk_sort(X509_NAME, (st)) +# define sk_X509_NAME_is_sorted(st) SKM_sk_is_sorted(X509_NAME, (st)) +# define sk_X509_NAME_ENTRY_new(cmp) SKM_sk_new(X509_NAME_ENTRY, (cmp)) +# define sk_X509_NAME_ENTRY_new_null() SKM_sk_new_null(X509_NAME_ENTRY) +# define sk_X509_NAME_ENTRY_free(st) SKM_sk_free(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_num(st) SKM_sk_num(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_value(st, i) SKM_sk_value(X509_NAME_ENTRY, (st), (i)) +# define sk_X509_NAME_ENTRY_set(st, i, val) SKM_sk_set(X509_NAME_ENTRY, (st), (i), (val)) +# define sk_X509_NAME_ENTRY_zero(st) SKM_sk_zero(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_push(st, val) SKM_sk_push(X509_NAME_ENTRY, (st), (val)) +# define sk_X509_NAME_ENTRY_unshift(st, val) SKM_sk_unshift(X509_NAME_ENTRY, (st), (val)) +# define sk_X509_NAME_ENTRY_find(st, val) SKM_sk_find(X509_NAME_ENTRY, (st), (val)) +# define sk_X509_NAME_ENTRY_find_ex(st, val) SKM_sk_find_ex(X509_NAME_ENTRY, (st), (val)) +# define sk_X509_NAME_ENTRY_delete(st, i) SKM_sk_delete(X509_NAME_ENTRY, (st), (i)) +# define sk_X509_NAME_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_NAME_ENTRY, (st), (ptr)) +# define sk_X509_NAME_ENTRY_insert(st, val, i) SKM_sk_insert(X509_NAME_ENTRY, (st), (val), (i)) +# define sk_X509_NAME_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_NAME_ENTRY, (st), (cmp)) +# define sk_X509_NAME_ENTRY_dup(st) SKM_sk_dup(X509_NAME_ENTRY, st) +# define sk_X509_NAME_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(X509_NAME_ENTRY, (st), (free_func)) +# define sk_X509_NAME_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_NAME_ENTRY, (st), (copy_func), (free_func)) +# define sk_X509_NAME_ENTRY_shift(st) SKM_sk_shift(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_pop(st) SKM_sk_pop(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_sort(st) SKM_sk_sort(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_is_sorted(st) SKM_sk_is_sorted(X509_NAME_ENTRY, (st)) +# define sk_X509_OBJECT_new(cmp) SKM_sk_new(X509_OBJECT, (cmp)) +# define sk_X509_OBJECT_new_null() SKM_sk_new_null(X509_OBJECT) +# define sk_X509_OBJECT_free(st) SKM_sk_free(X509_OBJECT, (st)) +# define sk_X509_OBJECT_num(st) SKM_sk_num(X509_OBJECT, (st)) +# define sk_X509_OBJECT_value(st, i) SKM_sk_value(X509_OBJECT, (st), (i)) +# define sk_X509_OBJECT_set(st, i, val) SKM_sk_set(X509_OBJECT, (st), (i), (val)) +# define sk_X509_OBJECT_zero(st) SKM_sk_zero(X509_OBJECT, (st)) +# define sk_X509_OBJECT_push(st, val) SKM_sk_push(X509_OBJECT, (st), (val)) +# define sk_X509_OBJECT_unshift(st, val) SKM_sk_unshift(X509_OBJECT, (st), (val)) +# define sk_X509_OBJECT_find(st, val) SKM_sk_find(X509_OBJECT, (st), (val)) +# define sk_X509_OBJECT_find_ex(st, val) SKM_sk_find_ex(X509_OBJECT, (st), (val)) +# define sk_X509_OBJECT_delete(st, i) SKM_sk_delete(X509_OBJECT, (st), (i)) +# define sk_X509_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_OBJECT, (st), (ptr)) +# define sk_X509_OBJECT_insert(st, val, i) SKM_sk_insert(X509_OBJECT, (st), (val), (i)) +# define sk_X509_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_OBJECT, (st), (cmp)) +# define sk_X509_OBJECT_dup(st) SKM_sk_dup(X509_OBJECT, st) +# define sk_X509_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(X509_OBJECT, (st), (free_func)) +# define sk_X509_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_OBJECT, (st), (copy_func), (free_func)) +# define sk_X509_OBJECT_shift(st) SKM_sk_shift(X509_OBJECT, (st)) +# define sk_X509_OBJECT_pop(st) SKM_sk_pop(X509_OBJECT, (st)) +# define sk_X509_OBJECT_sort(st) SKM_sk_sort(X509_OBJECT, (st)) +# define sk_X509_OBJECT_is_sorted(st) SKM_sk_is_sorted(X509_OBJECT, (st)) +# define sk_X509_POLICY_DATA_new(cmp) SKM_sk_new(X509_POLICY_DATA, (cmp)) +# define sk_X509_POLICY_DATA_new_null() SKM_sk_new_null(X509_POLICY_DATA) +# define sk_X509_POLICY_DATA_free(st) SKM_sk_free(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_num(st) SKM_sk_num(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_value(st, i) SKM_sk_value(X509_POLICY_DATA, (st), (i)) +# define sk_X509_POLICY_DATA_set(st, i, val) SKM_sk_set(X509_POLICY_DATA, (st), (i), (val)) +# define sk_X509_POLICY_DATA_zero(st) SKM_sk_zero(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_push(st, val) SKM_sk_push(X509_POLICY_DATA, (st), (val)) +# define sk_X509_POLICY_DATA_unshift(st, val) SKM_sk_unshift(X509_POLICY_DATA, (st), (val)) +# define sk_X509_POLICY_DATA_find(st, val) SKM_sk_find(X509_POLICY_DATA, (st), (val)) +# define sk_X509_POLICY_DATA_find_ex(st, val) SKM_sk_find_ex(X509_POLICY_DATA, (st), (val)) +# define sk_X509_POLICY_DATA_delete(st, i) SKM_sk_delete(X509_POLICY_DATA, (st), (i)) +# define sk_X509_POLICY_DATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_POLICY_DATA, (st), (ptr)) +# define sk_X509_POLICY_DATA_insert(st, val, i) SKM_sk_insert(X509_POLICY_DATA, (st), (val), (i)) +# define sk_X509_POLICY_DATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_POLICY_DATA, (st), (cmp)) +# define sk_X509_POLICY_DATA_dup(st) SKM_sk_dup(X509_POLICY_DATA, st) +# define sk_X509_POLICY_DATA_pop_free(st, free_func) SKM_sk_pop_free(X509_POLICY_DATA, (st), (free_func)) +# define sk_X509_POLICY_DATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_POLICY_DATA, (st), (copy_func), (free_func)) +# define sk_X509_POLICY_DATA_shift(st) SKM_sk_shift(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_pop(st) SKM_sk_pop(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_sort(st) SKM_sk_sort(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_NODE_new(cmp) SKM_sk_new(X509_POLICY_NODE, (cmp)) +# define sk_X509_POLICY_NODE_new_null() SKM_sk_new_null(X509_POLICY_NODE) +# define sk_X509_POLICY_NODE_free(st) SKM_sk_free(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_num(st) SKM_sk_num(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_value(st, i) SKM_sk_value(X509_POLICY_NODE, (st), (i)) +# define sk_X509_POLICY_NODE_set(st, i, val) SKM_sk_set(X509_POLICY_NODE, (st), (i), (val)) +# define sk_X509_POLICY_NODE_zero(st) SKM_sk_zero(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_push(st, val) SKM_sk_push(X509_POLICY_NODE, (st), (val)) +# define sk_X509_POLICY_NODE_unshift(st, val) SKM_sk_unshift(X509_POLICY_NODE, (st), (val)) +# define sk_X509_POLICY_NODE_find(st, val) SKM_sk_find(X509_POLICY_NODE, (st), (val)) +# define sk_X509_POLICY_NODE_find_ex(st, val) SKM_sk_find_ex(X509_POLICY_NODE, (st), (val)) +# define sk_X509_POLICY_NODE_delete(st, i) SKM_sk_delete(X509_POLICY_NODE, (st), (i)) +# define sk_X509_POLICY_NODE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_POLICY_NODE, (st), (ptr)) +# define sk_X509_POLICY_NODE_insert(st, val, i) SKM_sk_insert(X509_POLICY_NODE, (st), (val), (i)) +# define sk_X509_POLICY_NODE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_POLICY_NODE, (st), (cmp)) +# define sk_X509_POLICY_NODE_dup(st) SKM_sk_dup(X509_POLICY_NODE, st) +# define sk_X509_POLICY_NODE_pop_free(st, free_func) SKM_sk_pop_free(X509_POLICY_NODE, (st), (free_func)) +# define sk_X509_POLICY_NODE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_POLICY_NODE, (st), (copy_func), (free_func)) +# define sk_X509_POLICY_NODE_shift(st) SKM_sk_shift(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_pop(st) SKM_sk_pop(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_sort(st) SKM_sk_sort(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_NODE, (st)) +# define sk_X509_PURPOSE_new(cmp) SKM_sk_new(X509_PURPOSE, (cmp)) +# define sk_X509_PURPOSE_new_null() SKM_sk_new_null(X509_PURPOSE) +# define sk_X509_PURPOSE_free(st) SKM_sk_free(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_num(st) SKM_sk_num(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_value(st, i) SKM_sk_value(X509_PURPOSE, (st), (i)) +# define sk_X509_PURPOSE_set(st, i, val) SKM_sk_set(X509_PURPOSE, (st), (i), (val)) +# define sk_X509_PURPOSE_zero(st) SKM_sk_zero(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_push(st, val) SKM_sk_push(X509_PURPOSE, (st), (val)) +# define sk_X509_PURPOSE_unshift(st, val) SKM_sk_unshift(X509_PURPOSE, (st), (val)) +# define sk_X509_PURPOSE_find(st, val) SKM_sk_find(X509_PURPOSE, (st), (val)) +# define sk_X509_PURPOSE_find_ex(st, val) SKM_sk_find_ex(X509_PURPOSE, (st), (val)) +# define sk_X509_PURPOSE_delete(st, i) SKM_sk_delete(X509_PURPOSE, (st), (i)) +# define sk_X509_PURPOSE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_PURPOSE, (st), (ptr)) +# define sk_X509_PURPOSE_insert(st, val, i) SKM_sk_insert(X509_PURPOSE, (st), (val), (i)) +# define sk_X509_PURPOSE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_PURPOSE, (st), (cmp)) +# define sk_X509_PURPOSE_dup(st) SKM_sk_dup(X509_PURPOSE, st) +# define sk_X509_PURPOSE_pop_free(st, free_func) SKM_sk_pop_free(X509_PURPOSE, (st), (free_func)) +# define sk_X509_PURPOSE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_PURPOSE, (st), (copy_func), (free_func)) +# define sk_X509_PURPOSE_shift(st) SKM_sk_shift(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_pop(st) SKM_sk_pop(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_sort(st) SKM_sk_sort(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_is_sorted(st) SKM_sk_is_sorted(X509_PURPOSE, (st)) +# define sk_X509_REVOKED_new(cmp) SKM_sk_new(X509_REVOKED, (cmp)) +# define sk_X509_REVOKED_new_null() SKM_sk_new_null(X509_REVOKED) +# define sk_X509_REVOKED_free(st) SKM_sk_free(X509_REVOKED, (st)) +# define sk_X509_REVOKED_num(st) SKM_sk_num(X509_REVOKED, (st)) +# define sk_X509_REVOKED_value(st, i) SKM_sk_value(X509_REVOKED, (st), (i)) +# define sk_X509_REVOKED_set(st, i, val) SKM_sk_set(X509_REVOKED, (st), (i), (val)) +# define sk_X509_REVOKED_zero(st) SKM_sk_zero(X509_REVOKED, (st)) +# define sk_X509_REVOKED_push(st, val) SKM_sk_push(X509_REVOKED, (st), (val)) +# define sk_X509_REVOKED_unshift(st, val) SKM_sk_unshift(X509_REVOKED, (st), (val)) +# define sk_X509_REVOKED_find(st, val) SKM_sk_find(X509_REVOKED, (st), (val)) +# define sk_X509_REVOKED_find_ex(st, val) SKM_sk_find_ex(X509_REVOKED, (st), (val)) +# define sk_X509_REVOKED_delete(st, i) SKM_sk_delete(X509_REVOKED, (st), (i)) +# define sk_X509_REVOKED_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_REVOKED, (st), (ptr)) +# define sk_X509_REVOKED_insert(st, val, i) SKM_sk_insert(X509_REVOKED, (st), (val), (i)) +# define sk_X509_REVOKED_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_REVOKED, (st), (cmp)) +# define sk_X509_REVOKED_dup(st) SKM_sk_dup(X509_REVOKED, st) +# define sk_X509_REVOKED_pop_free(st, free_func) SKM_sk_pop_free(X509_REVOKED, (st), (free_func)) +# define sk_X509_REVOKED_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_REVOKED, (st), (copy_func), (free_func)) +# define sk_X509_REVOKED_shift(st) SKM_sk_shift(X509_REVOKED, (st)) +# define sk_X509_REVOKED_pop(st) SKM_sk_pop(X509_REVOKED, (st)) +# define sk_X509_REVOKED_sort(st) SKM_sk_sort(X509_REVOKED, (st)) +# define sk_X509_REVOKED_is_sorted(st) SKM_sk_is_sorted(X509_REVOKED, (st)) +# define sk_X509_TRUST_new(cmp) SKM_sk_new(X509_TRUST, (cmp)) +# define sk_X509_TRUST_new_null() SKM_sk_new_null(X509_TRUST) +# define sk_X509_TRUST_free(st) SKM_sk_free(X509_TRUST, (st)) +# define sk_X509_TRUST_num(st) SKM_sk_num(X509_TRUST, (st)) +# define sk_X509_TRUST_value(st, i) SKM_sk_value(X509_TRUST, (st), (i)) +# define sk_X509_TRUST_set(st, i, val) SKM_sk_set(X509_TRUST, (st), (i), (val)) +# define sk_X509_TRUST_zero(st) SKM_sk_zero(X509_TRUST, (st)) +# define sk_X509_TRUST_push(st, val) SKM_sk_push(X509_TRUST, (st), (val)) +# define sk_X509_TRUST_unshift(st, val) SKM_sk_unshift(X509_TRUST, (st), (val)) +# define sk_X509_TRUST_find(st, val) SKM_sk_find(X509_TRUST, (st), (val)) +# define sk_X509_TRUST_find_ex(st, val) SKM_sk_find_ex(X509_TRUST, (st), (val)) +# define sk_X509_TRUST_delete(st, i) SKM_sk_delete(X509_TRUST, (st), (i)) +# define sk_X509_TRUST_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_TRUST, (st), (ptr)) +# define sk_X509_TRUST_insert(st, val, i) SKM_sk_insert(X509_TRUST, (st), (val), (i)) +# define sk_X509_TRUST_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_TRUST, (st), (cmp)) +# define sk_X509_TRUST_dup(st) SKM_sk_dup(X509_TRUST, st) +# define sk_X509_TRUST_pop_free(st, free_func) SKM_sk_pop_free(X509_TRUST, (st), (free_func)) +# define sk_X509_TRUST_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_TRUST, (st), (copy_func), (free_func)) +# define sk_X509_TRUST_shift(st) SKM_sk_shift(X509_TRUST, (st)) +# define sk_X509_TRUST_pop(st) SKM_sk_pop(X509_TRUST, (st)) +# define sk_X509_TRUST_sort(st) SKM_sk_sort(X509_TRUST, (st)) +# define sk_X509_TRUST_is_sorted(st) SKM_sk_is_sorted(X509_TRUST, (st)) +# define sk_X509_VERIFY_PARAM_new(cmp) SKM_sk_new(X509_VERIFY_PARAM, (cmp)) +# define sk_X509_VERIFY_PARAM_new_null() SKM_sk_new_null(X509_VERIFY_PARAM) +# define sk_X509_VERIFY_PARAM_free(st) SKM_sk_free(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_num(st) SKM_sk_num(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_value(st, i) SKM_sk_value(X509_VERIFY_PARAM, (st), (i)) +# define sk_X509_VERIFY_PARAM_set(st, i, val) SKM_sk_set(X509_VERIFY_PARAM, (st), (i), (val)) +# define sk_X509_VERIFY_PARAM_zero(st) SKM_sk_zero(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_push(st, val) SKM_sk_push(X509_VERIFY_PARAM, (st), (val)) +# define sk_X509_VERIFY_PARAM_unshift(st, val) SKM_sk_unshift(X509_VERIFY_PARAM, (st), (val)) +# define sk_X509_VERIFY_PARAM_find(st, val) SKM_sk_find(X509_VERIFY_PARAM, (st), (val)) +# define sk_X509_VERIFY_PARAM_find_ex(st, val) SKM_sk_find_ex(X509_VERIFY_PARAM, (st), (val)) +# define sk_X509_VERIFY_PARAM_delete(st, i) SKM_sk_delete(X509_VERIFY_PARAM, (st), (i)) +# define sk_X509_VERIFY_PARAM_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_VERIFY_PARAM, (st), (ptr)) +# define sk_X509_VERIFY_PARAM_insert(st, val, i) SKM_sk_insert(X509_VERIFY_PARAM, (st), (val), (i)) +# define sk_X509_VERIFY_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_VERIFY_PARAM, (st), (cmp)) +# define sk_X509_VERIFY_PARAM_dup(st) SKM_sk_dup(X509_VERIFY_PARAM, st) +# define sk_X509_VERIFY_PARAM_pop_free(st, free_func) SKM_sk_pop_free(X509_VERIFY_PARAM, (st), (free_func)) +# define sk_X509_VERIFY_PARAM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_VERIFY_PARAM, (st), (copy_func), (free_func)) +# define sk_X509_VERIFY_PARAM_shift(st) SKM_sk_shift(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_pop(st) SKM_sk_pop(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_sort(st) SKM_sk_sort(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_is_sorted(st) SKM_sk_is_sorted(X509_VERIFY_PARAM, (st)) +# define sk_nid_triple_new(cmp) SKM_sk_new(nid_triple, (cmp)) +# define sk_nid_triple_new_null() SKM_sk_new_null(nid_triple) +# define sk_nid_triple_free(st) SKM_sk_free(nid_triple, (st)) +# define sk_nid_triple_num(st) SKM_sk_num(nid_triple, (st)) +# define sk_nid_triple_value(st, i) SKM_sk_value(nid_triple, (st), (i)) +# define sk_nid_triple_set(st, i, val) SKM_sk_set(nid_triple, (st), (i), (val)) +# define sk_nid_triple_zero(st) SKM_sk_zero(nid_triple, (st)) +# define sk_nid_triple_push(st, val) SKM_sk_push(nid_triple, (st), (val)) +# define sk_nid_triple_unshift(st, val) SKM_sk_unshift(nid_triple, (st), (val)) +# define sk_nid_triple_find(st, val) SKM_sk_find(nid_triple, (st), (val)) +# define sk_nid_triple_find_ex(st, val) SKM_sk_find_ex(nid_triple, (st), (val)) +# define sk_nid_triple_delete(st, i) SKM_sk_delete(nid_triple, (st), (i)) +# define sk_nid_triple_delete_ptr(st, ptr) SKM_sk_delete_ptr(nid_triple, (st), (ptr)) +# define sk_nid_triple_insert(st, val, i) SKM_sk_insert(nid_triple, (st), (val), (i)) +# define sk_nid_triple_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(nid_triple, (st), (cmp)) +# define sk_nid_triple_dup(st) SKM_sk_dup(nid_triple, st) +# define sk_nid_triple_pop_free(st, free_func) SKM_sk_pop_free(nid_triple, (st), (free_func)) +# define sk_nid_triple_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(nid_triple, (st), (copy_func), (free_func)) +# define sk_nid_triple_shift(st) SKM_sk_shift(nid_triple, (st)) +# define sk_nid_triple_pop(st) SKM_sk_pop(nid_triple, (st)) +# define sk_nid_triple_sort(st) SKM_sk_sort(nid_triple, (st)) +# define sk_nid_triple_is_sorted(st) SKM_sk_is_sorted(nid_triple, (st)) +# define sk_void_new(cmp) SKM_sk_new(void, (cmp)) +# define sk_void_new_null() SKM_sk_new_null(void) +# define sk_void_free(st) SKM_sk_free(void, (st)) +# define sk_void_num(st) SKM_sk_num(void, (st)) +# define sk_void_value(st, i) SKM_sk_value(void, (st), (i)) +# define sk_void_set(st, i, val) SKM_sk_set(void, (st), (i), (val)) +# define sk_void_zero(st) SKM_sk_zero(void, (st)) +# define sk_void_push(st, val) SKM_sk_push(void, (st), (val)) +# define sk_void_unshift(st, val) SKM_sk_unshift(void, (st), (val)) +# define sk_void_find(st, val) SKM_sk_find(void, (st), (val)) +# define sk_void_find_ex(st, val) SKM_sk_find_ex(void, (st), (val)) +# define sk_void_delete(st, i) SKM_sk_delete(void, (st), (i)) +# define sk_void_delete_ptr(st, ptr) SKM_sk_delete_ptr(void, (st), (ptr)) +# define sk_void_insert(st, val, i) SKM_sk_insert(void, (st), (val), (i)) +# define sk_void_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(void, (st), (cmp)) +# define sk_void_dup(st) SKM_sk_dup(void, st) +# define sk_void_pop_free(st, free_func) SKM_sk_pop_free(void, (st), (free_func)) +# define sk_void_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(void, (st), (copy_func), (free_func)) +# define sk_void_shift(st) SKM_sk_shift(void, (st)) +# define sk_void_pop(st) SKM_sk_pop(void, (st)) +# define sk_void_sort(st) SKM_sk_sort(void, (st)) +# define sk_void_is_sorted(st) SKM_sk_is_sorted(void, (st)) +# define sk_OPENSSL_STRING_new(cmp) ((STACK_OF(OPENSSL_STRING) *)sk_new(CHECKED_SK_CMP_FUNC(char, cmp))) +# define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)sk_new_null()) +# define sk_OPENSSL_STRING_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) +# define sk_OPENSSL_STRING_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) +# define sk_OPENSSL_STRING_value(st, i) ((OPENSSL_STRING)sk_value(CHECKED_STACK_OF(OPENSSL_STRING, st), i)) +# define sk_OPENSSL_STRING_num(st) SKM_sk_num(OPENSSL_STRING, st) +# define sk_OPENSSL_STRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_FREE_FUNC(char, free_func)) +# define sk_OPENSSL_STRING_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_STRING) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_COPY_FUNC(char, copy_func), CHECKED_SK_FREE_FUNC(char, free_func))) +# define sk_OPENSSL_STRING_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val), i) +# define sk_OPENSSL_STRING_free(st) SKM_sk_free(OPENSSL_STRING, st) +# define sk_OPENSSL_STRING_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_STRING, st), i, CHECKED_PTR_OF(char, val)) +# define sk_OPENSSL_STRING_zero(st) SKM_sk_zero(OPENSSL_STRING, (st)) +# define sk_OPENSSL_STRING_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) +# define sk_OPENSSL_STRING_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_STRING), st), CHECKED_CONST_PTR_OF(char, val)) +# define sk_OPENSSL_STRING_delete(st, i) SKM_sk_delete(OPENSSL_STRING, (st), (i)) +# define sk_OPENSSL_STRING_delete_ptr(st, ptr) (OPENSSL_STRING *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, ptr)) +# define sk_OPENSSL_STRING_set_cmp_func(st, cmp) \ + ((int (*)(const char * const *,const char * const *)) \ + sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_CMP_FUNC(char, cmp))) +# define sk_OPENSSL_STRING_dup(st) SKM_sk_dup(OPENSSL_STRING, st) +# define sk_OPENSSL_STRING_shift(st) SKM_sk_shift(OPENSSL_STRING, (st)) +# define sk_OPENSSL_STRING_pop(st) (char *)sk_pop(CHECKED_STACK_OF(OPENSSL_STRING, st)) +# define sk_OPENSSL_STRING_sort(st) SKM_sk_sort(OPENSSL_STRING, (st)) +# define sk_OPENSSL_STRING_is_sorted(st) SKM_sk_is_sorted(OPENSSL_STRING, (st)) +# define sk_OPENSSL_BLOCK_new(cmp) ((STACK_OF(OPENSSL_BLOCK) *)sk_new(CHECKED_SK_CMP_FUNC(void, cmp))) +# define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)sk_new_null()) +# define sk_OPENSSL_BLOCK_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) +# define sk_OPENSSL_BLOCK_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) +# define sk_OPENSSL_BLOCK_value(st, i) ((OPENSSL_BLOCK)sk_value(CHECKED_STACK_OF(OPENSSL_BLOCK, st), i)) +# define sk_OPENSSL_BLOCK_num(st) SKM_sk_num(OPENSSL_BLOCK, st) +# define sk_OPENSSL_BLOCK_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_FREE_FUNC(void, free_func)) +# define sk_OPENSSL_BLOCK_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_BLOCK) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_COPY_FUNC(void, copy_func), CHECKED_SK_FREE_FUNC(void, free_func))) +# define sk_OPENSSL_BLOCK_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val), i) +# define sk_OPENSSL_BLOCK_free(st) SKM_sk_free(OPENSSL_BLOCK, st) +# define sk_OPENSSL_BLOCK_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_BLOCK, st), i, CHECKED_PTR_OF(void, val)) +# define sk_OPENSSL_BLOCK_zero(st) SKM_sk_zero(OPENSSL_BLOCK, (st)) +# define sk_OPENSSL_BLOCK_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) +# define sk_OPENSSL_BLOCK_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_BLOCK), st), CHECKED_CONST_PTR_OF(void, val)) +# define sk_OPENSSL_BLOCK_delete(st, i) SKM_sk_delete(OPENSSL_BLOCK, (st), (i)) +# define sk_OPENSSL_BLOCK_delete_ptr(st, ptr) (OPENSSL_BLOCK *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, ptr)) +# define sk_OPENSSL_BLOCK_set_cmp_func(st, cmp) \ + ((int (*)(const void * const *,const void * const *)) \ + sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_CMP_FUNC(void, cmp))) +# define sk_OPENSSL_BLOCK_dup(st) SKM_sk_dup(OPENSSL_BLOCK, st) +# define sk_OPENSSL_BLOCK_shift(st) SKM_sk_shift(OPENSSL_BLOCK, (st)) +# define sk_OPENSSL_BLOCK_pop(st) (void *)sk_pop(CHECKED_STACK_OF(OPENSSL_BLOCK, st)) +# define sk_OPENSSL_BLOCK_sort(st) SKM_sk_sort(OPENSSL_BLOCK, (st)) +# define sk_OPENSSL_BLOCK_is_sorted(st) SKM_sk_is_sorted(OPENSSL_BLOCK, (st)) +# define sk_OPENSSL_PSTRING_new(cmp) ((STACK_OF(OPENSSL_PSTRING) *)sk_new(CHECKED_SK_CMP_FUNC(OPENSSL_STRING, cmp))) +# define sk_OPENSSL_PSTRING_new_null() ((STACK_OF(OPENSSL_PSTRING) *)sk_new_null()) +# define sk_OPENSSL_PSTRING_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) +# define sk_OPENSSL_PSTRING_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) +# define sk_OPENSSL_PSTRING_value(st, i) ((OPENSSL_PSTRING)sk_value(CHECKED_STACK_OF(OPENSSL_PSTRING, st), i)) +# define sk_OPENSSL_PSTRING_num(st) SKM_sk_num(OPENSSL_PSTRING, st) +# define sk_OPENSSL_PSTRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_FREE_FUNC(OPENSSL_STRING, free_func)) +# define sk_OPENSSL_PSTRING_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_PSTRING) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_COPY_FUNC(OPENSSL_STRING, copy_func), CHECKED_SK_FREE_FUNC(OPENSSL_STRING, free_func))) +# define sk_OPENSSL_PSTRING_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val), i) +# define sk_OPENSSL_PSTRING_free(st) SKM_sk_free(OPENSSL_PSTRING, st) +# define sk_OPENSSL_PSTRING_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_PSTRING, st), i, CHECKED_PTR_OF(OPENSSL_STRING, val)) +# define sk_OPENSSL_PSTRING_zero(st) SKM_sk_zero(OPENSSL_PSTRING, (st)) +# define sk_OPENSSL_PSTRING_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) +# define sk_OPENSSL_PSTRING_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_PSTRING), st), CHECKED_CONST_PTR_OF(OPENSSL_STRING, val)) +# define sk_OPENSSL_PSTRING_delete(st, i) SKM_sk_delete(OPENSSL_PSTRING, (st), (i)) +# define sk_OPENSSL_PSTRING_delete_ptr(st, ptr) (OPENSSL_PSTRING *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, ptr)) +# define sk_OPENSSL_PSTRING_set_cmp_func(st, cmp) \ + ((int (*)(const OPENSSL_STRING * const *,const OPENSSL_STRING * const *)) \ + sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_CMP_FUNC(OPENSSL_STRING, cmp))) +# define sk_OPENSSL_PSTRING_dup(st) SKM_sk_dup(OPENSSL_PSTRING, st) +# define sk_OPENSSL_PSTRING_shift(st) SKM_sk_shift(OPENSSL_PSTRING, (st)) +# define sk_OPENSSL_PSTRING_pop(st) (OPENSSL_STRING *)sk_pop(CHECKED_STACK_OF(OPENSSL_PSTRING, st)) +# define sk_OPENSSL_PSTRING_sort(st) SKM_sk_sort(OPENSSL_PSTRING, (st)) +# define sk_OPENSSL_PSTRING_is_sorted(st) SKM_sk_is_sorted(OPENSSL_PSTRING, (st)) +# define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ACCESS_DESCRIPTION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ACCESS_DESCRIPTION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ACCESS_DESCRIPTION(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ACCESS_DESCRIPTION, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ACCESS_DESCRIPTION(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ACCESS_DESCRIPTION, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_ASN1_INTEGER(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ASN1_INTEGER, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ASN1_INTEGER(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ASN1_INTEGER, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ASN1_INTEGER(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ASN1_INTEGER, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ASN1_INTEGER(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ASN1_INTEGER, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_ASN1_OBJECT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ASN1_OBJECT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ASN1_OBJECT(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ASN1_OBJECT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ASN1_OBJECT(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ASN1_OBJECT, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ASN1_OBJECT(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ASN1_OBJECT, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_ASN1_TYPE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ASN1_TYPE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ASN1_TYPE(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ASN1_TYPE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ASN1_TYPE(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ASN1_TYPE, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ASN1_TYPE(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ASN1_TYPE, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ASN1_UTF8STRING, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ASN1_UTF8STRING, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ASN1_UTF8STRING(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ASN1_UTF8STRING, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ASN1_UTF8STRING(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ASN1_UTF8STRING, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_DIST_POINT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(DIST_POINT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_DIST_POINT(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(DIST_POINT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_DIST_POINT(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(DIST_POINT, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_DIST_POINT(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(DIST_POINT, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_ESS_CERT_ID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ESS_CERT_ID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ESS_CERT_ID(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ESS_CERT_ID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ESS_CERT_ID(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ESS_CERT_ID, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ESS_CERT_ID(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ESS_CERT_ID, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_EVP_MD(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(EVP_MD, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_EVP_MD(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(EVP_MD, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_EVP_MD(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(EVP_MD, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_EVP_MD(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(EVP_MD, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_GENERAL_NAME(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(GENERAL_NAME, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_GENERAL_NAME(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(GENERAL_NAME, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_GENERAL_NAME(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(GENERAL_NAME, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_GENERAL_NAME(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(GENERAL_NAME, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_OCSP_ONEREQ(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(OCSP_ONEREQ, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_OCSP_ONEREQ(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(OCSP_ONEREQ, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_OCSP_ONEREQ(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(OCSP_ONEREQ, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_OCSP_ONEREQ(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(OCSP_ONEREQ, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(OCSP_SINGLERESP, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(OCSP_SINGLERESP, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_OCSP_SINGLERESP(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(OCSP_SINGLERESP, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_OCSP_SINGLERESP(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(OCSP_SINGLERESP, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(PKCS12_SAFEBAG, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(PKCS12_SAFEBAG, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_PKCS12_SAFEBAG(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(PKCS12_SAFEBAG, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_PKCS12_SAFEBAG(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(PKCS12_SAFEBAG, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_PKCS7(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(PKCS7, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_PKCS7(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(PKCS7, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_PKCS7(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(PKCS7, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_PKCS7(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(PKCS7, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(PKCS7_RECIP_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(PKCS7_RECIP_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_PKCS7_RECIP_INFO(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(PKCS7_RECIP_INFO, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_PKCS7_RECIP_INFO(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(PKCS7_RECIP_INFO, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(PKCS7_SIGNER_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(PKCS7_SIGNER_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_PKCS7_SIGNER_INFO(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(PKCS7_SIGNER_INFO, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_PKCS7_SIGNER_INFO(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(PKCS7_SIGNER_INFO, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_POLICYINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(POLICYINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_POLICYINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(POLICYINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_POLICYINFO(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(POLICYINFO, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_POLICYINFO(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(POLICYINFO, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_POLICYQUALINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(POLICYQUALINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_POLICYQUALINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(POLICYQUALINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_POLICYQUALINFO(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(POLICYQUALINFO, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_POLICYQUALINFO(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(POLICYQUALINFO, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_SXNETID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(SXNETID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_SXNETID(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(SXNETID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_SXNETID(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(SXNETID, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_SXNETID(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(SXNETID, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_ALGOR(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_ALGOR, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_ALGOR(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_ALGOR, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_ALGOR(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_ALGOR, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_ALGOR(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_ALGOR, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_ATTRIBUTE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_ATTRIBUTE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_ATTRIBUTE(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_ATTRIBUTE, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_ATTRIBUTE(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_ATTRIBUTE, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_CRL(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_CRL, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_CRL(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_CRL, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_CRL(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_CRL, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_CRL(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_CRL, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_EXTENSION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_EXTENSION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_EXTENSION(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_EXTENSION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_EXTENSION(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_EXTENSION, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_EXTENSION(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_EXTENSION, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_NAME_ENTRY, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_NAME_ENTRY, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_NAME_ENTRY(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_NAME_ENTRY, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_NAME_ENTRY(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_NAME_ENTRY, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_REVOKED(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_REVOKED, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_REVOKED(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_REVOKED, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_REVOKED(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_REVOKED, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_REVOKED(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_REVOKED, (buf), (len), (d2i_func), (free_func)) +# define PKCS12_decrypt_d2i_PKCS12_SAFEBAG(algor, d2i_func, free_func, pass, passlen, oct, seq) \ + SKM_PKCS12_decrypt_d2i(PKCS12_SAFEBAG, (algor), (d2i_func), (free_func), (pass), (passlen), (oct), (seq)) +# define PKCS12_decrypt_d2i_PKCS7(algor, d2i_func, free_func, pass, passlen, oct, seq) \ + SKM_PKCS12_decrypt_d2i(PKCS7, (algor), (d2i_func), (free_func), (pass), (passlen), (oct), (seq)) +# define lh_ADDED_OBJ_new() LHM_lh_new(ADDED_OBJ,added_obj) +# define lh_ADDED_OBJ_insert(lh,inst) LHM_lh_insert(ADDED_OBJ,lh,inst) +# define lh_ADDED_OBJ_retrieve(lh,inst) LHM_lh_retrieve(ADDED_OBJ,lh,inst) +# define lh_ADDED_OBJ_delete(lh,inst) LHM_lh_delete(ADDED_OBJ,lh,inst) +# define lh_ADDED_OBJ_doall(lh,fn) LHM_lh_doall(ADDED_OBJ,lh,fn) +# define lh_ADDED_OBJ_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(ADDED_OBJ,lh,fn,arg_type,arg) +# define lh_ADDED_OBJ_error(lh) LHM_lh_error(ADDED_OBJ,lh) +# define lh_ADDED_OBJ_num_items(lh) LHM_lh_num_items(ADDED_OBJ,lh) +# define lh_ADDED_OBJ_down_load(lh) LHM_lh_down_load(ADDED_OBJ,lh) +# define lh_ADDED_OBJ_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(ADDED_OBJ,lh,out) +# define lh_ADDED_OBJ_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(ADDED_OBJ,lh,out) +# define lh_ADDED_OBJ_stats_bio(lh,out) \ + LHM_lh_stats_bio(ADDED_OBJ,lh,out) +# define lh_ADDED_OBJ_free(lh) LHM_lh_free(ADDED_OBJ,lh) +# define lh_APP_INFO_new() LHM_lh_new(APP_INFO,app_info) +# define lh_APP_INFO_insert(lh,inst) LHM_lh_insert(APP_INFO,lh,inst) +# define lh_APP_INFO_retrieve(lh,inst) LHM_lh_retrieve(APP_INFO,lh,inst) +# define lh_APP_INFO_delete(lh,inst) LHM_lh_delete(APP_INFO,lh,inst) +# define lh_APP_INFO_doall(lh,fn) LHM_lh_doall(APP_INFO,lh,fn) +# define lh_APP_INFO_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(APP_INFO,lh,fn,arg_type,arg) +# define lh_APP_INFO_error(lh) LHM_lh_error(APP_INFO,lh) +# define lh_APP_INFO_num_items(lh) LHM_lh_num_items(APP_INFO,lh) +# define lh_APP_INFO_down_load(lh) LHM_lh_down_load(APP_INFO,lh) +# define lh_APP_INFO_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(APP_INFO,lh,out) +# define lh_APP_INFO_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(APP_INFO,lh,out) +# define lh_APP_INFO_stats_bio(lh,out) \ + LHM_lh_stats_bio(APP_INFO,lh,out) +# define lh_APP_INFO_free(lh) LHM_lh_free(APP_INFO,lh) +# define lh_CONF_VALUE_new() LHM_lh_new(CONF_VALUE,conf_value) +# define lh_CONF_VALUE_insert(lh,inst) LHM_lh_insert(CONF_VALUE,lh,inst) +# define lh_CONF_VALUE_retrieve(lh,inst) LHM_lh_retrieve(CONF_VALUE,lh,inst) +# define lh_CONF_VALUE_delete(lh,inst) LHM_lh_delete(CONF_VALUE,lh,inst) +# define lh_CONF_VALUE_doall(lh,fn) LHM_lh_doall(CONF_VALUE,lh,fn) +# define lh_CONF_VALUE_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(CONF_VALUE,lh,fn,arg_type,arg) +# define lh_CONF_VALUE_error(lh) LHM_lh_error(CONF_VALUE,lh) +# define lh_CONF_VALUE_num_items(lh) LHM_lh_num_items(CONF_VALUE,lh) +# define lh_CONF_VALUE_down_load(lh) LHM_lh_down_load(CONF_VALUE,lh) +# define lh_CONF_VALUE_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(CONF_VALUE,lh,out) +# define lh_CONF_VALUE_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(CONF_VALUE,lh,out) +# define lh_CONF_VALUE_stats_bio(lh,out) \ + LHM_lh_stats_bio(CONF_VALUE,lh,out) +# define lh_CONF_VALUE_free(lh) LHM_lh_free(CONF_VALUE,lh) +# define lh_ENGINE_PILE_new() LHM_lh_new(ENGINE_PILE,engine_pile) +# define lh_ENGINE_PILE_insert(lh,inst) LHM_lh_insert(ENGINE_PILE,lh,inst) +# define lh_ENGINE_PILE_retrieve(lh,inst) LHM_lh_retrieve(ENGINE_PILE,lh,inst) +# define lh_ENGINE_PILE_delete(lh,inst) LHM_lh_delete(ENGINE_PILE,lh,inst) +# define lh_ENGINE_PILE_doall(lh,fn) LHM_lh_doall(ENGINE_PILE,lh,fn) +# define lh_ENGINE_PILE_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(ENGINE_PILE,lh,fn,arg_type,arg) +# define lh_ENGINE_PILE_error(lh) LHM_lh_error(ENGINE_PILE,lh) +# define lh_ENGINE_PILE_num_items(lh) LHM_lh_num_items(ENGINE_PILE,lh) +# define lh_ENGINE_PILE_down_load(lh) LHM_lh_down_load(ENGINE_PILE,lh) +# define lh_ENGINE_PILE_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(ENGINE_PILE,lh,out) +# define lh_ENGINE_PILE_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(ENGINE_PILE,lh,out) +# define lh_ENGINE_PILE_stats_bio(lh,out) \ + LHM_lh_stats_bio(ENGINE_PILE,lh,out) +# define lh_ENGINE_PILE_free(lh) LHM_lh_free(ENGINE_PILE,lh) +# define lh_ERR_STATE_new() LHM_lh_new(ERR_STATE,err_state) +# define lh_ERR_STATE_insert(lh,inst) LHM_lh_insert(ERR_STATE,lh,inst) +# define lh_ERR_STATE_retrieve(lh,inst) LHM_lh_retrieve(ERR_STATE,lh,inst) +# define lh_ERR_STATE_delete(lh,inst) LHM_lh_delete(ERR_STATE,lh,inst) +# define lh_ERR_STATE_doall(lh,fn) LHM_lh_doall(ERR_STATE,lh,fn) +# define lh_ERR_STATE_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(ERR_STATE,lh,fn,arg_type,arg) +# define lh_ERR_STATE_error(lh) LHM_lh_error(ERR_STATE,lh) +# define lh_ERR_STATE_num_items(lh) LHM_lh_num_items(ERR_STATE,lh) +# define lh_ERR_STATE_down_load(lh) LHM_lh_down_load(ERR_STATE,lh) +# define lh_ERR_STATE_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(ERR_STATE,lh,out) +# define lh_ERR_STATE_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(ERR_STATE,lh,out) +# define lh_ERR_STATE_stats_bio(lh,out) \ + LHM_lh_stats_bio(ERR_STATE,lh,out) +# define lh_ERR_STATE_free(lh) LHM_lh_free(ERR_STATE,lh) +# define lh_ERR_STRING_DATA_new() LHM_lh_new(ERR_STRING_DATA,err_string_data) +# define lh_ERR_STRING_DATA_insert(lh,inst) LHM_lh_insert(ERR_STRING_DATA,lh,inst) +# define lh_ERR_STRING_DATA_retrieve(lh,inst) LHM_lh_retrieve(ERR_STRING_DATA,lh,inst) +# define lh_ERR_STRING_DATA_delete(lh,inst) LHM_lh_delete(ERR_STRING_DATA,lh,inst) +# define lh_ERR_STRING_DATA_doall(lh,fn) LHM_lh_doall(ERR_STRING_DATA,lh,fn) +# define lh_ERR_STRING_DATA_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(ERR_STRING_DATA,lh,fn,arg_type,arg) +# define lh_ERR_STRING_DATA_error(lh) LHM_lh_error(ERR_STRING_DATA,lh) +# define lh_ERR_STRING_DATA_num_items(lh) LHM_lh_num_items(ERR_STRING_DATA,lh) +# define lh_ERR_STRING_DATA_down_load(lh) LHM_lh_down_load(ERR_STRING_DATA,lh) +# define lh_ERR_STRING_DATA_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(ERR_STRING_DATA,lh,out) +# define lh_ERR_STRING_DATA_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(ERR_STRING_DATA,lh,out) +# define lh_ERR_STRING_DATA_stats_bio(lh,out) \ + LHM_lh_stats_bio(ERR_STRING_DATA,lh,out) +# define lh_ERR_STRING_DATA_free(lh) LHM_lh_free(ERR_STRING_DATA,lh) +# define lh_EX_CLASS_ITEM_new() LHM_lh_new(EX_CLASS_ITEM,ex_class_item) +# define lh_EX_CLASS_ITEM_insert(lh,inst) LHM_lh_insert(EX_CLASS_ITEM,lh,inst) +# define lh_EX_CLASS_ITEM_retrieve(lh,inst) LHM_lh_retrieve(EX_CLASS_ITEM,lh,inst) +# define lh_EX_CLASS_ITEM_delete(lh,inst) LHM_lh_delete(EX_CLASS_ITEM,lh,inst) +# define lh_EX_CLASS_ITEM_doall(lh,fn) LHM_lh_doall(EX_CLASS_ITEM,lh,fn) +# define lh_EX_CLASS_ITEM_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(EX_CLASS_ITEM,lh,fn,arg_type,arg) +# define lh_EX_CLASS_ITEM_error(lh) LHM_lh_error(EX_CLASS_ITEM,lh) +# define lh_EX_CLASS_ITEM_num_items(lh) LHM_lh_num_items(EX_CLASS_ITEM,lh) +# define lh_EX_CLASS_ITEM_down_load(lh) LHM_lh_down_load(EX_CLASS_ITEM,lh) +# define lh_EX_CLASS_ITEM_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(EX_CLASS_ITEM,lh,out) +# define lh_EX_CLASS_ITEM_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(EX_CLASS_ITEM,lh,out) +# define lh_EX_CLASS_ITEM_stats_bio(lh,out) \ + LHM_lh_stats_bio(EX_CLASS_ITEM,lh,out) +# define lh_EX_CLASS_ITEM_free(lh) LHM_lh_free(EX_CLASS_ITEM,lh) +# define lh_FUNCTION_new() LHM_lh_new(FUNCTION,function) +# define lh_FUNCTION_insert(lh,inst) LHM_lh_insert(FUNCTION,lh,inst) +# define lh_FUNCTION_retrieve(lh,inst) LHM_lh_retrieve(FUNCTION,lh,inst) +# define lh_FUNCTION_delete(lh,inst) LHM_lh_delete(FUNCTION,lh,inst) +# define lh_FUNCTION_doall(lh,fn) LHM_lh_doall(FUNCTION,lh,fn) +# define lh_FUNCTION_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(FUNCTION,lh,fn,arg_type,arg) +# define lh_FUNCTION_error(lh) LHM_lh_error(FUNCTION,lh) +# define lh_FUNCTION_num_items(lh) LHM_lh_num_items(FUNCTION,lh) +# define lh_FUNCTION_down_load(lh) LHM_lh_down_load(FUNCTION,lh) +# define lh_FUNCTION_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(FUNCTION,lh,out) +# define lh_FUNCTION_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(FUNCTION,lh,out) +# define lh_FUNCTION_stats_bio(lh,out) \ + LHM_lh_stats_bio(FUNCTION,lh,out) +# define lh_FUNCTION_free(lh) LHM_lh_free(FUNCTION,lh) +# define lh_MEM_new() LHM_lh_new(MEM,mem) +# define lh_MEM_insert(lh,inst) LHM_lh_insert(MEM,lh,inst) +# define lh_MEM_retrieve(lh,inst) LHM_lh_retrieve(MEM,lh,inst) +# define lh_MEM_delete(lh,inst) LHM_lh_delete(MEM,lh,inst) +# define lh_MEM_doall(lh,fn) LHM_lh_doall(MEM,lh,fn) +# define lh_MEM_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(MEM,lh,fn,arg_type,arg) +# define lh_MEM_error(lh) LHM_lh_error(MEM,lh) +# define lh_MEM_num_items(lh) LHM_lh_num_items(MEM,lh) +# define lh_MEM_down_load(lh) LHM_lh_down_load(MEM,lh) +# define lh_MEM_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(MEM,lh,out) +# define lh_MEM_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(MEM,lh,out) +# define lh_MEM_stats_bio(lh,out) \ + LHM_lh_stats_bio(MEM,lh,out) +# define lh_MEM_free(lh) LHM_lh_free(MEM,lh) +# define lh_OBJ_NAME_new() LHM_lh_new(OBJ_NAME,obj_name) +# define lh_OBJ_NAME_insert(lh,inst) LHM_lh_insert(OBJ_NAME,lh,inst) +# define lh_OBJ_NAME_retrieve(lh,inst) LHM_lh_retrieve(OBJ_NAME,lh,inst) +# define lh_OBJ_NAME_delete(lh,inst) LHM_lh_delete(OBJ_NAME,lh,inst) +# define lh_OBJ_NAME_doall(lh,fn) LHM_lh_doall(OBJ_NAME,lh,fn) +# define lh_OBJ_NAME_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(OBJ_NAME,lh,fn,arg_type,arg) +# define lh_OBJ_NAME_error(lh) LHM_lh_error(OBJ_NAME,lh) +# define lh_OBJ_NAME_num_items(lh) LHM_lh_num_items(OBJ_NAME,lh) +# define lh_OBJ_NAME_down_load(lh) LHM_lh_down_load(OBJ_NAME,lh) +# define lh_OBJ_NAME_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(OBJ_NAME,lh,out) +# define lh_OBJ_NAME_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(OBJ_NAME,lh,out) +# define lh_OBJ_NAME_stats_bio(lh,out) \ + LHM_lh_stats_bio(OBJ_NAME,lh,out) +# define lh_OBJ_NAME_free(lh) LHM_lh_free(OBJ_NAME,lh) +# define lh_OPENSSL_CSTRING_new() LHM_lh_new(OPENSSL_CSTRING,openssl_cstring) +# define lh_OPENSSL_CSTRING_insert(lh,inst) LHM_lh_insert(OPENSSL_CSTRING,lh,inst) +# define lh_OPENSSL_CSTRING_retrieve(lh,inst) LHM_lh_retrieve(OPENSSL_CSTRING,lh,inst) +# define lh_OPENSSL_CSTRING_delete(lh,inst) LHM_lh_delete(OPENSSL_CSTRING,lh,inst) +# define lh_OPENSSL_CSTRING_doall(lh,fn) LHM_lh_doall(OPENSSL_CSTRING,lh,fn) +# define lh_OPENSSL_CSTRING_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(OPENSSL_CSTRING,lh,fn,arg_type,arg) +# define lh_OPENSSL_CSTRING_error(lh) LHM_lh_error(OPENSSL_CSTRING,lh) +# define lh_OPENSSL_CSTRING_num_items(lh) LHM_lh_num_items(OPENSSL_CSTRING,lh) +# define lh_OPENSSL_CSTRING_down_load(lh) LHM_lh_down_load(OPENSSL_CSTRING,lh) +# define lh_OPENSSL_CSTRING_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(OPENSSL_CSTRING,lh,out) +# define lh_OPENSSL_CSTRING_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(OPENSSL_CSTRING,lh,out) +# define lh_OPENSSL_CSTRING_stats_bio(lh,out) \ + LHM_lh_stats_bio(OPENSSL_CSTRING,lh,out) +# define lh_OPENSSL_CSTRING_free(lh) LHM_lh_free(OPENSSL_CSTRING,lh) +# define lh_OPENSSL_STRING_new() LHM_lh_new(OPENSSL_STRING,openssl_string) +# define lh_OPENSSL_STRING_insert(lh,inst) LHM_lh_insert(OPENSSL_STRING,lh,inst) +# define lh_OPENSSL_STRING_retrieve(lh,inst) LHM_lh_retrieve(OPENSSL_STRING,lh,inst) +# define lh_OPENSSL_STRING_delete(lh,inst) LHM_lh_delete(OPENSSL_STRING,lh,inst) +# define lh_OPENSSL_STRING_doall(lh,fn) LHM_lh_doall(OPENSSL_STRING,lh,fn) +# define lh_OPENSSL_STRING_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(OPENSSL_STRING,lh,fn,arg_type,arg) +# define lh_OPENSSL_STRING_error(lh) LHM_lh_error(OPENSSL_STRING,lh) +# define lh_OPENSSL_STRING_num_items(lh) LHM_lh_num_items(OPENSSL_STRING,lh) +# define lh_OPENSSL_STRING_down_load(lh) LHM_lh_down_load(OPENSSL_STRING,lh) +# define lh_OPENSSL_STRING_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(OPENSSL_STRING,lh,out) +# define lh_OPENSSL_STRING_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(OPENSSL_STRING,lh,out) +# define lh_OPENSSL_STRING_stats_bio(lh,out) \ + LHM_lh_stats_bio(OPENSSL_STRING,lh,out) +# define lh_OPENSSL_STRING_free(lh) LHM_lh_free(OPENSSL_STRING,lh) +# define lh_SSL_SESSION_new() LHM_lh_new(SSL_SESSION,ssl_session) +# define lh_SSL_SESSION_insert(lh,inst) LHM_lh_insert(SSL_SESSION,lh,inst) +# define lh_SSL_SESSION_retrieve(lh,inst) LHM_lh_retrieve(SSL_SESSION,lh,inst) +# define lh_SSL_SESSION_delete(lh,inst) LHM_lh_delete(SSL_SESSION,lh,inst) +# define lh_SSL_SESSION_doall(lh,fn) LHM_lh_doall(SSL_SESSION,lh,fn) +# define lh_SSL_SESSION_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(SSL_SESSION,lh,fn,arg_type,arg) +# define lh_SSL_SESSION_error(lh) LHM_lh_error(SSL_SESSION,lh) +# define lh_SSL_SESSION_num_items(lh) LHM_lh_num_items(SSL_SESSION,lh) +# define lh_SSL_SESSION_down_load(lh) LHM_lh_down_load(SSL_SESSION,lh) +# define lh_SSL_SESSION_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(SSL_SESSION,lh,out) +# define lh_SSL_SESSION_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(SSL_SESSION,lh,out) +# define lh_SSL_SESSION_stats_bio(lh,out) \ + LHM_lh_stats_bio(SSL_SESSION,lh,out) +# define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh) +#ifdef __cplusplus +} +#endif +#endif /* !defined HEADER_SAFESTACK_H */ diff --git a/External/include/openssl/seed.h b/External/include/openssl/seed.h new file mode 100644 index 00000000..8cbf0d92 --- /dev/null +++ b/External/include/openssl/seed.h @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2007 KISA(Korea Information Security Agency). 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. Neither the name of author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS 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. + * + */ +/* ==================================================================== + * Copyright (c) 1998-2007 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_SEED_H +# define HEADER_SEED_H + +# include +# include +# include + +# ifdef OPENSSL_NO_SEED +# error SEED is disabled. +# endif + +/* look whether we need 'long' to get 32 bits */ +# ifdef AES_LONG +# ifndef SEED_LONG +# define SEED_LONG 1 +# endif +# endif + +# if !defined(NO_SYS_TYPES_H) +# include +# endif + +# define SEED_BLOCK_SIZE 16 +# define SEED_KEY_LENGTH 16 + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct seed_key_st { +# ifdef SEED_LONG + unsigned long data[32]; +# else + unsigned int data[32]; +# endif +} SEED_KEY_SCHEDULE; + +# ifdef OPENSSL_FIPS +void private_SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], + SEED_KEY_SCHEDULE *ks); +# endif +void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], + SEED_KEY_SCHEDULE *ks); + +void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], + unsigned char d[SEED_BLOCK_SIZE], + const SEED_KEY_SCHEDULE *ks); +void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], + unsigned char d[SEED_BLOCK_SIZE], + const SEED_KEY_SCHEDULE *ks); + +void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out, + const SEED_KEY_SCHEDULE *ks, int enc); +void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, + const SEED_KEY_SCHEDULE *ks, + unsigned char ivec[SEED_BLOCK_SIZE], int enc); +void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const SEED_KEY_SCHEDULE *ks, + unsigned char ivec[SEED_BLOCK_SIZE], int *num, + int enc); +void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const SEED_KEY_SCHEDULE *ks, + unsigned char ivec[SEED_BLOCK_SIZE], int *num); + +#ifdef __cplusplus +} +#endif + +#endif /* HEADER_SEED_H */ diff --git a/External/include/openssl/sha.h b/External/include/openssl/sha.h new file mode 100644 index 00000000..e5169e4f --- /dev/null +++ b/External/include/openssl/sha.h @@ -0,0 +1,214 @@ +/* crypto/sha/sha.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_SHA_H +# define HEADER_SHA_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# if defined(OPENSSL_NO_SHA) || (defined(OPENSSL_NO_SHA0) && defined(OPENSSL_NO_SHA1)) +# error SHA is disabled. +# endif + +# if defined(OPENSSL_FIPS) +# define FIPS_SHA_SIZE_T size_t +# endif + +/*- + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then ! + * ! SHA_LONG_LOG2 has to be defined along. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ + +# if defined(__LP32__) +# define SHA_LONG unsigned long +# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) +# define SHA_LONG unsigned long +# define SHA_LONG_LOG2 3 +# else +# define SHA_LONG unsigned int +# endif + +# define SHA_LBLOCK 16 +# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a + * contiguous array of 32 bit wide + * big-endian values. */ +# define SHA_LAST_BLOCK (SHA_CBLOCK-8) +# define SHA_DIGEST_LENGTH 20 + +typedef struct SHAstate_st { + SHA_LONG h0, h1, h2, h3, h4; + SHA_LONG Nl, Nh; + SHA_LONG data[SHA_LBLOCK]; + unsigned int num; +} SHA_CTX; + +# ifndef OPENSSL_NO_SHA0 +# ifdef OPENSSL_FIPS +int private_SHA_Init(SHA_CTX *c); +# endif +int SHA_Init(SHA_CTX *c); +int SHA_Update(SHA_CTX *c, const void *data, size_t len); +int SHA_Final(unsigned char *md, SHA_CTX *c); +unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md); +void SHA_Transform(SHA_CTX *c, const unsigned char *data); +# endif +# ifndef OPENSSL_NO_SHA1 +# ifdef OPENSSL_FIPS +int private_SHA1_Init(SHA_CTX *c); +# endif +int SHA1_Init(SHA_CTX *c); +int SHA1_Update(SHA_CTX *c, const void *data, size_t len); +int SHA1_Final(unsigned char *md, SHA_CTX *c); +unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); +void SHA1_Transform(SHA_CTX *c, const unsigned char *data); +# endif + +# define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a + * contiguous array of 32 bit wide + * big-endian values. */ +# define SHA224_DIGEST_LENGTH 28 +# define SHA256_DIGEST_LENGTH 32 + +typedef struct SHA256state_st { + SHA_LONG h[8]; + SHA_LONG Nl, Nh; + SHA_LONG data[SHA_LBLOCK]; + unsigned int num, md_len; +} SHA256_CTX; + +# ifndef OPENSSL_NO_SHA256 +# ifdef OPENSSL_FIPS +int private_SHA224_Init(SHA256_CTX *c); +int private_SHA256_Init(SHA256_CTX *c); +# endif +int SHA224_Init(SHA256_CTX *c); +int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); +int SHA224_Final(unsigned char *md, SHA256_CTX *c); +unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); +int SHA256_Init(SHA256_CTX *c); +int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); +int SHA256_Final(unsigned char *md, SHA256_CTX *c); +unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); +void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); +# endif + +# define SHA384_DIGEST_LENGTH 48 +# define SHA512_DIGEST_LENGTH 64 + +# ifndef OPENSSL_NO_SHA512 +/* + * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 + * being exactly 64-bit wide. See Implementation Notes in sha512.c + * for further details. + */ +/* + * SHA-512 treats input data as a + * contiguous array of 64 bit + * wide big-endian values. + */ +# define SHA512_CBLOCK (SHA_LBLOCK*8) +# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) +# define SHA_LONG64 unsigned __int64 +# define U64(C) C##UI64 +# elif defined(__arch64__) +# define SHA_LONG64 unsigned long +# define U64(C) C##UL +# else +# define SHA_LONG64 unsigned long long +# define U64(C) C##ULL +# endif + +typedef struct SHA512state_st { + SHA_LONG64 h[8]; + SHA_LONG64 Nl, Nh; + union { + SHA_LONG64 d[SHA_LBLOCK]; + unsigned char p[SHA512_CBLOCK]; + } u; + unsigned int num, md_len; +} SHA512_CTX; +# endif + +# ifndef OPENSSL_NO_SHA512 +# ifdef OPENSSL_FIPS +int private_SHA384_Init(SHA512_CTX *c); +int private_SHA512_Init(SHA512_CTX *c); +# endif +int SHA384_Init(SHA512_CTX *c); +int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); +int SHA384_Final(unsigned char *md, SHA512_CTX *c); +unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); +int SHA512_Init(SHA512_CTX *c); +int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); +int SHA512_Final(unsigned char *md, SHA512_CTX *c); +unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); +void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); +# endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/srp.h b/External/include/openssl/srp.h new file mode 100644 index 00000000..028892a1 --- /dev/null +++ b/External/include/openssl/srp.h @@ -0,0 +1,179 @@ +/* crypto/srp/srp.h */ +/* + * Written by Christophe Renou (christophe.renou@edelweb.fr) with the + * precious help of Peter Sylvester (peter.sylvester@edelweb.fr) for the + * EdelKey project and contributed to the OpenSSL project 2004. + */ +/* ==================================================================== + * Copyright (c) 2004 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +#ifndef __SRP_H__ +# define __SRP_H__ + +# ifndef OPENSSL_NO_SRP + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# include +# include +# include + +typedef struct SRP_gN_cache_st { + char *b64_bn; + BIGNUM *bn; +} SRP_gN_cache; + + +DECLARE_STACK_OF(SRP_gN_cache) + +typedef struct SRP_user_pwd_st { + /* Owned by us. */ + char *id; + BIGNUM *s; + BIGNUM *v; + /* Not owned by us. */ + const BIGNUM *g; + const BIGNUM *N; + /* Owned by us. */ + char *info; +} SRP_user_pwd; + +DECLARE_STACK_OF(SRP_user_pwd) + +void SRP_user_pwd_free(SRP_user_pwd *user_pwd); + +typedef struct SRP_VBASE_st { + STACK_OF(SRP_user_pwd) *users_pwd; + STACK_OF(SRP_gN_cache) *gN_cache; +/* to simulate a user */ + char *seed_key; + BIGNUM *default_g; + BIGNUM *default_N; +} SRP_VBASE; + +/* + * Structure interne pour retenir les couples N et g + */ +typedef struct SRP_gN_st { + char *id; + BIGNUM *g; + BIGNUM *N; +} SRP_gN; + +DECLARE_STACK_OF(SRP_gN) + +SRP_VBASE *SRP_VBASE_new(char *seed_key); +int SRP_VBASE_free(SRP_VBASE *vb); +int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); + +/* This method ignores the configured seed and fails for an unknown user. */ +SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username); +/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ +SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); + +char *SRP_create_verifier(const char *user, const char *pass, char **salt, + char **verifier, const char *N, const char *g); +int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, + BIGNUM **verifier, BIGNUM *N, BIGNUM *g); + +# define SRP_NO_ERROR 0 +# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 +# define SRP_ERR_VBASE_BN_LIB 2 +# define SRP_ERR_OPEN_FILE 3 +# define SRP_ERR_MEMORY 4 + +# define DB_srptype 0 +# define DB_srpverifier 1 +# define DB_srpsalt 2 +# define DB_srpid 3 +# define DB_srpgN 4 +# define DB_srpinfo 5 +# undef DB_NUMBER +# define DB_NUMBER 6 + +# define DB_SRP_INDEX 'I' +# define DB_SRP_VALID 'V' +# define DB_SRP_REVOKED 'R' +# define DB_SRP_MODIF 'v' + +/* see srp.c */ +char *SRP_check_known_gN_param(BIGNUM *g, BIGNUM *N); +SRP_gN *SRP_get_default_gN(const char *id); + +/* server side .... */ +BIGNUM *SRP_Calc_server_key(BIGNUM *A, BIGNUM *v, BIGNUM *u, BIGNUM *b, + BIGNUM *N); +BIGNUM *SRP_Calc_B(BIGNUM *b, BIGNUM *N, BIGNUM *g, BIGNUM *v); +int SRP_Verify_A_mod_N(BIGNUM *A, BIGNUM *N); +BIGNUM *SRP_Calc_u(BIGNUM *A, BIGNUM *B, BIGNUM *N); + +/* client side .... */ +BIGNUM *SRP_Calc_x(BIGNUM *s, const char *user, const char *pass); +BIGNUM *SRP_Calc_A(BIGNUM *a, BIGNUM *N, BIGNUM *g); +BIGNUM *SRP_Calc_client_key(BIGNUM *N, BIGNUM *B, BIGNUM *g, BIGNUM *x, + BIGNUM *a, BIGNUM *u); +int SRP_Verify_B_mod_N(BIGNUM *B, BIGNUM *N); + +# define SRP_MINIMAL_N 1024 + +#ifdef __cplusplus +} +#endif + +# endif +#endif diff --git a/External/include/openssl/srtp.h b/External/include/openssl/srtp.h new file mode 100644 index 00000000..2279c32b --- /dev/null +++ b/External/include/openssl/srtp.h @@ -0,0 +1,147 @@ +/* ssl/srtp.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* + * DTLS code by Eric Rescorla + * + * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. + */ + +#ifndef HEADER_D1_SRTP_H +# define HEADER_D1_SRTP_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define SRTP_AES128_CM_SHA1_80 0x0001 +# define SRTP_AES128_CM_SHA1_32 0x0002 +# define SRTP_AES128_F8_SHA1_80 0x0003 +# define SRTP_AES128_F8_SHA1_32 0x0004 +# define SRTP_NULL_SHA1_80 0x0005 +# define SRTP_NULL_SHA1_32 0x0006 + +# ifndef OPENSSL_NO_SRTP + +int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); +int SSL_set_tlsext_use_srtp(SSL *ctx, const char *profiles); + +STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); +SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); + +# endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/ssl.h b/External/include/openssl/ssl.h new file mode 100644 index 00000000..5ef56faa --- /dev/null +++ b/External/include/openssl/ssl.h @@ -0,0 +1,3169 @@ +/* ssl/ssl.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2007 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * ECC cipher suite support in OpenSSL originally developed by + * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. + */ +/* ==================================================================== + * Copyright 2005 Nokia. All rights reserved. + * + * The portions of the attached software ("Contribution") is developed by + * Nokia Corporation and is licensed pursuant to the OpenSSL open source + * license. + * + * The Contribution, originally written by Mika Kousa and Pasi Eronen of + * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites + * support (see RFC 4279) to OpenSSL. + * + * No patent licenses or other rights except those expressly stated in + * the OpenSSL open source license shall be deemed granted or received + * expressly, by implication, estoppel, or otherwise. + * + * No assurances are provided by Nokia that the Contribution does not + * infringe the patent or other intellectual property rights of any third + * party or that the license provides you with all the necessary rights + * to make use of the Contribution. + * + * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN + * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA + * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY + * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR + * OTHERWISE. + */ + +#ifndef HEADER_SSL_H +# define HEADER_SSL_H + +# include + +# ifndef OPENSSL_NO_COMP +# include +# endif +# ifndef OPENSSL_NO_BIO +# include +# endif +# ifndef OPENSSL_NO_DEPRECATED +# ifndef OPENSSL_NO_X509 +# include +# endif +# include +# include +# include +# endif +# include +# include + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SSLeay version number for ASN.1 encoding of the session information */ +/*- + * Version 0 - initial version + * Version 1 - added the optional peer certificate + */ +# define SSL_SESSION_ASN1_VERSION 0x0001 + +/* text strings for the ciphers */ +# define SSL_TXT_NULL_WITH_MD5 SSL2_TXT_NULL_WITH_MD5 +# define SSL_TXT_RC4_128_WITH_MD5 SSL2_TXT_RC4_128_WITH_MD5 +# define SSL_TXT_RC4_128_EXPORT40_WITH_MD5 SSL2_TXT_RC4_128_EXPORT40_WITH_MD5 +# define SSL_TXT_RC2_128_CBC_WITH_MD5 SSL2_TXT_RC2_128_CBC_WITH_MD5 +# define SSL_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 +# define SSL_TXT_IDEA_128_CBC_WITH_MD5 SSL2_TXT_IDEA_128_CBC_WITH_MD5 +# define SSL_TXT_DES_64_CBC_WITH_MD5 SSL2_TXT_DES_64_CBC_WITH_MD5 +# define SSL_TXT_DES_64_CBC_WITH_SHA SSL2_TXT_DES_64_CBC_WITH_SHA +# define SSL_TXT_DES_192_EDE3_CBC_WITH_MD5 SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 +# define SSL_TXT_DES_192_EDE3_CBC_WITH_SHA SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA + +/* + * VRS Additional Kerberos5 entries + */ +# define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA +# define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA +# define SSL_TXT_KRB5_RC4_128_SHA SSL3_TXT_KRB5_RC4_128_SHA +# define SSL_TXT_KRB5_IDEA_128_CBC_SHA SSL3_TXT_KRB5_IDEA_128_CBC_SHA +# define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5 +# define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5 +# define SSL_TXT_KRB5_RC4_128_MD5 SSL3_TXT_KRB5_RC4_128_MD5 +# define SSL_TXT_KRB5_IDEA_128_CBC_MD5 SSL3_TXT_KRB5_IDEA_128_CBC_MD5 + +# define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA +# define SSL_TXT_KRB5_RC2_40_CBC_SHA SSL3_TXT_KRB5_RC2_40_CBC_SHA +# define SSL_TXT_KRB5_RC4_40_SHA SSL3_TXT_KRB5_RC4_40_SHA +# define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5 +# define SSL_TXT_KRB5_RC2_40_CBC_MD5 SSL3_TXT_KRB5_RC2_40_CBC_MD5 +# define SSL_TXT_KRB5_RC4_40_MD5 SSL3_TXT_KRB5_RC4_40_MD5 + +# define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA +# define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5 +# define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA +# define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5 +# define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA +# define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5 +# define SSL_MAX_KRB5_PRINCIPAL_LENGTH 256 + +# define SSL_MAX_SSL_SESSION_ID_LENGTH 32 +# define SSL_MAX_SID_CTX_LENGTH 32 + +# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) +# define SSL_MAX_KEY_ARG_LENGTH 8 +# define SSL_MAX_MASTER_KEY_LENGTH 48 + +/* These are used to specify which ciphers to use and not to use */ + +# define SSL_TXT_EXP40 "EXPORT40" +# define SSL_TXT_EXP56 "EXPORT56" +# define SSL_TXT_LOW "LOW" +# define SSL_TXT_MEDIUM "MEDIUM" +# define SSL_TXT_HIGH "HIGH" +# define SSL_TXT_FIPS "FIPS" + +# define SSL_TXT_kFZA "kFZA"/* unused! */ +# define SSL_TXT_aFZA "aFZA"/* unused! */ +# define SSL_TXT_eFZA "eFZA"/* unused! */ +# define SSL_TXT_FZA "FZA"/* unused! */ + +# define SSL_TXT_aNULL "aNULL" +# define SSL_TXT_eNULL "eNULL" +# define SSL_TXT_NULL "NULL" + +# define SSL_TXT_kRSA "kRSA" +# define SSL_TXT_kDHr "kDHr" +# define SSL_TXT_kDHd "kDHd" +# define SSL_TXT_kDH "kDH" +# define SSL_TXT_kEDH "kEDH" +# define SSL_TXT_kDHE "kDHE"/* alias for kEDH */ +# define SSL_TXT_kKRB5 "kKRB5" +# define SSL_TXT_kECDHr "kECDHr" +# define SSL_TXT_kECDHe "kECDHe" +# define SSL_TXT_kECDH "kECDH" +# define SSL_TXT_kEECDH "kEECDH" +# define SSL_TXT_kECDHE "kECDHE"/* alias for kEECDH */ +# define SSL_TXT_kPSK "kPSK" +# define SSL_TXT_kGOST "kGOST" +# define SSL_TXT_kSRP "kSRP" + +# define SSL_TXT_aRSA "aRSA" +# define SSL_TXT_aDSS "aDSS" +# define SSL_TXT_aDH "aDH" +# define SSL_TXT_aECDH "aECDH" +# define SSL_TXT_aKRB5 "aKRB5" +# define SSL_TXT_aECDSA "aECDSA" +# define SSL_TXT_aPSK "aPSK" +# define SSL_TXT_aGOST94 "aGOST94" +# define SSL_TXT_aGOST01 "aGOST01" +# define SSL_TXT_aGOST "aGOST" +# define SSL_TXT_aSRP "aSRP" + +# define SSL_TXT_DSS "DSS" +# define SSL_TXT_DH "DH" +# define SSL_TXT_EDH "EDH"/* same as "kEDH:-ADH" */ +# define SSL_TXT_DHE "DHE"/* alias for EDH */ +# define SSL_TXT_ADH "ADH" +# define SSL_TXT_RSA "RSA" +# define SSL_TXT_ECDH "ECDH" +# define SSL_TXT_EECDH "EECDH"/* same as "kEECDH:-AECDH" */ +# define SSL_TXT_ECDHE "ECDHE"/* alias for ECDHE" */ +# define SSL_TXT_AECDH "AECDH" +# define SSL_TXT_ECDSA "ECDSA" +# define SSL_TXT_KRB5 "KRB5" +# define SSL_TXT_PSK "PSK" +# define SSL_TXT_SRP "SRP" + +# define SSL_TXT_DES "DES" +# define SSL_TXT_3DES "3DES" +# define SSL_TXT_RC4 "RC4" +# define SSL_TXT_RC2 "RC2" +# define SSL_TXT_IDEA "IDEA" +# define SSL_TXT_SEED "SEED" +# define SSL_TXT_AES128 "AES128" +# define SSL_TXT_AES256 "AES256" +# define SSL_TXT_AES "AES" +# define SSL_TXT_AES_GCM "AESGCM" +# define SSL_TXT_CAMELLIA128 "CAMELLIA128" +# define SSL_TXT_CAMELLIA256 "CAMELLIA256" +# define SSL_TXT_CAMELLIA "CAMELLIA" + +# define SSL_TXT_MD5 "MD5" +# define SSL_TXT_SHA1 "SHA1" +# define SSL_TXT_SHA "SHA"/* same as "SHA1" */ +# define SSL_TXT_GOST94 "GOST94" +# define SSL_TXT_GOST89MAC "GOST89MAC" +# define SSL_TXT_SHA256 "SHA256" +# define SSL_TXT_SHA384 "SHA384" + +# define SSL_TXT_SSLV2 "SSLv2" +# define SSL_TXT_SSLV3 "SSLv3" +# define SSL_TXT_TLSV1 "TLSv1" +# define SSL_TXT_TLSV1_1 "TLSv1.1" +# define SSL_TXT_TLSV1_2 "TLSv1.2" + +# define SSL_TXT_EXP "EXP" +# define SSL_TXT_EXPORT "EXPORT" + +# define SSL_TXT_ALL "ALL" + +/*- + * COMPLEMENTOF* definitions. These identifiers are used to (de-select) + * ciphers normally not being used. + * Example: "RC4" will activate all ciphers using RC4 including ciphers + * without authentication, which would normally disabled by DEFAULT (due + * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" + * will make sure that it is also disabled in the specific selection. + * COMPLEMENTOF* identifiers are portable between version, as adjustments + * to the default cipher setup will also be included here. + * + * COMPLEMENTOFDEFAULT does not experience the same special treatment that + * DEFAULT gets, as only selection is being done and no sorting as needed + * for DEFAULT. + */ +# define SSL_TXT_CMPALL "COMPLEMENTOFALL" +# define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" + +/* + * The following cipher list is used by default. It also is substituted when + * an application-defined cipher list string starts with 'DEFAULT'. + */ +# define SSL_DEFAULT_CIPHER_LIST "ALL:!EXPORT:!LOW:!aNULL:!eNULL:!SSLv2" +/* + * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always + * starts with a reasonable order, and all we have to do for DEFAULT is + * throwing out anonymous and unencrypted ciphersuites! (The latter are not + * actually enabled by ALL, but "ALL:RSA" would enable some of them.) + */ + +/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ +# define SSL_SENT_SHUTDOWN 1 +# define SSL_RECEIVED_SHUTDOWN 2 + +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +# if (defined(OPENSSL_NO_RSA) || defined(OPENSSL_NO_MD5)) && !defined(OPENSSL_NO_SSL2) +# define OPENSSL_NO_SSL2 +# endif + +# define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 +# define SSL_FILETYPE_PEM X509_FILETYPE_PEM + +/* + * This is needed to stop compilers complaining about the 'struct ssl_st *' + * function parameters used to prototype callbacks in SSL_CTX. + */ +typedef struct ssl_st *ssl_crock_st; +typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; +typedef struct ssl_method_st SSL_METHOD; +typedef struct ssl_cipher_st SSL_CIPHER; +typedef struct ssl_session_st SSL_SESSION; +typedef struct tls_sigalgs_st TLS_SIGALGS; +typedef struct ssl_conf_ctx_st SSL_CONF_CTX; + +DECLARE_STACK_OF(SSL_CIPHER) + +/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ +typedef struct srtp_protection_profile_st { + const char *name; + unsigned long id; +} SRTP_PROTECTION_PROFILE; + +DECLARE_STACK_OF(SRTP_PROTECTION_PROFILE) + +typedef int (*tls_session_ticket_ext_cb_fn) (SSL *s, + const unsigned char *data, + int len, void *arg); +typedef int (*tls_session_secret_cb_fn) (SSL *s, void *secret, + int *secret_len, + STACK_OF(SSL_CIPHER) *peer_ciphers, + SSL_CIPHER **cipher, void *arg); + +# ifndef OPENSSL_NO_TLSEXT + +/* Typedefs for handling custom extensions */ + +typedef int (*custom_ext_add_cb) (SSL *s, unsigned int ext_type, + const unsigned char **out, + size_t *outlen, int *al, void *add_arg); + +typedef void (*custom_ext_free_cb) (SSL *s, unsigned int ext_type, + const unsigned char *out, void *add_arg); + +typedef int (*custom_ext_parse_cb) (SSL *s, unsigned int ext_type, + const unsigned char *in, + size_t inlen, int *al, void *parse_arg); + +# endif + +# ifndef OPENSSL_NO_SSL_INTERN + +/* used to hold info on the particular ciphers used */ +struct ssl_cipher_st { + int valid; + const char *name; /* text name */ + unsigned long id; /* id, 4 bytes, first is version */ + /* + * changed in 0.9.9: these four used to be portions of a single value + * 'algorithms' + */ + unsigned long algorithm_mkey; /* key exchange algorithm */ + unsigned long algorithm_auth; /* server authentication */ + unsigned long algorithm_enc; /* symmetric encryption */ + unsigned long algorithm_mac; /* symmetric authentication */ + unsigned long algorithm_ssl; /* (major) protocol version */ + unsigned long algo_strength; /* strength and export flags */ + unsigned long algorithm2; /* Extra flags */ + int strength_bits; /* Number of bits really used */ + int alg_bits; /* Number of bits for algorithm */ +}; + +/* Used to hold functions for SSLv2 or SSLv3/TLSv1 functions */ +struct ssl_method_st { + int version; + int (*ssl_new) (SSL *s); + void (*ssl_clear) (SSL *s); + void (*ssl_free) (SSL *s); + int (*ssl_accept) (SSL *s); + int (*ssl_connect) (SSL *s); + int (*ssl_read) (SSL *s, void *buf, int len); + int (*ssl_peek) (SSL *s, void *buf, int len); + int (*ssl_write) (SSL *s, const void *buf, int len); + int (*ssl_shutdown) (SSL *s); + int (*ssl_renegotiate) (SSL *s); + int (*ssl_renegotiate_check) (SSL *s); + long (*ssl_get_message) (SSL *s, int st1, int stn, int mt, long + max, int *ok); + int (*ssl_read_bytes) (SSL *s, int type, unsigned char *buf, int len, + int peek); + int (*ssl_write_bytes) (SSL *s, int type, const void *buf_, int len); + int (*ssl_dispatch_alert) (SSL *s); + long (*ssl_ctrl) (SSL *s, int cmd, long larg, void *parg); + long (*ssl_ctx_ctrl) (SSL_CTX *ctx, int cmd, long larg, void *parg); + const SSL_CIPHER *(*get_cipher_by_char) (const unsigned char *ptr); + int (*put_cipher_by_char) (const SSL_CIPHER *cipher, unsigned char *ptr); + int (*ssl_pending) (const SSL *s); + int (*num_ciphers) (void); + const SSL_CIPHER *(*get_cipher) (unsigned ncipher); + const struct ssl_method_st *(*get_ssl_method) (int version); + long (*get_timeout) (void); + struct ssl3_enc_method *ssl3_enc; /* Extra SSLv3/TLS stuff */ + int (*ssl_version) (void); + long (*ssl_callback_ctrl) (SSL *s, int cb_id, void (*fp) (void)); + long (*ssl_ctx_callback_ctrl) (SSL_CTX *s, int cb_id, void (*fp) (void)); +}; + +/*- + * Lets make this into an ASN.1 type structure as follows + * SSL_SESSION_ID ::= SEQUENCE { + * version INTEGER, -- structure version number + * SSLversion INTEGER, -- SSL version number + * Cipher OCTET STRING, -- the 3 byte cipher ID + * Session_ID OCTET STRING, -- the Session ID + * Master_key OCTET STRING, -- the master key + * KRB5_principal OCTET STRING -- optional Kerberos principal + * Key_Arg [ 0 ] IMPLICIT OCTET STRING, -- the optional Key argument + * Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time + * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds + * Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate + * Session_ID_context [ 4 ] EXPLICIT OCTET STRING, -- the Session ID context + * Verify_result [ 5 ] EXPLICIT INTEGER, -- X509_V_... code for `Peer' + * HostName [ 6 ] EXPLICIT OCTET STRING, -- optional HostName from servername TLS extension + * PSK_identity_hint [ 7 ] EXPLICIT OCTET STRING, -- optional PSK identity hint + * PSK_identity [ 8 ] EXPLICIT OCTET STRING, -- optional PSK identity + * Ticket_lifetime_hint [9] EXPLICIT INTEGER, -- server's lifetime hint for session ticket + * Ticket [10] EXPLICIT OCTET STRING, -- session ticket (clients only) + * Compression_meth [11] EXPLICIT OCTET STRING, -- optional compression method + * SRP_username [ 12 ] EXPLICIT OCTET STRING -- optional SRP username + * } + * Look in ssl/ssl_asn1.c for more details + * I'm using EXPLICIT tags so I can read the damn things using asn1parse :-). + */ +struct ssl_session_st { + int ssl_version; /* what ssl version session info is being + * kept in here? */ + /* only really used in SSLv2 */ + unsigned int key_arg_length; + unsigned char key_arg[SSL_MAX_KEY_ARG_LENGTH]; + int master_key_length; + unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH]; + /* session_id - valid? */ + unsigned int session_id_length; + unsigned char session_id[SSL_MAX_SSL_SESSION_ID_LENGTH]; + /* + * this is used to determine whether the session is being reused in the + * appropriate context. It is up to the application to set this, via + * SSL_new + */ + unsigned int sid_ctx_length; + unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; +# ifndef OPENSSL_NO_KRB5 + unsigned int krb5_client_princ_len; + unsigned char krb5_client_princ[SSL_MAX_KRB5_PRINCIPAL_LENGTH]; +# endif /* OPENSSL_NO_KRB5 */ +# ifndef OPENSSL_NO_PSK + char *psk_identity_hint; + char *psk_identity; +# endif + /* + * Used to indicate that session resumption is not allowed. Applications + * can also set this bit for a new session via not_resumable_session_cb + * to disable session caching and tickets. + */ + int not_resumable; + /* The cert is the certificate used to establish this connection */ + struct sess_cert_st /* SESS_CERT */ *sess_cert; + /* + * This is the cert for the other end. On clients, it will be the same as + * sess_cert->peer_key->x509 (the latter is not enough as sess_cert is + * not retained in the external representation of sessions, see + * ssl_asn1.c). + */ + X509 *peer; + /* + * when app_verify_callback accepts a session where the peer's + * certificate is not ok, we must remember the error for session reuse: + */ + long verify_result; /* only for servers */ + int references; + long timeout; + long time; + unsigned int compress_meth; /* Need to lookup the method */ + const SSL_CIPHER *cipher; + unsigned long cipher_id; /* when ASN.1 loaded, this needs to be used + * to load the 'cipher' structure */ + STACK_OF(SSL_CIPHER) *ciphers; /* shared ciphers? */ + CRYPTO_EX_DATA ex_data; /* application specific data */ + /* + * These are used to make removal of session-ids more efficient and to + * implement a maximum cache size. + */ + struct ssl_session_st *prev, *next; +# ifndef OPENSSL_NO_TLSEXT + char *tlsext_hostname; +# ifndef OPENSSL_NO_EC + size_t tlsext_ecpointformatlist_length; + unsigned char *tlsext_ecpointformatlist; /* peer's list */ + size_t tlsext_ellipticcurvelist_length; + unsigned char *tlsext_ellipticcurvelist; /* peer's list */ +# endif /* OPENSSL_NO_EC */ + /* RFC4507 info */ + unsigned char *tlsext_tick; /* Session ticket */ + size_t tlsext_ticklen; /* Session ticket length */ + long tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */ +# endif +# ifndef OPENSSL_NO_SRP + char *srp_username; +# endif +}; + +# endif + +# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x00000001L +# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x00000002L +/* Allow initial connection to servers that don't support RI */ +# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004L +# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x00000008L +# define SSL_OP_TLSEXT_PADDING 0x00000010L +# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x00000020L +# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040L +# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L +# define SSL_OP_TLS_D5_BUG 0x00000100L +# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L + +/* Hasn't done anything since OpenSSL 0.9.7h, retained for compatibility */ +# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 +/* Refers to ancient SSLREF and SSLv2, retained for compatibility */ +# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 + +/* + * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added in + * OpenSSL 0.9.6d. Usually (depending on the application protocol) the + * workaround is not needed. Unfortunately some broken SSL/TLS + * implementations cannot handle it at all, which is why we include it in + * SSL_OP_ALL. + */ +/* added in 0.9.6e */ +# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800L + +/* + * SSL_OP_ALL: various bug workarounds that should be rather harmless. This + * used to be 0x000FFFFFL before 0.9.7. + */ +# define SSL_OP_ALL 0x80000BFFL + +/* DTLS options */ +# define SSL_OP_NO_QUERY_MTU 0x00001000L +/* Turn on Cookie Exchange (on relevant for servers) */ +# define SSL_OP_COOKIE_EXCHANGE 0x00002000L +/* Don't use RFC4507 ticket extension */ +# define SSL_OP_NO_TICKET 0x00004000L +/* Use Cisco's "speshul" version of DTLS_BAD_VER (as client) */ +# define SSL_OP_CISCO_ANYCONNECT 0x00008000L + +/* As server, disallow session resumption on renegotiation */ +# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000L +/* Don't use compression even if supported */ +# define SSL_OP_NO_COMPRESSION 0x00020000L +/* Permit unsafe legacy renegotiation */ +# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000L +/* If set, always create a new key when using tmp_ecdh parameters */ +# define SSL_OP_SINGLE_ECDH_USE 0x00080000L +/* Does nothing: retained for compatibility */ +# define SSL_OP_SINGLE_DH_USE 0x00100000L +/* Does nothing: retained for compatibiity */ +# define SSL_OP_EPHEMERAL_RSA 0x0 +/* + * Set on servers to choose the cipher according to the server's preferences + */ +# define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000L +/* + * If set, a server will allow a client to issue a SSLv3.0 version number as + * latest version supported in the premaster secret, even when TLSv1.0 + * (version 3.1) was announced in the client hello. Normally this is + * forbidden to prevent version rollback attacks. + */ +# define SSL_OP_TLS_ROLLBACK_BUG 0x00800000L + +# define SSL_OP_NO_SSLv2 0x01000000L +# define SSL_OP_NO_SSLv3 0x02000000L +# define SSL_OP_NO_TLSv1 0x04000000L +# define SSL_OP_NO_TLSv1_2 0x08000000L +# define SSL_OP_NO_TLSv1_1 0x10000000L + +# define SSL_OP_NO_DTLSv1 0x04000000L +# define SSL_OP_NO_DTLSv1_2 0x08000000L + +# define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv2|SSL_OP_NO_SSLv3|\ + SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2) + +/* + * These next two were never actually used for anything since SSLeay zap so + * we have some more flags. + */ +/* + * The next flag deliberately changes the ciphertest, this is a check for the + * PKCS#1 attack + */ +# define SSL_OP_PKCS1_CHECK_1 0x0 +# define SSL_OP_PKCS1_CHECK_2 0x0 + +# define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L +# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x40000000L +/* + * Make server add server-hello extension from early version of cryptopro + * draft, when GOST ciphersuite is negotiated. Required for interoperability + * with CryptoPro CSP 3.x + */ +# define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000L + +/* + * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success + * when just a single record has been written): + */ +# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001L +/* + * Make it possible to retry SSL_write() with changed buffer location (buffer + * contents must stay the same!); this is not the default to avoid the + * misconception that non-blocking SSL_write() behaves like non-blocking + * write(): + */ +# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002L +/* + * Never bother the application with retries if the transport is blocking: + */ +# define SSL_MODE_AUTO_RETRY 0x00000004L +/* Don't attempt to automatically build certificate chain */ +# define SSL_MODE_NO_AUTO_CHAIN 0x00000008L +/* + * Save RAM by releasing read and write buffers when they're empty. (SSL3 and + * TLS only.) "Released" buffers are put onto a free-list in the context or + * just freed (depending on the context's setting for freelist_max_len). + */ +# define SSL_MODE_RELEASE_BUFFERS 0x00000010L +/* + * Send the current time in the Random fields of the ClientHello and + * ServerHello records for compatibility with hypothetical implementations + * that require it. + */ +# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020L +# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040L +/* + * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications + * that reconnect with a downgraded protocol version; see + * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your + * application attempts a normal handshake. Only use this in explicit + * fallback retries, following the guidance in + * draft-ietf-tls-downgrade-scsv-00. + */ +# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080L + +/* Cert related flags */ +/* + * Many implementations ignore some aspects of the TLS standards such as + * enforcing certifcate chain algorithms. When this is set we enforce them. + */ +# define SSL_CERT_FLAG_TLS_STRICT 0x00000001L + +/* Suite B modes, takes same values as certificate verify flags */ +# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 +/* Suite B 192 bit only mode */ +# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 +/* Suite B 128 bit mode allowing 192 bit algorithms */ +# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 + +/* Perform all sorts of protocol violations for testing purposes */ +# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 + +/* Flags for building certificate chains */ +/* Treat any existing certificates as untrusted CAs */ +# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 +/* Don't include root CA in chain */ +# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 +/* Just check certificates already there */ +# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 +/* Ignore verification errors */ +# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 +/* Clear verification errors from queue */ +# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 + +/* Flags returned by SSL_check_chain */ +/* Certificate can be used with this session */ +# define CERT_PKEY_VALID 0x1 +/* Certificate can also be used for signing */ +# define CERT_PKEY_SIGN 0x2 +/* EE certificate signing algorithm OK */ +# define CERT_PKEY_EE_SIGNATURE 0x10 +/* CA signature algorithms OK */ +# define CERT_PKEY_CA_SIGNATURE 0x20 +/* EE certificate parameters OK */ +# define CERT_PKEY_EE_PARAM 0x40 +/* CA certificate parameters OK */ +# define CERT_PKEY_CA_PARAM 0x80 +/* Signing explicitly allowed as opposed to SHA1 fallback */ +# define CERT_PKEY_EXPLICIT_SIGN 0x100 +/* Client CA issuer names match (always set for server cert) */ +# define CERT_PKEY_ISSUER_NAME 0x200 +/* Cert type matches client types (always set for server cert) */ +# define CERT_PKEY_CERT_TYPE 0x400 +/* Cert chain suitable to Suite B */ +# define CERT_PKEY_SUITEB 0x800 + +# define SSL_CONF_FLAG_CMDLINE 0x1 +# define SSL_CONF_FLAG_FILE 0x2 +# define SSL_CONF_FLAG_CLIENT 0x4 +# define SSL_CONF_FLAG_SERVER 0x8 +# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 +# define SSL_CONF_FLAG_CERTIFICATE 0x20 +/* Configuration value types */ +# define SSL_CONF_TYPE_UNKNOWN 0x0 +# define SSL_CONF_TYPE_STRING 0x1 +# define SSL_CONF_TYPE_FILE 0x2 +# define SSL_CONF_TYPE_DIR 0x3 + +/* + * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they + * cannot be used to clear bits. + */ + +# define SSL_CTX_set_options(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) +# define SSL_CTX_clear_options(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_OPTIONS,(op),NULL) +# define SSL_CTX_get_options(ctx) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,0,NULL) +# define SSL_set_options(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_OPTIONS,(op),NULL) +# define SSL_clear_options(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_CLEAR_OPTIONS,(op),NULL) +# define SSL_get_options(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_OPTIONS,0,NULL) + +# define SSL_CTX_set_mode(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) +# define SSL_CTX_clear_mode(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) +# define SSL_CTX_get_mode(ctx) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) +# define SSL_clear_mode(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) +# define SSL_set_mode(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) +# define SSL_get_mode(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) +# define SSL_set_mtu(ssl, mtu) \ + SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) +# define DTLS_set_link_mtu(ssl, mtu) \ + SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL) +# define DTLS_get_link_min_mtu(ssl) \ + SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL) + +# define SSL_get_secure_renegotiation_support(ssl) \ + SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) + +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_heartbeat(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_TLS_EXT_SEND_HEARTBEAT,0,NULL) +# endif + +# define SSL_CTX_set_cert_flags(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) +# define SSL_set_cert_flags(s,op) \ + SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) +# define SSL_CTX_clear_cert_flags(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) +# define SSL_clear_cert_flags(s,op) \ + SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) + +void SSL_CTX_set_msg_callback(SSL_CTX *ctx, + void (*cb) (int write_p, int version, + int content_type, const void *buf, + size_t len, SSL *ssl, void *arg)); +void SSL_set_msg_callback(SSL *ssl, + void (*cb) (int write_p, int version, + int content_type, const void *buf, + size_t len, SSL *ssl, void *arg)); +# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) +# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) + +# ifndef OPENSSL_NO_SRP + +# ifndef OPENSSL_NO_SSL_INTERN + +typedef struct srp_ctx_st { + /* param for all the callbacks */ + void *SRP_cb_arg; + /* set client Hello login callback */ + int (*TLS_ext_srp_username_callback) (SSL *, int *, void *); + /* set SRP N/g param callback for verification */ + int (*SRP_verify_param_callback) (SSL *, void *); + /* set SRP client passwd callback */ + char *(*SRP_give_srp_client_pwd_callback) (SSL *, void *); + char *login; + BIGNUM *N, *g, *s, *B, *A; + BIGNUM *a, *b, *v; + char *info; + int strength; + unsigned long srp_Mask; +} SRP_CTX; + +# endif + +/* see tls_srp.c */ +int SSL_SRP_CTX_init(SSL *s); +int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); +int SSL_SRP_CTX_free(SSL *ctx); +int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); +int SSL_srp_server_param_with_username(SSL *s, int *ad); +int SRP_generate_server_master_secret(SSL *s, unsigned char *master_key); +int SRP_Calc_A_param(SSL *s); +int SRP_generate_client_master_secret(SSL *s, unsigned char *master_key); + +# endif + +# if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32) +# define SSL_MAX_CERT_LIST_DEFAULT 1024*30 + /* 30k max cert list :-) */ +# else +# define SSL_MAX_CERT_LIST_DEFAULT 1024*100 + /* 100k max cert list :-) */ +# endif + +# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) + +/* + * This callback type is used inside SSL_CTX, SSL, and in the functions that + * set them. It is used to override the generation of SSL/TLS session IDs in + * a server. Return value should be zero on an error, non-zero to proceed. + * Also, callbacks should themselves check if the id they generate is unique + * otherwise the SSL handshake will fail with an error - callbacks can do + * this using the 'ssl' value they're passed by; + * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in + * is set at the maximum size the session ID can be. In SSLv2 this is 16 + * bytes, whereas SSLv3/TLSv1 it is 32 bytes. The callback can alter this + * length to be less if desired, but under SSLv2 session IDs are supposed to + * be fixed at 16 bytes so the id will be padded after the callback returns + * in this case. It is also an error for the callback to set the size to + * zero. + */ +typedef int (*GEN_SESSION_CB) (const SSL *ssl, unsigned char *id, + unsigned int *id_len); + +typedef struct ssl_comp_st SSL_COMP; + +# ifndef OPENSSL_NO_SSL_INTERN + +struct ssl_comp_st { + int id; + const char *name; +# ifndef OPENSSL_NO_COMP + COMP_METHOD *method; +# else + char *method; +# endif +}; + +DECLARE_STACK_OF(SSL_COMP) +DECLARE_LHASH_OF(SSL_SESSION); + +struct ssl_ctx_st { + const SSL_METHOD *method; + STACK_OF(SSL_CIPHER) *cipher_list; + /* same as above but sorted for lookup */ + STACK_OF(SSL_CIPHER) *cipher_list_by_id; + struct x509_store_st /* X509_STORE */ *cert_store; + LHASH_OF(SSL_SESSION) *sessions; + /* + * Most session-ids that will be cached, default is + * SSL_SESSION_CACHE_MAX_SIZE_DEFAULT. 0 is unlimited. + */ + unsigned long session_cache_size; + struct ssl_session_st *session_cache_head; + struct ssl_session_st *session_cache_tail; + /* + * This can have one of 2 values, ored together, SSL_SESS_CACHE_CLIENT, + * SSL_SESS_CACHE_SERVER, Default is SSL_SESSION_CACHE_SERVER, which + * means only SSL_accept which cache SSL_SESSIONS. + */ + int session_cache_mode; + /* + * If timeout is not 0, it is the default timeout value set when + * SSL_new() is called. This has been put in to make life easier to set + * things up + */ + long session_timeout; + /* + * If this callback is not null, it will be called each time a session id + * is added to the cache. If this function returns 1, it means that the + * callback will do a SSL_SESSION_free() when it has finished using it. + * Otherwise, on 0, it means the callback has finished with it. If + * remove_session_cb is not null, it will be called when a session-id is + * removed from the cache. After the call, OpenSSL will + * SSL_SESSION_free() it. + */ + int (*new_session_cb) (struct ssl_st *ssl, SSL_SESSION *sess); + void (*remove_session_cb) (struct ssl_ctx_st *ctx, SSL_SESSION *sess); + SSL_SESSION *(*get_session_cb) (struct ssl_st *ssl, + unsigned char *data, int len, int *copy); + struct { + int sess_connect; /* SSL new conn - started */ + int sess_connect_renegotiate; /* SSL reneg - requested */ + int sess_connect_good; /* SSL new conne/reneg - finished */ + int sess_accept; /* SSL new accept - started */ + int sess_accept_renegotiate; /* SSL reneg - requested */ + int sess_accept_good; /* SSL accept/reneg - finished */ + int sess_miss; /* session lookup misses */ + int sess_timeout; /* reuse attempt on timeouted session */ + int sess_cache_full; /* session removed due to full cache */ + int sess_hit; /* session reuse actually done */ + int sess_cb_hit; /* session-id that was not in the cache was + * passed back via the callback. This + * indicates that the application is + * supplying session-id's from other + * processes - spooky :-) */ + } stats; + + int references; + + /* if defined, these override the X509_verify_cert() calls */ + int (*app_verify_callback) (X509_STORE_CTX *, void *); + void *app_verify_arg; + /* + * before OpenSSL 0.9.7, 'app_verify_arg' was ignored + * ('app_verify_callback' was called with just one argument) + */ + + /* Default password callback. */ + pem_password_cb *default_passwd_callback; + + /* Default password callback user data. */ + void *default_passwd_callback_userdata; + + /* get client cert callback */ + int (*client_cert_cb) (SSL *ssl, X509 **x509, EVP_PKEY **pkey); + + /* cookie generate callback */ + int (*app_gen_cookie_cb) (SSL *ssl, unsigned char *cookie, + unsigned int *cookie_len); + + /* verify cookie callback */ + int (*app_verify_cookie_cb) (SSL *ssl, unsigned char *cookie, + unsigned int cookie_len); + + CRYPTO_EX_DATA ex_data; + + const EVP_MD *rsa_md5; /* For SSLv2 - name is 'ssl2-md5' */ + const EVP_MD *md5; /* For SSLv3/TLSv1 'ssl3-md5' */ + const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3->sha1' */ + + STACK_OF(X509) *extra_certs; + STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ + + /* Default values used when no per-SSL value is defined follow */ + + /* used if SSL's info_callback is NULL */ + void (*info_callback) (const SSL *ssl, int type, int val); + + /* what we put in client cert requests */ + STACK_OF(X509_NAME) *client_CA; + + /* + * Default values to use in SSL structures follow (these are copied by + * SSL_new) + */ + + unsigned long options; + unsigned long mode; + long max_cert_list; + + struct cert_st /* CERT */ *cert; + int read_ahead; + + /* callback that allows applications to peek at protocol messages */ + void (*msg_callback) (int write_p, int version, int content_type, + const void *buf, size_t len, SSL *ssl, void *arg); + void *msg_callback_arg; + + int verify_mode; + unsigned int sid_ctx_length; + unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; + /* called 'verify_callback' in the SSL */ + int (*default_verify_callback) (int ok, X509_STORE_CTX *ctx); + + /* Default generate session ID callback. */ + GEN_SESSION_CB generate_session_id; + + X509_VERIFY_PARAM *param; + +# if 0 + int purpose; /* Purpose setting */ + int trust; /* Trust setting */ +# endif + + int quiet_shutdown; + + /* + * Maximum amount of data to send in one fragment. actual record size can + * be more than this due to padding and MAC overheads. + */ + unsigned int max_send_fragment; + +# ifndef OPENSSL_NO_ENGINE + /* + * Engine to pass requests for client certs to + */ + ENGINE *client_cert_engine; +# endif + +# ifndef OPENSSL_NO_TLSEXT + /* TLS extensions servername callback */ + int (*tlsext_servername_callback) (SSL *, int *, void *); + void *tlsext_servername_arg; + /* RFC 4507 session ticket keys */ + unsigned char tlsext_tick_key_name[16]; + unsigned char tlsext_tick_hmac_key[16]; + unsigned char tlsext_tick_aes_key[16]; + /* Callback to support customisation of ticket key setting */ + int (*tlsext_ticket_key_cb) (SSL *ssl, + unsigned char *name, unsigned char *iv, + EVP_CIPHER_CTX *ectx, + HMAC_CTX *hctx, int enc); + + /* certificate status request info */ + /* Callback for status request */ + int (*tlsext_status_cb) (SSL *ssl, void *arg); + void *tlsext_status_arg; + + /* draft-rescorla-tls-opaque-prf-input-00.txt information */ + int (*tlsext_opaque_prf_input_callback) (SSL *, void *peerinput, + size_t len, void *arg); + void *tlsext_opaque_prf_input_callback_arg; +# endif + +# ifndef OPENSSL_NO_PSK + char *psk_identity_hint; + unsigned int (*psk_client_callback) (SSL *ssl, const char *hint, + char *identity, + unsigned int max_identity_len, + unsigned char *psk, + unsigned int max_psk_len); + unsigned int (*psk_server_callback) (SSL *ssl, const char *identity, + unsigned char *psk, + unsigned int max_psk_len); +# endif + +# ifndef OPENSSL_NO_BUF_FREELISTS +# define SSL_MAX_BUF_FREELIST_LEN_DEFAULT 32 + unsigned int freelist_max_len; + struct ssl3_buf_freelist_st *wbuf_freelist; + struct ssl3_buf_freelist_st *rbuf_freelist; +# endif +# ifndef OPENSSL_NO_SRP + SRP_CTX srp_ctx; /* ctx for SRP authentication */ +# endif + +# ifndef OPENSSL_NO_TLSEXT + +# ifndef OPENSSL_NO_NEXTPROTONEG + /* Next protocol negotiation information */ + /* (for experimental NPN extension). */ + + /* + * For a server, this contains a callback function by which the set of + * advertised protocols can be provided. + */ + int (*next_protos_advertised_cb) (SSL *s, const unsigned char **buf, + unsigned int *len, void *arg); + void *next_protos_advertised_cb_arg; + /* + * For a client, this contains a callback function that selects the next + * protocol from the list provided by the server. + */ + int (*next_proto_select_cb) (SSL *s, unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, void *arg); + void *next_proto_select_cb_arg; +# endif + /* SRTP profiles we are willing to do from RFC 5764 */ + STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles; + + /* + * ALPN information (we are in the process of transitioning from NPN to + * ALPN.) + */ + + /*- + * For a server, this contains a callback function that allows the + * server to select the protocol for the connection. + * out: on successful return, this must point to the raw protocol + * name (without the length prefix). + * outlen: on successful return, this contains the length of |*out|. + * in: points to the client's list of supported protocols in + * wire-format. + * inlen: the length of |in|. + */ + int (*alpn_select_cb) (SSL *s, + const unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, void *arg); + void *alpn_select_cb_arg; + + /* + * For a client, this contains the list of supported protocols in wire + * format. + */ + unsigned char *alpn_client_proto_list; + unsigned alpn_client_proto_list_len; + +# ifndef OPENSSL_NO_EC + /* EC extension values inherited by SSL structure */ + size_t tlsext_ecpointformatlist_length; + unsigned char *tlsext_ecpointformatlist; + size_t tlsext_ellipticcurvelist_length; + unsigned char *tlsext_ellipticcurvelist; +# endif /* OPENSSL_NO_EC */ +# endif +}; + +# endif + +# define SSL_SESS_CACHE_OFF 0x0000 +# define SSL_SESS_CACHE_CLIENT 0x0001 +# define SSL_SESS_CACHE_SERVER 0x0002 +# define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) +# define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 +/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ +# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 +# define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 +# define SSL_SESS_CACHE_NO_INTERNAL \ + (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) + +LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); +# define SSL_CTX_sess_number(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) +# define SSL_CTX_sess_connect(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) +# define SSL_CTX_sess_connect_good(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) +# define SSL_CTX_sess_connect_renegotiate(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) +# define SSL_CTX_sess_accept(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) +# define SSL_CTX_sess_accept_renegotiate(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) +# define SSL_CTX_sess_accept_good(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) +# define SSL_CTX_sess_hits(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) +# define SSL_CTX_sess_cb_hits(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) +# define SSL_CTX_sess_misses(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) +# define SSL_CTX_sess_timeouts(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) +# define SSL_CTX_sess_cache_full(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) + +void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, + int (*new_session_cb) (struct ssl_st *ssl, + SSL_SESSION *sess)); +int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, + SSL_SESSION *sess); +void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, + void (*remove_session_cb) (struct ssl_ctx_st + *ctx, + SSL_SESSION + *sess)); +void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, + SSL_SESSION *sess); +void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, + SSL_SESSION *(*get_session_cb) (struct ssl_st + *ssl, + unsigned char + *data, int len, + int *copy)); +SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, + unsigned char *Data, + int len, int *copy); +void SSL_CTX_set_info_callback(SSL_CTX *ctx, + void (*cb) (const SSL *ssl, int type, + int val)); +void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, + int val); +void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, + int (*client_cert_cb) (SSL *ssl, X509 **x509, + EVP_PKEY **pkey)); +int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, + EVP_PKEY **pkey); +# ifndef OPENSSL_NO_ENGINE +int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); +# endif +void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, + int (*app_gen_cookie_cb) (SSL *ssl, + unsigned char + *cookie, + unsigned int + *cookie_len)); +void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, + int (*app_verify_cookie_cb) (SSL *ssl, + unsigned char + *cookie, + unsigned int + cookie_len)); +# ifndef OPENSSL_NO_NEXTPROTONEG +void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, + int (*cb) (SSL *ssl, + const unsigned char + **out, + unsigned int *outlen, + void *arg), void *arg); +void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, + int (*cb) (SSL *ssl, + unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg), void *arg); +void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, + unsigned *len); +# endif + +# ifndef OPENSSL_NO_TLSEXT +int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, + const unsigned char *in, unsigned int inlen, + const unsigned char *client, + unsigned int client_len); +# endif + +# define OPENSSL_NPN_UNSUPPORTED 0 +# define OPENSSL_NPN_NEGOTIATED 1 +# define OPENSSL_NPN_NO_OVERLAP 2 + +int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, + unsigned protos_len); +int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, + unsigned protos_len); +void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, + int (*cb) (SSL *ssl, + const unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg), void *arg); +void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, + unsigned *len); + +# ifndef OPENSSL_NO_PSK +/* + * the maximum length of the buffer given to callbacks containing the + * resulting identity/psk + */ +# define PSK_MAX_IDENTITY_LEN 128 +# define PSK_MAX_PSK_LEN 256 +void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, + unsigned int (*psk_client_callback) (SSL + *ssl, + const + char + *hint, + char + *identity, + unsigned + int + max_identity_len, + unsigned + char + *psk, + unsigned + int + max_psk_len)); +void SSL_set_psk_client_callback(SSL *ssl, + unsigned int (*psk_client_callback) (SSL + *ssl, + const + char + *hint, + char + *identity, + unsigned + int + max_identity_len, + unsigned + char + *psk, + unsigned + int + max_psk_len)); +void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, + unsigned int (*psk_server_callback) (SSL + *ssl, + const + char + *identity, + unsigned + char + *psk, + unsigned + int + max_psk_len)); +void SSL_set_psk_server_callback(SSL *ssl, + unsigned int (*psk_server_callback) (SSL + *ssl, + const + char + *identity, + unsigned + char + *psk, + unsigned + int + max_psk_len)); +int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); +int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); +const char *SSL_get_psk_identity_hint(const SSL *s); +const char *SSL_get_psk_identity(const SSL *s); +# endif + +# ifndef OPENSSL_NO_TLSEXT +/* Register callbacks to handle custom TLS Extensions for client or server. */ + +int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +int SSL_extension_supported(unsigned int ext_type); + +# endif + +# define SSL_NOTHING 1 +# define SSL_WRITING 2 +# define SSL_READING 3 +# define SSL_X509_LOOKUP 4 + +/* These will only be used when doing non-blocking IO */ +# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) +# define SSL_want_read(s) (SSL_want(s) == SSL_READING) +# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) +# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) + +# define SSL_MAC_FLAG_READ_MAC_STREAM 1 +# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 + +# ifndef OPENSSL_NO_SSL_INTERN + +struct ssl_st { + /* + * protocol version (one of SSL2_VERSION, SSL3_VERSION, TLS1_VERSION, + * DTLS1_VERSION) + */ + int version; + /* SSL_ST_CONNECT or SSL_ST_ACCEPT */ + int type; + /* SSLv3 */ + const SSL_METHOD *method; + /* + * There are 2 BIO's even though they are normally both the same. This + * is so data can be read and written to different handlers + */ +# ifndef OPENSSL_NO_BIO + /* used by SSL_read */ + BIO *rbio; + /* used by SSL_write */ + BIO *wbio; + /* used during session-id reuse to concatenate messages */ + BIO *bbio; +# else + /* used by SSL_read */ + char *rbio; + /* used by SSL_write */ + char *wbio; + char *bbio; +# endif + /* + * This holds a variable that indicates what we were doing when a 0 or -1 + * is returned. This is needed for non-blocking IO so we know what + * request needs re-doing when in SSL_accept or SSL_connect + */ + int rwstate; + /* true when we are actually in SSL_accept() or SSL_connect() */ + int in_handshake; + int (*handshake_func) (SSL *); + /* + * Imagine that here's a boolean member "init" that is switched as soon + * as SSL_set_{accept/connect}_state is called for the first time, so + * that "state" and "handshake_func" are properly initialized. But as + * handshake_func is == 0 until then, we use this test instead of an + * "init" member. + */ + /* are we the server side? - mostly used by SSL_clear */ + int server; + /* + * Generate a new session or reuse an old one. + * NB: For servers, the 'new' session may actually be a previously + * cached session or even the previous session unless + * SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION is set + */ + int new_session; + /* don't send shutdown packets */ + int quiet_shutdown; + /* we have shut things down, 0x01 sent, 0x02 for received */ + int shutdown; + /* where we are */ + int state; + /* where we are when reading */ + int rstate; + BUF_MEM *init_buf; /* buffer used during init */ + void *init_msg; /* pointer to handshake message body, set by + * ssl3_get_message() */ + int init_num; /* amount read/written */ + int init_off; /* amount read/written */ + /* used internally to point at a raw packet */ + unsigned char *packet; + unsigned int packet_length; + struct ssl2_state_st *s2; /* SSLv2 variables */ + struct ssl3_state_st *s3; /* SSLv3 variables */ + struct dtls1_state_st *d1; /* DTLSv1 variables */ + int read_ahead; /* Read as many input bytes as possible (for + * non-blocking reads) */ + /* callback that allows applications to peek at protocol messages */ + void (*msg_callback) (int write_p, int version, int content_type, + const void *buf, size_t len, SSL *ssl, void *arg); + void *msg_callback_arg; + int hit; /* reusing a previous session */ + X509_VERIFY_PARAM *param; +# if 0 + int purpose; /* Purpose setting */ + int trust; /* Trust setting */ +# endif + /* crypto */ + STACK_OF(SSL_CIPHER) *cipher_list; + STACK_OF(SSL_CIPHER) *cipher_list_by_id; + /* + * These are the ones being used, the ones in SSL_SESSION are the ones to + * be 'copied' into these ones + */ + int mac_flags; + EVP_CIPHER_CTX *enc_read_ctx; /* cryptographic state */ + EVP_MD_CTX *read_hash; /* used for mac generation */ +# ifndef OPENSSL_NO_COMP + COMP_CTX *expand; /* uncompress */ +# else + char *expand; +# endif + EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ + EVP_MD_CTX *write_hash; /* used for mac generation */ +# ifndef OPENSSL_NO_COMP + COMP_CTX *compress; /* compression */ +# else + char *compress; +# endif + /* session info */ + /* client cert? */ + /* This is used to hold the server certificate used */ + struct cert_st /* CERT */ *cert; + /* + * the session_id_context is used to ensure sessions are only reused in + * the appropriate context + */ + unsigned int sid_ctx_length; + unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; + /* This can also be in the session once a session is established */ + SSL_SESSION *session; + /* Default generate session ID callback. */ + GEN_SESSION_CB generate_session_id; + /* Used in SSL2 and SSL3 */ + /* + * 0 don't care about verify failure. + * 1 fail if verify fails + */ + int verify_mode; + /* fail if callback returns 0 */ + int (*verify_callback) (int ok, X509_STORE_CTX *ctx); + /* optional informational callback */ + void (*info_callback) (const SSL *ssl, int type, int val); + /* error bytes to be written */ + int error; + /* actual code */ + int error_code; +# ifndef OPENSSL_NO_KRB5 + /* Kerberos 5 context */ + KSSL_CTX *kssl_ctx; +# endif /* OPENSSL_NO_KRB5 */ +# ifndef OPENSSL_NO_PSK + unsigned int (*psk_client_callback) (SSL *ssl, const char *hint, + char *identity, + unsigned int max_identity_len, + unsigned char *psk, + unsigned int max_psk_len); + unsigned int (*psk_server_callback) (SSL *ssl, const char *identity, + unsigned char *psk, + unsigned int max_psk_len); +# endif + SSL_CTX *ctx; + /* + * set this flag to 1 and a sleep(1) is put into all SSL_read() and + * SSL_write() calls, good for nbio debuging :-) + */ + int debug; + /* extra application data */ + long verify_result; + CRYPTO_EX_DATA ex_data; + /* for server side, keep the list of CA_dn we can use */ + STACK_OF(X509_NAME) *client_CA; + int references; + /* protocol behaviour */ + unsigned long options; + /* API behaviour */ + unsigned long mode; + long max_cert_list; + int first_packet; + /* what was passed, used for SSLv3/TLS rollback check */ + int client_version; + unsigned int max_send_fragment; +# ifndef OPENSSL_NO_TLSEXT + /* TLS extension debug callback */ + void (*tlsext_debug_cb) (SSL *s, int client_server, int type, + unsigned char *data, int len, void *arg); + void *tlsext_debug_arg; + char *tlsext_hostname; + /*- + * no further mod of servername + * 0 : call the servername extension callback. + * 1 : prepare 2, allow last ack just after in server callback. + * 2 : don't call servername callback, no ack in server hello + */ + int servername_done; + /* certificate status request info */ + /* Status type or -1 if no status type */ + int tlsext_status_type; + /* Expect OCSP CertificateStatus message */ + int tlsext_status_expected; + /* OCSP status request only */ + STACK_OF(OCSP_RESPID) *tlsext_ocsp_ids; + X509_EXTENSIONS *tlsext_ocsp_exts; + /* OCSP response received or to be sent */ + unsigned char *tlsext_ocsp_resp; + int tlsext_ocsp_resplen; + /* RFC4507 session ticket expected to be received or sent */ + int tlsext_ticket_expected; +# ifndef OPENSSL_NO_EC + size_t tlsext_ecpointformatlist_length; + /* our list */ + unsigned char *tlsext_ecpointformatlist; + size_t tlsext_ellipticcurvelist_length; + /* our list */ + unsigned char *tlsext_ellipticcurvelist; +# endif /* OPENSSL_NO_EC */ + /* + * draft-rescorla-tls-opaque-prf-input-00.txt information to be used for + * handshakes + */ + void *tlsext_opaque_prf_input; + size_t tlsext_opaque_prf_input_len; + /* TLS Session Ticket extension override */ + TLS_SESSION_TICKET_EXT *tlsext_session_ticket; + /* TLS Session Ticket extension callback */ + tls_session_ticket_ext_cb_fn tls_session_ticket_ext_cb; + void *tls_session_ticket_ext_cb_arg; + /* TLS pre-shared secret session resumption */ + tls_session_secret_cb_fn tls_session_secret_cb; + void *tls_session_secret_cb_arg; + SSL_CTX *initial_ctx; /* initial ctx, used to store sessions */ +# ifndef OPENSSL_NO_NEXTPROTONEG + /* + * Next protocol negotiation. For the client, this is the protocol that + * we sent in NextProtocol and is set when handling ServerHello + * extensions. For a server, this is the client's selected_protocol from + * NextProtocol and is set when handling the NextProtocol message, before + * the Finished message. + */ + unsigned char *next_proto_negotiated; + unsigned char next_proto_negotiated_len; +# endif +# define session_ctx initial_ctx + /* What we'll do */ + STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles; + /* What's been chosen */ + SRTP_PROTECTION_PROFILE *srtp_profile; + /*- + * Is use of the Heartbeat extension negotiated? + * 0: disabled + * 1: enabled + * 2: enabled, but not allowed to send Requests + */ + unsigned int tlsext_heartbeat; + /* Indicates if a HeartbeatRequest is in flight */ + unsigned int tlsext_hb_pending; + /* HeartbeatRequest sequence number */ + unsigned int tlsext_hb_seq; +# else +# define session_ctx ctx +# endif /* OPENSSL_NO_TLSEXT */ + /*- + * 1 if we are renegotiating. + * 2 if we are a server and are inside a handshake + * (i.e. not just sending a HelloRequest) + */ + int renegotiate; +# ifndef OPENSSL_NO_SRP + /* ctx for SRP authentication */ + SRP_CTX srp_ctx; +# endif +# ifndef OPENSSL_NO_TLSEXT + /* + * For a client, this contains the list of supported protocols in wire + * format. + */ + unsigned char *alpn_client_proto_list; + unsigned alpn_client_proto_list_len; +# endif /* OPENSSL_NO_TLSEXT */ +}; + +# endif + +#ifdef __cplusplus +} +#endif + +# include +# include +# include /* This is mostly sslv3 with a few tweaks */ +# include /* Datagram TLS */ +# include +# include /* Support for the use_srtp extension */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* compatibility */ +# define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)arg)) +# define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) +# define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0,(char *)a)) +# define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0)) +# define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0)) +# define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0,(char *)arg)) + +/* + * The following are the possible values for ssl->state are are used to + * indicate where we are up to in the SSL connection establishment. The + * macros that follow are about the only things you should need to use and + * even then, only when using non-blocking IO. It can also be useful to work + * out where you were when the connection failed + */ + +# define SSL_ST_CONNECT 0x1000 +# define SSL_ST_ACCEPT 0x2000 +# define SSL_ST_MASK 0x0FFF +# define SSL_ST_INIT (SSL_ST_CONNECT|SSL_ST_ACCEPT) +# define SSL_ST_BEFORE 0x4000 +# define SSL_ST_OK 0x03 +# define SSL_ST_RENEGOTIATE (0x04|SSL_ST_INIT) +# define SSL_ST_ERR 0x05 + +# define SSL_CB_LOOP 0x01 +# define SSL_CB_EXIT 0x02 +# define SSL_CB_READ 0x04 +# define SSL_CB_WRITE 0x08 +# define SSL_CB_ALERT 0x4000/* used in callback */ +# define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) +# define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) +# define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) +# define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) +# define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) +# define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) +# define SSL_CB_HANDSHAKE_START 0x10 +# define SSL_CB_HANDSHAKE_DONE 0x20 + +/* Is the SSL_connection established? */ +# define SSL_get_state(a) SSL_state(a) +# define SSL_is_init_finished(a) (SSL_state(a) == SSL_ST_OK) +# define SSL_in_init(a) (SSL_state(a)&SSL_ST_INIT) +# define SSL_in_before(a) (SSL_state(a)&SSL_ST_BEFORE) +# define SSL_in_connect_init(a) (SSL_state(a)&SSL_ST_CONNECT) +# define SSL_in_accept_init(a) (SSL_state(a)&SSL_ST_ACCEPT) + +/* + * The following 2 states are kept in ssl->rstate when reads fail, you should + * not need these + */ +# define SSL_ST_READ_HEADER 0xF0 +# define SSL_ST_READ_BODY 0xF1 +# define SSL_ST_READ_DONE 0xF2 + +/*- + * Obtain latest Finished message + * -- that we sent (SSL_get_finished) + * -- that we expected from peer (SSL_get_peer_finished). + * Returns length (0 == no Finished so far), copies up to 'count' bytes. + */ +size_t SSL_get_finished(const SSL *s, void *buf, size_t count); +size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); + +/* + * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options are + * 'ored' with SSL_VERIFY_PEER if they are desired + */ +# define SSL_VERIFY_NONE 0x00 +# define SSL_VERIFY_PEER 0x01 +# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 +# define SSL_VERIFY_CLIENT_ONCE 0x04 + +# define OpenSSL_add_ssl_algorithms() SSL_library_init() +# define SSLeay_add_ssl_algorithms() SSL_library_init() + +/* this is for backward compatibility */ +# if 0 /* NEW_SSLEAY */ +# define SSL_CTX_set_default_verify(a,b,c) SSL_CTX_set_verify(a,b,c) +# define SSL_set_pref_cipher(c,n) SSL_set_cipher_list(c,n) +# define SSL_add_session(a,b) SSL_CTX_add_session((a),(b)) +# define SSL_remove_session(a,b) SSL_CTX_remove_session((a),(b)) +# define SSL_flush_sessions(a,b) SSL_CTX_flush_sessions((a),(b)) +# endif +/* More backward compatibility */ +# define SSL_get_cipher(s) \ + SSL_CIPHER_get_name(SSL_get_current_cipher(s)) +# define SSL_get_cipher_bits(s,np) \ + SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) +# define SSL_get_cipher_version(s) \ + SSL_CIPHER_get_version(SSL_get_current_cipher(s)) +# define SSL_get_cipher_name(s) \ + SSL_CIPHER_get_name(SSL_get_current_cipher(s)) +# define SSL_get_time(a) SSL_SESSION_get_time(a) +# define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) +# define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) +# define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) + +# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) +# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) + +DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) +# define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value + * from SSL_AD_... */ +/* These alert types are for SSLv3 and TLSv1 */ +# define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY +/* fatal */ +# define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE +/* fatal */ +# define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC +# define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED +# define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW +/* fatal */ +# define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE +/* fatal */ +# define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE +/* Not for TLS */ +# define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE +# define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE +# define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE +# define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED +# define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED +# define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN +/* fatal */ +# define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER +/* fatal */ +# define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA +/* fatal */ +# define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED +/* fatal */ +# define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR +# define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR +/* fatal */ +# define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION +/* fatal */ +# define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION +/* fatal */ +# define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY +/* fatal */ +# define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR +# define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED +# define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION +# define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION +# define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE +# define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME +# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE +# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE +/* fatal */ +# define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY +/* fatal */ +# define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK +# define SSL_ERROR_NONE 0 +# define SSL_ERROR_SSL 1 +# define SSL_ERROR_WANT_READ 2 +# define SSL_ERROR_WANT_WRITE 3 +# define SSL_ERROR_WANT_X509_LOOKUP 4 +# define SSL_ERROR_SYSCALL 5/* look at error stack/return + * value/errno */ +# define SSL_ERROR_ZERO_RETURN 6 +# define SSL_ERROR_WANT_CONNECT 7 +# define SSL_ERROR_WANT_ACCEPT 8 +# define SSL_CTRL_NEED_TMP_RSA 1 +# define SSL_CTRL_SET_TMP_RSA 2 +# define SSL_CTRL_SET_TMP_DH 3 +# define SSL_CTRL_SET_TMP_ECDH 4 +# define SSL_CTRL_SET_TMP_RSA_CB 5 +# define SSL_CTRL_SET_TMP_DH_CB 6 +# define SSL_CTRL_SET_TMP_ECDH_CB 7 +# define SSL_CTRL_GET_SESSION_REUSED 8 +# define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 +# define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 +# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 +# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 +# define SSL_CTRL_GET_FLAGS 13 +# define SSL_CTRL_EXTRA_CHAIN_CERT 14 +# define SSL_CTRL_SET_MSG_CALLBACK 15 +# define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 +/* only applies to datagram connections */ +# define SSL_CTRL_SET_MTU 17 +/* Stats */ +# define SSL_CTRL_SESS_NUMBER 20 +# define SSL_CTRL_SESS_CONNECT 21 +# define SSL_CTRL_SESS_CONNECT_GOOD 22 +# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 +# define SSL_CTRL_SESS_ACCEPT 24 +# define SSL_CTRL_SESS_ACCEPT_GOOD 25 +# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 +# define SSL_CTRL_SESS_HIT 27 +# define SSL_CTRL_SESS_CB_HIT 28 +# define SSL_CTRL_SESS_MISSES 29 +# define SSL_CTRL_SESS_TIMEOUTS 30 +# define SSL_CTRL_SESS_CACHE_FULL 31 +# define SSL_CTRL_OPTIONS 32 +# define SSL_CTRL_MODE 33 +# define SSL_CTRL_GET_READ_AHEAD 40 +# define SSL_CTRL_SET_READ_AHEAD 41 +# define SSL_CTRL_SET_SESS_CACHE_SIZE 42 +# define SSL_CTRL_GET_SESS_CACHE_SIZE 43 +# define SSL_CTRL_SET_SESS_CACHE_MODE 44 +# define SSL_CTRL_GET_SESS_CACHE_MODE 45 +# define SSL_CTRL_GET_MAX_CERT_LIST 50 +# define SSL_CTRL_SET_MAX_CERT_LIST 51 +# define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 +/* see tls1.h for macros based on these */ +# ifndef OPENSSL_NO_TLSEXT +# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 +# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 +# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 +# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 +# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 +# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 +# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 +# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 +# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 +# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 +# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 +# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 +# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 +# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 +# define SSL_CTRL_SET_SRP_ARG 78 +# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 +# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 +# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_CTRL_TLS_EXT_SEND_HEARTBEAT 85 +# define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING 86 +# define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS 87 +# endif +# endif /* OPENSSL_NO_TLSEXT */ +# define DTLS_CTRL_GET_TIMEOUT 73 +# define DTLS_CTRL_HANDLE_TIMEOUT 74 +# define DTLS_CTRL_LISTEN 75 +# define SSL_CTRL_GET_RI_SUPPORT 76 +# define SSL_CTRL_CLEAR_OPTIONS 77 +# define SSL_CTRL_CLEAR_MODE 78 +# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 +# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 +# define SSL_CTRL_CHAIN 88 +# define SSL_CTRL_CHAIN_CERT 89 +# define SSL_CTRL_GET_CURVES 90 +# define SSL_CTRL_SET_CURVES 91 +# define SSL_CTRL_SET_CURVES_LIST 92 +# define SSL_CTRL_GET_SHARED_CURVE 93 +# define SSL_CTRL_SET_ECDH_AUTO 94 +# define SSL_CTRL_SET_SIGALGS 97 +# define SSL_CTRL_SET_SIGALGS_LIST 98 +# define SSL_CTRL_CERT_FLAGS 99 +# define SSL_CTRL_CLEAR_CERT_FLAGS 100 +# define SSL_CTRL_SET_CLIENT_SIGALGS 101 +# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 +# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 +# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 +# define SSL_CTRL_BUILD_CERT_CHAIN 105 +# define SSL_CTRL_SET_VERIFY_CERT_STORE 106 +# define SSL_CTRL_SET_CHAIN_CERT_STORE 107 +# define SSL_CTRL_GET_PEER_SIGNATURE_NID 108 +# define SSL_CTRL_GET_SERVER_TMP_KEY 109 +# define SSL_CTRL_GET_RAW_CIPHERLIST 110 +# define SSL_CTRL_GET_EC_POINT_FORMATS 111 +# define SSL_CTRL_GET_CHAIN_CERTS 115 +# define SSL_CTRL_SELECT_CURRENT_CERT 116 +# define SSL_CTRL_SET_CURRENT_CERT 117 +# define SSL_CTRL_CHECK_PROTO_VERSION 119 +# define DTLS_CTRL_SET_LINK_MTU 120 +# define DTLS_CTRL_GET_LINK_MIN_MTU 121 +# define SSL_CERT_SET_FIRST 1 +# define SSL_CERT_SET_NEXT 2 +# define SSL_CERT_SET_SERVER 3 +# define DTLSv1_get_timeout(ssl, arg) \ + SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg) +# define DTLSv1_handle_timeout(ssl) \ + SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) +# define DTLSv1_listen(ssl, peer) \ + SSL_ctrl(ssl,DTLS_CTRL_LISTEN,0, (void *)peer) +# define SSL_session_reused(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_SESSION_REUSED,0,NULL) +# define SSL_num_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) +# define SSL_clear_num_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) +# define SSL_total_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL) +# define SSL_CTX_need_tmp_RSA(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_NEED_TMP_RSA,0,NULL) +# define SSL_CTX_set_tmp_rsa(ctx,rsa) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa) +# define SSL_CTX_set_tmp_dh(ctx,dh) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh) +# define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh) +# define SSL_need_tmp_RSA(ssl) \ + SSL_ctrl(ssl,SSL_CTRL_NEED_TMP_RSA,0,NULL) +# define SSL_set_tmp_rsa(ssl,rsa) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa) +# define SSL_set_tmp_dh(ssl,dh) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)dh) +# define SSL_set_tmp_ecdh(ssl,ecdh) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh) +# define SSL_CTX_add_extra_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) +# define SSL_CTX_get_extra_chain_certs(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) +# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) +# define SSL_CTX_clear_extra_chain_certs(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) +# define SSL_CTX_set0_chain(ctx,sk) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) +# define SSL_CTX_set1_chain(ctx,sk) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) +# define SSL_CTX_add0_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) +# define SSL_CTX_add1_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) +# define SSL_CTX_get0_chain_certs(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) +# define SSL_CTX_clear_chain_certs(ctx) \ + SSL_CTX_set0_chain(ctx,NULL) +# define SSL_CTX_build_cert_chain(ctx, flags) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) +# define SSL_CTX_select_current_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) +# define SSL_CTX_set_current_cert(ctx, op) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) +# define SSL_CTX_set0_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) +# define SSL_CTX_set1_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) +# define SSL_CTX_set0_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) +# define SSL_CTX_set1_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) +# define SSL_set0_chain(ctx,sk) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) +# define SSL_set1_chain(ctx,sk) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) +# define SSL_add0_chain_cert(ctx,x509) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) +# define SSL_add1_chain_cert(ctx,x509) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) +# define SSL_get0_chain_certs(ctx,px509) \ + SSL_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) +# define SSL_clear_chain_certs(ctx) \ + SSL_set0_chain(ctx,NULL) +# define SSL_build_cert_chain(s, flags) \ + SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) +# define SSL_select_current_cert(ctx,x509) \ + SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) +# define SSL_set_current_cert(ctx,op) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) +# define SSL_set0_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) +# define SSL_set1_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) +# define SSL_set0_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) +# define SSL_set1_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) +# define SSL_get1_curves(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_GET_CURVES,0,(char *)s) +# define SSL_CTX_set1_curves(ctx, clist, clistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) +# define SSL_CTX_set1_curves_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) +# define SSL_set1_curves(ctx, clist, clistlen) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) +# define SSL_set1_curves_list(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) +# define SSL_get_shared_curve(s, n) \ + SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL) +# define SSL_CTX_set_ecdh_auto(ctx, onoff) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_ECDH_AUTO,onoff,NULL) +# define SSL_set_ecdh_auto(s, onoff) \ + SSL_ctrl(s,SSL_CTRL_SET_ECDH_AUTO,onoff,NULL) +# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) +# define SSL_CTX_set1_sigalgs_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) +# define SSL_set1_sigalgs(ctx, slist, slistlen) \ + SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) +# define SSL_set1_sigalgs_list(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) +# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)slist) +# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) +# define SSL_set1_client_sigalgs(ctx, slist, slistlen) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)slist) +# define SSL_set1_client_sigalgs_list(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) +# define SSL_get0_certificate_types(s, clist) \ + SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)clist) +# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist) +# define SSL_set1_client_certificate_types(s, clist, clistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist) +# define SSL_get_peer_signature_nid(s, pn) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) +# define SSL_get_server_tmp_key(s, pk) \ + SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk) +# define SSL_get0_raw_cipherlist(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,(char *)plst) +# define SSL_get0_ec_point_formats(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,(char *)plst) +# ifndef OPENSSL_NO_BIO +BIO_METHOD *BIO_f_ssl(void); +BIO *BIO_new_ssl(SSL_CTX *ctx, int client); +BIO *BIO_new_ssl_connect(SSL_CTX *ctx); +BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); +int BIO_ssl_copy_session_id(BIO *to, BIO *from); +void BIO_ssl_shutdown(BIO *ssl_bio); + +# endif + +int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); +SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); +void SSL_CTX_free(SSL_CTX *); +long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); +long SSL_CTX_get_timeout(const SSL_CTX *ctx); +X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); +void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); +int SSL_want(const SSL *s); +int SSL_clear(SSL *s); + +void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); + +const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); +int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); +char *SSL_CIPHER_get_version(const SSL_CIPHER *c); +const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); +unsigned long SSL_CIPHER_get_id(const SSL_CIPHER *c); + +int SSL_get_fd(const SSL *s); +int SSL_get_rfd(const SSL *s); +int SSL_get_wfd(const SSL *s); +const char *SSL_get_cipher_list(const SSL *s, int n); +char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len); +int SSL_get_read_ahead(const SSL *s); +int SSL_pending(const SSL *s); +# ifndef OPENSSL_NO_SOCK +int SSL_set_fd(SSL *s, int fd); +int SSL_set_rfd(SSL *s, int fd); +int SSL_set_wfd(SSL *s, int fd); +# endif +# ifndef OPENSSL_NO_BIO +void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); +BIO *SSL_get_rbio(const SSL *s); +BIO *SSL_get_wbio(const SSL *s); +# endif +int SSL_set_cipher_list(SSL *s, const char *str); +void SSL_set_read_ahead(SSL *s, int yes); +int SSL_get_verify_mode(const SSL *s); +int SSL_get_verify_depth(const SSL *s); +int (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *); +void SSL_set_verify(SSL *s, int mode, + int (*callback) (int ok, X509_STORE_CTX *ctx)); +void SSL_set_verify_depth(SSL *s, int depth); +void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); +# ifndef OPENSSL_NO_RSA +int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); +# endif +int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len); +int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); +int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, + long len); +int SSL_use_certificate(SSL *ssl, X509 *x); +int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); + +# ifndef OPENSSL_NO_TLSEXT +/* Set serverinfo data for the current active cert. */ +int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, + size_t serverinfo_length); +# ifndef OPENSSL_NO_STDIO +int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); +# endif /* NO_STDIO */ + +# endif + +# ifndef OPENSSL_NO_STDIO +int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); +int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); +int SSL_use_certificate_file(SSL *ssl, const char *file, int type); +int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type); +int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type); +int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type); +/* PEM type */ +int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); +STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); +int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, + const char *file); +# ifndef OPENSSL_SYS_VMS +/* XXXXX: Better scheme needed! [was: #ifndef MAC_OS_pre_X] */ +# ifndef OPENSSL_SYS_MACINTOSH_CLASSIC +int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, + const char *dir); +# endif +# endif + +# endif + +void SSL_load_error_strings(void); +const char *SSL_state_string(const SSL *s); +const char *SSL_rstate_string(const SSL *s); +const char *SSL_state_string_long(const SSL *s); +const char *SSL_rstate_string_long(const SSL *s); +long SSL_SESSION_get_time(const SSL_SESSION *s); +long SSL_SESSION_set_time(SSL_SESSION *s, long t); +long SSL_SESSION_get_timeout(const SSL_SESSION *s); +long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); +void SSL_copy_session_id(SSL *to, const SSL *from); +X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); +int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx, + unsigned int sid_ctx_len); + +SSL_SESSION *SSL_SESSION_new(void); +const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, + unsigned int *len); +unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); +# ifndef OPENSSL_NO_FP_API +int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); +# endif +# ifndef OPENSSL_NO_BIO +int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); +# endif +void SSL_SESSION_free(SSL_SESSION *ses); +int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); +int SSL_set_session(SSL *to, SSL_SESSION *session); +int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c); +int SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c); +int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); +int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); +int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, + unsigned int id_len); +SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, + long length); + +# ifdef HEADER_X509_H +X509 *SSL_get_peer_certificate(const SSL *s); +# endif + +STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); + +int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); +int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); +int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx)) (int, + X509_STORE_CTX *); +void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, + int (*callback) (int, X509_STORE_CTX *)); +void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); +void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, + int (*cb) (X509_STORE_CTX *, void *), + void *arg); +void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), + void *arg); +# ifndef OPENSSL_NO_RSA +int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); +# endif +int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, + long len); +int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); +int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, + const unsigned char *d, long len); +int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); +int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, + const unsigned char *d); + +void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); +void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); + +int SSL_CTX_check_private_key(const SSL_CTX *ctx); +int SSL_check_private_key(const SSL *ctx); + +int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx, + unsigned int sid_ctx_len); + +SSL *SSL_new(SSL_CTX *ctx); +int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, + unsigned int sid_ctx_len); + +int SSL_CTX_set_purpose(SSL_CTX *s, int purpose); +int SSL_set_purpose(SSL *s, int purpose); +int SSL_CTX_set_trust(SSL_CTX *s, int trust); +int SSL_set_trust(SSL *s, int trust); + +int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); +int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); + +X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); +X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); + +# ifndef OPENSSL_NO_SRP +int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); +int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); +int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); +int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, + char *(*cb) (SSL *, void *)); +int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, + int (*cb) (SSL *, void *)); +int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, + int (*cb) (SSL *, int *, void *)); +int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); + +int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, + BIGNUM *sa, BIGNUM *v, char *info); +int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, + const char *grp); + +BIGNUM *SSL_get_srp_g(SSL *s); +BIGNUM *SSL_get_srp_N(SSL *s); + +char *SSL_get_srp_username(SSL *s); +char *SSL_get_srp_userinfo(SSL *s); +# endif + +void SSL_certs_clear(SSL *s); +void SSL_free(SSL *ssl); +int SSL_accept(SSL *ssl); +int SSL_connect(SSL *ssl); +int SSL_read(SSL *ssl, void *buf, int num); +int SSL_peek(SSL *ssl, void *buf, int num); +int SSL_write(SSL *ssl, const void *buf, int num); +long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); +long SSL_callback_ctrl(SSL *, int, void (*)(void)); +long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); +long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); + +int SSL_get_error(const SSL *s, int ret_code); +const char *SSL_get_version(const SSL *s); + +/* This sets the 'default' SSL version that SSL_new() will create */ +int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); + +# ifndef OPENSSL_NO_SSL2_METHOD +const SSL_METHOD *SSLv2_method(void); /* SSLv2 */ +const SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */ +const SSL_METHOD *SSLv2_client_method(void); /* SSLv2 */ +# endif + +# ifndef OPENSSL_NO_SSL3_METHOD +const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ +const SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ +const SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ +# endif + +const SSL_METHOD *SSLv23_method(void); /* Negotiate highest available SSL/TLS + * version */ +const SSL_METHOD *SSLv23_server_method(void); /* Negotiate highest available + * SSL/TLS version */ +const SSL_METHOD *SSLv23_client_method(void); /* Negotiate highest available + * SSL/TLS version */ + +const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ +const SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ +const SSL_METHOD *TLSv1_client_method(void); /* TLSv1.0 */ + +const SSL_METHOD *TLSv1_1_method(void); /* TLSv1.1 */ +const SSL_METHOD *TLSv1_1_server_method(void); /* TLSv1.1 */ +const SSL_METHOD *TLSv1_1_client_method(void); /* TLSv1.1 */ + +const SSL_METHOD *TLSv1_2_method(void); /* TLSv1.2 */ +const SSL_METHOD *TLSv1_2_server_method(void); /* TLSv1.2 */ +const SSL_METHOD *TLSv1_2_client_method(void); /* TLSv1.2 */ + +const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ +const SSL_METHOD *DTLSv1_server_method(void); /* DTLSv1.0 */ +const SSL_METHOD *DTLSv1_client_method(void); /* DTLSv1.0 */ + +const SSL_METHOD *DTLSv1_2_method(void); /* DTLSv1.2 */ +const SSL_METHOD *DTLSv1_2_server_method(void); /* DTLSv1.2 */ +const SSL_METHOD *DTLSv1_2_client_method(void); /* DTLSv1.2 */ + +const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ +const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ +const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ + +STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); + +int SSL_do_handshake(SSL *s); +int SSL_renegotiate(SSL *s); +int SSL_renegotiate_abbreviated(SSL *s); +int SSL_renegotiate_pending(SSL *s); +int SSL_shutdown(SSL *s); + +const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx); +const SSL_METHOD *SSL_get_ssl_method(SSL *s); +int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); +const char *SSL_alert_type_string_long(int value); +const char *SSL_alert_type_string(int value); +const char *SSL_alert_desc_string_long(int value); +const char *SSL_alert_desc_string(int value); + +void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); +void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); +STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); +STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); +int SSL_add_client_CA(SSL *ssl, X509 *x); +int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); + +void SSL_set_connect_state(SSL *s); +void SSL_set_accept_state(SSL *s); + +long SSL_get_default_timeout(const SSL *s); + +int SSL_library_init(void); + +char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); +STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk); + +SSL *SSL_dup(SSL *ssl); + +X509 *SSL_get_certificate(const SSL *ssl); +/* + * EVP_PKEY + */ struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); + +X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); +EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); + +void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); +int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); +void SSL_set_quiet_shutdown(SSL *ssl, int mode); +int SSL_get_quiet_shutdown(const SSL *ssl); +void SSL_set_shutdown(SSL *ssl, int mode); +int SSL_get_shutdown(const SSL *ssl); +int SSL_version(const SSL *ssl); +int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); +int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, + const char *CApath); +# define SSL_get0_session SSL_get_session/* just peek at pointer */ +SSL_SESSION *SSL_get_session(const SSL *ssl); +SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ +SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); +SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); +void SSL_set_info_callback(SSL *ssl, + void (*cb) (const SSL *ssl, int type, int val)); +void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, + int val); +int SSL_state(const SSL *ssl); +void SSL_set_state(SSL *ssl, int state); + +void SSL_set_verify_result(SSL *ssl, long v); +long SSL_get_verify_result(const SSL *ssl); + +int SSL_set_ex_data(SSL *ssl, int idx, void *data); +void *SSL_get_ex_data(const SSL *ssl, int idx); +int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); + +int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); +void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); +int SSL_SESSION_get_ex_new_index(long argl, void *argp, + CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); + +int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); +void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); +int SSL_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); + +int SSL_get_ex_data_X509_STORE_CTX_idx(void); + +# define SSL_CTX_sess_set_cache_size(ctx,t) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) +# define SSL_CTX_sess_get_cache_size(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) +# define SSL_CTX_set_session_cache_mode(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) +# define SSL_CTX_get_session_cache_mode(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) + +# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) +# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) +# define SSL_CTX_get_read_ahead(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) +# define SSL_CTX_set_read_ahead(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) +# define SSL_CTX_get_max_cert_list(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) +# define SSL_CTX_set_max_cert_list(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) +# define SSL_get_max_cert_list(ssl) \ + SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) +# define SSL_set_max_cert_list(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) + +# define SSL_CTX_set_max_send_fragment(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) +# define SSL_set_max_send_fragment(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) + + /* NB: the keylength is only applicable when is_export is true */ +# ifndef OPENSSL_NO_RSA +void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, + RSA *(*cb) (SSL *ssl, int is_export, + int keylength)); + +void SSL_set_tmp_rsa_callback(SSL *ssl, + RSA *(*cb) (SSL *ssl, int is_export, + int keylength)); +# endif +# ifndef OPENSSL_NO_DH +void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, + DH *(*dh) (SSL *ssl, int is_export, + int keylength)); +void SSL_set_tmp_dh_callback(SSL *ssl, + DH *(*dh) (SSL *ssl, int is_export, + int keylength)); +# endif +# ifndef OPENSSL_NO_ECDH +void SSL_CTX_set_tmp_ecdh_callback(SSL_CTX *ctx, + EC_KEY *(*ecdh) (SSL *ssl, int is_export, + int keylength)); +void SSL_set_tmp_ecdh_callback(SSL *ssl, + EC_KEY *(*ecdh) (SSL *ssl, int is_export, + int keylength)); +# endif + +# ifndef OPENSSL_NO_COMP +const COMP_METHOD *SSL_get_current_compression(SSL *s); +const COMP_METHOD *SSL_get_current_expansion(SSL *s); +const char *SSL_COMP_get_name(const COMP_METHOD *comp); +STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); +STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) + *meths); +void SSL_COMP_free_compression_methods(void); +int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); +# else +const void *SSL_get_current_compression(SSL *s); +const void *SSL_get_current_expansion(SSL *s); +const char *SSL_COMP_get_name(const void *comp); +void *SSL_COMP_get_compression_methods(void); +int SSL_COMP_add_compression_method(int id, void *cm); +# endif + +const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); + +/* TLS extensions functions */ +int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); + +int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn cb, + void *arg); + +/* Pre-shared secret session resumption functions */ +int SSL_set_session_secret_cb(SSL *s, + tls_session_secret_cb_fn tls_session_secret_cb, + void *arg); + +void SSL_set_debug(SSL *s, int debug); +int SSL_cache_hit(SSL *s); +int SSL_is_server(SSL *s); + +SSL_CONF_CTX *SSL_CONF_CTX_new(void); +int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); +void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); +unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); +unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags); +int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); + +void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); +void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); + +int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); +int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); +int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); + +# ifndef OPENSSL_NO_SSL_TRACE +void SSL_trace(int write_p, int version, int content_type, + const void *buf, size_t len, SSL *ssl, void *arg); +const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); +# endif + +# ifndef OPENSSL_NO_UNIT_TEST +const struct openssl_ssl_test_functions *SSL_test_functions(void); +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_SSL_strings(void); + +/* Error codes for the SSL functions. */ + +/* Function codes. */ +# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 +# define SSL_F_CLIENT_CERTIFICATE 100 +# define SSL_F_CLIENT_FINISHED 167 +# define SSL_F_CLIENT_HELLO 101 +# define SSL_F_CLIENT_MASTER_KEY 102 +# define SSL_F_D2I_SSL_SESSION 103 +# define SSL_F_DO_DTLS1_WRITE 245 +# define SSL_F_DO_SSL3_WRITE 104 +# define SSL_F_DTLS1_ACCEPT 246 +# define SSL_F_DTLS1_ADD_CERT_TO_BUF 295 +# define SSL_F_DTLS1_BUFFER_RECORD 247 +# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 316 +# define SSL_F_DTLS1_CLIENT_HELLO 248 +# define SSL_F_DTLS1_CONNECT 249 +# define SSL_F_DTLS1_ENC 250 +# define SSL_F_DTLS1_GET_HELLO_VERIFY 251 +# define SSL_F_DTLS1_GET_MESSAGE 252 +# define SSL_F_DTLS1_GET_MESSAGE_FRAGMENT 253 +# define SSL_F_DTLS1_GET_RECORD 254 +# define SSL_F_DTLS1_HANDLE_TIMEOUT 297 +# define SSL_F_DTLS1_HEARTBEAT 305 +# define SSL_F_DTLS1_OUTPUT_CERT_CHAIN 255 +# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 +# define SSL_F_DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE 256 +# define SSL_F_DTLS1_PROCESS_RECORD 257 +# define SSL_F_DTLS1_READ_BYTES 258 +# define SSL_F_DTLS1_READ_FAILED 259 +# define SSL_F_DTLS1_SEND_CERTIFICATE_REQUEST 260 +# define SSL_F_DTLS1_SEND_CLIENT_CERTIFICATE 261 +# define SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE 262 +# define SSL_F_DTLS1_SEND_CLIENT_VERIFY 263 +# define SSL_F_DTLS1_SEND_HELLO_VERIFY_REQUEST 264 +# define SSL_F_DTLS1_SEND_SERVER_CERTIFICATE 265 +# define SSL_F_DTLS1_SEND_SERVER_HELLO 266 +# define SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE 267 +# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 +# define SSL_F_GET_CLIENT_FINISHED 105 +# define SSL_F_GET_CLIENT_HELLO 106 +# define SSL_F_GET_CLIENT_MASTER_KEY 107 +# define SSL_F_GET_SERVER_FINISHED 108 +# define SSL_F_GET_SERVER_HELLO 109 +# define SSL_F_GET_SERVER_STATIC_DH_KEY 340 +# define SSL_F_GET_SERVER_VERIFY 110 +# define SSL_F_I2D_SSL_SESSION 111 +# define SSL_F_READ_N 112 +# define SSL_F_REQUEST_CERTIFICATE 113 +# define SSL_F_SERVER_FINISH 239 +# define SSL_F_SERVER_HELLO 114 +# define SSL_F_SERVER_VERIFY 240 +# define SSL_F_SSL23_ACCEPT 115 +# define SSL_F_SSL23_CLIENT_HELLO 116 +# define SSL_F_SSL23_CONNECT 117 +# define SSL_F_SSL23_GET_CLIENT_HELLO 118 +# define SSL_F_SSL23_GET_SERVER_HELLO 119 +# define SSL_F_SSL23_PEEK 237 +# define SSL_F_SSL23_READ 120 +# define SSL_F_SSL23_WRITE 121 +# define SSL_F_SSL2_ACCEPT 122 +# define SSL_F_SSL2_CONNECT 123 +# define SSL_F_SSL2_ENC_INIT 124 +# define SSL_F_SSL2_GENERATE_KEY_MATERIAL 241 +# define SSL_F_SSL2_PEEK 234 +# define SSL_F_SSL2_READ 125 +# define SSL_F_SSL2_READ_INTERNAL 236 +# define SSL_F_SSL2_SET_CERTIFICATE 126 +# define SSL_F_SSL2_WRITE 127 +# define SSL_F_SSL3_ACCEPT 128 +# define SSL_F_SSL3_ADD_CERT_TO_BUF 296 +# define SSL_F_SSL3_CALLBACK_CTRL 233 +# define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 +# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 +# define SSL_F_SSL3_CHECK_CLIENT_HELLO 304 +# define SSL_F_SSL3_CHECK_FINISHED 339 +# define SSL_F_SSL3_CLIENT_HELLO 131 +# define SSL_F_SSL3_CONNECT 132 +# define SSL_F_SSL3_CTRL 213 +# define SSL_F_SSL3_CTX_CTRL 133 +# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 +# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 +# define SSL_F_SSL3_ENC 134 +# define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 +# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 +# define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135 +# define SSL_F_SSL3_GET_CERT_STATUS 289 +# define SSL_F_SSL3_GET_CERT_VERIFY 136 +# define SSL_F_SSL3_GET_CLIENT_CERTIFICATE 137 +# define SSL_F_SSL3_GET_CLIENT_HELLO 138 +# define SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE 139 +# define SSL_F_SSL3_GET_FINISHED 140 +# define SSL_F_SSL3_GET_KEY_EXCHANGE 141 +# define SSL_F_SSL3_GET_MESSAGE 142 +# define SSL_F_SSL3_GET_NEW_SESSION_TICKET 283 +# define SSL_F_SSL3_GET_NEXT_PROTO 306 +# define SSL_F_SSL3_GET_RECORD 143 +# define SSL_F_SSL3_GET_SERVER_CERTIFICATE 144 +# define SSL_F_SSL3_GET_SERVER_DONE 145 +# define SSL_F_SSL3_GET_SERVER_HELLO 146 +# define SSL_F_SSL3_HANDSHAKE_MAC 285 +# define SSL_F_SSL3_NEW_SESSION_TICKET 287 +# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 +# define SSL_F_SSL3_PEEK 235 +# define SSL_F_SSL3_READ_BYTES 148 +# define SSL_F_SSL3_READ_N 149 +# define SSL_F_SSL3_SEND_CERTIFICATE_REQUEST 150 +# define SSL_F_SSL3_SEND_CLIENT_CERTIFICATE 151 +# define SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE 152 +# define SSL_F_SSL3_SEND_CLIENT_VERIFY 153 +# define SSL_F_SSL3_SEND_SERVER_CERTIFICATE 154 +# define SSL_F_SSL3_SEND_SERVER_HELLO 242 +# define SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE 155 +# define SSL_F_SSL3_SETUP_KEY_BLOCK 157 +# define SSL_F_SSL3_SETUP_READ_BUFFER 156 +# define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 +# define SSL_F_SSL3_WRITE_BYTES 158 +# define SSL_F_SSL3_WRITE_PENDING 159 +# define SSL_F_SSL_ADD_CERT_CHAIN 318 +# define SSL_F_SSL_ADD_CERT_TO_BUF 319 +# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 +# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 +# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 +# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 +# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 +# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 +# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 +# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 +# define SSL_F_SSL_BAD_METHOD 160 +# define SSL_F_SSL_BUILD_CERT_CHAIN 332 +# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 +# define SSL_F_SSL_CERT_DUP 221 +# define SSL_F_SSL_CERT_INST 222 +# define SSL_F_SSL_CERT_INSTANTIATE 214 +# define SSL_F_SSL_CERT_NEW 162 +# define SSL_F_SSL_CHECK_PRIVATE_KEY 163 +# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 +# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 +# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 +# define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 +# define SSL_F_SSL_CLEAR 164 +# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 +# define SSL_F_SSL_CONF_CMD 334 +# define SSL_F_SSL_CREATE_CIPHER_LIST 166 +# define SSL_F_SSL_CTRL 232 +# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 +# define SSL_F_SSL_CTX_MAKE_PROFILES 309 +# define SSL_F_SSL_CTX_NEW 169 +# define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 +# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 +# define SSL_F_SSL_CTX_SET_PURPOSE 226 +# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 +# define SSL_F_SSL_CTX_SET_SSL_VERSION 170 +# define SSL_F_SSL_CTX_SET_TRUST 229 +# define SSL_F_SSL_CTX_USE_CERTIFICATE 171 +# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 +# define SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE 220 +# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 +# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 +# define SSL_F_SSL_CTX_USE_SERVERINFO 336 +# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 +# define SSL_F_SSL_DO_HANDSHAKE 180 +# define SSL_F_SSL_GET_NEW_SESSION 181 +# define SSL_F_SSL_GET_PREV_SESSION 217 +# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 +# define SSL_F_SSL_GET_SERVER_SEND_CERT 182 +# define SSL_F_SSL_GET_SERVER_SEND_PKEY 317 +# define SSL_F_SSL_GET_SIGN_PKEY 183 +# define SSL_F_SSL_INIT_WBIO_BUFFER 184 +# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 +# define SSL_F_SSL_NEW 186 +# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 +# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 +# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 +# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 +# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 +# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 +# define SSL_F_SSL_PEEK 270 +# define SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT 281 +# define SSL_F_SSL_PREPARE_SERVERHELLO_TLSEXT 282 +# define SSL_F_SSL_READ 223 +# define SSL_F_SSL_RSA_PRIVATE_DECRYPT 187 +# define SSL_F_SSL_RSA_PUBLIC_ENCRYPT 188 +# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 +# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 +# define SSL_F_SSL_SESSION_DUP 348 +# define SSL_F_SSL_SESSION_NEW 189 +# define SSL_F_SSL_SESSION_PRINT_FP 190 +# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 +# define SSL_F_SSL_SESS_CERT_NEW 225 +# define SSL_F_SSL_SET_CERT 191 +# define SSL_F_SSL_SET_CIPHER_LIST 271 +# define SSL_F_SSL_SET_FD 192 +# define SSL_F_SSL_SET_PKEY 193 +# define SSL_F_SSL_SET_PURPOSE 227 +# define SSL_F_SSL_SET_RFD 194 +# define SSL_F_SSL_SET_SESSION 195 +# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 +# define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 +# define SSL_F_SSL_SET_TRUST 228 +# define SSL_F_SSL_SET_WFD 196 +# define SSL_F_SSL_SHUTDOWN 224 +# define SSL_F_SSL_SRP_CTX_INIT 313 +# define SSL_F_SSL_UNDEFINED_CONST_FUNCTION 243 +# define SSL_F_SSL_UNDEFINED_FUNCTION 197 +# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 +# define SSL_F_SSL_USE_CERTIFICATE 198 +# define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 +# define SSL_F_SSL_USE_CERTIFICATE_FILE 200 +# define SSL_F_SSL_USE_PRIVATEKEY 201 +# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 +# define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 +# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 +# define SSL_F_SSL_USE_RSAPRIVATEKEY 204 +# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 +# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 +# define SSL_F_SSL_VERIFY_CERT_CHAIN 207 +# define SSL_F_SSL_WRITE 208 +# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 +# define SSL_F_TLS1_CERT_VERIFY_MAC 286 +# define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 +# define SSL_F_TLS1_CHECK_SERVERHELLO_TLSEXT 274 +# define SSL_F_TLS1_ENC 210 +# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 +# define SSL_F_TLS1_GET_CURVELIST 338 +# define SSL_F_TLS1_HEARTBEAT 315 +# define SSL_F_TLS1_PREPARE_CLIENTHELLO_TLSEXT 275 +# define SSL_F_TLS1_PREPARE_SERVERHELLO_TLSEXT 276 +# define SSL_F_TLS1_PRF 284 +# define SSL_F_TLS1_SETUP_KEY_BLOCK 211 +# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 +# define SSL_F_WRITE_PENDING 212 + +/* Reason codes. */ +# define SSL_R_APP_DATA_IN_HANDSHAKE 100 +# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 +# define SSL_R_BAD_ALERT_RECORD 101 +# define SSL_R_BAD_AUTHENTICATION_TYPE 102 +# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 +# define SSL_R_BAD_CHECKSUM 104 +# define SSL_R_BAD_DATA 390 +# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 +# define SSL_R_BAD_DECOMPRESSION 107 +# define SSL_R_BAD_DH_G_LENGTH 108 +# define SSL_R_BAD_DH_G_VALUE 375 +# define SSL_R_BAD_DH_PUB_KEY_LENGTH 109 +# define SSL_R_BAD_DH_PUB_KEY_VALUE 393 +# define SSL_R_BAD_DH_P_LENGTH 110 +# define SSL_R_BAD_DH_P_VALUE 395 +# define SSL_R_BAD_DIGEST_LENGTH 111 +# define SSL_R_BAD_DSA_SIGNATURE 112 +# define SSL_R_BAD_ECC_CERT 304 +# define SSL_R_BAD_ECDSA_SIGNATURE 305 +# define SSL_R_BAD_ECPOINT 306 +# define SSL_R_BAD_HANDSHAKE_LENGTH 332 +# define SSL_R_BAD_HELLO_REQUEST 105 +# define SSL_R_BAD_LENGTH 271 +# define SSL_R_BAD_MAC_DECODE 113 +# define SSL_R_BAD_MAC_LENGTH 333 +# define SSL_R_BAD_MESSAGE_TYPE 114 +# define SSL_R_BAD_PACKET_LENGTH 115 +# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 +# define SSL_R_BAD_PSK_IDENTITY_HINT_LENGTH 316 +# define SSL_R_BAD_RESPONSE_ARGUMENT 117 +# define SSL_R_BAD_RSA_DECRYPT 118 +# define SSL_R_BAD_RSA_ENCRYPT 119 +# define SSL_R_BAD_RSA_E_LENGTH 120 +# define SSL_R_BAD_RSA_MODULUS_LENGTH 121 +# define SSL_R_BAD_RSA_SIGNATURE 122 +# define SSL_R_BAD_SIGNATURE 123 +# define SSL_R_BAD_SRP_A_LENGTH 347 +# define SSL_R_BAD_SRP_B_LENGTH 348 +# define SSL_R_BAD_SRP_G_LENGTH 349 +# define SSL_R_BAD_SRP_N_LENGTH 350 +# define SSL_R_BAD_SRP_PARAMETERS 371 +# define SSL_R_BAD_SRP_S_LENGTH 351 +# define SSL_R_BAD_SRTP_MKI_VALUE 352 +# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 +# define SSL_R_BAD_SSL_FILETYPE 124 +# define SSL_R_BAD_SSL_SESSION_ID_LENGTH 125 +# define SSL_R_BAD_STATE 126 +# define SSL_R_BAD_VALUE 384 +# define SSL_R_BAD_WRITE_RETRY 127 +# define SSL_R_BIO_NOT_SET 128 +# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 +# define SSL_R_BN_LIB 130 +# define SSL_R_CA_DN_LENGTH_MISMATCH 131 +# define SSL_R_CA_DN_TOO_LONG 132 +# define SSL_R_CCS_RECEIVED_EARLY 133 +# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 +# define SSL_R_CERT_CB_ERROR 377 +# define SSL_R_CERT_LENGTH_MISMATCH 135 +# define SSL_R_CHALLENGE_IS_DIFFERENT 136 +# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 +# define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 +# define SSL_R_CIPHER_TABLE_SRC_ERROR 139 +# define SSL_R_CLIENTHELLO_TLSEXT 226 +# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 +# define SSL_R_COMPRESSION_DISABLED 343 +# define SSL_R_COMPRESSION_FAILURE 141 +# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 +# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 +# define SSL_R_CONNECTION_ID_IS_DIFFERENT 143 +# define SSL_R_CONNECTION_TYPE_NOT_SET 144 +# define SSL_R_COOKIE_MISMATCH 308 +# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 +# define SSL_R_DATA_LENGTH_TOO_LONG 146 +# define SSL_R_DECRYPTION_FAILED 147 +# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 +# define SSL_R_DH_KEY_TOO_SMALL 372 +# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 +# define SSL_R_DIGEST_CHECK_FAILED 149 +# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 +# define SSL_R_DUPLICATE_COMPRESSION_ID 309 +# define SSL_R_ECC_CERT_NOT_FOR_KEY_AGREEMENT 317 +# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 +# define SSL_R_ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE 322 +# define SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE 323 +# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 +# define SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER 310 +# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 +# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 +# define SSL_R_ERROR_GENERATING_TMP_RSA_KEY 282 +# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 +# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 +# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 +# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 +# define SSL_R_GOT_NEXT_PROTO_BEFORE_A_CCS 355 +# define SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION 356 +# define SSL_R_HTTPS_PROXY_REQUEST 155 +# define SSL_R_HTTP_REQUEST 156 +# define SSL_R_ILLEGAL_PADDING 283 +# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 +# define SSL_R_INAPPROPRIATE_FALLBACK 373 +# define SSL_R_INCONSISTENT_COMPRESSION 340 +# define SSL_R_INVALID_CHALLENGE_LENGTH 158 +# define SSL_R_INVALID_COMMAND 280 +# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 +# define SSL_R_INVALID_NULL_CMD_NAME 385 +# define SSL_R_INVALID_PURPOSE 278 +# define SSL_R_INVALID_SERVERINFO_DATA 388 +# define SSL_R_INVALID_SRP_USERNAME 357 +# define SSL_R_INVALID_STATUS_RESPONSE 328 +# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 +# define SSL_R_INVALID_TRUST 279 +# define SSL_R_KEY_ARG_TOO_LONG 284 +# define SSL_R_KRB5 285 +# define SSL_R_KRB5_C_CC_PRINC 286 +# define SSL_R_KRB5_C_GET_CRED 287 +# define SSL_R_KRB5_C_INIT 288 +# define SSL_R_KRB5_C_MK_REQ 289 +# define SSL_R_KRB5_S_BAD_TICKET 290 +# define SSL_R_KRB5_S_INIT 291 +# define SSL_R_KRB5_S_RD_REQ 292 +# define SSL_R_KRB5_S_TKT_EXPIRED 293 +# define SSL_R_KRB5_S_TKT_NYV 294 +# define SSL_R_KRB5_S_TKT_SKEW 295 +# define SSL_R_LENGTH_MISMATCH 159 +# define SSL_R_LENGTH_TOO_SHORT 160 +# define SSL_R_LIBRARY_BUG 274 +# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 +# define SSL_R_MESSAGE_TOO_LONG 296 +# define SSL_R_MISSING_DH_DSA_CERT 162 +# define SSL_R_MISSING_DH_KEY 163 +# define SSL_R_MISSING_DH_RSA_CERT 164 +# define SSL_R_MISSING_DSA_SIGNING_CERT 165 +# define SSL_R_MISSING_ECDH_CERT 382 +# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 +# define SSL_R_MISSING_EXPORT_TMP_DH_KEY 166 +# define SSL_R_MISSING_EXPORT_TMP_RSA_KEY 167 +# define SSL_R_MISSING_RSA_CERTIFICATE 168 +# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 +# define SSL_R_MISSING_RSA_SIGNING_CERT 170 +# define SSL_R_MISSING_SRP_PARAM 358 +# define SSL_R_MISSING_TMP_DH_KEY 171 +# define SSL_R_MISSING_TMP_ECDH_KEY 311 +# define SSL_R_MISSING_TMP_RSA_KEY 172 +# define SSL_R_MISSING_TMP_RSA_PKEY 173 +# define SSL_R_MISSING_VERIFY_MESSAGE 174 +# define SSL_R_MULTIPLE_SGC_RESTARTS 346 +# define SSL_R_NON_SSLV2_INITIAL_PACKET 175 +# define SSL_R_NO_CERTIFICATES_RETURNED 176 +# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 +# define SSL_R_NO_CERTIFICATE_RETURNED 178 +# define SSL_R_NO_CERTIFICATE_SET 179 +# define SSL_R_NO_CERTIFICATE_SPECIFIED 180 +# define SSL_R_NO_CIPHERS_AVAILABLE 181 +# define SSL_R_NO_CIPHERS_PASSED 182 +# define SSL_R_NO_CIPHERS_SPECIFIED 183 +# define SSL_R_NO_CIPHER_LIST 184 +# define SSL_R_NO_CIPHER_MATCH 185 +# define SSL_R_NO_CLIENT_CERT_METHOD 331 +# define SSL_R_NO_CLIENT_CERT_RECEIVED 186 +# define SSL_R_NO_COMPRESSION_SPECIFIED 187 +# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 +# define SSL_R_NO_METHOD_SPECIFIED 188 +# define SSL_R_NO_PEM_EXTENSIONS 389 +# define SSL_R_NO_PRIVATEKEY 189 +# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 +# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 +# define SSL_R_NO_PUBLICKEY 192 +# define SSL_R_NO_RENEGOTIATION 339 +# define SSL_R_NO_REQUIRED_DIGEST 324 +# define SSL_R_NO_SHARED_CIPHER 193 +# define SSL_R_NO_SHARED_SIGATURE_ALGORITHMS 376 +# define SSL_R_NO_SRTP_PROFILES 359 +# define SSL_R_NO_VERIFY_CALLBACK 194 +# define SSL_R_NULL_SSL_CTX 195 +# define SSL_R_NULL_SSL_METHOD_PASSED 196 +# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 +# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 +# define SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE 387 +# define SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE 379 +# define SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE 297 +# define SSL_R_OPAQUE_PRF_INPUT_TOO_LONG 327 +# define SSL_R_PACKET_LENGTH_TOO_LONG 198 +# define SSL_R_PARSE_TLSEXT 227 +# define SSL_R_PATH_TOO_LONG 270 +# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 +# define SSL_R_PEER_ERROR 200 +# define SSL_R_PEER_ERROR_CERTIFICATE 201 +# define SSL_R_PEER_ERROR_NO_CERTIFICATE 202 +# define SSL_R_PEER_ERROR_NO_CIPHER 203 +# define SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE 204 +# define SSL_R_PEM_NAME_BAD_PREFIX 391 +# define SSL_R_PEM_NAME_TOO_SHORT 392 +# define SSL_R_PRE_MAC_LENGTH_TOO_LONG 205 +# define SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS 206 +# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 +# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 +# define SSL_R_PSK_NO_CLIENT_CB 224 +# define SSL_R_PSK_NO_SERVER_CB 225 +# define SSL_R_PUBLIC_KEY_ENCRYPT_ERROR 208 +# define SSL_R_PUBLIC_KEY_IS_NOT_RSA 209 +# define SSL_R_PUBLIC_KEY_NOT_RSA 210 +# define SSL_R_READ_BIO_NOT_SET 211 +# define SSL_R_READ_TIMEOUT_EXPIRED 312 +# define SSL_R_READ_WRONG_PACKET_TYPE 212 +# define SSL_R_RECORD_LENGTH_MISMATCH 213 +# define SSL_R_RECORD_TOO_LARGE 214 +# define SSL_R_RECORD_TOO_SMALL 298 +# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 +# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 +# define SSL_R_RENEGOTIATION_MISMATCH 337 +# define SSL_R_REQUIRED_CIPHER_MISSING 215 +# define SSL_R_REQUIRED_COMPRESSSION_ALGORITHM_MISSING 342 +# define SSL_R_REUSE_CERT_LENGTH_NOT_ZERO 216 +# define SSL_R_REUSE_CERT_TYPE_NOT_ZERO 217 +# define SSL_R_REUSE_CIPHER_LIST_NOT_ZERO 218 +# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 +# define SSL_R_SERVERHELLO_TLSEXT 275 +# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 +# define SSL_R_SHORT_READ 219 +# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 +# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 +# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 +# define SSL_R_SRP_A_CALC 361 +# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 +# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 +# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 +# define SSL_R_SSL23_DOING_SESSION_ID_REUSE 221 +# define SSL_R_SSL2_CONNECTION_ID_TOO_LONG 299 +# define SSL_R_SSL3_EXT_INVALID_ECPOINTFORMAT 321 +# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 +# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 +# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 +# define SSL_R_SSL3_SESSION_ID_TOO_SHORT 222 +# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 +# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 +# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 +# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 +# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 +# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 +# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 +# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 +# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 +# define SSL_R_SSL_HANDSHAKE_FAILURE 229 +# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 +# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 +# define SSL_R_SSL_SESSION_ID_CONFLICT 302 +# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 +# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 +# define SSL_R_SSL_SESSION_ID_IS_DIFFERENT 231 +# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 +# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 +# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 +# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 +# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 +# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 +# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 +# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 +# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 +# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 +# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 +# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 +# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 +# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 +# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 +# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 +# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 +# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 +# define SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER 232 +# define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 +# define SSL_R_TLS_HEARTBEAT_PENDING 366 +# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 +# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 +# define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 +# define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 +# define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235 +# define SSL_R_UNABLE_TO_DECODE_DH_CERTS 236 +# define SSL_R_UNABLE_TO_DECODE_ECDH_CERTS 313 +# define SSL_R_UNABLE_TO_EXTRACT_PUBLIC_KEY 237 +# define SSL_R_UNABLE_TO_FIND_DH_PARAMETERS 238 +# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 +# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 +# define SSL_R_UNABLE_TO_FIND_SSL_METHOD 240 +# define SSL_R_UNABLE_TO_LOAD_SSL2_MD5_ROUTINES 241 +# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 +# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 +# define SSL_R_UNEXPECTED_MESSAGE 244 +# define SSL_R_UNEXPECTED_RECORD 245 +# define SSL_R_UNINITIALIZED 276 +# define SSL_R_UNKNOWN_ALERT_TYPE 246 +# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 +# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 +# define SSL_R_UNKNOWN_CIPHER_TYPE 249 +# define SSL_R_UNKNOWN_CMD_NAME 386 +# define SSL_R_UNKNOWN_DIGEST 368 +# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 +# define SSL_R_UNKNOWN_PKEY_TYPE 251 +# define SSL_R_UNKNOWN_PROTOCOL 252 +# define SSL_R_UNKNOWN_REMOTE_ERROR_TYPE 253 +# define SSL_R_UNKNOWN_SSL_VERSION 254 +# define SSL_R_UNKNOWN_STATE 255 +# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 +# define SSL_R_UNSUPPORTED_CIPHER 256 +# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 +# define SSL_R_UNSUPPORTED_DIGEST_TYPE 326 +# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 +# define SSL_R_UNSUPPORTED_PROTOCOL 258 +# define SSL_R_UNSUPPORTED_SSL_VERSION 259 +# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 +# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 +# define SSL_R_WRITE_BIO_NOT_SET 260 +# define SSL_R_WRONG_CERTIFICATE_TYPE 383 +# define SSL_R_WRONG_CIPHER_RETURNED 261 +# define SSL_R_WRONG_CURVE 378 +# define SSL_R_WRONG_MESSAGE_TYPE 262 +# define SSL_R_WRONG_NUMBER_OF_KEY_BITS 263 +# define SSL_R_WRONG_SIGNATURE_LENGTH 264 +# define SSL_R_WRONG_SIGNATURE_SIZE 265 +# define SSL_R_WRONG_SIGNATURE_TYPE 370 +# define SSL_R_WRONG_SSL_VERSION 266 +# define SSL_R_WRONG_VERSION_NUMBER 267 +# define SSL_R_X509_LIB 268 +# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/ssl2.h b/External/include/openssl/ssl2.h new file mode 100644 index 00000000..03c7dd8c --- /dev/null +++ b/External/include/openssl/ssl2.h @@ -0,0 +1,265 @@ +/* ssl/ssl2.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_SSL2_H +# define HEADER_SSL2_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Protocol Version Codes */ +# define SSL2_VERSION 0x0002 +# define SSL2_VERSION_MAJOR 0x00 +# define SSL2_VERSION_MINOR 0x02 +/* #define SSL2_CLIENT_VERSION 0x0002 */ +/* #define SSL2_SERVER_VERSION 0x0002 */ + +/* Protocol Message Codes */ +# define SSL2_MT_ERROR 0 +# define SSL2_MT_CLIENT_HELLO 1 +# define SSL2_MT_CLIENT_MASTER_KEY 2 +# define SSL2_MT_CLIENT_FINISHED 3 +# define SSL2_MT_SERVER_HELLO 4 +# define SSL2_MT_SERVER_VERIFY 5 +# define SSL2_MT_SERVER_FINISHED 6 +# define SSL2_MT_REQUEST_CERTIFICATE 7 +# define SSL2_MT_CLIENT_CERTIFICATE 8 + +/* Error Message Codes */ +# define SSL2_PE_UNDEFINED_ERROR 0x0000 +# define SSL2_PE_NO_CIPHER 0x0001 +# define SSL2_PE_NO_CERTIFICATE 0x0002 +# define SSL2_PE_BAD_CERTIFICATE 0x0004 +# define SSL2_PE_UNSUPPORTED_CERTIFICATE_TYPE 0x0006 + +/* Cipher Kind Values */ +# define SSL2_CK_NULL_WITH_MD5 0x02000000/* v3 */ +# define SSL2_CK_RC4_128_WITH_MD5 0x02010080 +# define SSL2_CK_RC4_128_EXPORT40_WITH_MD5 0x02020080 +# define SSL2_CK_RC2_128_CBC_WITH_MD5 0x02030080 +# define SSL2_CK_RC2_128_CBC_EXPORT40_WITH_MD5 0x02040080 +# define SSL2_CK_IDEA_128_CBC_WITH_MD5 0x02050080 +# define SSL2_CK_DES_64_CBC_WITH_MD5 0x02060040 +# define SSL2_CK_DES_64_CBC_WITH_SHA 0x02060140/* v3 */ +# define SSL2_CK_DES_192_EDE3_CBC_WITH_MD5 0x020700c0 +# define SSL2_CK_DES_192_EDE3_CBC_WITH_SHA 0x020701c0/* v3 */ +# define SSL2_CK_RC4_64_WITH_MD5 0x02080080/* MS hack */ + +# define SSL2_CK_DES_64_CFB64_WITH_MD5_1 0x02ff0800/* SSLeay */ +# define SSL2_CK_NULL 0x02ff0810/* SSLeay */ + +# define SSL2_TXT_DES_64_CFB64_WITH_MD5_1 "DES-CFB-M1" +# define SSL2_TXT_NULL_WITH_MD5 "NULL-MD5" +# define SSL2_TXT_RC4_128_WITH_MD5 "RC4-MD5" +# define SSL2_TXT_RC4_128_EXPORT40_WITH_MD5 "EXP-RC4-MD5" +# define SSL2_TXT_RC2_128_CBC_WITH_MD5 "RC2-CBC-MD5" +# define SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 "EXP-RC2-CBC-MD5" +# define SSL2_TXT_IDEA_128_CBC_WITH_MD5 "IDEA-CBC-MD5" +# define SSL2_TXT_DES_64_CBC_WITH_MD5 "DES-CBC-MD5" +# define SSL2_TXT_DES_64_CBC_WITH_SHA "DES-CBC-SHA" +# define SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 "DES-CBC3-MD5" +# define SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA "DES-CBC3-SHA" +# define SSL2_TXT_RC4_64_WITH_MD5 "RC4-64-MD5" + +# define SSL2_TXT_NULL "NULL" + +/* Flags for the SSL_CIPHER.algorithm2 field */ +# define SSL2_CF_5_BYTE_ENC 0x01 +# define SSL2_CF_8_BYTE_ENC 0x02 + +/* Certificate Type Codes */ +# define SSL2_CT_X509_CERTIFICATE 0x01 + +/* Authentication Type Code */ +# define SSL2_AT_MD5_WITH_RSA_ENCRYPTION 0x01 + +# define SSL2_MAX_SSL_SESSION_ID_LENGTH 32 + +/* Upper/Lower Bounds */ +# define SSL2_MAX_MASTER_KEY_LENGTH_IN_BITS 256 +# ifdef OPENSSL_SYS_MPE +# define SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER 29998u +# else +# define SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER 32767u + /* 2^15-1 */ +# endif +# define SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER 16383/* 2^14-1 */ + +# define SSL2_CHALLENGE_LENGTH 16 +/* + * #define SSL2_CHALLENGE_LENGTH 32 + */ +# define SSL2_MIN_CHALLENGE_LENGTH 16 +# define SSL2_MAX_CHALLENGE_LENGTH 32 +# define SSL2_CONNECTION_ID_LENGTH 16 +# define SSL2_MAX_CONNECTION_ID_LENGTH 16 +# define SSL2_SSL_SESSION_ID_LENGTH 16 +# define SSL2_MAX_CERT_CHALLENGE_LENGTH 32 +# define SSL2_MIN_CERT_CHALLENGE_LENGTH 16 +# define SSL2_MAX_KEY_MATERIAL_LENGTH 24 + +# ifndef HEADER_SSL_LOCL_H +# define CERT char +# endif + +# ifndef OPENSSL_NO_SSL_INTERN + +typedef struct ssl2_state_st { + int three_byte_header; + int clear_text; /* clear text */ + int escape; /* not used in SSLv2 */ + int ssl2_rollback; /* used if SSLv23 rolled back to SSLv2 */ + /* + * non-blocking io info, used to make sure the same args were passwd + */ + unsigned int wnum; /* number of bytes sent so far */ + int wpend_tot; + const unsigned char *wpend_buf; + int wpend_off; /* offset to data to write */ + int wpend_len; /* number of bytes passwd to write */ + int wpend_ret; /* number of bytes to return to caller */ + /* buffer raw data */ + int rbuf_left; + int rbuf_offs; + unsigned char *rbuf; + unsigned char *wbuf; + unsigned char *write_ptr; /* used to point to the start due to 2/3 byte + * header. */ + unsigned int padding; + unsigned int rlength; /* passed to ssl2_enc */ + int ract_data_length; /* Set when things are encrypted. */ + unsigned int wlength; /* passed to ssl2_enc */ + int wact_data_length; /* Set when things are decrypted. */ + unsigned char *ract_data; + unsigned char *wact_data; + unsigned char *mac_data; + unsigned char *read_key; + unsigned char *write_key; + /* Stuff specifically to do with this SSL session */ + unsigned int challenge_length; + unsigned char challenge[SSL2_MAX_CHALLENGE_LENGTH]; + unsigned int conn_id_length; + unsigned char conn_id[SSL2_MAX_CONNECTION_ID_LENGTH]; + unsigned int key_material_length; + unsigned char key_material[SSL2_MAX_KEY_MATERIAL_LENGTH * 2]; + unsigned long read_sequence; + unsigned long write_sequence; + struct { + unsigned int conn_id_length; + unsigned int cert_type; + unsigned int cert_length; + unsigned int csl; + unsigned int clear; + unsigned int enc; + unsigned char ccl[SSL2_MAX_CERT_CHALLENGE_LENGTH]; + unsigned int cipher_spec_length; + unsigned int session_id_length; + unsigned int clen; + unsigned int rlen; + } tmp; +} SSL2_STATE; + +# endif + +/* SSLv2 */ +/* client */ +# define SSL2_ST_SEND_CLIENT_HELLO_A (0x10|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_HELLO_B (0x11|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_HELLO_A (0x20|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_HELLO_B (0x21|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_MASTER_KEY_A (0x30|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_MASTER_KEY_B (0x31|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_FINISHED_A (0x40|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_FINISHED_B (0x41|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_CERTIFICATE_A (0x50|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_CERTIFICATE_B (0x51|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_CERTIFICATE_C (0x52|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_CERTIFICATE_D (0x53|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_VERIFY_A (0x60|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_VERIFY_B (0x61|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_FINISHED_A (0x70|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_FINISHED_B (0x71|SSL_ST_CONNECT) +# define SSL2_ST_CLIENT_START_ENCRYPTION (0x80|SSL_ST_CONNECT) +# define SSL2_ST_X509_GET_CLIENT_CERTIFICATE (0x90|SSL_ST_CONNECT) +/* server */ +# define SSL2_ST_GET_CLIENT_HELLO_A (0x10|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_HELLO_B (0x11|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_HELLO_C (0x12|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_HELLO_A (0x20|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_HELLO_B (0x21|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_MASTER_KEY_A (0x30|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_MASTER_KEY_B (0x31|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_VERIFY_A (0x40|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_VERIFY_B (0x41|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_VERIFY_C (0x42|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_FINISHED_A (0x50|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_FINISHED_B (0x51|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_FINISHED_A (0x60|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_FINISHED_B (0x61|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_REQUEST_CERTIFICATE_A (0x70|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_REQUEST_CERTIFICATE_B (0x71|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_REQUEST_CERTIFICATE_C (0x72|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_REQUEST_CERTIFICATE_D (0x73|SSL_ST_ACCEPT) +# define SSL2_ST_SERVER_START_ENCRYPTION (0x80|SSL_ST_ACCEPT) +# define SSL2_ST_X509_GET_SERVER_CERTIFICATE (0x90|SSL_ST_ACCEPT) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/ssl23.h b/External/include/openssl/ssl23.h new file mode 100644 index 00000000..9de4685a --- /dev/null +++ b/External/include/openssl/ssl23.h @@ -0,0 +1,84 @@ +/* ssl/ssl23.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_SSL23_H +# define HEADER_SSL23_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * client + */ +/* write to server */ +# define SSL23_ST_CW_CLNT_HELLO_A (0x210|SSL_ST_CONNECT) +# define SSL23_ST_CW_CLNT_HELLO_B (0x211|SSL_ST_CONNECT) +/* read from server */ +# define SSL23_ST_CR_SRVR_HELLO_A (0x220|SSL_ST_CONNECT) +# define SSL23_ST_CR_SRVR_HELLO_B (0x221|SSL_ST_CONNECT) + +/* server */ +/* read from client */ +# define SSL23_ST_SR_CLNT_HELLO_A (0x210|SSL_ST_ACCEPT) +# define SSL23_ST_SR_CLNT_HELLO_B (0x211|SSL_ST_ACCEPT) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/ssl3.h b/External/include/openssl/ssl3.h new file mode 100644 index 00000000..e681d50a --- /dev/null +++ b/External/include/openssl/ssl3.h @@ -0,0 +1,774 @@ +/* ssl/ssl3.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2002 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * ECC cipher suite support in OpenSSL originally developed by + * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. + */ + +#ifndef HEADER_SSL3_H +# define HEADER_SSL3_H + +# ifndef OPENSSL_NO_COMP +# include +# endif +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Signalling cipher suite value from RFC 5746 + * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV) + */ +# define SSL3_CK_SCSV 0x030000FF + +/* + * Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00 + * (TLS_FALLBACK_SCSV) + */ +# define SSL3_CK_FALLBACK_SCSV 0x03005600 + +# define SSL3_CK_RSA_NULL_MD5 0x03000001 +# define SSL3_CK_RSA_NULL_SHA 0x03000002 +# define SSL3_CK_RSA_RC4_40_MD5 0x03000003 +# define SSL3_CK_RSA_RC4_128_MD5 0x03000004 +# define SSL3_CK_RSA_RC4_128_SHA 0x03000005 +# define SSL3_CK_RSA_RC2_40_MD5 0x03000006 +# define SSL3_CK_RSA_IDEA_128_SHA 0x03000007 +# define SSL3_CK_RSA_DES_40_CBC_SHA 0x03000008 +# define SSL3_CK_RSA_DES_64_CBC_SHA 0x03000009 +# define SSL3_CK_RSA_DES_192_CBC3_SHA 0x0300000A + +# define SSL3_CK_DH_DSS_DES_40_CBC_SHA 0x0300000B +# define SSL3_CK_DH_DSS_DES_64_CBC_SHA 0x0300000C +# define SSL3_CK_DH_DSS_DES_192_CBC3_SHA 0x0300000D +# define SSL3_CK_DH_RSA_DES_40_CBC_SHA 0x0300000E +# define SSL3_CK_DH_RSA_DES_64_CBC_SHA 0x0300000F +# define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 + +# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA 0x03000011 +# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA SSL3_CK_EDH_DSS_DES_40_CBC_SHA +# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA 0x03000012 +# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA SSL3_CK_EDH_DSS_DES_64_CBC_SHA +# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA 0x03000013 +# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA SSL3_CK_EDH_DSS_DES_192_CBC3_SHA +# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA 0x03000014 +# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA SSL3_CK_EDH_RSA_DES_40_CBC_SHA +# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA 0x03000015 +# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA SSL3_CK_EDH_RSA_DES_64_CBC_SHA +# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA 0x03000016 +# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA SSL3_CK_EDH_RSA_DES_192_CBC3_SHA + +# define SSL3_CK_ADH_RC4_40_MD5 0x03000017 +# define SSL3_CK_ADH_RC4_128_MD5 0x03000018 +# define SSL3_CK_ADH_DES_40_CBC_SHA 0x03000019 +# define SSL3_CK_ADH_DES_64_CBC_SHA 0x0300001A +# define SSL3_CK_ADH_DES_192_CBC_SHA 0x0300001B + +# if 0 +# define SSL3_CK_FZA_DMS_NULL_SHA 0x0300001C +# define SSL3_CK_FZA_DMS_FZA_SHA 0x0300001D +# if 0 /* Because it clashes with KRB5, is never + * used any more, and is safe to remove + * according to David Hopwood + * of the + * ietf-tls list */ +# define SSL3_CK_FZA_DMS_RC4_SHA 0x0300001E +# endif +# endif + +/* + * VRS Additional Kerberos5 entries + */ +# define SSL3_CK_KRB5_DES_64_CBC_SHA 0x0300001E +# define SSL3_CK_KRB5_DES_192_CBC3_SHA 0x0300001F +# define SSL3_CK_KRB5_RC4_128_SHA 0x03000020 +# define SSL3_CK_KRB5_IDEA_128_CBC_SHA 0x03000021 +# define SSL3_CK_KRB5_DES_64_CBC_MD5 0x03000022 +# define SSL3_CK_KRB5_DES_192_CBC3_MD5 0x03000023 +# define SSL3_CK_KRB5_RC4_128_MD5 0x03000024 +# define SSL3_CK_KRB5_IDEA_128_CBC_MD5 0x03000025 + +# define SSL3_CK_KRB5_DES_40_CBC_SHA 0x03000026 +# define SSL3_CK_KRB5_RC2_40_CBC_SHA 0x03000027 +# define SSL3_CK_KRB5_RC4_40_SHA 0x03000028 +# define SSL3_CK_KRB5_DES_40_CBC_MD5 0x03000029 +# define SSL3_CK_KRB5_RC2_40_CBC_MD5 0x0300002A +# define SSL3_CK_KRB5_RC4_40_MD5 0x0300002B + +# define SSL3_TXT_RSA_NULL_MD5 "NULL-MD5" +# define SSL3_TXT_RSA_NULL_SHA "NULL-SHA" +# define SSL3_TXT_RSA_RC4_40_MD5 "EXP-RC4-MD5" +# define SSL3_TXT_RSA_RC4_128_MD5 "RC4-MD5" +# define SSL3_TXT_RSA_RC4_128_SHA "RC4-SHA" +# define SSL3_TXT_RSA_RC2_40_MD5 "EXP-RC2-CBC-MD5" +# define SSL3_TXT_RSA_IDEA_128_SHA "IDEA-CBC-SHA" +# define SSL3_TXT_RSA_DES_40_CBC_SHA "EXP-DES-CBC-SHA" +# define SSL3_TXT_RSA_DES_64_CBC_SHA "DES-CBC-SHA" +# define SSL3_TXT_RSA_DES_192_CBC3_SHA "DES-CBC3-SHA" + +# define SSL3_TXT_DH_DSS_DES_40_CBC_SHA "EXP-DH-DSS-DES-CBC-SHA" +# define SSL3_TXT_DH_DSS_DES_64_CBC_SHA "DH-DSS-DES-CBC-SHA" +# define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA "DH-DSS-DES-CBC3-SHA" +# define SSL3_TXT_DH_RSA_DES_40_CBC_SHA "EXP-DH-RSA-DES-CBC-SHA" +# define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" +# define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" + +# define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA "EXP-DHE-DSS-DES-CBC-SHA" +# define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA "DHE-DSS-DES-CBC-SHA" +# define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA "DHE-DSS-DES-CBC3-SHA" +# define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA "EXP-DHE-RSA-DES-CBC-SHA" +# define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA "DHE-RSA-DES-CBC-SHA" +# define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA "DHE-RSA-DES-CBC3-SHA" + +/* + * This next block of six "EDH" labels is for backward compatibility with + * older versions of OpenSSL. New code should use the six "DHE" labels above + * instead: + */ +# define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" +# define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" +# define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" +# define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA "EXP-EDH-RSA-DES-CBC-SHA" +# define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA "EDH-RSA-DES-CBC-SHA" +# define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA "EDH-RSA-DES-CBC3-SHA" + +# define SSL3_TXT_ADH_RC4_40_MD5 "EXP-ADH-RC4-MD5" +# define SSL3_TXT_ADH_RC4_128_MD5 "ADH-RC4-MD5" +# define SSL3_TXT_ADH_DES_40_CBC_SHA "EXP-ADH-DES-CBC-SHA" +# define SSL3_TXT_ADH_DES_64_CBC_SHA "ADH-DES-CBC-SHA" +# define SSL3_TXT_ADH_DES_192_CBC_SHA "ADH-DES-CBC3-SHA" + +# if 0 +# define SSL3_TXT_FZA_DMS_NULL_SHA "FZA-NULL-SHA" +# define SSL3_TXT_FZA_DMS_FZA_SHA "FZA-FZA-CBC-SHA" +# define SSL3_TXT_FZA_DMS_RC4_SHA "FZA-RC4-SHA" +# endif + +# define SSL3_TXT_KRB5_DES_64_CBC_SHA "KRB5-DES-CBC-SHA" +# define SSL3_TXT_KRB5_DES_192_CBC3_SHA "KRB5-DES-CBC3-SHA" +# define SSL3_TXT_KRB5_RC4_128_SHA "KRB5-RC4-SHA" +# define SSL3_TXT_KRB5_IDEA_128_CBC_SHA "KRB5-IDEA-CBC-SHA" +# define SSL3_TXT_KRB5_DES_64_CBC_MD5 "KRB5-DES-CBC-MD5" +# define SSL3_TXT_KRB5_DES_192_CBC3_MD5 "KRB5-DES-CBC3-MD5" +# define SSL3_TXT_KRB5_RC4_128_MD5 "KRB5-RC4-MD5" +# define SSL3_TXT_KRB5_IDEA_128_CBC_MD5 "KRB5-IDEA-CBC-MD5" + +# define SSL3_TXT_KRB5_DES_40_CBC_SHA "EXP-KRB5-DES-CBC-SHA" +# define SSL3_TXT_KRB5_RC2_40_CBC_SHA "EXP-KRB5-RC2-CBC-SHA" +# define SSL3_TXT_KRB5_RC4_40_SHA "EXP-KRB5-RC4-SHA" +# define SSL3_TXT_KRB5_DES_40_CBC_MD5 "EXP-KRB5-DES-CBC-MD5" +# define SSL3_TXT_KRB5_RC2_40_CBC_MD5 "EXP-KRB5-RC2-CBC-MD5" +# define SSL3_TXT_KRB5_RC4_40_MD5 "EXP-KRB5-RC4-MD5" + +# define SSL3_SSL_SESSION_ID_LENGTH 32 +# define SSL3_MAX_SSL_SESSION_ID_LENGTH 32 + +# define SSL3_MASTER_SECRET_SIZE 48 +# define SSL3_RANDOM_SIZE 32 +# define SSL3_SESSION_ID_SIZE 32 +# define SSL3_RT_HEADER_LENGTH 5 + +# define SSL3_HM_HEADER_LENGTH 4 + +# ifndef SSL3_ALIGN_PAYLOAD + /* + * Some will argue that this increases memory footprint, but it's not + * actually true. Point is that malloc has to return at least 64-bit aligned + * pointers, meaning that allocating 5 bytes wastes 3 bytes in either case. + * Suggested pre-gaping simply moves these wasted bytes from the end of + * allocated region to its front, but makes data payload aligned, which + * improves performance:-) + */ +# define SSL3_ALIGN_PAYLOAD 8 +# else +# if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0 +# error "insane SSL3_ALIGN_PAYLOAD" +# undef SSL3_ALIGN_PAYLOAD +# endif +# endif + +/* + * This is the maximum MAC (digest) size used by the SSL library. Currently + * maximum of 20 is used by SHA1, but we reserve for future extension for + * 512-bit hashes. + */ + +# define SSL3_RT_MAX_MD_SIZE 64 + +/* + * Maximum block size used in all ciphersuites. Currently 16 for AES. + */ + +# define SSL_RT_MAX_CIPHER_BLOCK_SIZE 16 + +# define SSL3_RT_MAX_EXTRA (16384) + +/* Maximum plaintext length: defined by SSL/TLS standards */ +# define SSL3_RT_MAX_PLAIN_LENGTH 16384 +/* Maximum compression overhead: defined by SSL/TLS standards */ +# define SSL3_RT_MAX_COMPRESSED_OVERHEAD 1024 + +/* + * The standards give a maximum encryption overhead of 1024 bytes. In + * practice the value is lower than this. The overhead is the maximum number + * of padding bytes (256) plus the mac size. + */ +# define SSL3_RT_MAX_ENCRYPTED_OVERHEAD (256 + SSL3_RT_MAX_MD_SIZE) + +/* + * OpenSSL currently only uses a padding length of at most one block so the + * send overhead is smaller. + */ + +# define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \ + (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE) + +/* If compression isn't used don't include the compression overhead */ + +# ifdef OPENSSL_NO_COMP +# define SSL3_RT_MAX_COMPRESSED_LENGTH SSL3_RT_MAX_PLAIN_LENGTH +# else +# define SSL3_RT_MAX_COMPRESSED_LENGTH \ + (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD) +# endif +# define SSL3_RT_MAX_ENCRYPTED_LENGTH \ + (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH) +# define SSL3_RT_MAX_PACKET_SIZE \ + (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH) + +# define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" +# define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" + +# define SSL3_VERSION 0x0300 +# define SSL3_VERSION_MAJOR 0x03 +# define SSL3_VERSION_MINOR 0x00 + +# define SSL3_RT_CHANGE_CIPHER_SPEC 20 +# define SSL3_RT_ALERT 21 +# define SSL3_RT_HANDSHAKE 22 +# define SSL3_RT_APPLICATION_DATA 23 +# define TLS1_RT_HEARTBEAT 24 + +/* Pseudo content types to indicate additional parameters */ +# define TLS1_RT_CRYPTO 0x1000 +# define TLS1_RT_CRYPTO_PREMASTER (TLS1_RT_CRYPTO | 0x1) +# define TLS1_RT_CRYPTO_CLIENT_RANDOM (TLS1_RT_CRYPTO | 0x2) +# define TLS1_RT_CRYPTO_SERVER_RANDOM (TLS1_RT_CRYPTO | 0x3) +# define TLS1_RT_CRYPTO_MASTER (TLS1_RT_CRYPTO | 0x4) + +# define TLS1_RT_CRYPTO_READ 0x0000 +# define TLS1_RT_CRYPTO_WRITE 0x0100 +# define TLS1_RT_CRYPTO_MAC (TLS1_RT_CRYPTO | 0x5) +# define TLS1_RT_CRYPTO_KEY (TLS1_RT_CRYPTO | 0x6) +# define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) +# define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) + +/* Pseudo content type for SSL/TLS header info */ +# define SSL3_RT_HEADER 0x100 + +# define SSL3_AL_WARNING 1 +# define SSL3_AL_FATAL 2 + +# define SSL3_AD_CLOSE_NOTIFY 0 +# define SSL3_AD_UNEXPECTED_MESSAGE 10/* fatal */ +# define SSL3_AD_BAD_RECORD_MAC 20/* fatal */ +# define SSL3_AD_DECOMPRESSION_FAILURE 30/* fatal */ +# define SSL3_AD_HANDSHAKE_FAILURE 40/* fatal */ +# define SSL3_AD_NO_CERTIFICATE 41 +# define SSL3_AD_BAD_CERTIFICATE 42 +# define SSL3_AD_UNSUPPORTED_CERTIFICATE 43 +# define SSL3_AD_CERTIFICATE_REVOKED 44 +# define SSL3_AD_CERTIFICATE_EXPIRED 45 +# define SSL3_AD_CERTIFICATE_UNKNOWN 46 +# define SSL3_AD_ILLEGAL_PARAMETER 47/* fatal */ + +# define TLS1_HB_REQUEST 1 +# define TLS1_HB_RESPONSE 2 + +# ifndef OPENSSL_NO_SSL_INTERN + +typedef struct ssl3_record_st { + /* type of record */ + /* + * r + */ int type; + /* How many bytes available */ + /* + * rw + */ unsigned int length; + /* read/write offset into 'buf' */ + /* + * r + */ unsigned int off; + /* pointer to the record data */ + /* + * rw + */ unsigned char *data; + /* where the decode bytes are */ + /* + * rw + */ unsigned char *input; + /* only used with decompression - malloc()ed */ + /* + * r + */ unsigned char *comp; + /* epoch number, needed by DTLS1 */ + /* + * r + */ unsigned long epoch; + /* sequence number, needed by DTLS1 */ + /* + * r + */ unsigned char seq_num[8]; +} SSL3_RECORD; + +typedef struct ssl3_buffer_st { + /* at least SSL3_RT_MAX_PACKET_SIZE bytes, see ssl3_setup_buffers() */ + unsigned char *buf; + /* buffer size */ + size_t len; + /* where to 'copy from' */ + int offset; + /* how many bytes left */ + int left; +} SSL3_BUFFER; + +# endif + +# define SSL3_CT_RSA_SIGN 1 +# define SSL3_CT_DSS_SIGN 2 +# define SSL3_CT_RSA_FIXED_DH 3 +# define SSL3_CT_DSS_FIXED_DH 4 +# define SSL3_CT_RSA_EPHEMERAL_DH 5 +# define SSL3_CT_DSS_EPHEMERAL_DH 6 +# define SSL3_CT_FORTEZZA_DMS 20 +/* + * SSL3_CT_NUMBER is used to size arrays and it must be large enough to + * contain all of the cert types defined either for SSLv3 and TLSv1. + */ +# define SSL3_CT_NUMBER 9 + +# define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 +# define SSL3_FLAGS_DELAY_CLIENT_FINISHED 0x0002 +# define SSL3_FLAGS_POP_BUFFER 0x0004 +# define TLS1_FLAGS_TLS_PADDING_BUG 0x0008 +# define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 +# define TLS1_FLAGS_KEEP_HANDSHAKE 0x0020 +/* + * Set when the handshake is ready to process peer's ChangeCipherSpec message. + * Cleared after the message has been processed. + */ +# define SSL3_FLAGS_CCS_OK 0x0080 + +/* SSL3_FLAGS_SGC_RESTART_DONE is no longer used */ +# define SSL3_FLAGS_SGC_RESTART_DONE 0x0040 + +# ifndef OPENSSL_NO_SSL_INTERN + +typedef struct ssl3_state_st { + long flags; + int delay_buf_pop_ret; + unsigned char read_sequence[8]; + int read_mac_secret_size; + unsigned char read_mac_secret[EVP_MAX_MD_SIZE]; + unsigned char write_sequence[8]; + int write_mac_secret_size; + unsigned char write_mac_secret[EVP_MAX_MD_SIZE]; + unsigned char server_random[SSL3_RANDOM_SIZE]; + unsigned char client_random[SSL3_RANDOM_SIZE]; + /* flags for countermeasure against known-IV weakness */ + int need_empty_fragments; + int empty_fragment_done; + /* The value of 'extra' when the buffers were initialized */ + int init_extra; + SSL3_BUFFER rbuf; /* read IO goes into here */ + SSL3_BUFFER wbuf; /* write IO goes into here */ + SSL3_RECORD rrec; /* each decoded record goes in here */ + SSL3_RECORD wrec; /* goes out from here */ + /* + * storage for Alert/Handshake protocol data received but not yet + * processed by ssl3_read_bytes: + */ + unsigned char alert_fragment[2]; + unsigned int alert_fragment_len; + unsigned char handshake_fragment[4]; + unsigned int handshake_fragment_len; + /* partial write - check the numbers match */ + unsigned int wnum; /* number of bytes sent so far */ + int wpend_tot; /* number bytes written */ + int wpend_type; + int wpend_ret; /* number of bytes submitted */ + const unsigned char *wpend_buf; + /* used during startup, digest all incoming/outgoing packets */ + BIO *handshake_buffer; + /* + * When set of handshake digests is determined, buffer is hashed and + * freed and MD_CTX-es for all required digests are stored in this array + */ + EVP_MD_CTX **handshake_dgst; + /* + * Set whenever an expected ChangeCipherSpec message is processed. + * Unset when the peer's Finished message is received. + * Unexpected ChangeCipherSpec messages trigger a fatal alert. + */ + int change_cipher_spec; + int warn_alert; + int fatal_alert; + /* + * we allow one fatal and one warning alert to be outstanding, send close + * alert via the warning alert + */ + int alert_dispatch; + unsigned char send_alert[2]; + /* + * This flag is set when we should renegotiate ASAP, basically when there + * is no more data in the read or write buffers + */ + int renegotiate; + int total_renegotiations; + int num_renegotiations; + int in_read_app_data; + /* + * Opaque PRF input as used for the current handshake. These fields are + * used only if TLSEXT_TYPE_opaque_prf_input is defined (otherwise, they + * are merely present to improve binary compatibility) + */ + void *client_opaque_prf_input; + size_t client_opaque_prf_input_len; + void *server_opaque_prf_input; + size_t server_opaque_prf_input_len; + struct { + /* actually only needs to be 16+20 */ + unsigned char cert_verify_md[EVP_MAX_MD_SIZE * 2]; + /* actually only need to be 16+20 for SSLv3 and 12 for TLS */ + unsigned char finish_md[EVP_MAX_MD_SIZE * 2]; + int finish_md_len; + unsigned char peer_finish_md[EVP_MAX_MD_SIZE * 2]; + int peer_finish_md_len; + unsigned long message_size; + int message_type; + /* used to hold the new cipher we are going to use */ + const SSL_CIPHER *new_cipher; +# ifndef OPENSSL_NO_DH + DH *dh; +# endif +# ifndef OPENSSL_NO_ECDH + EC_KEY *ecdh; /* holds short lived ECDH key */ +# endif + /* used when SSL_ST_FLUSH_DATA is entered */ + int next_state; + int reuse_message; + /* used for certificate requests */ + int cert_req; + int ctype_num; + char ctype[SSL3_CT_NUMBER]; + STACK_OF(X509_NAME) *ca_names; + int use_rsa_tmp; + int key_block_length; + unsigned char *key_block; + const EVP_CIPHER *new_sym_enc; + const EVP_MD *new_hash; + int new_mac_pkey_type; + int new_mac_secret_size; +# ifndef OPENSSL_NO_COMP + const SSL_COMP *new_compression; +# else + char *new_compression; +# endif + int cert_request; + } tmp; + + /* Connection binding to prevent renegotiation attacks */ + unsigned char previous_client_finished[EVP_MAX_MD_SIZE]; + unsigned char previous_client_finished_len; + unsigned char previous_server_finished[EVP_MAX_MD_SIZE]; + unsigned char previous_server_finished_len; + int send_connection_binding; /* TODOEKR */ + +# ifndef OPENSSL_NO_NEXTPROTONEG + /* + * Set if we saw the Next Protocol Negotiation extension from our peer. + */ + int next_proto_neg_seen; +# endif + +# ifndef OPENSSL_NO_TLSEXT +# ifndef OPENSSL_NO_EC + /* + * This is set to true if we believe that this is a version of Safari + * running on OS X 10.6 or newer. We wish to know this because Safari on + * 10.8 .. 10.8.3 has broken ECDHE-ECDSA support. + */ + char is_probably_safari; +# endif /* !OPENSSL_NO_EC */ + + /* + * ALPN information (we are in the process of transitioning from NPN to + * ALPN.) + */ + + /* + * In a server these point to the selected ALPN protocol after the + * ClientHello has been processed. In a client these contain the protocol + * that the server selected once the ServerHello has been processed. + */ + unsigned char *alpn_selected; + unsigned alpn_selected_len; +# endif /* OPENSSL_NO_TLSEXT */ +} SSL3_STATE; + +# endif + +/* SSLv3 */ +/* + * client + */ +/* extra state */ +# define SSL3_ST_CW_FLUSH (0x100|SSL_ST_CONNECT) +# ifndef OPENSSL_NO_SCTP +# define DTLS1_SCTP_ST_CW_WRITE_SOCK (0x310|SSL_ST_CONNECT) +# define DTLS1_SCTP_ST_CR_READ_SOCK (0x320|SSL_ST_CONNECT) +# endif +/* write to server */ +# define SSL3_ST_CW_CLNT_HELLO_A (0x110|SSL_ST_CONNECT) +# define SSL3_ST_CW_CLNT_HELLO_B (0x111|SSL_ST_CONNECT) +/* read from server */ +# define SSL3_ST_CR_SRVR_HELLO_A (0x120|SSL_ST_CONNECT) +# define SSL3_ST_CR_SRVR_HELLO_B (0x121|SSL_ST_CONNECT) +# define DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A (0x126|SSL_ST_CONNECT) +# define DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B (0x127|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_A (0x130|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_B (0x131|SSL_ST_CONNECT) +# define SSL3_ST_CR_KEY_EXCH_A (0x140|SSL_ST_CONNECT) +# define SSL3_ST_CR_KEY_EXCH_B (0x141|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_REQ_A (0x150|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_REQ_B (0x151|SSL_ST_CONNECT) +# define SSL3_ST_CR_SRVR_DONE_A (0x160|SSL_ST_CONNECT) +# define SSL3_ST_CR_SRVR_DONE_B (0x161|SSL_ST_CONNECT) +/* write to server */ +# define SSL3_ST_CW_CERT_A (0x170|SSL_ST_CONNECT) +# define SSL3_ST_CW_CERT_B (0x171|SSL_ST_CONNECT) +# define SSL3_ST_CW_CERT_C (0x172|SSL_ST_CONNECT) +# define SSL3_ST_CW_CERT_D (0x173|SSL_ST_CONNECT) +# define SSL3_ST_CW_KEY_EXCH_A (0x180|SSL_ST_CONNECT) +# define SSL3_ST_CW_KEY_EXCH_B (0x181|SSL_ST_CONNECT) +# define SSL3_ST_CW_CERT_VRFY_A (0x190|SSL_ST_CONNECT) +# define SSL3_ST_CW_CERT_VRFY_B (0x191|SSL_ST_CONNECT) +# define SSL3_ST_CW_CHANGE_A (0x1A0|SSL_ST_CONNECT) +# define SSL3_ST_CW_CHANGE_B (0x1A1|SSL_ST_CONNECT) +# ifndef OPENSSL_NO_NEXTPROTONEG +# define SSL3_ST_CW_NEXT_PROTO_A (0x200|SSL_ST_CONNECT) +# define SSL3_ST_CW_NEXT_PROTO_B (0x201|SSL_ST_CONNECT) +# endif +# define SSL3_ST_CW_FINISHED_A (0x1B0|SSL_ST_CONNECT) +# define SSL3_ST_CW_FINISHED_B (0x1B1|SSL_ST_CONNECT) +/* read from server */ +# define SSL3_ST_CR_CHANGE_A (0x1C0|SSL_ST_CONNECT) +# define SSL3_ST_CR_CHANGE_B (0x1C1|SSL_ST_CONNECT) +# define SSL3_ST_CR_FINISHED_A (0x1D0|SSL_ST_CONNECT) +# define SSL3_ST_CR_FINISHED_B (0x1D1|SSL_ST_CONNECT) +# define SSL3_ST_CR_SESSION_TICKET_A (0x1E0|SSL_ST_CONNECT) +# define SSL3_ST_CR_SESSION_TICKET_B (0x1E1|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_STATUS_A (0x1F0|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_STATUS_B (0x1F1|SSL_ST_CONNECT) + +/* server */ +/* extra state */ +# define SSL3_ST_SW_FLUSH (0x100|SSL_ST_ACCEPT) +# ifndef OPENSSL_NO_SCTP +# define DTLS1_SCTP_ST_SW_WRITE_SOCK (0x310|SSL_ST_ACCEPT) +# define DTLS1_SCTP_ST_SR_READ_SOCK (0x320|SSL_ST_ACCEPT) +# endif +/* read from client */ +/* Do not change the number values, they do matter */ +# define SSL3_ST_SR_CLNT_HELLO_A (0x110|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CLNT_HELLO_B (0x111|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CLNT_HELLO_C (0x112|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CLNT_HELLO_D (0x115|SSL_ST_ACCEPT) +/* write to client */ +# define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A (0x113|SSL_ST_ACCEPT) +# define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B (0x114|SSL_ST_ACCEPT) +# define SSL3_ST_SW_HELLO_REQ_A (0x120|SSL_ST_ACCEPT) +# define SSL3_ST_SW_HELLO_REQ_B (0x121|SSL_ST_ACCEPT) +# define SSL3_ST_SW_HELLO_REQ_C (0x122|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SRVR_HELLO_A (0x130|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SRVR_HELLO_B (0x131|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_A (0x140|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_B (0x141|SSL_ST_ACCEPT) +# define SSL3_ST_SW_KEY_EXCH_A (0x150|SSL_ST_ACCEPT) +# define SSL3_ST_SW_KEY_EXCH_B (0x151|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_REQ_A (0x160|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_REQ_B (0x161|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SRVR_DONE_A (0x170|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SRVR_DONE_B (0x171|SSL_ST_ACCEPT) +/* read from client */ +# define SSL3_ST_SR_CERT_A (0x180|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CERT_B (0x181|SSL_ST_ACCEPT) +# define SSL3_ST_SR_KEY_EXCH_A (0x190|SSL_ST_ACCEPT) +# define SSL3_ST_SR_KEY_EXCH_B (0x191|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CERT_VRFY_A (0x1A0|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CERT_VRFY_B (0x1A1|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CHANGE_A (0x1B0|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CHANGE_B (0x1B1|SSL_ST_ACCEPT) +# ifndef OPENSSL_NO_NEXTPROTONEG +# define SSL3_ST_SR_NEXT_PROTO_A (0x210|SSL_ST_ACCEPT) +# define SSL3_ST_SR_NEXT_PROTO_B (0x211|SSL_ST_ACCEPT) +# endif +# define SSL3_ST_SR_FINISHED_A (0x1C0|SSL_ST_ACCEPT) +# define SSL3_ST_SR_FINISHED_B (0x1C1|SSL_ST_ACCEPT) +/* write to client */ +# define SSL3_ST_SW_CHANGE_A (0x1D0|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CHANGE_B (0x1D1|SSL_ST_ACCEPT) +# define SSL3_ST_SW_FINISHED_A (0x1E0|SSL_ST_ACCEPT) +# define SSL3_ST_SW_FINISHED_B (0x1E1|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SESSION_TICKET_A (0x1F0|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SESSION_TICKET_B (0x1F1|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_STATUS_A (0x200|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_STATUS_B (0x201|SSL_ST_ACCEPT) + +# define SSL3_MT_HELLO_REQUEST 0 +# define SSL3_MT_CLIENT_HELLO 1 +# define SSL3_MT_SERVER_HELLO 2 +# define SSL3_MT_NEWSESSION_TICKET 4 +# define SSL3_MT_CERTIFICATE 11 +# define SSL3_MT_SERVER_KEY_EXCHANGE 12 +# define SSL3_MT_CERTIFICATE_REQUEST 13 +# define SSL3_MT_SERVER_DONE 14 +# define SSL3_MT_CERTIFICATE_VERIFY 15 +# define SSL3_MT_CLIENT_KEY_EXCHANGE 16 +# define SSL3_MT_FINISHED 20 +# define SSL3_MT_CERTIFICATE_STATUS 22 +# ifndef OPENSSL_NO_NEXTPROTONEG +# define SSL3_MT_NEXT_PROTO 67 +# endif +# define DTLS1_MT_HELLO_VERIFY_REQUEST 3 + +# define SSL3_MT_CCS 1 + +/* These are used when changing over to a new cipher */ +# define SSL3_CC_READ 0x01 +# define SSL3_CC_WRITE 0x02 +# define SSL3_CC_CLIENT 0x10 +# define SSL3_CC_SERVER 0x20 +# define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE) +# define SSL3_CHANGE_CIPHER_SERVER_READ (SSL3_CC_SERVER|SSL3_CC_READ) +# define SSL3_CHANGE_CIPHER_CLIENT_READ (SSL3_CC_CLIENT|SSL3_CC_READ) +# define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/stack.h b/External/include/openssl/stack.h new file mode 100644 index 00000000..eb072166 --- /dev/null +++ b/External/include/openssl/stack.h @@ -0,0 +1,107 @@ +/* crypto/stack/stack.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_STACK_H +# define HEADER_STACK_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct stack_st { + int num; + char **data; + int sorted; + int num_alloc; + int (*comp) (const void *, const void *); +} _STACK; /* Use STACK_OF(...) instead */ + +# define M_sk_num(sk) ((sk) ? (sk)->num:-1) +# define M_sk_value(sk,n) ((sk) ? (sk)->data[n] : NULL) + +int sk_num(const _STACK *); +void *sk_value(const _STACK *, int); + +void *sk_set(_STACK *, int, void *); + +_STACK *sk_new(int (*cmp) (const void *, const void *)); +_STACK *sk_new_null(void); +void sk_free(_STACK *); +void sk_pop_free(_STACK *st, void (*func) (void *)); +_STACK *sk_deep_copy(_STACK *, void *(*)(void *), void (*)(void *)); +int sk_insert(_STACK *sk, void *data, int where); +void *sk_delete(_STACK *st, int loc); +void *sk_delete_ptr(_STACK *st, void *p); +int sk_find(_STACK *st, void *data); +int sk_find_ex(_STACK *st, void *data); +int sk_push(_STACK *st, void *data); +int sk_unshift(_STACK *st, void *data); +void *sk_shift(_STACK *st); +void *sk_pop(_STACK *st); +void sk_zero(_STACK *st); +int (*sk_set_cmp_func(_STACK *sk, int (*c) (const void *, const void *))) + (const void *, const void *); +_STACK *sk_dup(_STACK *st); +void sk_sort(_STACK *st); +int sk_is_sorted(const _STACK *st); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/symhacks.h b/External/include/openssl/symhacks.h new file mode 100644 index 00000000..239fa4fb --- /dev/null +++ b/External/include/openssl/symhacks.h @@ -0,0 +1,516 @@ +/* ==================================================================== + * Copyright (c) 1999 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_SYMHACKS_H +# define HEADER_SYMHACKS_H + +# include + +/* + * Hacks to solve the problem with linkers incapable of handling very long + * symbol names. In the case of VMS, the limit is 31 characters on VMS for + * VAX. + */ +/* + * Note that this affects util/libeay.num and util/ssleay.num... you may + * change those manually, but that's not recommended, as those files are + * controlled centrally and updated on Unix, and the central definition may + * disagree with yours, which in turn may come with shareable library + * incompatibilities. + */ +# ifdef OPENSSL_SYS_VMS + +/* Hack a long name in crypto/ex_data.c */ +# undef CRYPTO_get_ex_data_implementation +# define CRYPTO_get_ex_data_implementation CRYPTO_get_ex_data_impl +# undef CRYPTO_set_ex_data_implementation +# define CRYPTO_set_ex_data_implementation CRYPTO_set_ex_data_impl + +/* Hack a long name in crypto/asn1/a_mbstr.c */ +# undef ASN1_STRING_set_default_mask_asc +# define ASN1_STRING_set_default_mask_asc ASN1_STRING_set_def_mask_asc + +# if 0 /* No longer needed, since safestack macro + * magic does the job */ +/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) */ +# undef i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO +# define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO i2d_ASN1_SET_OF_PKCS7_SIGINF +# undef d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO +# define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO d2i_ASN1_SET_OF_PKCS7_SIGINF +# endif + +# if 0 /* No longer needed, since safestack macro + * magic does the job */ +/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) */ +# undef i2d_ASN1_SET_OF_PKCS7_RECIP_INFO +# define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO i2d_ASN1_SET_OF_PKCS7_RECINF +# undef d2i_ASN1_SET_OF_PKCS7_RECIP_INFO +# define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO d2i_ASN1_SET_OF_PKCS7_RECINF +# endif + +# if 0 /* No longer needed, since safestack macro + * magic does the job */ +/* Hack the names created with DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION) */ +# undef i2d_ASN1_SET_OF_ACCESS_DESCRIPTION +# define i2d_ASN1_SET_OF_ACCESS_DESCRIPTION i2d_ASN1_SET_OF_ACC_DESC +# undef d2i_ASN1_SET_OF_ACCESS_DESCRIPTION +# define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION d2i_ASN1_SET_OF_ACC_DESC +# endif + +/* Hack the names created with DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE) */ +# undef PEM_read_NETSCAPE_CERT_SEQUENCE +# define PEM_read_NETSCAPE_CERT_SEQUENCE PEM_read_NS_CERT_SEQ +# undef PEM_write_NETSCAPE_CERT_SEQUENCE +# define PEM_write_NETSCAPE_CERT_SEQUENCE PEM_write_NS_CERT_SEQ +# undef PEM_read_bio_NETSCAPE_CERT_SEQUENCE +# define PEM_read_bio_NETSCAPE_CERT_SEQUENCE PEM_read_bio_NS_CERT_SEQ +# undef PEM_write_bio_NETSCAPE_CERT_SEQUENCE +# define PEM_write_bio_NETSCAPE_CERT_SEQUENCE PEM_write_bio_NS_CERT_SEQ +# undef PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE +# define PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE PEM_write_cb_bio_NS_CERT_SEQ + +/* Hack the names created with DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO) */ +# undef PEM_read_PKCS8_PRIV_KEY_INFO +# define PEM_read_PKCS8_PRIV_KEY_INFO PEM_read_P8_PRIV_KEY_INFO +# undef PEM_write_PKCS8_PRIV_KEY_INFO +# define PEM_write_PKCS8_PRIV_KEY_INFO PEM_write_P8_PRIV_KEY_INFO +# undef PEM_read_bio_PKCS8_PRIV_KEY_INFO +# define PEM_read_bio_PKCS8_PRIV_KEY_INFO PEM_read_bio_P8_PRIV_KEY_INFO +# undef PEM_write_bio_PKCS8_PRIV_KEY_INFO +# define PEM_write_bio_PKCS8_PRIV_KEY_INFO PEM_write_bio_P8_PRIV_KEY_INFO +# undef PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO +# define PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO PEM_wrt_cb_bio_P8_PRIV_KEY_INFO + +/* Hack other PEM names */ +# undef PEM_write_bio_PKCS8PrivateKey_nid +# define PEM_write_bio_PKCS8PrivateKey_nid PEM_write_bio_PKCS8PrivKey_nid + +/* Hack some long X509 names */ +# undef X509_REVOKED_get_ext_by_critical +# define X509_REVOKED_get_ext_by_critical X509_REVOKED_get_ext_by_critic +# undef X509_policy_tree_get0_user_policies +# define X509_policy_tree_get0_user_policies X509_pcy_tree_get0_usr_policies +# undef X509_policy_node_get0_qualifiers +# define X509_policy_node_get0_qualifiers X509_pcy_node_get0_qualifiers +# undef X509_STORE_CTX_get_explicit_policy +# define X509_STORE_CTX_get_explicit_policy X509_STORE_CTX_get_expl_policy +# undef X509_STORE_CTX_get0_current_issuer +# define X509_STORE_CTX_get0_current_issuer X509_STORE_CTX_get0_cur_issuer + +/* Hack some long CRYPTO names */ +# undef CRYPTO_set_dynlock_destroy_callback +# define CRYPTO_set_dynlock_destroy_callback CRYPTO_set_dynlock_destroy_cb +# undef CRYPTO_set_dynlock_create_callback +# define CRYPTO_set_dynlock_create_callback CRYPTO_set_dynlock_create_cb +# undef CRYPTO_set_dynlock_lock_callback +# define CRYPTO_set_dynlock_lock_callback CRYPTO_set_dynlock_lock_cb +# undef CRYPTO_get_dynlock_lock_callback +# define CRYPTO_get_dynlock_lock_callback CRYPTO_get_dynlock_lock_cb +# undef CRYPTO_get_dynlock_destroy_callback +# define CRYPTO_get_dynlock_destroy_callback CRYPTO_get_dynlock_destroy_cb +# undef CRYPTO_get_dynlock_create_callback +# define CRYPTO_get_dynlock_create_callback CRYPTO_get_dynlock_create_cb +# undef CRYPTO_set_locked_mem_ex_functions +# define CRYPTO_set_locked_mem_ex_functions CRYPTO_set_locked_mem_ex_funcs +# undef CRYPTO_get_locked_mem_ex_functions +# define CRYPTO_get_locked_mem_ex_functions CRYPTO_get_locked_mem_ex_funcs + +/* Hack some long SSL/TLS names */ +# undef SSL_CTX_set_default_verify_paths +# define SSL_CTX_set_default_verify_paths SSL_CTX_set_def_verify_paths +# undef SSL_get_ex_data_X509_STORE_CTX_idx +# define SSL_get_ex_data_X509_STORE_CTX_idx SSL_get_ex_d_X509_STORE_CTX_idx +# undef SSL_add_file_cert_subjects_to_stack +# define SSL_add_file_cert_subjects_to_stack SSL_add_file_cert_subjs_to_stk +# undef SSL_add_dir_cert_subjects_to_stack +# define SSL_add_dir_cert_subjects_to_stack SSL_add_dir_cert_subjs_to_stk +# undef SSL_CTX_use_certificate_chain_file +# define SSL_CTX_use_certificate_chain_file SSL_CTX_use_cert_chain_file +# undef SSL_CTX_set_cert_verify_callback +# define SSL_CTX_set_cert_verify_callback SSL_CTX_set_cert_verify_cb +# undef SSL_CTX_set_default_passwd_cb_userdata +# define SSL_CTX_set_default_passwd_cb_userdata SSL_CTX_set_def_passwd_cb_ud +# undef SSL_COMP_get_compression_methods +# define SSL_COMP_get_compression_methods SSL_COMP_get_compress_methods +# undef SSL_COMP_set0_compression_methods +# define SSL_COMP_set0_compression_methods SSL_COMP_set0_compress_methods +# undef SSL_COMP_free_compression_methods +# define SSL_COMP_free_compression_methods SSL_COMP_free_compress_methods +# undef ssl_add_clienthello_renegotiate_ext +# define ssl_add_clienthello_renegotiate_ext ssl_add_clienthello_reneg_ext +# undef ssl_add_serverhello_renegotiate_ext +# define ssl_add_serverhello_renegotiate_ext ssl_add_serverhello_reneg_ext +# undef ssl_parse_clienthello_renegotiate_ext +# define ssl_parse_clienthello_renegotiate_ext ssl_parse_clienthello_reneg_ext +# undef ssl_parse_serverhello_renegotiate_ext +# define ssl_parse_serverhello_renegotiate_ext ssl_parse_serverhello_reneg_ext +# undef SSL_srp_server_param_with_username +# define SSL_srp_server_param_with_username SSL_srp_server_param_with_un +# undef SSL_CTX_set_srp_client_pwd_callback +# define SSL_CTX_set_srp_client_pwd_callback SSL_CTX_set_srp_client_pwd_cb +# undef SSL_CTX_set_srp_verify_param_callback +# define SSL_CTX_set_srp_verify_param_callback SSL_CTX_set_srp_vfy_param_cb +# undef SSL_CTX_set_srp_username_callback +# define SSL_CTX_set_srp_username_callback SSL_CTX_set_srp_un_cb +# undef ssl_add_clienthello_use_srtp_ext +# define ssl_add_clienthello_use_srtp_ext ssl_add_clihello_use_srtp_ext +# undef ssl_add_serverhello_use_srtp_ext +# define ssl_add_serverhello_use_srtp_ext ssl_add_serhello_use_srtp_ext +# undef ssl_parse_clienthello_use_srtp_ext +# define ssl_parse_clienthello_use_srtp_ext ssl_parse_clihello_use_srtp_ext +# undef ssl_parse_serverhello_use_srtp_ext +# define ssl_parse_serverhello_use_srtp_ext ssl_parse_serhello_use_srtp_ext +# undef SSL_CTX_set_next_protos_advertised_cb +# define SSL_CTX_set_next_protos_advertised_cb SSL_CTX_set_next_protos_adv_cb +# undef SSL_CTX_set_next_proto_select_cb +# define SSL_CTX_set_next_proto_select_cb SSL_CTX_set_next_proto_sel_cb + +# undef tls1_send_server_supplemental_data +# define tls1_send_server_supplemental_data tls1_send_server_suppl_data +# undef tls1_send_client_supplemental_data +# define tls1_send_client_supplemental_data tls1_send_client_suppl_data +# undef tls1_get_server_supplemental_data +# define tls1_get_server_supplemental_data tls1_get_server_suppl_data +# undef tls1_get_client_supplemental_data +# define tls1_get_client_supplemental_data tls1_get_client_suppl_data + +# undef ssl3_cbc_record_digest_supported +# define ssl3_cbc_record_digest_supported ssl3_cbc_record_digest_support +# undef ssl_check_clienthello_tlsext_late +# define ssl_check_clienthello_tlsext_late ssl_check_clihello_tlsext_late +# undef ssl_check_clienthello_tlsext_early +# define ssl_check_clienthello_tlsext_early ssl_check_clihello_tlsext_early + +/* Hack some RSA long names */ +# undef RSA_padding_check_PKCS1_OAEP_mgf1 +# define RSA_padding_check_PKCS1_OAEP_mgf1 RSA_pad_check_PKCS1_OAEP_mgf1 + +/* Hack some ENGINE long names */ +# undef ENGINE_get_default_BN_mod_exp_crt +# define ENGINE_get_default_BN_mod_exp_crt ENGINE_get_def_BN_mod_exp_crt +# undef ENGINE_set_default_BN_mod_exp_crt +# define ENGINE_set_default_BN_mod_exp_crt ENGINE_set_def_BN_mod_exp_crt +# undef ENGINE_set_load_privkey_function +# define ENGINE_set_load_privkey_function ENGINE_set_load_privkey_fn +# undef ENGINE_get_load_privkey_function +# define ENGINE_get_load_privkey_function ENGINE_get_load_privkey_fn +# undef ENGINE_unregister_pkey_asn1_meths +# define ENGINE_unregister_pkey_asn1_meths ENGINE_unreg_pkey_asn1_meths +# undef ENGINE_register_all_pkey_asn1_meths +# define ENGINE_register_all_pkey_asn1_meths ENGINE_reg_all_pkey_asn1_meths +# undef ENGINE_set_default_pkey_asn1_meths +# define ENGINE_set_default_pkey_asn1_meths ENGINE_set_def_pkey_asn1_meths +# undef ENGINE_get_pkey_asn1_meth_engine +# define ENGINE_get_pkey_asn1_meth_engine ENGINE_get_pkey_asn1_meth_eng +# undef ENGINE_set_load_ssl_client_cert_function +# define ENGINE_set_load_ssl_client_cert_function \ + ENGINE_set_ld_ssl_clnt_cert_fn +# undef ENGINE_get_ssl_client_cert_function +# define ENGINE_get_ssl_client_cert_function ENGINE_get_ssl_client_cert_fn + +/* Hack some long OCSP names */ +# undef OCSP_REQUEST_get_ext_by_critical +# define OCSP_REQUEST_get_ext_by_critical OCSP_REQUEST_get_ext_by_crit +# undef OCSP_BASICRESP_get_ext_by_critical +# define OCSP_BASICRESP_get_ext_by_critical OCSP_BASICRESP_get_ext_by_crit +# undef OCSP_SINGLERESP_get_ext_by_critical +# define OCSP_SINGLERESP_get_ext_by_critical OCSP_SINGLERESP_get_ext_by_crit + +/* Hack some long DES names */ +# undef _ossl_old_des_ede3_cfb64_encrypt +# define _ossl_old_des_ede3_cfb64_encrypt _ossl_odes_ede3_cfb64_encrypt +# undef _ossl_old_des_ede3_ofb64_encrypt +# define _ossl_old_des_ede3_ofb64_encrypt _ossl_odes_ede3_ofb64_encrypt + +/* Hack some long EVP names */ +# undef OPENSSL_add_all_algorithms_noconf +# define OPENSSL_add_all_algorithms_noconf OPENSSL_add_all_algo_noconf +# undef OPENSSL_add_all_algorithms_conf +# define OPENSSL_add_all_algorithms_conf OPENSSL_add_all_algo_conf +# undef EVP_PKEY_meth_set_verify_recover +# define EVP_PKEY_meth_set_verify_recover EVP_PKEY_meth_set_vrfy_recover + +/* Hack some long EC names */ +# undef EC_GROUP_set_point_conversion_form +# define EC_GROUP_set_point_conversion_form EC_GROUP_set_point_conv_form +# undef EC_GROUP_get_point_conversion_form +# define EC_GROUP_get_point_conversion_form EC_GROUP_get_point_conv_form +# undef EC_GROUP_clear_free_all_extra_data +# define EC_GROUP_clear_free_all_extra_data EC_GROUP_clr_free_all_xtra_data +# undef EC_KEY_set_public_key_affine_coordinates +# define EC_KEY_set_public_key_affine_coordinates \ + EC_KEY_set_pub_key_aff_coords +# undef EC_POINT_set_Jprojective_coordinates_GFp +# define EC_POINT_set_Jprojective_coordinates_GFp \ + EC_POINT_set_Jproj_coords_GFp +# undef EC_POINT_get_Jprojective_coordinates_GFp +# define EC_POINT_get_Jprojective_coordinates_GFp \ + EC_POINT_get_Jproj_coords_GFp +# undef EC_POINT_set_affine_coordinates_GFp +# define EC_POINT_set_affine_coordinates_GFp EC_POINT_set_affine_coords_GFp +# undef EC_POINT_get_affine_coordinates_GFp +# define EC_POINT_get_affine_coordinates_GFp EC_POINT_get_affine_coords_GFp +# undef EC_POINT_set_compressed_coordinates_GFp +# define EC_POINT_set_compressed_coordinates_GFp EC_POINT_set_compr_coords_GFp +# undef EC_POINT_set_affine_coordinates_GF2m +# define EC_POINT_set_affine_coordinates_GF2m EC_POINT_set_affine_coords_GF2m +# undef EC_POINT_get_affine_coordinates_GF2m +# define EC_POINT_get_affine_coordinates_GF2m EC_POINT_get_affine_coords_GF2m +# undef EC_POINT_set_compressed_coordinates_GF2m +# define EC_POINT_set_compressed_coordinates_GF2m \ + EC_POINT_set_compr_coords_GF2m +# undef ec_GF2m_simple_group_clear_finish +# define ec_GF2m_simple_group_clear_finish ec_GF2m_simple_grp_clr_finish +# undef ec_GF2m_simple_group_check_discriminant +# define ec_GF2m_simple_group_check_discriminant ec_GF2m_simple_grp_chk_discrim +# undef ec_GF2m_simple_point_clear_finish +# define ec_GF2m_simple_point_clear_finish ec_GF2m_simple_pt_clr_finish +# undef ec_GF2m_simple_point_set_to_infinity +# define ec_GF2m_simple_point_set_to_infinity ec_GF2m_simple_pt_set_to_inf +# undef ec_GF2m_simple_points_make_affine +# define ec_GF2m_simple_points_make_affine ec_GF2m_simple_pts_make_affine +# undef ec_GF2m_simple_point_set_affine_coordinates +# define ec_GF2m_simple_point_set_affine_coordinates \ + ec_GF2m_smp_pt_set_af_coords +# undef ec_GF2m_simple_point_get_affine_coordinates +# define ec_GF2m_simple_point_get_affine_coordinates \ + ec_GF2m_smp_pt_get_af_coords +# undef ec_GF2m_simple_set_compressed_coordinates +# define ec_GF2m_simple_set_compressed_coordinates \ + ec_GF2m_smp_set_compr_coords +# undef ec_GFp_simple_group_set_curve_GFp +# define ec_GFp_simple_group_set_curve_GFp ec_GFp_simple_grp_set_curve_GFp +# undef ec_GFp_simple_group_get_curve_GFp +# define ec_GFp_simple_group_get_curve_GFp ec_GFp_simple_grp_get_curve_GFp +# undef ec_GFp_simple_group_clear_finish +# define ec_GFp_simple_group_clear_finish ec_GFp_simple_grp_clear_finish +# undef ec_GFp_simple_group_set_generator +# define ec_GFp_simple_group_set_generator ec_GFp_simple_grp_set_generator +# undef ec_GFp_simple_group_get0_generator +# define ec_GFp_simple_group_get0_generator ec_GFp_simple_grp_gt0_generator +# undef ec_GFp_simple_group_get_cofactor +# define ec_GFp_simple_group_get_cofactor ec_GFp_simple_grp_get_cofactor +# undef ec_GFp_simple_point_clear_finish +# define ec_GFp_simple_point_clear_finish ec_GFp_simple_pt_clear_finish +# undef ec_GFp_simple_point_set_to_infinity +# define ec_GFp_simple_point_set_to_infinity ec_GFp_simple_pt_set_to_inf +# undef ec_GFp_simple_points_make_affine +# define ec_GFp_simple_points_make_affine ec_GFp_simple_pts_make_affine +# undef ec_GFp_simple_set_Jprojective_coordinates_GFp +# define ec_GFp_simple_set_Jprojective_coordinates_GFp \ + ec_GFp_smp_set_Jproj_coords_GFp +# undef ec_GFp_simple_get_Jprojective_coordinates_GFp +# define ec_GFp_simple_get_Jprojective_coordinates_GFp \ + ec_GFp_smp_get_Jproj_coords_GFp +# undef ec_GFp_simple_point_set_affine_coordinates_GFp +# define ec_GFp_simple_point_set_affine_coordinates_GFp \ + ec_GFp_smp_pt_set_af_coords_GFp +# undef ec_GFp_simple_point_get_affine_coordinates_GFp +# define ec_GFp_simple_point_get_affine_coordinates_GFp \ + ec_GFp_smp_pt_get_af_coords_GFp +# undef ec_GFp_simple_set_compressed_coordinates_GFp +# define ec_GFp_simple_set_compressed_coordinates_GFp \ + ec_GFp_smp_set_compr_coords_GFp +# undef ec_GFp_simple_point_set_affine_coordinates +# define ec_GFp_simple_point_set_affine_coordinates \ + ec_GFp_smp_pt_set_af_coords +# undef ec_GFp_simple_point_get_affine_coordinates +# define ec_GFp_simple_point_get_affine_coordinates \ + ec_GFp_smp_pt_get_af_coords +# undef ec_GFp_simple_set_compressed_coordinates +# define ec_GFp_simple_set_compressed_coordinates \ + ec_GFp_smp_set_compr_coords +# undef ec_GFp_simple_group_check_discriminant +# define ec_GFp_simple_group_check_discriminant ec_GFp_simple_grp_chk_discrim + +/* Hack som long STORE names */ +# undef STORE_method_set_initialise_function +# define STORE_method_set_initialise_function STORE_meth_set_initialise_fn +# undef STORE_method_set_cleanup_function +# define STORE_method_set_cleanup_function STORE_meth_set_cleanup_fn +# undef STORE_method_set_generate_function +# define STORE_method_set_generate_function STORE_meth_set_generate_fn +# undef STORE_method_set_modify_function +# define STORE_method_set_modify_function STORE_meth_set_modify_fn +# undef STORE_method_set_revoke_function +# define STORE_method_set_revoke_function STORE_meth_set_revoke_fn +# undef STORE_method_set_delete_function +# define STORE_method_set_delete_function STORE_meth_set_delete_fn +# undef STORE_method_set_list_start_function +# define STORE_method_set_list_start_function STORE_meth_set_list_start_fn +# undef STORE_method_set_list_next_function +# define STORE_method_set_list_next_function STORE_meth_set_list_next_fn +# undef STORE_method_set_list_end_function +# define STORE_method_set_list_end_function STORE_meth_set_list_end_fn +# undef STORE_method_set_update_store_function +# define STORE_method_set_update_store_function STORE_meth_set_update_store_fn +# undef STORE_method_set_lock_store_function +# define STORE_method_set_lock_store_function STORE_meth_set_lock_store_fn +# undef STORE_method_set_unlock_store_function +# define STORE_method_set_unlock_store_function STORE_meth_set_unlock_store_fn +# undef STORE_method_get_initialise_function +# define STORE_method_get_initialise_function STORE_meth_get_initialise_fn +# undef STORE_method_get_cleanup_function +# define STORE_method_get_cleanup_function STORE_meth_get_cleanup_fn +# undef STORE_method_get_generate_function +# define STORE_method_get_generate_function STORE_meth_get_generate_fn +# undef STORE_method_get_modify_function +# define STORE_method_get_modify_function STORE_meth_get_modify_fn +# undef STORE_method_get_revoke_function +# define STORE_method_get_revoke_function STORE_meth_get_revoke_fn +# undef STORE_method_get_delete_function +# define STORE_method_get_delete_function STORE_meth_get_delete_fn +# undef STORE_method_get_list_start_function +# define STORE_method_get_list_start_function STORE_meth_get_list_start_fn +# undef STORE_method_get_list_next_function +# define STORE_method_get_list_next_function STORE_meth_get_list_next_fn +# undef STORE_method_get_list_end_function +# define STORE_method_get_list_end_function STORE_meth_get_list_end_fn +# undef STORE_method_get_update_store_function +# define STORE_method_get_update_store_function STORE_meth_get_update_store_fn +# undef STORE_method_get_lock_store_function +# define STORE_method_get_lock_store_function STORE_meth_get_lock_store_fn +# undef STORE_method_get_unlock_store_function +# define STORE_method_get_unlock_store_function STORE_meth_get_unlock_store_fn + +/* Hack some long TS names */ +# undef TS_RESP_CTX_set_status_info_cond +# define TS_RESP_CTX_set_status_info_cond TS_RESP_CTX_set_stat_info_cond +# undef TS_RESP_CTX_set_clock_precision_digits +# define TS_RESP_CTX_set_clock_precision_digits TS_RESP_CTX_set_clk_prec_digits +# undef TS_CONF_set_clock_precision_digits +# define TS_CONF_set_clock_precision_digits TS_CONF_set_clk_prec_digits + +/* Hack some long CMS names */ +# undef CMS_RecipientInfo_ktri_get0_algs +# define CMS_RecipientInfo_ktri_get0_algs CMS_RecipInfo_ktri_get0_algs +# undef CMS_RecipientInfo_ktri_get0_signer_id +# define CMS_RecipientInfo_ktri_get0_signer_id CMS_RecipInfo_ktri_get0_sigr_id +# undef CMS_OtherRevocationInfoFormat_it +# define CMS_OtherRevocationInfoFormat_it CMS_OtherRevocInfoFormat_it +# undef CMS_KeyAgreeRecipientIdentifier_it +# define CMS_KeyAgreeRecipientIdentifier_it CMS_KeyAgreeRecipIdentifier_it +# undef CMS_OriginatorIdentifierOrKey_it +# define CMS_OriginatorIdentifierOrKey_it CMS_OriginatorIdOrKey_it +# undef cms_SignerIdentifier_get0_signer_id +# define cms_SignerIdentifier_get0_signer_id cms_SignerId_get0_signer_id +# undef CMS_RecipientInfo_kari_get0_orig_id +# define CMS_RecipientInfo_kari_get0_orig_id CMS_RecipInfo_kari_get0_orig_id +# undef CMS_RecipientInfo_kari_get0_reks +# define CMS_RecipientInfo_kari_get0_reks CMS_RecipInfo_kari_get0_reks +# undef CMS_RecipientEncryptedKey_cert_cmp +# define CMS_RecipientEncryptedKey_cert_cmp CMS_RecipEncryptedKey_cert_cmp +# undef CMS_RecipientInfo_kari_set0_pkey +# define CMS_RecipientInfo_kari_set0_pkey CMS_RecipInfo_kari_set0_pkey +# undef CMS_RecipientEncryptedKey_get0_id +# define CMS_RecipientEncryptedKey_get0_id CMS_RecipEncryptedKey_get0_id +# undef CMS_RecipientInfo_kari_orig_id_cmp +# define CMS_RecipientInfo_kari_orig_id_cmp CMS_RecipInfo_kari_orig_id_cmp + +/* Hack some long DTLS1 names */ +# undef dtls1_retransmit_buffered_messages +# define dtls1_retransmit_buffered_messages dtls1_retransmit_buffered_msgs + +/* Hack some long SRP names */ +# undef SRP_generate_server_master_secret +# define SRP_generate_server_master_secret SRP_gen_server_master_secret +# undef SRP_generate_client_master_secret +# define SRP_generate_client_master_secret SRP_gen_client_master_secret + +/* Hack some long UI names */ +# undef UI_method_get_prompt_constructor +# define UI_method_get_prompt_constructor UI_method_get_prompt_constructr +# undef UI_method_set_prompt_constructor +# define UI_method_set_prompt_constructor UI_method_set_prompt_constructr + +# endif /* defined OPENSSL_SYS_VMS */ + +/* Case insensitive linking causes problems.... */ +# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2) +# undef ERR_load_CRYPTO_strings +# define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings +# undef OCSP_crlID_new +# define OCSP_crlID_new OCSP_crlID2_new + +# undef d2i_ECPARAMETERS +# define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS +# undef i2d_ECPARAMETERS +# define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS +# undef d2i_ECPKPARAMETERS +# define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS +# undef i2d_ECPKPARAMETERS +# define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS + +/* + * These functions do not seem to exist! However, I'm paranoid... Original + * command in x509v3.h: These functions are being redefined in another + * directory, and clash when the linker is case-insensitive, so let's hide + * them a little, by giving them an extra 'o' at the beginning of the name... + */ +# undef X509v3_cleanup_extensions +# define X509v3_cleanup_extensions oX509v3_cleanup_extensions +# undef X509v3_add_extension +# define X509v3_add_extension oX509v3_add_extension +# undef X509v3_add_netscape_extensions +# define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions +# undef X509v3_add_standard_extensions +# define X509v3_add_standard_extensions oX509v3_add_standard_extensions + +/* This one clashes with CMS_data_create */ +# undef cms_Data_create +# define cms_Data_create priv_cms_Data_create + +# endif + +#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/External/include/openssl/tls1.h b/External/include/openssl/tls1.h new file mode 100644 index 00000000..7e237d06 --- /dev/null +++ b/External/include/openssl/tls1.h @@ -0,0 +1,810 @@ +/* ssl/tls1.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * + * Portions of the attached software ("Contribution") are developed by + * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. + * + * The Contribution is licensed pursuant to the OpenSSL open source + * license provided above. + * + * ECC cipher suite support in OpenSSL originally written by + * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. + * + */ +/* ==================================================================== + * Copyright 2005 Nokia. All rights reserved. + * + * The portions of the attached software ("Contribution") is developed by + * Nokia Corporation and is licensed pursuant to the OpenSSL open source + * license. + * + * The Contribution, originally written by Mika Kousa and Pasi Eronen of + * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites + * support (see RFC 4279) to OpenSSL. + * + * No patent licenses or other rights except those expressly stated in + * the OpenSSL open source license shall be deemed granted or received + * expressly, by implication, estoppel, or otherwise. + * + * No assurances are provided by Nokia that the Contribution does not + * infringe the patent or other intellectual property rights of any third + * party or that the license provides you with all the necessary rights + * to make use of the Contribution. + * + * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN + * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA + * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY + * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR + * OTHERWISE. + */ + +#ifndef HEADER_TLS1_H +# define HEADER_TLS1_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES 0 + +# define TLS1_VERSION 0x0301 +# define TLS1_1_VERSION 0x0302 +# define TLS1_2_VERSION 0x0303 +# define TLS_MAX_VERSION TLS1_2_VERSION + +# define TLS1_VERSION_MAJOR 0x03 +# define TLS1_VERSION_MINOR 0x01 + +# define TLS1_1_VERSION_MAJOR 0x03 +# define TLS1_1_VERSION_MINOR 0x02 + +# define TLS1_2_VERSION_MAJOR 0x03 +# define TLS1_2_VERSION_MINOR 0x03 + +# define TLS1_get_version(s) \ + ((s->version >> 8) == TLS1_VERSION_MAJOR ? s->version : 0) + +# define TLS1_get_client_version(s) \ + ((s->client_version >> 8) == TLS1_VERSION_MAJOR ? s->client_version : 0) + +# define TLS1_AD_DECRYPTION_FAILED 21 +# define TLS1_AD_RECORD_OVERFLOW 22 +# define TLS1_AD_UNKNOWN_CA 48/* fatal */ +# define TLS1_AD_ACCESS_DENIED 49/* fatal */ +# define TLS1_AD_DECODE_ERROR 50/* fatal */ +# define TLS1_AD_DECRYPT_ERROR 51 +# define TLS1_AD_EXPORT_RESTRICTION 60/* fatal */ +# define TLS1_AD_PROTOCOL_VERSION 70/* fatal */ +# define TLS1_AD_INSUFFICIENT_SECURITY 71/* fatal */ +# define TLS1_AD_INTERNAL_ERROR 80/* fatal */ +# define TLS1_AD_INAPPROPRIATE_FALLBACK 86/* fatal */ +# define TLS1_AD_USER_CANCELLED 90 +# define TLS1_AD_NO_RENEGOTIATION 100 +/* codes 110-114 are from RFC3546 */ +# define TLS1_AD_UNSUPPORTED_EXTENSION 110 +# define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111 +# define TLS1_AD_UNRECOGNIZED_NAME 112 +# define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 +# define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 +# define TLS1_AD_UNKNOWN_PSK_IDENTITY 115/* fatal */ + +/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ +# define TLSEXT_TYPE_server_name 0 +# define TLSEXT_TYPE_max_fragment_length 1 +# define TLSEXT_TYPE_client_certificate_url 2 +# define TLSEXT_TYPE_trusted_ca_keys 3 +# define TLSEXT_TYPE_truncated_hmac 4 +# define TLSEXT_TYPE_status_request 5 +/* ExtensionType values from RFC4681 */ +# define TLSEXT_TYPE_user_mapping 6 +/* ExtensionType values from RFC5878 */ +# define TLSEXT_TYPE_client_authz 7 +# define TLSEXT_TYPE_server_authz 8 +/* ExtensionType values from RFC6091 */ +# define TLSEXT_TYPE_cert_type 9 + +/* ExtensionType values from RFC4492 */ +# define TLSEXT_TYPE_elliptic_curves 10 +# define TLSEXT_TYPE_ec_point_formats 11 + +/* ExtensionType value from RFC5054 */ +# define TLSEXT_TYPE_srp 12 + +/* ExtensionType values from RFC5246 */ +# define TLSEXT_TYPE_signature_algorithms 13 + +/* ExtensionType value from RFC5764 */ +# define TLSEXT_TYPE_use_srtp 14 + +/* ExtensionType value from RFC5620 */ +# define TLSEXT_TYPE_heartbeat 15 + +/* ExtensionType value from RFC7301 */ +# define TLSEXT_TYPE_application_layer_protocol_negotiation 16 + +/* + * ExtensionType value for TLS padding extension. + * http://tools.ietf.org/html/draft-agl-tls-padding + */ +# define TLSEXT_TYPE_padding 21 + +/* ExtensionType value from RFC4507 */ +# define TLSEXT_TYPE_session_ticket 35 + +/* ExtensionType value from draft-rescorla-tls-opaque-prf-input-00.txt */ +# if 0 +/* + * will have to be provided externally for now , + * i.e. build with -DTLSEXT_TYPE_opaque_prf_input=38183 + * using whatever extension number you'd like to try + */ +# define TLSEXT_TYPE_opaque_prf_input ?? +# endif + +/* Temporary extension type */ +# define TLSEXT_TYPE_renegotiate 0xff01 + +# ifndef OPENSSL_NO_NEXTPROTONEG +/* This is not an IANA defined extension number */ +# define TLSEXT_TYPE_next_proto_neg 13172 +# endif + +/* NameType value from RFC3546 */ +# define TLSEXT_NAMETYPE_host_name 0 +/* status request value from RFC3546 */ +# define TLSEXT_STATUSTYPE_ocsp 1 + +/* ECPointFormat values from RFC4492 */ +# define TLSEXT_ECPOINTFORMAT_first 0 +# define TLSEXT_ECPOINTFORMAT_uncompressed 0 +# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 +# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 +# define TLSEXT_ECPOINTFORMAT_last 2 + +/* Signature and hash algorithms from RFC5246 */ +# define TLSEXT_signature_anonymous 0 +# define TLSEXT_signature_rsa 1 +# define TLSEXT_signature_dsa 2 +# define TLSEXT_signature_ecdsa 3 + +/* Total number of different signature algorithms */ +# define TLSEXT_signature_num 4 + +# define TLSEXT_hash_none 0 +# define TLSEXT_hash_md5 1 +# define TLSEXT_hash_sha1 2 +# define TLSEXT_hash_sha224 3 +# define TLSEXT_hash_sha256 4 +# define TLSEXT_hash_sha384 5 +# define TLSEXT_hash_sha512 6 + +/* Total number of different digest algorithms */ + +# define TLSEXT_hash_num 7 + +/* Flag set for unrecognised algorithms */ +# define TLSEXT_nid_unknown 0x1000000 + +/* ECC curves */ + +# define TLSEXT_curve_P_256 23 +# define TLSEXT_curve_P_384 24 + +# ifndef OPENSSL_NO_TLSEXT + +# define TLSEXT_MAXLEN_host_name 255 + +const char *SSL_get_servername(const SSL *s, const int type); +int SSL_get_servername_type(const SSL *s); +/* + * SSL_export_keying_material exports a value derived from the master secret, + * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and + * optional context. (Since a zero length context is allowed, the |use_context| + * flag controls whether a context is included.) It returns 1 on success and + * zero otherwise. + */ +int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, + const char *label, size_t llen, + const unsigned char *p, size_t plen, + int use_context); + +int SSL_get_sigalgs(SSL *s, int idx, + int *psign, int *phash, int *psignandhash, + unsigned char *rsig, unsigned char *rhash); + +int SSL_get_shared_sigalgs(SSL *s, int idx, + int *psign, int *phash, int *psignandhash, + unsigned char *rsig, unsigned char *rhash); + +int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); + +# define SSL_set_tlsext_host_name(s,name) \ +SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,(char *)name) + +# define SSL_set_tlsext_debug_callback(ssl, cb) \ +SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,(void (*)(void))cb) + +# define SSL_set_tlsext_debug_arg(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0, (void *)arg) + +# define SSL_set_tlsext_status_type(ssl, type) \ +SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type, NULL) + +# define SSL_get_tlsext_status_exts(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) + +# define SSL_set_tlsext_status_exts(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) + +# define SSL_get_tlsext_status_ids(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) + +# define SSL_set_tlsext_status_ids(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) + +# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0, (void *)arg) + +# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ +SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen, (void *)arg) + +# define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ +SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,(void (*)(void))cb) + +# define SSL_TLSEXT_ERR_OK 0 +# define SSL_TLSEXT_ERR_ALERT_WARNING 1 +# define SSL_TLSEXT_ERR_ALERT_FATAL 2 +# define SSL_TLSEXT_ERR_NOACK 3 + +# define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ +SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg) + +# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_GET_TLSEXT_TICKET_KEYS,(keylen),(keys)) +# define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_SET_TLSEXT_TICKET_KEYS,(keylen),(keys)) + +# define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ +SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,(void (*)(void))cb) + +# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ +SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) + +# define SSL_set_tlsext_opaque_prf_input(s, src, len) \ +SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT, len, src) +# define SSL_CTX_set_tlsext_opaque_prf_input_callback(ctx, cb) \ +SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB, (void (*)(void))cb) +# define SSL_CTX_set_tlsext_opaque_prf_input_callback_arg(ctx, arg) \ +SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG, 0, arg) + +# define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ +SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) + +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_TLSEXT_HB_ENABLED 0x01 +# define SSL_TLSEXT_HB_DONT_SEND_REQUESTS 0x02 +# define SSL_TLSEXT_HB_DONT_RECV_REQUESTS 0x04 + +# define SSL_get_tlsext_heartbeat_pending(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING,0,NULL) +# define SSL_set_tlsext_heartbeat_no_requests(ssl, arg) \ + SSL_ctrl((ssl),SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) +# endif +# endif + +/* PSK ciphersuites from 4279 */ +# define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A +# define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B +# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C +# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D + +/* + * Additional TLS ciphersuites from expired Internet Draft + * draft-ietf-tls-56-bit-ciphersuites-01.txt (available if + * TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES is defined, see s3_lib.c). We + * actually treat them like SSL 3.0 ciphers, which we probably shouldn't. + * Note that the first two are actually not in the IDs. + */ +# define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5 0x03000060/* not in + * ID */ +# define TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 0x03000061/* not in + * ID */ +# define TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA 0x03000062 +# define TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA 0x03000063 +# define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA 0x03000064 +# define TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA 0x03000065 +# define TLS1_CK_DHE_DSS_WITH_RC4_128_SHA 0x03000066 + +/* AES ciphersuites from RFC3268 */ +# define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F +# define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 +# define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 +# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032 +# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033 +# define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034 + +# define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035 +# define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036 +# define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037 +# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 +# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 +# define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A + +/* TLS v1.2 ciphersuites */ +# define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B +# define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C +# define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D +# define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E +# define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F +# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 + +/* Camellia ciphersuites from RFC4132 */ +# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 +# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 +# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 +# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 +# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 +# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 + +/* TLS v1.2 ciphersuites */ +# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 +# define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 +# define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 +# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A +# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B +# define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C +# define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D + +/* Camellia ciphersuites from RFC4132 */ +# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 +# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 +# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 +# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 +# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 +# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 + +/* SEED ciphersuites from RFC4162 */ +# define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 +# define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 +# define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 +# define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 +# define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A +# define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B + +/* TLS v1.2 GCM ciphersuites from RFC5288 */ +# define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C +# define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D +# define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E +# define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F +# define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 +# define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 +# define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 +# define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 +# define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 +# define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 +# define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 +# define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 + +/* + * ECC ciphersuites from draft-ietf-tls-ecc-12.txt with changes soon to be in + * draft 13 + */ +# define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 +# define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 +# define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 + +# define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 +# define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 +# define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A + +# define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B +# define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C +# define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D +# define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E +# define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F + +# define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 +# define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 +# define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 +# define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 +# define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 + +# define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 +# define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 +# define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 +# define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 +# define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 + +/* SRP ciphersuites from RFC 5054 */ +# define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A +# define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B +# define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C +# define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D +# define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E +# define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F +# define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 +# define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 +# define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022 + +/* ECDH HMAC based ciphersuites from RFC5289 */ + +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023 +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 +# define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 +# define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 +# define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 +# define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A + +/* ECDH GCM based ciphersuites from RFC5289 */ +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C +# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D +# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E +# define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F +# define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 +# define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 +# define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 + +/* + * XXX * Backward compatibility alert: + * Older versions of OpenSSL gave + * some DHE ciphers names with "EDH" + * instead of "DHE". Going forward, we + * should be using DHE + * everywhere, though we may indefinitely maintain + * aliases for users + * or configurations that used "EDH" + + */ +# define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5 "EXP1024-RC4-MD5" +# define TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 "EXP1024-RC2-CBC-MD5" +# define TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DES-CBC-SHA" +# define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DHE-DSS-DES-CBC-SHA" +# define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA "EXP1024-RC4-SHA" +# define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA "EXP1024-DHE-DSS-RC4-SHA" +# define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" + +/* AES ciphersuites from RFC3268 */ +# define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" +# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" +# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" +# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" +# define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" + +# define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" +# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" +# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" +# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" +# define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" + +/* ECC ciphersuites from RFC4492 */ +# define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" + +# define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" + +# define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" + +# define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" + +# define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" +# define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" +# define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" +# define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" +# define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" + +/* PSK ciphersuites from RFC 4279 */ +# define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" +# define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" +# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" +# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" + +/* SRP ciphersuite from RFC 5054 */ +# define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" +# define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" +# define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" +# define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" +# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" +# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" +# define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" +# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" +# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" + +/* Camellia ciphersuites from RFC4132 */ +# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" +# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" +# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" +# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" +# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" +# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" + +# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" +# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" +# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" +# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" +# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" +# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" + +/* SEED ciphersuites from RFC4162 */ +# define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" +# define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" +# define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" +# define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" +# define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" +# define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" + +/* TLS v1.2 ciphersuites */ +# define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" +# define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" +# define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" +# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" +# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" +# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" +# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" +# define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" +# define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" + +/* TLS v1.2 GCM ciphersuites from RFC5288 */ +# define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" +# define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" +# define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" +# define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" +# define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" +# define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" +# define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" +# define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384" + +/* ECDH HMAC based ciphersuites from RFC5289 */ + +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" +# define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" +# define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" + +/* ECDH GCM based ciphersuites from RFC5289 */ +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" +# define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" + +# define TLS_CT_RSA_SIGN 1 +# define TLS_CT_DSS_SIGN 2 +# define TLS_CT_RSA_FIXED_DH 3 +# define TLS_CT_DSS_FIXED_DH 4 +# define TLS_CT_ECDSA_SIGN 64 +# define TLS_CT_RSA_FIXED_ECDH 65 +# define TLS_CT_ECDSA_FIXED_ECDH 66 +# define TLS_CT_GOST94_SIGN 21 +# define TLS_CT_GOST01_SIGN 22 +/* + * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see + * comment there) + */ +# define TLS_CT_NUMBER 9 + +# define TLS1_FINISH_MAC_LENGTH 12 + +# define TLS_MD_MAX_CONST_SIZE 20 +# define TLS_MD_CLIENT_FINISH_CONST "client finished" +# define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 +# define TLS_MD_SERVER_FINISH_CONST "server finished" +# define TLS_MD_SERVER_FINISH_CONST_SIZE 15 +# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" +# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 +# define TLS_MD_KEY_EXPANSION_CONST "key expansion" +# define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 +# define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key" +# define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 +# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" +# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 +# define TLS_MD_IV_BLOCK_CONST "IV block" +# define TLS_MD_IV_BLOCK_CONST_SIZE 8 +# define TLS_MD_MASTER_SECRET_CONST "master secret" +# define TLS_MD_MASTER_SECRET_CONST_SIZE 13 + +# ifdef CHARSET_EBCDIC +# undef TLS_MD_CLIENT_FINISH_CONST +/* + * client finished + */ +# define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" + +# undef TLS_MD_SERVER_FINISH_CONST +/* + * server finished + */ +# define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" + +# undef TLS_MD_SERVER_WRITE_KEY_CONST +/* + * server write key + */ +# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" + +# undef TLS_MD_KEY_EXPANSION_CONST +/* + * key expansion + */ +# define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" + +# undef TLS_MD_CLIENT_WRITE_KEY_CONST +/* + * client write key + */ +# define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" + +# undef TLS_MD_SERVER_WRITE_KEY_CONST +/* + * server write key + */ +# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" + +# undef TLS_MD_IV_BLOCK_CONST +/* + * IV block + */ +# define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" + +# undef TLS_MD_MASTER_SECRET_CONST +/* + * master secret + */ +# define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" +# endif + +/* TLS Session Ticket extension struct */ +struct tls_session_ticket_ext_st { + unsigned short length; + void *data; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/ts.h b/External/include/openssl/ts.h new file mode 100644 index 00000000..16eccbb3 --- /dev/null +++ b/External/include/openssl/ts.h @@ -0,0 +1,862 @@ +/* crypto/ts/ts.h */ +/* + * Written by Zoltan Glozik (zglozik@opentsa.org) for the OpenSSL project + * 2002, 2003, 2004. + */ +/* ==================================================================== + * Copyright (c) 2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_TS_H +# define HEADER_TS_H + +# include +# include +# ifndef OPENSSL_NO_BUFFER +# include +# endif +# ifndef OPENSSL_NO_EVP +# include +# endif +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include +# include + +# ifndef OPENSSL_NO_RSA +# include +# endif + +# ifndef OPENSSL_NO_DSA +# include +# endif + +# ifndef OPENSSL_NO_DH +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef WIN32 +/* Under Win32 this is defined in wincrypt.h */ +# undef X509_NAME +# endif + +# include +# include + +/*- +MessageImprint ::= SEQUENCE { + hashAlgorithm AlgorithmIdentifier, + hashedMessage OCTET STRING } +*/ + +typedef struct TS_msg_imprint_st { + X509_ALGOR *hash_algo; + ASN1_OCTET_STRING *hashed_msg; +} TS_MSG_IMPRINT; + +/*- +TimeStampReq ::= SEQUENCE { + version INTEGER { v1(1) }, + messageImprint MessageImprint, + --a hash algorithm OID and the hash value of the data to be + --time-stamped + reqPolicy TSAPolicyId OPTIONAL, + nonce INTEGER OPTIONAL, + certReq BOOLEAN DEFAULT FALSE, + extensions [0] IMPLICIT Extensions OPTIONAL } +*/ + +typedef struct TS_req_st { + ASN1_INTEGER *version; + TS_MSG_IMPRINT *msg_imprint; + ASN1_OBJECT *policy_id; /* OPTIONAL */ + ASN1_INTEGER *nonce; /* OPTIONAL */ + ASN1_BOOLEAN cert_req; /* DEFAULT FALSE */ + STACK_OF(X509_EXTENSION) *extensions; /* [0] OPTIONAL */ +} TS_REQ; + +/*- +Accuracy ::= SEQUENCE { + seconds INTEGER OPTIONAL, + millis [0] INTEGER (1..999) OPTIONAL, + micros [1] INTEGER (1..999) OPTIONAL } +*/ + +typedef struct TS_accuracy_st { + ASN1_INTEGER *seconds; + ASN1_INTEGER *millis; + ASN1_INTEGER *micros; +} TS_ACCURACY; + +/*- +TSTInfo ::= SEQUENCE { + version INTEGER { v1(1) }, + policy TSAPolicyId, + messageImprint MessageImprint, + -- MUST have the same value as the similar field in + -- TimeStampReq + serialNumber INTEGER, + -- Time-Stamping users MUST be ready to accommodate integers + -- up to 160 bits. + genTime GeneralizedTime, + accuracy Accuracy OPTIONAL, + ordering BOOLEAN DEFAULT FALSE, + nonce INTEGER OPTIONAL, + -- MUST be present if the similar field was present + -- in TimeStampReq. In that case it MUST have the same value. + tsa [0] GeneralName OPTIONAL, + extensions [1] IMPLICIT Extensions OPTIONAL } +*/ + +typedef struct TS_tst_info_st { + ASN1_INTEGER *version; + ASN1_OBJECT *policy_id; + TS_MSG_IMPRINT *msg_imprint; + ASN1_INTEGER *serial; + ASN1_GENERALIZEDTIME *time; + TS_ACCURACY *accuracy; + ASN1_BOOLEAN ordering; + ASN1_INTEGER *nonce; + GENERAL_NAME *tsa; + STACK_OF(X509_EXTENSION) *extensions; +} TS_TST_INFO; + +/*- +PKIStatusInfo ::= SEQUENCE { + status PKIStatus, + statusString PKIFreeText OPTIONAL, + failInfo PKIFailureInfo OPTIONAL } + +From RFC 1510 - section 3.1.1: +PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String + -- text encoded as UTF-8 String (note: each UTF8String SHOULD + -- include an RFC 1766 language tag to indicate the language + -- of the contained text) +*/ + +/* Possible values for status. See ts_resp_print.c && ts_resp_verify.c. */ + +# define TS_STATUS_GRANTED 0 +# define TS_STATUS_GRANTED_WITH_MODS 1 +# define TS_STATUS_REJECTION 2 +# define TS_STATUS_WAITING 3 +# define TS_STATUS_REVOCATION_WARNING 4 +# define TS_STATUS_REVOCATION_NOTIFICATION 5 + +/* + * Possible values for failure_info. See ts_resp_print.c && ts_resp_verify.c + */ + +# define TS_INFO_BAD_ALG 0 +# define TS_INFO_BAD_REQUEST 2 +# define TS_INFO_BAD_DATA_FORMAT 5 +# define TS_INFO_TIME_NOT_AVAILABLE 14 +# define TS_INFO_UNACCEPTED_POLICY 15 +# define TS_INFO_UNACCEPTED_EXTENSION 16 +# define TS_INFO_ADD_INFO_NOT_AVAILABLE 17 +# define TS_INFO_SYSTEM_FAILURE 25 + +typedef struct TS_status_info_st { + ASN1_INTEGER *status; + STACK_OF(ASN1_UTF8STRING) *text; + ASN1_BIT_STRING *failure_info; +} TS_STATUS_INFO; + +DECLARE_STACK_OF(ASN1_UTF8STRING) +DECLARE_ASN1_SET_OF(ASN1_UTF8STRING) + +/*- +TimeStampResp ::= SEQUENCE { + status PKIStatusInfo, + timeStampToken TimeStampToken OPTIONAL } +*/ + +typedef struct TS_resp_st { + TS_STATUS_INFO *status_info; + PKCS7 *token; + TS_TST_INFO *tst_info; +} TS_RESP; + +/* The structure below would belong to the ESS component. */ + +/*- +IssuerSerial ::= SEQUENCE { + issuer GeneralNames, + serialNumber CertificateSerialNumber + } +*/ + +typedef struct ESS_issuer_serial { + STACK_OF(GENERAL_NAME) *issuer; + ASN1_INTEGER *serial; +} ESS_ISSUER_SERIAL; + +/*- +ESSCertID ::= SEQUENCE { + certHash Hash, + issuerSerial IssuerSerial OPTIONAL +} +*/ + +typedef struct ESS_cert_id { + ASN1_OCTET_STRING *hash; /* Always SHA-1 digest. */ + ESS_ISSUER_SERIAL *issuer_serial; +} ESS_CERT_ID; + +DECLARE_STACK_OF(ESS_CERT_ID) +DECLARE_ASN1_SET_OF(ESS_CERT_ID) + +/*- +SigningCertificate ::= SEQUENCE { + certs SEQUENCE OF ESSCertID, + policies SEQUENCE OF PolicyInformation OPTIONAL +} +*/ + +typedef struct ESS_signing_cert { + STACK_OF(ESS_CERT_ID) *cert_ids; + STACK_OF(POLICYINFO) *policy_info; +} ESS_SIGNING_CERT; + +TS_REQ *TS_REQ_new(void); +void TS_REQ_free(TS_REQ *a); +int i2d_TS_REQ(const TS_REQ *a, unsigned char **pp); +TS_REQ *d2i_TS_REQ(TS_REQ **a, const unsigned char **pp, long length); + +TS_REQ *TS_REQ_dup(TS_REQ *a); + +TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); +int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a); +TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); +int i2d_TS_REQ_bio(BIO *fp, TS_REQ *a); + +TS_MSG_IMPRINT *TS_MSG_IMPRINT_new(void); +void TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *a); +int i2d_TS_MSG_IMPRINT(const TS_MSG_IMPRINT *a, unsigned char **pp); +TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, + const unsigned char **pp, long length); + +TS_MSG_IMPRINT *TS_MSG_IMPRINT_dup(TS_MSG_IMPRINT *a); + +TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a); +int i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a); +TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *fp, TS_MSG_IMPRINT **a); +int i2d_TS_MSG_IMPRINT_bio(BIO *fp, TS_MSG_IMPRINT *a); + +TS_RESP *TS_RESP_new(void); +void TS_RESP_free(TS_RESP *a); +int i2d_TS_RESP(const TS_RESP *a, unsigned char **pp); +TS_RESP *d2i_TS_RESP(TS_RESP **a, const unsigned char **pp, long length); +TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token); +TS_RESP *TS_RESP_dup(TS_RESP *a); + +TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a); +int i2d_TS_RESP_fp(FILE *fp, TS_RESP *a); +TS_RESP *d2i_TS_RESP_bio(BIO *fp, TS_RESP **a); +int i2d_TS_RESP_bio(BIO *fp, TS_RESP *a); + +TS_STATUS_INFO *TS_STATUS_INFO_new(void); +void TS_STATUS_INFO_free(TS_STATUS_INFO *a); +int i2d_TS_STATUS_INFO(const TS_STATUS_INFO *a, unsigned char **pp); +TS_STATUS_INFO *d2i_TS_STATUS_INFO(TS_STATUS_INFO **a, + const unsigned char **pp, long length); +TS_STATUS_INFO *TS_STATUS_INFO_dup(TS_STATUS_INFO *a); + +TS_TST_INFO *TS_TST_INFO_new(void); +void TS_TST_INFO_free(TS_TST_INFO *a); +int i2d_TS_TST_INFO(const TS_TST_INFO *a, unsigned char **pp); +TS_TST_INFO *d2i_TS_TST_INFO(TS_TST_INFO **a, const unsigned char **pp, + long length); +TS_TST_INFO *TS_TST_INFO_dup(TS_TST_INFO *a); + +TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a); +int i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a); +TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *fp, TS_TST_INFO **a); +int i2d_TS_TST_INFO_bio(BIO *fp, TS_TST_INFO *a); + +TS_ACCURACY *TS_ACCURACY_new(void); +void TS_ACCURACY_free(TS_ACCURACY *a); +int i2d_TS_ACCURACY(const TS_ACCURACY *a, unsigned char **pp); +TS_ACCURACY *d2i_TS_ACCURACY(TS_ACCURACY **a, const unsigned char **pp, + long length); +TS_ACCURACY *TS_ACCURACY_dup(TS_ACCURACY *a); + +ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_new(void); +void ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *a); +int i2d_ESS_ISSUER_SERIAL(const ESS_ISSUER_SERIAL *a, unsigned char **pp); +ESS_ISSUER_SERIAL *d2i_ESS_ISSUER_SERIAL(ESS_ISSUER_SERIAL **a, + const unsigned char **pp, + long length); +ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_dup(ESS_ISSUER_SERIAL *a); + +ESS_CERT_ID *ESS_CERT_ID_new(void); +void ESS_CERT_ID_free(ESS_CERT_ID *a); +int i2d_ESS_CERT_ID(const ESS_CERT_ID *a, unsigned char **pp); +ESS_CERT_ID *d2i_ESS_CERT_ID(ESS_CERT_ID **a, const unsigned char **pp, + long length); +ESS_CERT_ID *ESS_CERT_ID_dup(ESS_CERT_ID *a); + +ESS_SIGNING_CERT *ESS_SIGNING_CERT_new(void); +void ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *a); +int i2d_ESS_SIGNING_CERT(const ESS_SIGNING_CERT *a, unsigned char **pp); +ESS_SIGNING_CERT *d2i_ESS_SIGNING_CERT(ESS_SIGNING_CERT **a, + const unsigned char **pp, long length); +ESS_SIGNING_CERT *ESS_SIGNING_CERT_dup(ESS_SIGNING_CERT *a); + +void ERR_load_TS_strings(void); + +int TS_REQ_set_version(TS_REQ *a, long version); +long TS_REQ_get_version(const TS_REQ *a); + +int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); +TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); + +int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg); +X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a); + +int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len); +ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a); + +int TS_REQ_set_policy_id(TS_REQ *a, ASN1_OBJECT *policy); +ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); + +int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); +const ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a); + +int TS_REQ_set_cert_req(TS_REQ *a, int cert_req); +int TS_REQ_get_cert_req(const TS_REQ *a); + +STACK_OF(X509_EXTENSION) *TS_REQ_get_exts(TS_REQ *a); +void TS_REQ_ext_free(TS_REQ *a); +int TS_REQ_get_ext_count(TS_REQ *a); +int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos); +int TS_REQ_get_ext_by_OBJ(TS_REQ *a, ASN1_OBJECT *obj, int lastpos); +int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos); +X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc); +X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc); +int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc); +void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx); + +/* Function declarations for TS_REQ defined in ts/ts_req_print.c */ + +int TS_REQ_print_bio(BIO *bio, TS_REQ *a); + +/* Function declarations for TS_RESP defined in ts/ts_resp_utils.c */ + +int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *info); +TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a); + +/* Caller loses ownership of PKCS7 and TS_TST_INFO objects. */ +void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info); +PKCS7 *TS_RESP_get_token(TS_RESP *a); +TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a); + +int TS_TST_INFO_set_version(TS_TST_INFO *a, long version); +long TS_TST_INFO_get_version(const TS_TST_INFO *a); + +int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy_id); +ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a); + +int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint); +TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a); + +int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial); +const ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a); + +int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime); +const ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a); + +int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy); +TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a); + +int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds); +const ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a); + +int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis); +const ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a); + +int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros); +const ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a); + +int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering); +int TS_TST_INFO_get_ordering(const TS_TST_INFO *a); + +int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce); +const ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a); + +int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa); +GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a); + +STACK_OF(X509_EXTENSION) *TS_TST_INFO_get_exts(TS_TST_INFO *a); +void TS_TST_INFO_ext_free(TS_TST_INFO *a); +int TS_TST_INFO_get_ext_count(TS_TST_INFO *a); +int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos); +int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, ASN1_OBJECT *obj, int lastpos); +int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos); +X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc); +X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc); +int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc); +void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx); + +/* + * Declarations related to response generation, defined in ts/ts_resp_sign.c. + */ + +/* Optional flags for response generation. */ + +/* Don't include the TSA name in response. */ +# define TS_TSA_NAME 0x01 + +/* Set ordering to true in response. */ +# define TS_ORDERING 0x02 + +/* + * Include the signer certificate and the other specified certificates in + * the ESS signing certificate attribute beside the PKCS7 signed data. + * Only the signer certificates is included by default. + */ +# define TS_ESS_CERT_ID_CHAIN 0x04 + +/* Forward declaration. */ +struct TS_resp_ctx; + +/* This must return a unique number less than 160 bits long. */ +typedef ASN1_INTEGER *(*TS_serial_cb) (struct TS_resp_ctx *, void *); + +/* + * This must return the seconds and microseconds since Jan 1, 1970 in the sec + * and usec variables allocated by the caller. Return non-zero for success + * and zero for failure. + */ +typedef int (*TS_time_cb) (struct TS_resp_ctx *, void *, long *sec, + long *usec); + +/* + * This must process the given extension. It can modify the TS_TST_INFO + * object of the context. Return values: !0 (processed), 0 (error, it must + * set the status info/failure info of the response). + */ +typedef int (*TS_extension_cb) (struct TS_resp_ctx *, X509_EXTENSION *, + void *); + +typedef struct TS_resp_ctx { + X509 *signer_cert; + EVP_PKEY *signer_key; + STACK_OF(X509) *certs; /* Certs to include in signed data. */ + STACK_OF(ASN1_OBJECT) *policies; /* Acceptable policies. */ + ASN1_OBJECT *default_policy; /* It may appear in policies, too. */ + STACK_OF(EVP_MD) *mds; /* Acceptable message digests. */ + ASN1_INTEGER *seconds; /* accuracy, 0 means not specified. */ + ASN1_INTEGER *millis; /* accuracy, 0 means not specified. */ + ASN1_INTEGER *micros; /* accuracy, 0 means not specified. */ + unsigned clock_precision_digits; /* fraction of seconds in time stamp + * token. */ + unsigned flags; /* Optional info, see values above. */ + /* Callback functions. */ + TS_serial_cb serial_cb; + void *serial_cb_data; /* User data for serial_cb. */ + TS_time_cb time_cb; + void *time_cb_data; /* User data for time_cb. */ + TS_extension_cb extension_cb; + void *extension_cb_data; /* User data for extension_cb. */ + /* These members are used only while creating the response. */ + TS_REQ *request; + TS_RESP *response; + TS_TST_INFO *tst_info; +} TS_RESP_CTX; + +DECLARE_STACK_OF(EVP_MD) +DECLARE_ASN1_SET_OF(EVP_MD) + +/* Creates a response context that can be used for generating responses. */ +TS_RESP_CTX *TS_RESP_CTX_new(void); +void TS_RESP_CTX_free(TS_RESP_CTX *ctx); + +/* This parameter must be set. */ +int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer); + +/* This parameter must be set. */ +int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key); + +/* This parameter must be set. */ +int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, ASN1_OBJECT *def_policy); + +/* No additional certs are included in the response by default. */ +int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); + +/* + * Adds a new acceptable policy, only the default policy is accepted by + * default. + */ +int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, ASN1_OBJECT *policy); + +/* + * Adds a new acceptable message digest. Note that no message digests are + * accepted by default. The md argument is shared with the caller. + */ +int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md); + +/* Accuracy is not included by default. */ +int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx, + int secs, int millis, int micros); + +/* + * Clock precision digits, i.e. the number of decimal digits: '0' means sec, + * '3' msec, '6' usec, and so on. Default is 0. + */ +int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, + unsigned clock_precision_digits); +/* At most we accept usec precision. */ +# define TS_MAX_CLOCK_PRECISION_DIGITS 6 + +/* No flags are set by default. */ +void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); + +/* Default callback always returns a constant. */ +void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data); + +/* Default callback uses the gettimeofday() and gmtime() system calls. */ +void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data); + +/* + * Default callback rejects all extensions. The extension callback is called + * when the TS_TST_INFO object is already set up and not signed yet. + */ +/* FIXME: extension handling is not tested yet. */ +void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx, + TS_extension_cb cb, void *data); + +/* The following methods can be used in the callbacks. */ +int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx, + int status, const char *text); + +/* Sets the status info only if it is still TS_STATUS_GRANTED. */ +int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx, + int status, const char *text); + +int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure); + +/* The get methods below can be used in the extension callback. */ +TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx); + +TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx); + +/* + * Creates the signed TS_TST_INFO and puts it in TS_RESP. + * In case of errors it sets the status info properly. + * Returns NULL only in case of memory allocation/fatal error. + */ +TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio); + +/* + * Declarations related to response verification, + * they are defined in ts/ts_resp_verify.c. + */ + +int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, + X509_STORE *store, X509 **signer_out); + +/* Context structure for the generic verify method. */ + +/* Verify the signer's certificate and the signature of the response. */ +# define TS_VFY_SIGNATURE (1u << 0) +/* Verify the version number of the response. */ +# define TS_VFY_VERSION (1u << 1) +/* Verify if the policy supplied by the user matches the policy of the TSA. */ +# define TS_VFY_POLICY (1u << 2) +/* + * Verify the message imprint provided by the user. This flag should not be + * specified with TS_VFY_DATA. + */ +# define TS_VFY_IMPRINT (1u << 3) +/* + * Verify the message imprint computed by the verify method from the user + * provided data and the MD algorithm of the response. This flag should not + * be specified with TS_VFY_IMPRINT. + */ +# define TS_VFY_DATA (1u << 4) +/* Verify the nonce value. */ +# define TS_VFY_NONCE (1u << 5) +/* Verify if the TSA name field matches the signer certificate. */ +# define TS_VFY_SIGNER (1u << 6) +/* Verify if the TSA name field equals to the user provided name. */ +# define TS_VFY_TSA_NAME (1u << 7) + +/* You can use the following convenience constants. */ +# define TS_VFY_ALL_IMPRINT (TS_VFY_SIGNATURE \ + | TS_VFY_VERSION \ + | TS_VFY_POLICY \ + | TS_VFY_IMPRINT \ + | TS_VFY_NONCE \ + | TS_VFY_SIGNER \ + | TS_VFY_TSA_NAME) +# define TS_VFY_ALL_DATA (TS_VFY_SIGNATURE \ + | TS_VFY_VERSION \ + | TS_VFY_POLICY \ + | TS_VFY_DATA \ + | TS_VFY_NONCE \ + | TS_VFY_SIGNER \ + | TS_VFY_TSA_NAME) + +typedef struct TS_verify_ctx { + /* Set this to the union of TS_VFY_... flags you want to carry out. */ + unsigned flags; + /* Must be set only with TS_VFY_SIGNATURE. certs is optional. */ + X509_STORE *store; + STACK_OF(X509) *certs; + /* Must be set only with TS_VFY_POLICY. */ + ASN1_OBJECT *policy; + /* + * Must be set only with TS_VFY_IMPRINT. If md_alg is NULL, the + * algorithm from the response is used. + */ + X509_ALGOR *md_alg; + unsigned char *imprint; + unsigned imprint_len; + /* Must be set only with TS_VFY_DATA. */ + BIO *data; + /* Must be set only with TS_VFY_TSA_NAME. */ + ASN1_INTEGER *nonce; + /* Must be set only with TS_VFY_TSA_NAME. */ + GENERAL_NAME *tsa_name; +} TS_VERIFY_CTX; + +int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response); +int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token); + +/* + * Declarations related to response verification context, + * they are defined in ts/ts_verify_ctx.c. + */ + +/* Set all fields to zero. */ +TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); +void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); +void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); +void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); + +/*- + * If ctx is NULL, it allocates and returns a new object, otherwise + * it returns ctx. It initialises all the members as follows: + * flags = TS_VFY_ALL_IMPRINT & ~(TS_VFY_TSA_NAME | TS_VFY_SIGNATURE) + * certs = NULL + * store = NULL + * policy = policy from the request or NULL if absent (in this case + * TS_VFY_POLICY is cleared from flags as well) + * md_alg = MD algorithm from request + * imprint, imprint_len = imprint from request + * data = NULL + * nonce, nonce_len = nonce from the request or NULL if absent (in this case + * TS_VFY_NONCE is cleared from flags as well) + * tsa_name = NULL + * Important: after calling this method TS_VFY_SIGNATURE should be added! + */ +TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx); + +/* Function declarations for TS_RESP defined in ts/ts_resp_print.c */ + +int TS_RESP_print_bio(BIO *bio, TS_RESP *a); +int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a); +int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a); + +/* Common utility functions defined in ts/ts_lib.c */ + +int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num); +int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj); +int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions); +int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg); +int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *msg); + +/* + * Function declarations for handling configuration options, defined in + * ts/ts_conf.c + */ + +X509 *TS_CONF_load_cert(const char *file); +STACK_OF(X509) *TS_CONF_load_certs(const char *file); +EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass); +const char *TS_CONF_get_tsa_section(CONF *conf, const char *section); +int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, + TS_RESP_CTX *ctx); +int TS_CONF_set_crypto_device(CONF *conf, const char *section, + const char *device); +int TS_CONF_set_default_engine(const char *name); +int TS_CONF_set_signer_cert(CONF *conf, const char *section, + const char *cert, TS_RESP_CTX *ctx); +int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, + TS_RESP_CTX *ctx); +int TS_CONF_set_signer_key(CONF *conf, const char *section, + const char *key, const char *pass, + TS_RESP_CTX *ctx); +int TS_CONF_set_def_policy(CONF *conf, const char *section, + const char *policy, TS_RESP_CTX *ctx); +int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_clock_precision_digits(CONF *conf, const char *section, + TS_RESP_CTX *ctx); +int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section, + TS_RESP_CTX *ctx); + +/* -------------------------------------------------- */ +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_TS_strings(void); + +/* Error codes for the TS functions. */ + +/* Function codes. */ +# define TS_F_D2I_TS_RESP 147 +# define TS_F_DEF_SERIAL_CB 110 +# define TS_F_DEF_TIME_CB 111 +# define TS_F_ESS_ADD_SIGNING_CERT 112 +# define TS_F_ESS_CERT_ID_NEW_INIT 113 +# define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 +# define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 +# define TS_F_PKCS7_TO_TS_TST_INFO 148 +# define TS_F_TS_ACCURACY_SET_MICROS 115 +# define TS_F_TS_ACCURACY_SET_MILLIS 116 +# define TS_F_TS_ACCURACY_SET_SECONDS 117 +# define TS_F_TS_CHECK_IMPRINTS 100 +# define TS_F_TS_CHECK_NONCES 101 +# define TS_F_TS_CHECK_POLICY 102 +# define TS_F_TS_CHECK_SIGNING_CERTS 103 +# define TS_F_TS_CHECK_STATUS_INFO 104 +# define TS_F_TS_COMPUTE_IMPRINT 145 +# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 +# define TS_F_TS_GET_STATUS_TEXT 105 +# define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 +# define TS_F_TS_REQ_SET_MSG_IMPRINT 119 +# define TS_F_TS_REQ_SET_NONCE 120 +# define TS_F_TS_REQ_SET_POLICY_ID 121 +# define TS_F_TS_RESP_CREATE_RESPONSE 122 +# define TS_F_TS_RESP_CREATE_TST_INFO 123 +# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 +# define TS_F_TS_RESP_CTX_ADD_MD 125 +# define TS_F_TS_RESP_CTX_ADD_POLICY 126 +# define TS_F_TS_RESP_CTX_NEW 127 +# define TS_F_TS_RESP_CTX_SET_ACCURACY 128 +# define TS_F_TS_RESP_CTX_SET_CERTS 129 +# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 +# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 +# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 +# define TS_F_TS_RESP_GET_POLICY 133 +# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 +# define TS_F_TS_RESP_SET_STATUS_INFO 135 +# define TS_F_TS_RESP_SET_TST_INFO 150 +# define TS_F_TS_RESP_SIGN 136 +# define TS_F_TS_RESP_VERIFY_SIGNATURE 106 +# define TS_F_TS_RESP_VERIFY_TOKEN 107 +# define TS_F_TS_TST_INFO_SET_ACCURACY 137 +# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 +# define TS_F_TS_TST_INFO_SET_NONCE 139 +# define TS_F_TS_TST_INFO_SET_POLICY_ID 140 +# define TS_F_TS_TST_INFO_SET_SERIAL 141 +# define TS_F_TS_TST_INFO_SET_TIME 142 +# define TS_F_TS_TST_INFO_SET_TSA 143 +# define TS_F_TS_VERIFY 108 +# define TS_F_TS_VERIFY_CERT 109 +# define TS_F_TS_VERIFY_CTX_NEW 144 + +/* Reason codes. */ +# define TS_R_BAD_PKCS7_TYPE 132 +# define TS_R_BAD_TYPE 133 +# define TS_R_CERTIFICATE_VERIFY_ERROR 100 +# define TS_R_COULD_NOT_SET_ENGINE 127 +# define TS_R_COULD_NOT_SET_TIME 115 +# define TS_R_D2I_TS_RESP_INT_FAILED 128 +# define TS_R_DETACHED_CONTENT 134 +# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 +# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 +# define TS_R_INVALID_NULL_POINTER 102 +# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 +# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 +# define TS_R_NONCE_MISMATCH 104 +# define TS_R_NONCE_NOT_RETURNED 105 +# define TS_R_NO_CONTENT 106 +# define TS_R_NO_TIME_STAMP_TOKEN 107 +# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 +# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 +# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 +# define TS_R_POLICY_MISMATCH 108 +# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 +# define TS_R_RESPONSE_SETUP_ERROR 121 +# define TS_R_SIGNATURE_FAILURE 109 +# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 +# define TS_R_TIME_SYSCALL_ERROR 122 +# define TS_R_TOKEN_NOT_PRESENT 130 +# define TS_R_TOKEN_PRESENT 131 +# define TS_R_TSA_NAME_MISMATCH 111 +# define TS_R_TSA_UNTRUSTED 112 +# define TS_R_TST_INFO_SETUP_ERROR 123 +# define TS_R_TS_DATASIGN 124 +# define TS_R_UNACCEPTABLE_POLICY 125 +# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 +# define TS_R_UNSUPPORTED_VERSION 113 +# define TS_R_WRONG_CONTENT_TYPE 114 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/txt_db.h b/External/include/openssl/txt_db.h new file mode 100644 index 00000000..98e23a20 --- /dev/null +++ b/External/include/openssl/txt_db.h @@ -0,0 +1,112 @@ +/* crypto/txt_db/txt_db.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_TXT_DB_H +# define HEADER_TXT_DB_H + +# include +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include + +# define DB_ERROR_OK 0 +# define DB_ERROR_MALLOC 1 +# define DB_ERROR_INDEX_CLASH 2 +# define DB_ERROR_INDEX_OUT_OF_RANGE 3 +# define DB_ERROR_NO_INDEX 4 +# define DB_ERROR_INSERT_INDEX_CLASH 5 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OPENSSL_STRING *OPENSSL_PSTRING; +DECLARE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) + +typedef struct txt_db_st { + int num_fields; + STACK_OF(OPENSSL_PSTRING) *data; + LHASH_OF(OPENSSL_STRING) **index; + int (**qual) (OPENSSL_STRING *); + long error; + long arg1; + long arg2; + OPENSSL_STRING *arg_row; +} TXT_DB; + +# ifndef OPENSSL_NO_BIO +TXT_DB *TXT_DB_read(BIO *in, int num); +long TXT_DB_write(BIO *out, TXT_DB *db); +# else +TXT_DB *TXT_DB_read(char *in, int num); +long TXT_DB_write(char *out, TXT_DB *db); +# endif +int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), + LHASH_HASH_FN_TYPE hash, LHASH_COMP_FN_TYPE cmp); +void TXT_DB_free(TXT_DB *db); +OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, + OPENSSL_STRING *value); +int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/ui.h b/External/include/openssl/ui.h new file mode 100644 index 00000000..0dc16330 --- /dev/null +++ b/External/include/openssl/ui.h @@ -0,0 +1,415 @@ +/* crypto/ui/ui.h */ +/* + * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project + * 2001. + */ +/* ==================================================================== + * Copyright (c) 2001 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_UI_H +# define HEADER_UI_H + +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Declared already in ossl_typ.h */ +/* typedef struct ui_st UI; */ +/* typedef struct ui_method_st UI_METHOD; */ + +/* + * All the following functions return -1 or NULL on error and in some cases + * (UI_process()) -2 if interrupted or in some other way cancelled. When + * everything is fine, they return 0, a positive value or a non-NULL pointer, + * all depending on their purpose. + */ + +/* Creators and destructor. */ +UI *UI_new(void); +UI *UI_new_method(const UI_METHOD *method); +void UI_free(UI *ui); + +/*- + The following functions are used to add strings to be printed and prompt + strings to prompt for data. The names are UI_{add,dup}__string + and UI_{add,dup}_input_boolean. + + UI_{add,dup}__string have the following meanings: + add add a text or prompt string. The pointers given to these + functions are used verbatim, no copying is done. + dup make a copy of the text or prompt string, then add the copy + to the collection of strings in the user interface. + + The function is a name for the functionality that the given + string shall be used for. It can be one of: + input use the string as data prompt. + verify use the string as verification prompt. This + is used to verify a previous input. + info use the string for informational output. + error use the string for error output. + Honestly, there's currently no difference between info and error for the + moment. + + UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", + and are typically used when one wants to prompt for a yes/no response. + + All of the functions in this group take a UI and a prompt string. + The string input and verify addition functions also take a flag argument, + a buffer for the result to end up with, a minimum input size and a maximum + input size (the result buffer MUST be large enough to be able to contain + the maximum number of characters). Additionally, the verify addition + functions takes another buffer to compare the result against. + The boolean input functions take an action description string (which should + be safe to ignore if the expected user action is obvious, for example with + a dialog box with an OK button and a Cancel button), a string of acceptable + characters to mean OK and to mean Cancel. The two last strings are checked + to make sure they don't have common characters. Additionally, the same + flag argument as for the string input is taken, as well as a result buffer. + The result buffer is required to be at least one byte long. Depending on + the answer, the first character from the OK or the Cancel character strings + will be stored in the first byte of the result buffer. No NUL will be + added, so the result is *not* a string. + + On success, the all return an index of the added information. That index + is usefull when retrieving results with UI_get0_result(). */ +int UI_add_input_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize); +int UI_dup_input_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize); +int UI_add_verify_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize, + const char *test_buf); +int UI_dup_verify_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize, + const char *test_buf); +int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, + const char *ok_chars, const char *cancel_chars, + int flags, char *result_buf); +int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, + const char *ok_chars, const char *cancel_chars, + int flags, char *result_buf); +int UI_add_info_string(UI *ui, const char *text); +int UI_dup_info_string(UI *ui, const char *text); +int UI_add_error_string(UI *ui, const char *text); +int UI_dup_error_string(UI *ui, const char *text); + +/* These are the possible flags. They can be or'ed together. */ +/* Use to have echoing of input */ +# define UI_INPUT_FLAG_ECHO 0x01 +/* + * Use a default password. Where that password is found is completely up to + * the application, it might for example be in the user data set with + * UI_add_user_data(). It is not recommended to have more than one input in + * each UI being marked with this flag, or the application might get + * confused. + */ +# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 + +/*- + * The user of these routines may want to define flags of their own. The core + * UI won't look at those, but will pass them on to the method routines. They + * must use higher bits so they don't get confused with the UI bits above. + * UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good + * example of use is this: + * + * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) + * +*/ +# define UI_INPUT_FLAG_USER_BASE 16 + +/*- + * The following function helps construct a prompt. object_desc is a + * textual short description of the object, for example "pass phrase", + * and object_name is the name of the object (might be a card name or + * a file name. + * The returned string shall always be allocated on the heap with + * OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). + * + * If the ui_method doesn't contain a pointer to a user-defined prompt + * constructor, a default string is built, looking like this: + * + * "Enter {object_desc} for {object_name}:" + * + * So, if object_desc has the value "pass phrase" and object_name has + * the value "foo.key", the resulting string is: + * + * "Enter pass phrase for foo.key:" +*/ +char *UI_construct_prompt(UI *ui_method, + const char *object_desc, const char *object_name); + +/* + * The following function is used to store a pointer to user-specific data. + * Any previous such pointer will be returned and replaced. + * + * For callback purposes, this function makes a lot more sense than using + * ex_data, since the latter requires that different parts of OpenSSL or + * applications share the same ex_data index. + * + * Note that the UI_OpenSSL() method completely ignores the user data. Other + * methods may not, however. + */ +void *UI_add_user_data(UI *ui, void *user_data); +/* We need a user data retrieving function as well. */ +void *UI_get0_user_data(UI *ui); + +/* Return the result associated with a prompt given with the index i. */ +const char *UI_get0_result(UI *ui, int i); + +/* When all strings have been added, process the whole thing. */ +int UI_process(UI *ui); + +/* + * Give a user interface parametrised control commands. This can be used to + * send down an integer, a data pointer or a function pointer, as well as be + * used to get information from a UI. + */ +int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); + +/* The commands */ +/* + * Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the + * OpenSSL error stack before printing any info or added error messages and + * before any prompting. + */ +# define UI_CTRL_PRINT_ERRORS 1 +/* + * Check if a UI_process() is possible to do again with the same instance of + * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 + * if not. + */ +# define UI_CTRL_IS_REDOABLE 2 + +/* Some methods may use extra data */ +# define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) +# define UI_get_app_data(s) UI_get_ex_data(s,0) +int UI_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int UI_set_ex_data(UI *r, int idx, void *arg); +void *UI_get_ex_data(UI *r, int idx); + +/* Use specific methods instead of the built-in one */ +void UI_set_default_method(const UI_METHOD *meth); +const UI_METHOD *UI_get_default_method(void); +const UI_METHOD *UI_get_method(UI *ui); +const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); + +/* The method with all the built-in thingies */ +UI_METHOD *UI_OpenSSL(void); + +/* ---------- For method writers ---------- */ +/*- + A method contains a number of functions that implement the low level + of the User Interface. The functions are: + + an opener This function starts a session, maybe by opening + a channel to a tty, or by opening a window. + a writer This function is called to write a given string, + maybe to the tty, maybe as a field label in a + window. + a flusher This function is called to flush everything that + has been output so far. It can be used to actually + display a dialog box after it has been built. + a reader This function is called to read a given prompt, + maybe from the tty, maybe from a field in a + window. Note that it's called wth all string + structures, not only the prompt ones, so it must + check such things itself. + a closer This function closes the session, maybe by closing + the channel to the tty, or closing the window. + + All these functions are expected to return: + + 0 on error. + 1 on success. + -1 on out-of-band events, for example if some prompting has + been canceled (by pressing Ctrl-C, for example). This is + only checked when returned by the flusher or the reader. + + The way this is used, the opener is first called, then the writer for all + strings, then the flusher, then the reader for all strings and finally the + closer. Note that if you want to prompt from a terminal or other command + line interface, the best is to have the reader also write the prompts + instead of having the writer do it. If you want to prompt from a dialog + box, the writer can be used to build up the contents of the box, and the + flusher to actually display the box and run the event loop until all data + has been given, after which the reader only grabs the given data and puts + them back into the UI strings. + + All method functions take a UI as argument. Additionally, the writer and + the reader take a UI_STRING. +*/ + +/* + * The UI_STRING type is the data structure that contains all the needed info + * about a string or a prompt, including test data for a verification prompt. + */ +typedef struct ui_string_st UI_STRING; +DECLARE_STACK_OF(UI_STRING) + +/* + * The different types of strings that are currently supported. This is only + * needed by method authors. + */ +enum UI_string_types { + UIT_NONE = 0, + UIT_PROMPT, /* Prompt for a string */ + UIT_VERIFY, /* Prompt for a string and verify */ + UIT_BOOLEAN, /* Prompt for a yes/no response */ + UIT_INFO, /* Send info to the user */ + UIT_ERROR /* Send an error message to the user */ +}; + +/* Create and manipulate methods */ +UI_METHOD *UI_create_method(char *name); +void UI_destroy_method(UI_METHOD *ui_method); +int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); +int UI_method_set_writer(UI_METHOD *method, + int (*writer) (UI *ui, UI_STRING *uis)); +int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui)); +int UI_method_set_reader(UI_METHOD *method, + int (*reader) (UI *ui, UI_STRING *uis)); +int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui)); +int UI_method_set_prompt_constructor(UI_METHOD *method, + char *(*prompt_constructor) (UI *ui, + const char + *object_desc, + const char + *object_name)); +int (*UI_method_get_opener(UI_METHOD *method)) (UI *); +int (*UI_method_get_writer(UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_flusher(UI_METHOD *method)) (UI *); +int (*UI_method_get_reader(UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_closer(UI_METHOD *method)) (UI *); +char *(*UI_method_get_prompt_constructor(UI_METHOD *method)) (UI *, + const char *, + const char *); + +/* + * The following functions are helpers for method writers to access relevant + * data from a UI_STRING. + */ + +/* Return type of the UI_STRING */ +enum UI_string_types UI_get_string_type(UI_STRING *uis); +/* Return input flags of the UI_STRING */ +int UI_get_input_flags(UI_STRING *uis); +/* Return the actual string to output (the prompt, info or error) */ +const char *UI_get0_output_string(UI_STRING *uis); +/* + * Return the optional action string to output (the boolean promtp + * instruction) + */ +const char *UI_get0_action_string(UI_STRING *uis); +/* Return the result of a prompt */ +const char *UI_get0_result_string(UI_STRING *uis); +/* + * Return the string to test the result against. Only useful with verifies. + */ +const char *UI_get0_test_string(UI_STRING *uis); +/* Return the required minimum size of the result */ +int UI_get_result_minsize(UI_STRING *uis); +/* Return the required maximum size of the result */ +int UI_get_result_maxsize(UI_STRING *uis); +/* Set the result of a UI_STRING. */ +int UI_set_result(UI *ui, UI_STRING *uis, const char *result); + +/* A couple of popular utility functions */ +int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, + int verify); +int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, + int verify); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_UI_strings(void); + +/* Error codes for the UI functions. */ + +/* Function codes. */ +# define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 +# define UI_F_GENERAL_ALLOCATE_PROMPT 109 +# define UI_F_GENERAL_ALLOCATE_STRING 100 +# define UI_F_UI_CTRL 111 +# define UI_F_UI_DUP_ERROR_STRING 101 +# define UI_F_UI_DUP_INFO_STRING 102 +# define UI_F_UI_DUP_INPUT_BOOLEAN 110 +# define UI_F_UI_DUP_INPUT_STRING 103 +# define UI_F_UI_DUP_VERIFY_STRING 106 +# define UI_F_UI_GET0_RESULT 107 +# define UI_F_UI_NEW_METHOD 104 +# define UI_F_UI_SET_RESULT 105 + +/* Reason codes. */ +# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 +# define UI_R_INDEX_TOO_LARGE 102 +# define UI_R_INDEX_TOO_SMALL 103 +# define UI_R_NO_RESULT_BUFFER 105 +# define UI_R_RESULT_TOO_LARGE 100 +# define UI_R_RESULT_TOO_SMALL 101 +# define UI_R_UNKNOWN_CONTROL_COMMAND 106 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/ui_compat.h b/External/include/openssl/ui_compat.h new file mode 100644 index 00000000..bf541542 --- /dev/null +++ b/External/include/openssl/ui_compat.h @@ -0,0 +1,88 @@ +/* crypto/ui/ui.h */ +/* + * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project + * 2001. + */ +/* ==================================================================== + * Copyright (c) 2001 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_UI_COMPAT_H +# define HEADER_UI_COMPAT_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The following functions were previously part of the DES section, and are + * provided here for backward compatibility reasons. + */ + +# define des_read_pw_string(b,l,p,v) \ + _ossl_old_des_read_pw_string((b),(l),(p),(v)) +# define des_read_pw(b,bf,s,p,v) \ + _ossl_old_des_read_pw((b),(bf),(s),(p),(v)) + +int _ossl_old_des_read_pw_string(char *buf, int length, const char *prompt, + int verify); +int _ossl_old_des_read_pw(char *buf, char *buff, int size, const char *prompt, + int verify); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/whrlpool.h b/External/include/openssl/whrlpool.h new file mode 100644 index 00000000..73c749da --- /dev/null +++ b/External/include/openssl/whrlpool.h @@ -0,0 +1,41 @@ +#ifndef HEADER_WHRLPOOL_H +# define HEADER_WHRLPOOL_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define WHIRLPOOL_DIGEST_LENGTH (512/8) +# define WHIRLPOOL_BBLOCK 512 +# define WHIRLPOOL_COUNTER (256/8) + +typedef struct { + union { + unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; + /* double q is here to ensure 64-bit alignment */ + double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; + } H; + unsigned char data[WHIRLPOOL_BBLOCK / 8]; + unsigned int bitoff; + size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; +} WHIRLPOOL_CTX; + +# ifndef OPENSSL_NO_WHIRLPOOL +# ifdef OPENSSL_FIPS +int private_WHIRLPOOL_Init(WHIRLPOOL_CTX *c); +# endif +int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); +int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); +void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); +int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); +unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); +# endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include/openssl/x509.h b/External/include/openssl/x509.h new file mode 100644 index 00000000..fc613ce6 --- /dev/null +++ b/External/include/openssl/x509.h @@ -0,0 +1,1328 @@ +/* crypto/x509/x509.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * ECDH support in OpenSSL originally developed by + * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. + */ + +#ifndef HEADER_X509_H +# define HEADER_X509_H + +# include +# include +# ifndef OPENSSL_NO_BUFFER +# include +# endif +# ifndef OPENSSL_NO_EVP +# include +# endif +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include +# include + +# ifndef OPENSSL_NO_EC +# include +# endif + +# ifndef OPENSSL_NO_ECDSA +# include +# endif + +# ifndef OPENSSL_NO_ECDH +# include +# endif + +# ifndef OPENSSL_NO_DEPRECATED +# ifndef OPENSSL_NO_RSA +# include +# endif +# ifndef OPENSSL_NO_DSA +# include +# endif +# ifndef OPENSSL_NO_DH +# include +# endif +# endif + +# ifndef OPENSSL_NO_SHA +# include +# endif +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_SYS_WIN32 +/* Under Win32 these are defined in wincrypt.h */ +# undef X509_NAME +# undef X509_CERT_PAIR +# undef X509_EXTENSIONS +# endif + +# define X509_FILETYPE_PEM 1 +# define X509_FILETYPE_ASN1 2 +# define X509_FILETYPE_DEFAULT 3 + +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 +# define X509v3_KU_NON_REPUDIATION 0x0040 +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 +# define X509v3_KU_KEY_AGREEMENT 0x0008 +# define X509v3_KU_KEY_CERT_SIGN 0x0004 +# define X509v3_KU_CRL_SIGN 0x0002 +# define X509v3_KU_ENCIPHER_ONLY 0x0001 +# define X509v3_KU_DECIPHER_ONLY 0x8000 +# define X509v3_KU_UNDEF 0xffff + +typedef struct X509_objects_st { + int nid; + int (*a2i) (void); + int (*i2a) (void); +} X509_OBJECTS; + +struct X509_algor_st { + ASN1_OBJECT *algorithm; + ASN1_TYPE *parameter; +} /* X509_ALGOR */ ; + +DECLARE_ASN1_SET_OF(X509_ALGOR) + +typedef STACK_OF(X509_ALGOR) X509_ALGORS; + +typedef struct X509_val_st { + ASN1_TIME *notBefore; + ASN1_TIME *notAfter; +} X509_VAL; + +struct X509_pubkey_st { + X509_ALGOR *algor; + ASN1_BIT_STRING *public_key; + EVP_PKEY *pkey; +}; + +typedef struct X509_sig_st { + X509_ALGOR *algor; + ASN1_OCTET_STRING *digest; +} X509_SIG; + +typedef struct X509_name_entry_st { + ASN1_OBJECT *object; + ASN1_STRING *value; + int set; + int size; /* temp variable */ +} X509_NAME_ENTRY; + +DECLARE_STACK_OF(X509_NAME_ENTRY) +DECLARE_ASN1_SET_OF(X509_NAME_ENTRY) + +/* we always keep X509_NAMEs in 2 forms. */ +struct X509_name_st { + STACK_OF(X509_NAME_ENTRY) *entries; + int modified; /* true if 'bytes' needs to be built */ +# ifndef OPENSSL_NO_BUFFER + BUF_MEM *bytes; +# else + char *bytes; +# endif +/* unsigned long hash; Keep the hash around for lookups */ + unsigned char *canon_enc; + int canon_enclen; +} /* X509_NAME */ ; + +DECLARE_STACK_OF(X509_NAME) + +# define X509_EX_V_NETSCAPE_HACK 0x8000 +# define X509_EX_V_INIT 0x0001 +typedef struct X509_extension_st { + ASN1_OBJECT *object; + ASN1_BOOLEAN critical; + ASN1_OCTET_STRING *value; +} X509_EXTENSION; + +typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; + +DECLARE_STACK_OF(X509_EXTENSION) +DECLARE_ASN1_SET_OF(X509_EXTENSION) + +/* a sequence of these are used */ +typedef struct x509_attributes_st { + ASN1_OBJECT *object; + int single; /* 0 for a set, 1 for a single item (which is + * wrong) */ + union { + char *ptr; + /* + * 0 + */ STACK_OF(ASN1_TYPE) *set; + /* + * 1 + */ ASN1_TYPE *single; + } value; +} X509_ATTRIBUTE; + +DECLARE_STACK_OF(X509_ATTRIBUTE) +DECLARE_ASN1_SET_OF(X509_ATTRIBUTE) + +typedef struct X509_req_info_st { + ASN1_ENCODING enc; + ASN1_INTEGER *version; + X509_NAME *subject; + X509_PUBKEY *pubkey; + /* d=2 hl=2 l= 0 cons: cont: 00 */ + STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */ +} X509_REQ_INFO; + +typedef struct X509_req_st { + X509_REQ_INFO *req_info; + X509_ALGOR *sig_alg; + ASN1_BIT_STRING *signature; + int references; +} X509_REQ; + +typedef struct x509_cinf_st { + ASN1_INTEGER *version; /* [ 0 ] default of v1 */ + ASN1_INTEGER *serialNumber; + X509_ALGOR *signature; + X509_NAME *issuer; + X509_VAL *validity; + X509_NAME *subject; + X509_PUBKEY *key; + ASN1_BIT_STRING *issuerUID; /* [ 1 ] optional in v2 */ + ASN1_BIT_STRING *subjectUID; /* [ 2 ] optional in v2 */ + STACK_OF(X509_EXTENSION) *extensions; /* [ 3 ] optional in v3 */ + ASN1_ENCODING enc; +} X509_CINF; + +/* + * This stuff is certificate "auxiliary info" it contains details which are + * useful in certificate stores and databases. When used this is tagged onto + * the end of the certificate itself + */ + +typedef struct x509_cert_aux_st { + STACK_OF(ASN1_OBJECT) *trust; /* trusted uses */ + STACK_OF(ASN1_OBJECT) *reject; /* rejected uses */ + ASN1_UTF8STRING *alias; /* "friendly name" */ + ASN1_OCTET_STRING *keyid; /* key id of private key */ + STACK_OF(X509_ALGOR) *other; /* other unspecified info */ +} X509_CERT_AUX; + +struct x509_st { + X509_CINF *cert_info; + X509_ALGOR *sig_alg; + ASN1_BIT_STRING *signature; + int valid; + int references; + char *name; + CRYPTO_EX_DATA ex_data; + /* These contain copies of various extension values */ + long ex_pathlen; + long ex_pcpathlen; + unsigned long ex_flags; + unsigned long ex_kusage; + unsigned long ex_xkusage; + unsigned long ex_nscert; + ASN1_OCTET_STRING *skid; + AUTHORITY_KEYID *akid; + X509_POLICY_CACHE *policy_cache; + STACK_OF(DIST_POINT) *crldp; + STACK_OF(GENERAL_NAME) *altname; + NAME_CONSTRAINTS *nc; +# ifndef OPENSSL_NO_RFC3779 + STACK_OF(IPAddressFamily) *rfc3779_addr; + struct ASIdentifiers_st *rfc3779_asid; +# endif +# ifndef OPENSSL_NO_SHA + unsigned char sha1_hash[SHA_DIGEST_LENGTH]; +# endif + X509_CERT_AUX *aux; +} /* X509 */ ; + +DECLARE_STACK_OF(X509) +DECLARE_ASN1_SET_OF(X509) + +/* This is used for a table of trust checking functions */ + +typedef struct x509_trust_st { + int trust; + int flags; + int (*check_trust) (struct x509_trust_st *, X509 *, int); + char *name; + int arg1; + void *arg2; +} X509_TRUST; + +DECLARE_STACK_OF(X509_TRUST) + +typedef struct x509_cert_pair_st { + X509 *forward; + X509 *reverse; +} X509_CERT_PAIR; + +/* standard trust ids */ + +# define X509_TRUST_DEFAULT -1/* Only valid in purpose settings */ + +# define X509_TRUST_COMPAT 1 +# define X509_TRUST_SSL_CLIENT 2 +# define X509_TRUST_SSL_SERVER 3 +# define X509_TRUST_EMAIL 4 +# define X509_TRUST_OBJECT_SIGN 5 +# define X509_TRUST_OCSP_SIGN 6 +# define X509_TRUST_OCSP_REQUEST 7 +# define X509_TRUST_TSA 8 + +/* Keep these up to date! */ +# define X509_TRUST_MIN 1 +# define X509_TRUST_MAX 8 + +/* trust_flags values */ +# define X509_TRUST_DYNAMIC 1 +# define X509_TRUST_DYNAMIC_NAME 2 + +/* check_trust return codes */ + +# define X509_TRUST_TRUSTED 1 +# define X509_TRUST_REJECTED 2 +# define X509_TRUST_UNTRUSTED 3 + +/* Flags for X509_print_ex() */ + +# define X509_FLAG_COMPAT 0 +# define X509_FLAG_NO_HEADER 1L +# define X509_FLAG_NO_VERSION (1L << 1) +# define X509_FLAG_NO_SERIAL (1L << 2) +# define X509_FLAG_NO_SIGNAME (1L << 3) +# define X509_FLAG_NO_ISSUER (1L << 4) +# define X509_FLAG_NO_VALIDITY (1L << 5) +# define X509_FLAG_NO_SUBJECT (1L << 6) +# define X509_FLAG_NO_PUBKEY (1L << 7) +# define X509_FLAG_NO_EXTENSIONS (1L << 8) +# define X509_FLAG_NO_SIGDUMP (1L << 9) +# define X509_FLAG_NO_AUX (1L << 10) +# define X509_FLAG_NO_ATTRIBUTES (1L << 11) +# define X509_FLAG_NO_IDS (1L << 12) + +/* Flags specific to X509_NAME_print_ex() */ + +/* The field separator information */ + +# define XN_FLAG_SEP_MASK (0xf << 16) + +# define XN_FLAG_COMPAT 0/* Traditional SSLeay: use old + * X509_NAME_print */ +# define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ +# define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ +# define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ +# define XN_FLAG_SEP_MULTILINE (4 << 16)/* One line per field */ + +# define XN_FLAG_DN_REV (1 << 20)/* Reverse DN order */ + +/* How the field name is shown */ + +# define XN_FLAG_FN_MASK (0x3 << 21) + +# define XN_FLAG_FN_SN 0/* Object short name */ +# define XN_FLAG_FN_LN (1 << 21)/* Object long name */ +# define XN_FLAG_FN_OID (2 << 21)/* Always use OIDs */ +# define XN_FLAG_FN_NONE (3 << 21)/* No field names */ + +# define XN_FLAG_SPC_EQ (1 << 23)/* Put spaces round '=' */ + +/* + * This determines if we dump fields we don't recognise: RFC2253 requires + * this. + */ + +# define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) + +# define XN_FLAG_FN_ALIGN (1 << 25)/* Align field names to 20 + * characters */ + +/* Complete set of RFC2253 flags */ + +# define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ + XN_FLAG_SEP_COMMA_PLUS | \ + XN_FLAG_DN_REV | \ + XN_FLAG_FN_SN | \ + XN_FLAG_DUMP_UNKNOWN_FIELDS) + +/* readable oneline form */ + +# define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ + ASN1_STRFLGS_ESC_QUOTE | \ + XN_FLAG_SEP_CPLUS_SPC | \ + XN_FLAG_SPC_EQ | \ + XN_FLAG_FN_SN) + +/* readable multiline form */ + +# define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ + ASN1_STRFLGS_ESC_MSB | \ + XN_FLAG_SEP_MULTILINE | \ + XN_FLAG_SPC_EQ | \ + XN_FLAG_FN_LN | \ + XN_FLAG_FN_ALIGN) + +struct x509_revoked_st { + ASN1_INTEGER *serialNumber; + ASN1_TIME *revocationDate; + STACK_OF(X509_EXTENSION) /* optional */ *extensions; + /* Set up if indirect CRL */ + STACK_OF(GENERAL_NAME) *issuer; + /* Revocation reason */ + int reason; + int sequence; /* load sequence */ +}; + +DECLARE_STACK_OF(X509_REVOKED) +DECLARE_ASN1_SET_OF(X509_REVOKED) + +typedef struct X509_crl_info_st { + ASN1_INTEGER *version; + X509_ALGOR *sig_alg; + X509_NAME *issuer; + ASN1_TIME *lastUpdate; + ASN1_TIME *nextUpdate; + STACK_OF(X509_REVOKED) *revoked; + STACK_OF(X509_EXTENSION) /* [0] */ *extensions; + ASN1_ENCODING enc; +} X509_CRL_INFO; + +struct X509_crl_st { + /* actual signature */ + X509_CRL_INFO *crl; + X509_ALGOR *sig_alg; + ASN1_BIT_STRING *signature; + int references; + int flags; + /* Copies of various extensions */ + AUTHORITY_KEYID *akid; + ISSUING_DIST_POINT *idp; + /* Convenient breakdown of IDP */ + int idp_flags; + int idp_reasons; + /* CRL and base CRL numbers for delta processing */ + ASN1_INTEGER *crl_number; + ASN1_INTEGER *base_crl_number; +# ifndef OPENSSL_NO_SHA + unsigned char sha1_hash[SHA_DIGEST_LENGTH]; +# endif + STACK_OF(GENERAL_NAMES) *issuers; + const X509_CRL_METHOD *meth; + void *meth_data; +} /* X509_CRL */ ; + +DECLARE_STACK_OF(X509_CRL) +DECLARE_ASN1_SET_OF(X509_CRL) + +typedef struct private_key_st { + int version; + /* The PKCS#8 data types */ + X509_ALGOR *enc_algor; + ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ + /* When decrypted, the following will not be NULL */ + EVP_PKEY *dec_pkey; + /* used to encrypt and decrypt */ + int key_length; + char *key_data; + int key_free; /* true if we should auto free key_data */ + /* expanded version of 'enc_algor' */ + EVP_CIPHER_INFO cipher; + int references; +} X509_PKEY; + +# ifndef OPENSSL_NO_EVP +typedef struct X509_info_st { + X509 *x509; + X509_CRL *crl; + X509_PKEY *x_pkey; + EVP_CIPHER_INFO enc_cipher; + int enc_len; + char *enc_data; + int references; +} X509_INFO; + +DECLARE_STACK_OF(X509_INFO) +# endif + +/* + * The next 2 structures and their 8 routines were sent to me by Pat Richard + * and are used to manipulate Netscapes spki structures - + * useful if you are writing a CA web page + */ +typedef struct Netscape_spkac_st { + X509_PUBKEY *pubkey; + ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ +} NETSCAPE_SPKAC; + +typedef struct Netscape_spki_st { + NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ + X509_ALGOR *sig_algor; + ASN1_BIT_STRING *signature; +} NETSCAPE_SPKI; + +/* Netscape certificate sequence structure */ +typedef struct Netscape_certificate_sequence { + ASN1_OBJECT *type; + STACK_OF(X509) *certs; +} NETSCAPE_CERT_SEQUENCE; + +/*- Unused (and iv length is wrong) +typedef struct CBCParameter_st + { + unsigned char iv[8]; + } CBC_PARAM; +*/ + +/* Password based encryption structure */ + +typedef struct PBEPARAM_st { + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *iter; +} PBEPARAM; + +/* Password based encryption V2 structures */ + +typedef struct PBE2PARAM_st { + X509_ALGOR *keyfunc; + X509_ALGOR *encryption; +} PBE2PARAM; + +typedef struct PBKDF2PARAM_st { +/* Usually OCTET STRING but could be anything */ + ASN1_TYPE *salt; + ASN1_INTEGER *iter; + ASN1_INTEGER *keylength; + X509_ALGOR *prf; +} PBKDF2PARAM; + +/* PKCS#8 private key info structure */ + +struct pkcs8_priv_key_info_st { + /* Flag for various broken formats */ + int broken; +# define PKCS8_OK 0 +# define PKCS8_NO_OCTET 1 +# define PKCS8_EMBEDDED_PARAM 2 +# define PKCS8_NS_DB 3 +# define PKCS8_NEG_PRIVKEY 4 + ASN1_INTEGER *version; + X509_ALGOR *pkeyalg; + /* Should be OCTET STRING but some are broken */ + ASN1_TYPE *pkey; + STACK_OF(X509_ATTRIBUTE) *attributes; +}; + +#ifdef __cplusplus +} +#endif + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define X509_EXT_PACK_UNKNOWN 1 +# define X509_EXT_PACK_STRING 2 + +# define X509_get_version(x) ASN1_INTEGER_get((x)->cert_info->version) +/* #define X509_get_serialNumber(x) ((x)->cert_info->serialNumber) */ +# define X509_get_notBefore(x) ((x)->cert_info->validity->notBefore) +# define X509_get_notAfter(x) ((x)->cert_info->validity->notAfter) +# define X509_extract_key(x) X509_get_pubkey(x)/*****/ +# define X509_REQ_get_version(x) ASN1_INTEGER_get((x)->req_info->version) +# define X509_REQ_get_subject_name(x) ((x)->req_info->subject) +# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) +# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) +# define X509_get_signature_type(x) EVP_PKEY_type(OBJ_obj2nid((x)->sig_alg->algorithm)) + +# define X509_CRL_get_version(x) ASN1_INTEGER_get((x)->crl->version) +# define X509_CRL_get_lastUpdate(x) ((x)->crl->lastUpdate) +# define X509_CRL_get_nextUpdate(x) ((x)->crl->nextUpdate) +# define X509_CRL_get_issuer(x) ((x)->crl->issuer) +# define X509_CRL_get_REVOKED(x) ((x)->crl->revoked) + +void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); +X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), + int (*crl_free) (X509_CRL *crl), + int (*crl_lookup) (X509_CRL *crl, + X509_REVOKED **ret, + ASN1_INTEGER *ser, + X509_NAME *issuer), + int (*crl_verify) (X509_CRL *crl, + EVP_PKEY *pk)); +void X509_CRL_METHOD_free(X509_CRL_METHOD *m); + +void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); +void *X509_CRL_get_meth_data(X509_CRL *crl); + +/* + * This one is only used so that a binary form can output, as in + * i2d_X509_NAME(X509_get_X509_PUBKEY(x),&buf) + */ +# define X509_get_X509_PUBKEY(x) ((x)->cert_info->key) + +const char *X509_verify_cert_error_string(long n); + +# ifndef OPENSSL_NO_EVP +int X509_verify(X509 *a, EVP_PKEY *r); + +int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); +int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); +int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); + +NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); +char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); +EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); +int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); + +int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); + +int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); +int X509_signature_print(BIO *bp, X509_ALGOR *alg, ASN1_STRING *sig); + +int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); +int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); +int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); +int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); +int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); +int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); + +int X509_pubkey_digest(const X509 *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_digest(const X509 *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +# endif + +# ifndef OPENSSL_NO_FP_API +X509 *d2i_X509_fp(FILE *fp, X509 **x509); +int i2d_X509_fp(FILE *fp, X509 *x509); +X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); +int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); +X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); +int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); +# ifndef OPENSSL_NO_RSA +RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); +int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); +RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); +int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); +RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); +int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); +# endif +# ifndef OPENSSL_NO_DSA +DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); +int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); +DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); +int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); +# endif +# ifndef OPENSSL_NO_EC +EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); +int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); +EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); +int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); +# endif +X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); +int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); +PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, + PKCS8_PRIV_KEY_INFO **p8inf); +int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); +int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); +int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); +int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); +# endif + +# ifndef OPENSSL_NO_BIO +X509 *d2i_X509_bio(BIO *bp, X509 **x509); +int i2d_X509_bio(BIO *bp, X509 *x509); +X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); +int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); +X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); +int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); +# ifndef OPENSSL_NO_RSA +RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); +int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); +RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); +int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); +RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); +int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); +# endif +# ifndef OPENSSL_NO_DSA +DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); +int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); +DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); +int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); +# endif +# ifndef OPENSSL_NO_EC +EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); +int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); +EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); +int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); +# endif +X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); +int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); +PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, + PKCS8_PRIV_KEY_INFO **p8inf); +int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); +int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); +int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); +int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); +# endif + +X509 *X509_dup(X509 *x509); +X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); +X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); +X509_CRL *X509_CRL_dup(X509_CRL *crl); +X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); +X509_REQ *X509_REQ_dup(X509_REQ *req); +X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); +int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, + void *pval); +void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval, + X509_ALGOR *algor); +void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); +int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); + +X509_NAME *X509_NAME_dup(X509_NAME *xn); +X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); + +int X509_cmp_time(const ASN1_TIME *s, time_t *t); +int X509_cmp_current_time(const ASN1_TIME *s); +ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); +ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, + int offset_day, long offset_sec, time_t *t); +ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); + +const char *X509_get_default_cert_area(void); +const char *X509_get_default_cert_dir(void); +const char *X509_get_default_cert_file(void); +const char *X509_get_default_cert_dir_env(void); +const char *X509_get_default_cert_file_env(void); +const char *X509_get_default_private_dir(void); + +X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); +X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); + +DECLARE_ASN1_FUNCTIONS(X509_ALGOR) +DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) +DECLARE_ASN1_FUNCTIONS(X509_VAL) + +DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) + +int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); +EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); +int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); +int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); +EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); +# ifndef OPENSSL_NO_RSA +int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); +RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); +# endif +# ifndef OPENSSL_NO_DSA +int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); +DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); +# endif +# ifndef OPENSSL_NO_EC +int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); +EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); +# endif + +DECLARE_ASN1_FUNCTIONS(X509_SIG) +DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) +DECLARE_ASN1_FUNCTIONS(X509_REQ) + +DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) +X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); + +DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) +DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) + +DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) + +DECLARE_ASN1_FUNCTIONS(X509_NAME) + +int X509_NAME_set(X509_NAME **xn, X509_NAME *name); + +DECLARE_ASN1_FUNCTIONS(X509_CINF) + +DECLARE_ASN1_FUNCTIONS(X509) +DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) + +DECLARE_ASN1_FUNCTIONS(X509_CERT_PAIR) + +int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int X509_set_ex_data(X509 *r, int idx, void *arg); +void *X509_get_ex_data(X509 *r, int idx); +int i2d_X509_AUX(X509 *a, unsigned char **pp); +X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); + +int i2d_re_X509_tbs(X509 *x, unsigned char **pp); + +void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, + const X509 *x); +int X509_get_signature_nid(const X509 *x); + +int X509_alias_set1(X509 *x, unsigned char *name, int len); +int X509_keyid_set1(X509 *x, unsigned char *id, int len); +unsigned char *X509_alias_get0(X509 *x, int *len); +unsigned char *X509_keyid_get0(X509 *x, int *len); +int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, + int); +int X509_TRUST_set(int *t, int trust); +int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj); +int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj); +void X509_trust_clear(X509 *x); +void X509_reject_clear(X509 *x); + +DECLARE_ASN1_FUNCTIONS(X509_REVOKED) +DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) +DECLARE_ASN1_FUNCTIONS(X509_CRL) + +int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); +int X509_CRL_get0_by_serial(X509_CRL *crl, + X509_REVOKED **ret, ASN1_INTEGER *serial); +int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); + +X509_PKEY *X509_PKEY_new(void); +void X509_PKEY_free(X509_PKEY *a); +int i2d_X509_PKEY(X509_PKEY *a, unsigned char **pp); +X509_PKEY *d2i_X509_PKEY(X509_PKEY **a, const unsigned char **pp, + long length); + +DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) +DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) +DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) + +# ifndef OPENSSL_NO_EVP +X509_INFO *X509_INFO_new(void); +void X509_INFO_free(X509_INFO *a); +char *X509_NAME_oneline(X509_NAME *a, char *buf, int size); + +int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, + ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); + +int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, + unsigned char *md, unsigned int *len); + +int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, + char *data, EVP_PKEY *pkey, const EVP_MD *type); + +int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, + unsigned char *md, unsigned int *len); + +int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, + ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); + +int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, + EVP_PKEY *pkey, const EVP_MD *type); +int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, + void *asn, EVP_MD_CTX *ctx); +# endif + +int X509_set_version(X509 *x, long version); +int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); +ASN1_INTEGER *X509_get_serialNumber(X509 *x); +int X509_set_issuer_name(X509 *x, X509_NAME *name); +X509_NAME *X509_get_issuer_name(X509 *a); +int X509_set_subject_name(X509 *x, X509_NAME *name); +X509_NAME *X509_get_subject_name(X509 *a); +int X509_set_notBefore(X509 *x, const ASN1_TIME *tm); +int X509_set_notAfter(X509 *x, const ASN1_TIME *tm); +int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); +EVP_PKEY *X509_get_pubkey(X509 *x); +ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); +int X509_certificate_type(X509 *x, EVP_PKEY *pubkey /* optional */ ); + +int X509_REQ_set_version(X509_REQ *x, long version); +int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); +int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); +EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); +int X509_REQ_extension_nid(int nid); +int *X509_REQ_get_extension_nids(void); +void X509_REQ_set_extension_nids(int *nids); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts, + int nid); +int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts); +int X509_REQ_get_attr_count(const X509_REQ *req); +int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); +int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); +X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); +int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); +int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len); +int X509_REQ_add1_attr_by_NID(X509_REQ *req, + int nid, int type, + const unsigned char *bytes, int len); +int X509_REQ_add1_attr_by_txt(X509_REQ *req, + const char *attrname, int type, + const unsigned char *bytes, int len); + +int X509_CRL_set_version(X509_CRL *x, long version); +int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); +int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_sort(X509_CRL *crl); + +int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); +int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); + +X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, + EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); + +int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); + +int X509_check_private_key(X509 *x509, EVP_PKEY *pkey); +int X509_chain_check_suiteb(int *perror_depth, + X509 *x, STACK_OF(X509) *chain, + unsigned long flags); +int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); + +int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); +unsigned long X509_issuer_and_serial_hash(X509 *a); + +int X509_issuer_name_cmp(const X509 *a, const X509 *b); +unsigned long X509_issuer_name_hash(X509 *a); + +int X509_subject_name_cmp(const X509 *a, const X509 *b); +unsigned long X509_subject_name_hash(X509 *x); + +# ifndef OPENSSL_NO_MD5 +unsigned long X509_issuer_name_hash_old(X509 *a); +unsigned long X509_subject_name_hash_old(X509 *x); +# endif + +int X509_cmp(const X509 *a, const X509 *b); +int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); +unsigned long X509_NAME_hash(X509_NAME *x); +unsigned long X509_NAME_hash_old(X509_NAME *x); + +int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); +int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); +# ifndef OPENSSL_NO_FP_API +int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, + unsigned long cflag); +int X509_print_fp(FILE *bp, X509 *x); +int X509_CRL_print_fp(FILE *bp, X509_CRL *x); +int X509_REQ_print_fp(FILE *bp, X509_REQ *req); +int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, + unsigned long flags); +# endif + +# ifndef OPENSSL_NO_BIO +int X509_NAME_print(BIO *bp, X509_NAME *name, int obase); +int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, + unsigned long flags); +int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, + unsigned long cflag); +int X509_print(BIO *bp, X509 *x); +int X509_ocspid_print(BIO *bp, X509 *x); +int X509_CERT_AUX_print(BIO *bp, X509_CERT_AUX *x, int indent); +int X509_CRL_print(BIO *bp, X509_CRL *x); +int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, + unsigned long cflag); +int X509_REQ_print(BIO *bp, X509_REQ *req); +# endif + +int X509_NAME_entry_count(X509_NAME *name); +int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); +int X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, + char *buf, int len); + +/* + * NOTE: you should be passsing -1, not 0 as lastpos. The functions that use + * lastpos, search after that position on. + */ +int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); +int X509_NAME_get_index_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, + int lastpos); +X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc); +X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); +int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne, + int loc, int set); +int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, + unsigned char *bytes, int len, int loc, + int set); +int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, + unsigned char *bytes, int len, int loc, + int set); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, + const char *field, int type, + const unsigned char *bytes, + int len); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, + int type, unsigned char *bytes, + int len); +int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, + const unsigned char *bytes, int len, int loc, + int set); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, + ASN1_OBJECT *obj, int type, + const unsigned char *bytes, + int len); +int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj); +int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, + const unsigned char *bytes, int len); +ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne); +ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); + +int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); +int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, + int nid, int lastpos); +int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, + ASN1_OBJECT *obj, int lastpos); +int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, + int crit, int lastpos); +X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); +X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, + X509_EXTENSION *ex, int loc); + +int X509_get_ext_count(X509 *x); +int X509_get_ext_by_NID(X509 *x, int nid, int lastpos); +int X509_get_ext_by_OBJ(X509 *x, ASN1_OBJECT *obj, int lastpos); +int X509_get_ext_by_critical(X509 *x, int crit, int lastpos); +X509_EXTENSION *X509_get_ext(X509 *x, int loc); +X509_EXTENSION *X509_delete_ext(X509 *x, int loc); +int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); +void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx); +int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, + unsigned long flags); + +int X509_CRL_get_ext_count(X509_CRL *x); +int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos); +int X509_CRL_get_ext_by_OBJ(X509_CRL *x, ASN1_OBJECT *obj, int lastpos); +int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit, int lastpos); +X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc); +X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); +int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); +void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx); +int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, + unsigned long flags); + +int X509_REVOKED_get_ext_count(X509_REVOKED *x); +int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos); +int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x, ASN1_OBJECT *obj, + int lastpos); +int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit, int lastpos); +X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc); +X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); +int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); +void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx); +int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, + unsigned long flags); + +X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, + int nid, int crit, + ASN1_OCTET_STRING *data); +X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, + ASN1_OBJECT *obj, int crit, + ASN1_OCTET_STRING *data); +int X509_EXTENSION_set_object(X509_EXTENSION *ex, ASN1_OBJECT *obj); +int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); +int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); +ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); +ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); +int X509_EXTENSION_get_critical(X509_EXTENSION *ex); + +int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); +int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, + int lastpos); +int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, + ASN1_OBJECT *obj, int lastpos); +X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); +X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, + X509_ATTRIBUTE *attr); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) + **x, const ASN1_OBJECT *obj, + int type, + const unsigned char *bytes, + int len); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) + **x, int nid, int type, + const unsigned char *bytes, + int len); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) + **x, const char *attrname, + int type, + const unsigned char *bytes, + int len); +void *X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE) *x, ASN1_OBJECT *obj, + int lastpos, int type); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, + int atrtype, const void *data, + int len); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, + const ASN1_OBJECT *obj, + int atrtype, const void *data, + int len); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, + const char *atrname, int type, + const unsigned char *bytes, + int len); +int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); +int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, + const void *data, int len); +void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, + void *data); +int X509_ATTRIBUTE_count(X509_ATTRIBUTE *attr); +ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); +ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); + +int EVP_PKEY_get_attr_count(const EVP_PKEY *key); +int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); +int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); +X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); +int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); +int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len); +int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, + int nid, int type, + const unsigned char *bytes, int len); +int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, + const char *attrname, int type, + const unsigned char *bytes, int len); + +int X509_verify_cert(X509_STORE_CTX *ctx); + +/* lookup a cert from a X509 STACK */ +X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk, X509_NAME *name, + ASN1_INTEGER *serial); +X509 *X509_find_by_subject(STACK_OF(X509) *sk, X509_NAME *name); + +DECLARE_ASN1_FUNCTIONS(PBEPARAM) +DECLARE_ASN1_FUNCTIONS(PBE2PARAM) +DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) + +int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, + const unsigned char *salt, int saltlen); + +X509_ALGOR *PKCS5_pbe_set(int alg, int iter, + const unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen, + unsigned char *aiv, int prf_nid); + +X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, + int prf_nid, int keylen); + +/* PKCS#8 utilities */ + +DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) + +EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8); +PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); +PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken); +PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken); + +int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, + int version, int ptype, void *pval, + unsigned char *penc, int penclen); +int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, + const unsigned char **pk, int *ppklen, + X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8); + +int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, + int ptype, void *pval, + unsigned char *penc, int penclen); +int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, + const unsigned char **pk, int *ppklen, + X509_ALGOR **pa, X509_PUBKEY *pub); + +int X509_check_trust(X509 *x, int id, int flags); +int X509_TRUST_get_count(void); +X509_TRUST *X509_TRUST_get0(int idx); +int X509_TRUST_get_by_id(int id); +int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), + char *name, int arg1, void *arg2); +void X509_TRUST_cleanup(void); +int X509_TRUST_get_flags(X509_TRUST *xp); +char *X509_TRUST_get0_name(X509_TRUST *xp); +int X509_TRUST_get_trust(X509_TRUST *xp); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_X509_strings(void); + +/* Error codes for the X509 functions. */ + +/* Function codes. */ +# define X509_F_ADD_CERT_DIR 100 +# define X509_F_BY_FILE_CTRL 101 +# define X509_F_CHECK_POLICY 145 +# define X509_F_DIR_CTRL 102 +# define X509_F_GET_CERT_BY_SUBJECT 103 +# define X509_F_NETSCAPE_SPKI_B64_DECODE 129 +# define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 +# define X509_F_X509AT_ADD1_ATTR 135 +# define X509_F_X509V3_ADD_EXT 104 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 +# define X509_F_X509_ATTRIBUTE_GET0_DATA 139 +# define X509_F_X509_ATTRIBUTE_SET1_DATA 138 +# define X509_F_X509_CHECK_PRIVATE_KEY 128 +# define X509_F_X509_CRL_DIFF 105 +# define X509_F_X509_CRL_PRINT_FP 147 +# define X509_F_X509_EXTENSION_CREATE_BY_NID 108 +# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 +# define X509_F_X509_GET_PUBKEY_PARAMETERS 110 +# define X509_F_X509_LOAD_CERT_CRL_FILE 132 +# define X509_F_X509_LOAD_CERT_FILE 111 +# define X509_F_X509_LOAD_CRL_FILE 112 +# define X509_F_X509_NAME_ADD_ENTRY 113 +# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 +# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 +# define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 +# define X509_F_X509_NAME_ONELINE 116 +# define X509_F_X509_NAME_PRINT 117 +# define X509_F_X509_PRINT_EX_FP 118 +# define X509_F_X509_PUBKEY_GET 119 +# define X509_F_X509_PUBKEY_SET 120 +# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 +# define X509_F_X509_REQ_PRINT_EX 121 +# define X509_F_X509_REQ_PRINT_FP 122 +# define X509_F_X509_REQ_TO_X509 123 +# define X509_F_X509_STORE_ADD_CERT 124 +# define X509_F_X509_STORE_ADD_CRL 125 +# define X509_F_X509_STORE_CTX_GET1_ISSUER 146 +# define X509_F_X509_STORE_CTX_INIT 143 +# define X509_F_X509_STORE_CTX_NEW 142 +# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 +# define X509_F_X509_TO_X509_REQ 126 +# define X509_F_X509_TRUST_ADD 133 +# define X509_F_X509_TRUST_SET 141 +# define X509_F_X509_VERIFY_CERT 127 + +/* Reason codes. */ +# define X509_R_AKID_MISMATCH 110 +# define X509_R_BAD_X509_FILETYPE 100 +# define X509_R_BASE64_DECODE_ERROR 118 +# define X509_R_CANT_CHECK_DH_KEY 114 +# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 +# define X509_R_CRL_ALREADY_DELTA 127 +# define X509_R_CRL_VERIFY_FAILURE 131 +# define X509_R_ERR_ASN1_LIB 102 +# define X509_R_IDP_MISMATCH 128 +# define X509_R_INVALID_DIRECTORY 113 +# define X509_R_INVALID_FIELD_NAME 119 +# define X509_R_INVALID_TRUST 123 +# define X509_R_ISSUER_MISMATCH 129 +# define X509_R_KEY_TYPE_MISMATCH 115 +# define X509_R_KEY_VALUES_MISMATCH 116 +# define X509_R_LOADING_CERT_DIR 103 +# define X509_R_LOADING_DEFAULTS 104 +# define X509_R_METHOD_NOT_SUPPORTED 124 +# define X509_R_NAME_TOO_LONG 134 +# define X509_R_NEWER_CRL_NOT_NEWER 132 +# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 +# define X509_R_NO_CRL_NUMBER 130 +# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 +# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 +# define X509_R_SHOULD_RETRY 106 +# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 +# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 +# define X509_R_UNKNOWN_KEY_TYPE 117 +# define X509_R_UNKNOWN_NID 109 +# define X509_R_UNKNOWN_PURPOSE_ID 121 +# define X509_R_UNKNOWN_TRUST_ID 120 +# define X509_R_UNSUPPORTED_ALGORITHM 111 +# define X509_R_WRONG_LOOKUP_TYPE 112 +# define X509_R_WRONG_TYPE 122 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/x509_vfy.h b/External/include/openssl/x509_vfy.h new file mode 100644 index 00000000..2663e1c0 --- /dev/null +++ b/External/include/openssl/x509_vfy.h @@ -0,0 +1,647 @@ +/* crypto/x509/x509_vfy.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_X509_H +# include +/* + * openssl/x509.h ends up #include-ing this file at about the only + * appropriate moment. + */ +#endif + +#ifndef HEADER_X509_VFY_H +# define HEADER_X509_VFY_H + +# include +# ifndef OPENSSL_NO_LHASH +# include +# endif +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# if 0 +/* Outer object */ +typedef struct x509_hash_dir_st { + int num_dirs; + char **dirs; + int *dirs_type; + int num_dirs_alloced; +} X509_HASH_DIR_CTX; +# endif + +typedef struct x509_file_st { + int num_paths; /* number of paths to files or directories */ + int num_alloced; + char **paths; /* the list of paths or directories */ + int *path_type; +} X509_CERT_FILE_CTX; + +/*******************************/ +/*- +SSL_CTX -> X509_STORE + -> X509_LOOKUP + ->X509_LOOKUP_METHOD + -> X509_LOOKUP + ->X509_LOOKUP_METHOD + +SSL -> X509_STORE_CTX + ->X509_STORE + +The X509_STORE holds the tables etc for verification stuff. +A X509_STORE_CTX is used while validating a single certificate. +The X509_STORE has X509_LOOKUPs for looking up certs. +The X509_STORE then calls a function to actually verify the +certificate chain. +*/ + +# define X509_LU_RETRY -1 +# define X509_LU_FAIL 0 +# define X509_LU_X509 1 +# define X509_LU_CRL 2 +# define X509_LU_PKEY 3 + +typedef struct x509_object_st { + /* one of the above types */ + int type; + union { + char *ptr; + X509 *x509; + X509_CRL *crl; + EVP_PKEY *pkey; + } data; +} X509_OBJECT; + +typedef struct x509_lookup_st X509_LOOKUP; + +DECLARE_STACK_OF(X509_LOOKUP) +DECLARE_STACK_OF(X509_OBJECT) + +/* This is a static that defines the function interface */ +typedef struct x509_lookup_method_st { + const char *name; + int (*new_item) (X509_LOOKUP *ctx); + void (*free) (X509_LOOKUP *ctx); + int (*init) (X509_LOOKUP *ctx); + int (*shutdown) (X509_LOOKUP *ctx); + int (*ctrl) (X509_LOOKUP *ctx, int cmd, const char *argc, long argl, + char **ret); + int (*get_by_subject) (X509_LOOKUP *ctx, int type, X509_NAME *name, + X509_OBJECT *ret); + int (*get_by_issuer_serial) (X509_LOOKUP *ctx, int type, X509_NAME *name, + ASN1_INTEGER *serial, X509_OBJECT *ret); + int (*get_by_fingerprint) (X509_LOOKUP *ctx, int type, + unsigned char *bytes, int len, + X509_OBJECT *ret); + int (*get_by_alias) (X509_LOOKUP *ctx, int type, char *str, int len, + X509_OBJECT *ret); +} X509_LOOKUP_METHOD; + +typedef struct X509_VERIFY_PARAM_ID_st X509_VERIFY_PARAM_ID; + +/* + * This structure hold all parameters associated with a verify operation by + * including an X509_VERIFY_PARAM structure in related structures the + * parameters used can be customized + */ + +typedef struct X509_VERIFY_PARAM_st { + char *name; + time_t check_time; /* Time to use */ + unsigned long inh_flags; /* Inheritance flags */ + unsigned long flags; /* Various verify flags */ + int purpose; /* purpose to check untrusted certificates */ + int trust; /* trust setting to check */ + int depth; /* Verify depth */ + STACK_OF(ASN1_OBJECT) *policies; /* Permissible policies */ + X509_VERIFY_PARAM_ID *id; /* opaque ID data */ +} X509_VERIFY_PARAM; + +DECLARE_STACK_OF(X509_VERIFY_PARAM) + +/* + * This is used to hold everything. It is used for all certificate + * validation. Once we have a certificate chain, the 'verify' function is + * then called to actually check the cert chain. + */ +struct x509_store_st { + /* The following is a cache of trusted certs */ + int cache; /* if true, stash any hits */ + STACK_OF(X509_OBJECT) *objs; /* Cache of all objects */ + /* These are external lookup methods */ + STACK_OF(X509_LOOKUP) *get_cert_methods; + X509_VERIFY_PARAM *param; + /* Callbacks for various operations */ + /* called to verify a certificate */ + int (*verify) (X509_STORE_CTX *ctx); + /* error callback */ + int (*verify_cb) (int ok, X509_STORE_CTX *ctx); + /* get issuers cert from ctx */ + int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); + /* check issued */ + int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); + /* Check revocation status of chain */ + int (*check_revocation) (X509_STORE_CTX *ctx); + /* retrieve CRL */ + int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); + /* Check CRL validity */ + int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); + /* Check certificate against CRL */ + int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); + STACK_OF(X509) *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); + STACK_OF(X509_CRL) *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); + int (*cleanup) (X509_STORE_CTX *ctx); + CRYPTO_EX_DATA ex_data; + int references; +} /* X509_STORE */ ; + +int X509_STORE_set_depth(X509_STORE *store, int depth); + +# define X509_STORE_set_verify_cb_func(ctx,func) ((ctx)->verify_cb=(func)) +# define X509_STORE_set_verify_func(ctx,func) ((ctx)->verify=(func)) + +/* This is the functions plus an instance of the local variables. */ +struct x509_lookup_st { + int init; /* have we been started */ + int skip; /* don't use us. */ + X509_LOOKUP_METHOD *method; /* the functions */ + char *method_data; /* method data */ + X509_STORE *store_ctx; /* who owns us */ +} /* X509_LOOKUP */ ; + +/* + * This is a used when verifying cert chains. Since the gathering of the + * cert chain can take some time (and have to be 'retried', this needs to be + * kept and passed around. + */ +struct x509_store_ctx_st { /* X509_STORE_CTX */ + X509_STORE *ctx; + /* used when looking up certs */ + int current_method; + /* The following are set by the caller */ + /* The cert to check */ + X509 *cert; + /* chain of X509s - untrusted - passed in */ + STACK_OF(X509) *untrusted; + /* set of CRLs passed in */ + STACK_OF(X509_CRL) *crls; + X509_VERIFY_PARAM *param; + /* Other info for use with get_issuer() */ + void *other_ctx; + /* Callbacks for various operations */ + /* called to verify a certificate */ + int (*verify) (X509_STORE_CTX *ctx); + /* error callback */ + int (*verify_cb) (int ok, X509_STORE_CTX *ctx); + /* get issuers cert from ctx */ + int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); + /* check issued */ + int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); + /* Check revocation status of chain */ + int (*check_revocation) (X509_STORE_CTX *ctx); + /* retrieve CRL */ + int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); + /* Check CRL validity */ + int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); + /* Check certificate against CRL */ + int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); + int (*check_policy) (X509_STORE_CTX *ctx); + STACK_OF(X509) *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); + STACK_OF(X509_CRL) *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); + int (*cleanup) (X509_STORE_CTX *ctx); + /* The following is built up */ + /* if 0, rebuild chain */ + int valid; + /* index of last untrusted cert */ + int last_untrusted; + /* chain of X509s - built up and trusted */ + STACK_OF(X509) *chain; + /* Valid policy tree */ + X509_POLICY_TREE *tree; + /* Require explicit policy value */ + int explicit_policy; + /* When something goes wrong, this is why */ + int error_depth; + int error; + X509 *current_cert; + /* cert currently being tested as valid issuer */ + X509 *current_issuer; + /* current CRL */ + X509_CRL *current_crl; + /* score of current CRL */ + int current_crl_score; + /* Reason mask */ + unsigned int current_reasons; + /* For CRL path validation: parent context */ + X509_STORE_CTX *parent; + CRYPTO_EX_DATA ex_data; +} /* X509_STORE_CTX */ ; + +void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); + +# define X509_STORE_CTX_set_app_data(ctx,data) \ + X509_STORE_CTX_set_ex_data(ctx,0,data) +# define X509_STORE_CTX_get_app_data(ctx) \ + X509_STORE_CTX_get_ex_data(ctx,0) + +# define X509_L_FILE_LOAD 1 +# define X509_L_ADD_DIR 2 + +# define X509_LOOKUP_load_file(x,name,type) \ + X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) + +# define X509_LOOKUP_add_dir(x,name,type) \ + X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) + +# define X509_V_OK 0 +# define X509_V_ERR_UNSPECIFIED 1 + +# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 +# define X509_V_ERR_UNABLE_TO_GET_CRL 3 +# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 +# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 +# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 +# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 +# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 +# define X509_V_ERR_CERT_NOT_YET_VALID 9 +# define X509_V_ERR_CERT_HAS_EXPIRED 10 +# define X509_V_ERR_CRL_NOT_YET_VALID 11 +# define X509_V_ERR_CRL_HAS_EXPIRED 12 +# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 +# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 +# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 +# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 +# define X509_V_ERR_OUT_OF_MEM 17 +# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 +# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 +# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 +# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 +# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 +# define X509_V_ERR_CERT_REVOKED 23 +# define X509_V_ERR_INVALID_CA 24 +# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 +# define X509_V_ERR_INVALID_PURPOSE 26 +# define X509_V_ERR_CERT_UNTRUSTED 27 +# define X509_V_ERR_CERT_REJECTED 28 +/* These are 'informational' when looking for issuer cert */ +# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 +# define X509_V_ERR_AKID_SKID_MISMATCH 30 +# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 +# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 + +# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 +# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 +# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 +# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 +# define X509_V_ERR_INVALID_NON_CA 37 +# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 +# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 +# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 + +# define X509_V_ERR_INVALID_EXTENSION 41 +# define X509_V_ERR_INVALID_POLICY_EXTENSION 42 +# define X509_V_ERR_NO_EXPLICIT_POLICY 43 +# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 +# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 + +# define X509_V_ERR_UNNESTED_RESOURCE 46 + +# define X509_V_ERR_PERMITTED_VIOLATION 47 +# define X509_V_ERR_EXCLUDED_VIOLATION 48 +# define X509_V_ERR_SUBTREE_MINMAX 49 +# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 +# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 +# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 +# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 + +/* Suite B mode algorithm violation */ +# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 +# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 +# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 +# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 +# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 +# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 + +/* Host, email and IP check errors */ +# define X509_V_ERR_HOSTNAME_MISMATCH 62 +# define X509_V_ERR_EMAIL_MISMATCH 63 +# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 + +/* The application is not happy */ +# define X509_V_ERR_APPLICATION_VERIFICATION 50 + +/* Certificate verify flags */ + +/* Send issuer+subject checks to verify_cb */ +# define X509_V_FLAG_CB_ISSUER_CHECK 0x1 +/* Use check time instead of current time */ +# define X509_V_FLAG_USE_CHECK_TIME 0x2 +/* Lookup CRLs */ +# define X509_V_FLAG_CRL_CHECK 0x4 +/* Lookup CRLs for whole chain */ +# define X509_V_FLAG_CRL_CHECK_ALL 0x8 +/* Ignore unhandled critical extensions */ +# define X509_V_FLAG_IGNORE_CRITICAL 0x10 +/* Disable workarounds for broken certificates */ +# define X509_V_FLAG_X509_STRICT 0x20 +/* Enable proxy certificate validation */ +# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 +/* Enable policy checking */ +# define X509_V_FLAG_POLICY_CHECK 0x80 +/* Policy variable require-explicit-policy */ +# define X509_V_FLAG_EXPLICIT_POLICY 0x100 +/* Policy variable inhibit-any-policy */ +# define X509_V_FLAG_INHIBIT_ANY 0x200 +/* Policy variable inhibit-policy-mapping */ +# define X509_V_FLAG_INHIBIT_MAP 0x400 +/* Notify callback that policy is OK */ +# define X509_V_FLAG_NOTIFY_POLICY 0x800 +/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ +# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 +/* Delta CRL support */ +# define X509_V_FLAG_USE_DELTAS 0x2000 +/* Check selfsigned CA signature */ +# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 +/* Use trusted store first */ +# define X509_V_FLAG_TRUSTED_FIRST 0x8000 +/* Suite B 128 bit only mode: not normally used */ +# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 +/* Suite B 192 bit only mode */ +# define X509_V_FLAG_SUITEB_192_LOS 0x20000 +/* Suite B 128 bit mode allowing 192 bit algorithms */ +# define X509_V_FLAG_SUITEB_128_LOS 0x30000 + +/* Allow partial chains if at least one certificate is in trusted store */ +# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 +/* + * If the initial chain is not trusted, do not attempt to build an alternative + * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag + * will force the behaviour to match that of previous versions. + */ +# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 + +# define X509_VP_FLAG_DEFAULT 0x1 +# define X509_VP_FLAG_OVERWRITE 0x2 +# define X509_VP_FLAG_RESET_FLAGS 0x4 +# define X509_VP_FLAG_LOCKED 0x8 +# define X509_VP_FLAG_ONCE 0x10 + +/* Internal use: mask of policy related options */ +# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ + | X509_V_FLAG_EXPLICIT_POLICY \ + | X509_V_FLAG_INHIBIT_ANY \ + | X509_V_FLAG_INHIBIT_MAP) + +int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type, + X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, + int type, X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, + X509_OBJECT *x); +void X509_OBJECT_up_ref_count(X509_OBJECT *a); +void X509_OBJECT_free_contents(X509_OBJECT *a); +X509_STORE *X509_STORE_new(void); +void X509_STORE_free(X509_STORE *v); + +STACK_OF(X509) *X509_STORE_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); +STACK_OF(X509_CRL) *X509_STORE_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); +int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); +int X509_STORE_set_trust(X509_STORE *ctx, int trust); +int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); + +void X509_STORE_set_verify_cb(X509_STORE *ctx, + int (*verify_cb) (int, X509_STORE_CTX *)); + +void X509_STORE_set_lookup_crls_cb(X509_STORE *ctx, + STACK_OF(X509_CRL) *(*cb) (X509_STORE_CTX + *ctx, + X509_NAME *nm)); + +X509_STORE_CTX *X509_STORE_CTX_new(void); + +int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); + +void X509_STORE_CTX_free(X509_STORE_CTX *ctx); +int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, + X509 *x509, STACK_OF(X509) *chain); +void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); +void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); + +X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); + +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); + +X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); +X509_LOOKUP_METHOD *X509_LOOKUP_file(void); + +int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); +int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); + +int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name, + X509_OBJECT *ret); + +int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, + long argl, char **ret); + +# ifndef OPENSSL_NO_STDIO +int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); +# endif + +X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); +void X509_LOOKUP_free(X509_LOOKUP *ctx); +int X509_LOOKUP_init(X509_LOOKUP *ctx); +int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type, X509_NAME *name, + X509_OBJECT *ret); +int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type, X509_NAME *name, + ASN1_INTEGER *serial, X509_OBJECT *ret); +int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type, + unsigned char *bytes, int len, + X509_OBJECT *ret); +int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, int len, + X509_OBJECT *ret); +int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); + +# ifndef OPENSSL_NO_STDIO +int X509_STORE_load_locations(X509_STORE *ctx, + const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *ctx); +# endif + +int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, + CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); +void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); +int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); +int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); +X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); +X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); +X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); +STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); +STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); +void X509_STORE_CTX_set_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); +void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk); +int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); +int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); +int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, + int purpose, int trust); +void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); +void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, + time_t t); +void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, + int (*verify_cb) (int, X509_STORE_CTX *)); + +X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); +int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); + +X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); +int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); + +/* X509_VERIFY_PARAM functions */ + +X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); +void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, + const X509_VERIFY_PARAM *from); +int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, + const X509_VERIFY_PARAM *from); +int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); +int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, + unsigned long flags); +int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, + unsigned long flags); +unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); +void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); +void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); +int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, + ASN1_OBJECT *policy); +int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, + STACK_OF(ASN1_OBJECT) *policies); + +int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, + unsigned int flags); +char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); +int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, + const char *email, size_t emaillen); +int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, + const unsigned char *ip, size_t iplen); +int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, + const char *ipasc); + +int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); +const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); + +int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_get_count(void); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); +void X509_VERIFY_PARAM_table_cleanup(void); + +int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, + STACK_OF(X509) *certs, + STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); + +void X509_policy_tree_free(X509_POLICY_TREE *tree); + +int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); +X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, + int i); + +STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_policies(const + X509_POLICY_TREE + *tree); + +STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_user_policies(const + X509_POLICY_TREE + *tree); + +int X509_policy_level_node_count(X509_POLICY_LEVEL *level); + +X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, + int i); + +const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); + +STACK_OF(POLICYQUALINFO) *X509_policy_node_get0_qualifiers(const + X509_POLICY_NODE + *node); +const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE + *node); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include/openssl/x509v3.h b/External/include/openssl/x509v3.h new file mode 100644 index 00000000..f5c61560 --- /dev/null +++ b/External/include/openssl/x509v3.h @@ -0,0 +1,1055 @@ +/* x509v3.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project + * 1999. + */ +/* ==================================================================== + * Copyright (c) 1999-2004 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +#ifndef HEADER_X509V3_H +# define HEADER_X509V3_H + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_SYS_WIN32 +/* Under Win32 these are defined in wincrypt.h */ +# undef X509_NAME +# undef X509_CERT_PAIR +# undef X509_EXTENSIONS +# endif + +/* Forward reference */ +struct v3_ext_method; +struct v3_ext_ctx; + +/* Useful typedefs */ + +typedef void *(*X509V3_EXT_NEW)(void); +typedef void (*X509V3_EXT_FREE) (void *); +typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); +typedef int (*X509V3_EXT_I2D) (void *, unsigned char **); +typedef STACK_OF(CONF_VALUE) * + (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, + STACK_OF(CONF_VALUE) *extlist); +typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, + STACK_OF(CONF_VALUE) *values); +typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, + void *ext); +typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, const char *str); +typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, + BIO *out, int indent); +typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, const char *str); + +/* V3 extension structure */ + +struct v3_ext_method { + int ext_nid; + int ext_flags; +/* If this is set the following four fields are ignored */ + ASN1_ITEM_EXP *it; +/* Old style ASN1 calls */ + X509V3_EXT_NEW ext_new; + X509V3_EXT_FREE ext_free; + X509V3_EXT_D2I d2i; + X509V3_EXT_I2D i2d; +/* The following pair is used for string extensions */ + X509V3_EXT_I2S i2s; + X509V3_EXT_S2I s2i; +/* The following pair is used for multi-valued extensions */ + X509V3_EXT_I2V i2v; + X509V3_EXT_V2I v2i; +/* The following are used for raw extensions */ + X509V3_EXT_I2R i2r; + X509V3_EXT_R2I r2i; + void *usr_data; /* Any extension specific data */ +}; + +typedef struct X509V3_CONF_METHOD_st { + char *(*get_string) (void *db, char *section, char *value); + STACK_OF(CONF_VALUE) *(*get_section) (void *db, char *section); + void (*free_string) (void *db, char *string); + void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); +} X509V3_CONF_METHOD; + +/* Context specific info */ +struct v3_ext_ctx { +# define CTX_TEST 0x1 + int flags; + X509 *issuer_cert; + X509 *subject_cert; + X509_REQ *subject_req; + X509_CRL *crl; + X509V3_CONF_METHOD *db_meth; + void *db; +/* Maybe more here */ +}; + +typedef struct v3_ext_method X509V3_EXT_METHOD; + +DECLARE_STACK_OF(X509V3_EXT_METHOD) + +/* ext_flags values */ +# define X509V3_EXT_DYNAMIC 0x1 +# define X509V3_EXT_CTX_DEP 0x2 +# define X509V3_EXT_MULTILINE 0x4 + +typedef BIT_STRING_BITNAME ENUMERATED_NAMES; + +typedef struct BASIC_CONSTRAINTS_st { + int ca; + ASN1_INTEGER *pathlen; +} BASIC_CONSTRAINTS; + +typedef struct PKEY_USAGE_PERIOD_st { + ASN1_GENERALIZEDTIME *notBefore; + ASN1_GENERALIZEDTIME *notAfter; +} PKEY_USAGE_PERIOD; + +typedef struct otherName_st { + ASN1_OBJECT *type_id; + ASN1_TYPE *value; +} OTHERNAME; + +typedef struct EDIPartyName_st { + ASN1_STRING *nameAssigner; + ASN1_STRING *partyName; +} EDIPARTYNAME; + +typedef struct GENERAL_NAME_st { +# define GEN_OTHERNAME 0 +# define GEN_EMAIL 1 +# define GEN_DNS 2 +# define GEN_X400 3 +# define GEN_DIRNAME 4 +# define GEN_EDIPARTY 5 +# define GEN_URI 6 +# define GEN_IPADD 7 +# define GEN_RID 8 + int type; + union { + char *ptr; + OTHERNAME *otherName; /* otherName */ + ASN1_IA5STRING *rfc822Name; + ASN1_IA5STRING *dNSName; + ASN1_TYPE *x400Address; + X509_NAME *directoryName; + EDIPARTYNAME *ediPartyName; + ASN1_IA5STRING *uniformResourceIdentifier; + ASN1_OCTET_STRING *iPAddress; + ASN1_OBJECT *registeredID; + /* Old names */ + ASN1_OCTET_STRING *ip; /* iPAddress */ + X509_NAME *dirn; /* dirn */ + ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, + * uniformResourceIdentifier */ + ASN1_OBJECT *rid; /* registeredID */ + ASN1_TYPE *other; /* x400Address */ + } d; +} GENERAL_NAME; + +typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; + +typedef struct ACCESS_DESCRIPTION_st { + ASN1_OBJECT *method; + GENERAL_NAME *location; +} ACCESS_DESCRIPTION; + +typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; + +typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; + +DECLARE_STACK_OF(GENERAL_NAME) +DECLARE_ASN1_SET_OF(GENERAL_NAME) + +DECLARE_STACK_OF(ACCESS_DESCRIPTION) +DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION) + +typedef struct DIST_POINT_NAME_st { + int type; + union { + GENERAL_NAMES *fullname; + STACK_OF(X509_NAME_ENTRY) *relativename; + } name; +/* If relativename then this contains the full distribution point name */ + X509_NAME *dpname; +} DIST_POINT_NAME; +/* All existing reasons */ +# define CRLDP_ALL_REASONS 0x807f + +# define CRL_REASON_NONE -1 +# define CRL_REASON_UNSPECIFIED 0 +# define CRL_REASON_KEY_COMPROMISE 1 +# define CRL_REASON_CA_COMPROMISE 2 +# define CRL_REASON_AFFILIATION_CHANGED 3 +# define CRL_REASON_SUPERSEDED 4 +# define CRL_REASON_CESSATION_OF_OPERATION 5 +# define CRL_REASON_CERTIFICATE_HOLD 6 +# define CRL_REASON_REMOVE_FROM_CRL 8 +# define CRL_REASON_PRIVILEGE_WITHDRAWN 9 +# define CRL_REASON_AA_COMPROMISE 10 + +struct DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + GENERAL_NAMES *CRLissuer; + int dp_reasons; +}; + +typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; + +DECLARE_STACK_OF(DIST_POINT) +DECLARE_ASN1_SET_OF(DIST_POINT) + +struct AUTHORITY_KEYID_st { + ASN1_OCTET_STRING *keyid; + GENERAL_NAMES *issuer; + ASN1_INTEGER *serial; +}; + +/* Strong extranet structures */ + +typedef struct SXNET_ID_st { + ASN1_INTEGER *zone; + ASN1_OCTET_STRING *user; +} SXNETID; + +DECLARE_STACK_OF(SXNETID) +DECLARE_ASN1_SET_OF(SXNETID) + +typedef struct SXNET_st { + ASN1_INTEGER *version; + STACK_OF(SXNETID) *ids; +} SXNET; + +typedef struct NOTICEREF_st { + ASN1_STRING *organization; + STACK_OF(ASN1_INTEGER) *noticenos; +} NOTICEREF; + +typedef struct USERNOTICE_st { + NOTICEREF *noticeref; + ASN1_STRING *exptext; +} USERNOTICE; + +typedef struct POLICYQUALINFO_st { + ASN1_OBJECT *pqualid; + union { + ASN1_IA5STRING *cpsuri; + USERNOTICE *usernotice; + ASN1_TYPE *other; + } d; +} POLICYQUALINFO; + +DECLARE_STACK_OF(POLICYQUALINFO) +DECLARE_ASN1_SET_OF(POLICYQUALINFO) + +typedef struct POLICYINFO_st { + ASN1_OBJECT *policyid; + STACK_OF(POLICYQUALINFO) *qualifiers; +} POLICYINFO; + +typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; + +DECLARE_STACK_OF(POLICYINFO) +DECLARE_ASN1_SET_OF(POLICYINFO) + +typedef struct POLICY_MAPPING_st { + ASN1_OBJECT *issuerDomainPolicy; + ASN1_OBJECT *subjectDomainPolicy; +} POLICY_MAPPING; + +DECLARE_STACK_OF(POLICY_MAPPING) + +typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; + +typedef struct GENERAL_SUBTREE_st { + GENERAL_NAME *base; + ASN1_INTEGER *minimum; + ASN1_INTEGER *maximum; +} GENERAL_SUBTREE; + +DECLARE_STACK_OF(GENERAL_SUBTREE) + +struct NAME_CONSTRAINTS_st { + STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; + STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; +}; + +typedef struct POLICY_CONSTRAINTS_st { + ASN1_INTEGER *requireExplicitPolicy; + ASN1_INTEGER *inhibitPolicyMapping; +} POLICY_CONSTRAINTS; + +/* Proxy certificate structures, see RFC 3820 */ +typedef struct PROXY_POLICY_st { + ASN1_OBJECT *policyLanguage; + ASN1_OCTET_STRING *policy; +} PROXY_POLICY; + +typedef struct PROXY_CERT_INFO_EXTENSION_st { + ASN1_INTEGER *pcPathLengthConstraint; + PROXY_POLICY *proxyPolicy; +} PROXY_CERT_INFO_EXTENSION; + +DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) +DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) + +struct ISSUING_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + int onlyuser; + int onlyCA; + ASN1_BIT_STRING *onlysomereasons; + int indirectCRL; + int onlyattr; +}; + +/* Values in idp_flags field */ +/* IDP present */ +# define IDP_PRESENT 0x1 +/* IDP values inconsistent */ +# define IDP_INVALID 0x2 +/* onlyuser true */ +# define IDP_ONLYUSER 0x4 +/* onlyCA true */ +# define IDP_ONLYCA 0x8 +/* onlyattr true */ +# define IDP_ONLYATTR 0x10 +/* indirectCRL true */ +# define IDP_INDIRECT 0x20 +/* onlysomereasons present */ +# define IDP_REASONS 0x40 + +# define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \ +",name:", val->name, ",value:", val->value); + +# define X509V3_set_ctx_test(ctx) \ + X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST) +# define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; + +# define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ + 0,0,0,0, \ + 0,0, \ + (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ + (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ + NULL, NULL, \ + table} + +# define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ + 0,0,0,0, \ + (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ + (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ + 0,0,0,0, \ + NULL} + +# define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + +/* X509_PURPOSE stuff */ + +# define EXFLAG_BCONS 0x1 +# define EXFLAG_KUSAGE 0x2 +# define EXFLAG_XKUSAGE 0x4 +# define EXFLAG_NSCERT 0x8 + +# define EXFLAG_CA 0x10 +/* Really self issued not necessarily self signed */ +# define EXFLAG_SI 0x20 +# define EXFLAG_V1 0x40 +# define EXFLAG_INVALID 0x80 +# define EXFLAG_SET 0x100 +# define EXFLAG_CRITICAL 0x200 +# define EXFLAG_PROXY 0x400 + +# define EXFLAG_INVALID_POLICY 0x800 +# define EXFLAG_FRESHEST 0x1000 +/* Self signed */ +# define EXFLAG_SS 0x2000 + +# define KU_DIGITAL_SIGNATURE 0x0080 +# define KU_NON_REPUDIATION 0x0040 +# define KU_KEY_ENCIPHERMENT 0x0020 +# define KU_DATA_ENCIPHERMENT 0x0010 +# define KU_KEY_AGREEMENT 0x0008 +# define KU_KEY_CERT_SIGN 0x0004 +# define KU_CRL_SIGN 0x0002 +# define KU_ENCIPHER_ONLY 0x0001 +# define KU_DECIPHER_ONLY 0x8000 + +# define NS_SSL_CLIENT 0x80 +# define NS_SSL_SERVER 0x40 +# define NS_SMIME 0x20 +# define NS_OBJSIGN 0x10 +# define NS_SSL_CA 0x04 +# define NS_SMIME_CA 0x02 +# define NS_OBJSIGN_CA 0x01 +# define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) + +# define XKU_SSL_SERVER 0x1 +# define XKU_SSL_CLIENT 0x2 +# define XKU_SMIME 0x4 +# define XKU_CODE_SIGN 0x8 +# define XKU_SGC 0x10 +# define XKU_OCSP_SIGN 0x20 +# define XKU_TIMESTAMP 0x40 +# define XKU_DVCS 0x80 +# define XKU_ANYEKU 0x100 + +# define X509_PURPOSE_DYNAMIC 0x1 +# define X509_PURPOSE_DYNAMIC_NAME 0x2 + +typedef struct x509_purpose_st { + int purpose; + int trust; /* Default trust ID */ + int flags; + int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); + char *name; + char *sname; + void *usr_data; +} X509_PURPOSE; + +# define X509_PURPOSE_SSL_CLIENT 1 +# define X509_PURPOSE_SSL_SERVER 2 +# define X509_PURPOSE_NS_SSL_SERVER 3 +# define X509_PURPOSE_SMIME_SIGN 4 +# define X509_PURPOSE_SMIME_ENCRYPT 5 +# define X509_PURPOSE_CRL_SIGN 6 +# define X509_PURPOSE_ANY 7 +# define X509_PURPOSE_OCSP_HELPER 8 +# define X509_PURPOSE_TIMESTAMP_SIGN 9 + +# define X509_PURPOSE_MIN 1 +# define X509_PURPOSE_MAX 9 + +/* Flags for X509V3_EXT_print() */ + +# define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) +/* Return error for unknown extensions */ +# define X509V3_EXT_DEFAULT 0 +/* Print error for unknown extensions */ +# define X509V3_EXT_ERROR_UNKNOWN (1L << 16) +/* ASN1 parse unknown extensions */ +# define X509V3_EXT_PARSE_UNKNOWN (2L << 16) +/* BIO_dump unknown extensions */ +# define X509V3_EXT_DUMP_UNKNOWN (3L << 16) + +/* Flags for X509V3_add1_i2d */ + +# define X509V3_ADD_OP_MASK 0xfL +# define X509V3_ADD_DEFAULT 0L +# define X509V3_ADD_APPEND 1L +# define X509V3_ADD_REPLACE 2L +# define X509V3_ADD_REPLACE_EXISTING 3L +# define X509V3_ADD_KEEP_EXISTING 4L +# define X509V3_ADD_DELETE 5L +# define X509V3_ADD_SILENT 0x10 + +DECLARE_STACK_OF(X509_PURPOSE) + +DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) + +DECLARE_ASN1_FUNCTIONS(SXNET) +DECLARE_ASN1_FUNCTIONS(SXNETID) + +int SXNET_add_id_asc(SXNET **psx, char *zone, char *user, int userlen); +int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user, + int userlen); +int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, char *user, + int userlen); + +ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone); +ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); +ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); + +DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) + +DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) + +DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) +GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a); +int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); + +ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, + STACK_OF(CONF_VALUE) *nval); +STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, + ASN1_BIT_STRING *bits, + STACK_OF(CONF_VALUE) *extlist); + +STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, + GENERAL_NAME *gen, + STACK_OF(CONF_VALUE) *ret); +int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); + +DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) + +STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, + GENERAL_NAMES *gen, + STACK_OF(CONF_VALUE) *extlist); +GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); + +DECLARE_ASN1_FUNCTIONS(OTHERNAME) +DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) +int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); +void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); +void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype); +int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, + ASN1_OBJECT *oid, ASN1_TYPE *value); +int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen, + ASN1_OBJECT **poid, ASN1_TYPE **pvalue); + +char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, + ASN1_OCTET_STRING *ia5); +ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, char *str); + +DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) +int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION *a); + +DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) +DECLARE_ASN1_FUNCTIONS(POLICYINFO) +DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) +DECLARE_ASN1_FUNCTIONS(USERNOTICE) +DECLARE_ASN1_FUNCTIONS(NOTICEREF) + +DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) +DECLARE_ASN1_FUNCTIONS(DIST_POINT) +DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) +DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) + +int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname); + +int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); + +DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) +DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) + +DECLARE_ASN1_ITEM(POLICY_MAPPING) +DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) +DECLARE_ASN1_ITEM(POLICY_MAPPINGS) + +DECLARE_ASN1_ITEM(GENERAL_SUBTREE) +DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) + +DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) +DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) + +DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) +DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) + +GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, + const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, int gen_type, char *value, + int is_nc); + +# ifdef HEADER_CONF_H +GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, CONF_VALUE *cnf); +GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, + const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, CONF_VALUE *cnf, + int is_nc); +void X509V3_conf_free(CONF_VALUE *val); + +X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, + char *value); +X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, + char *value); +int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section, + STACK_OF(X509_EXTENSION) **sk); +int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, + X509 *cert); +int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, + X509_REQ *req); +int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, + X509_CRL *crl); + +X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, + X509V3_CTX *ctx, int ext_nid, + char *value); +X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + char *name, char *value); +int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + char *section, X509 *cert); +int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + char *section, X509_REQ *req); +int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + char *section, X509_CRL *crl); + +int X509V3_add_value_bool_nf(char *name, int asn1_bool, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_get_value_bool(CONF_VALUE *value, int *asn1_bool); +int X509V3_get_value_int(CONF_VALUE *value, ASN1_INTEGER **aint); +void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); +void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); +# endif + +char *X509V3_get_string(X509V3_CTX *ctx, char *name, char *section); +STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, char *section); +void X509V3_string_free(X509V3_CTX *ctx, char *str); +void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); +void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, + X509_REQ *req, X509_CRL *crl, int flags); + +int X509V3_add_value(const char *name, const char *value, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_uchar(const char *name, const unsigned char *value, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_bool(const char *name, int asn1_bool, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_int(const char *name, ASN1_INTEGER *aint, + STACK_OF(CONF_VALUE) **extlist); +char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint); +ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, char *value); +char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint); +char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, + ASN1_ENUMERATED *aint); +int X509V3_EXT_add(X509V3_EXT_METHOD *ext); +int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); +int X509V3_EXT_add_alias(int nid_to, int nid_from); +void X509V3_EXT_cleanup(void); + +const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); +const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); +int X509V3_add_standard_extensions(void); +STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); +void *X509V3_EXT_d2i(X509_EXTENSION *ext); +void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, + int *idx); +int X509V3_EXT_free(int nid, void *ext_data); + +X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); +int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, + int crit, unsigned long flags); + +char *hex_to_string(const unsigned char *buffer, long len); +unsigned char *string_to_hex(const char *str, long *len); +int name_cmp(const char *name, const char *cmp); + +void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, + int ml); +int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, + int indent); +int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); + +int X509V3_extensions_print(BIO *out, char *title, + STACK_OF(X509_EXTENSION) *exts, + unsigned long flag, int indent); + +int X509_check_ca(X509 *x); +int X509_check_purpose(X509 *x, int id, int ca); +int X509_supported_extension(X509_EXTENSION *ex); +int X509_PURPOSE_set(int *p, int purpose); +int X509_check_issued(X509 *issuer, X509 *subject); +int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid); +int X509_PURPOSE_get_count(void); +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_by_sname(char *sname); +int X509_PURPOSE_get_by_id(int id); +int X509_PURPOSE_add(int id, int trust, int flags, + int (*ck) (const X509_PURPOSE *, const X509 *, int), + char *name, char *sname, void *arg); +char *X509_PURPOSE_get0_name(X509_PURPOSE *xp); +char *X509_PURPOSE_get0_sname(X509_PURPOSE *xp); +int X509_PURPOSE_get_trust(X509_PURPOSE *xp); +void X509_PURPOSE_cleanup(void); +int X509_PURPOSE_get_id(X509_PURPOSE *); + +STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); +STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); +void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); +STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); +/* Flags for X509_check_* functions */ + +/* + * Always check subject name for host match even if subject alt names present + */ +# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 +/* Disable wildcard matching for dnsName fields and common name. */ +# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 +/* Wildcards must not match a partial label. */ +# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 +/* Allow (non-partial) wildcards to match multiple labels. */ +# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 +/* Constraint verifier subdomain patterns to match a single labels. */ +# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 +/* + * Match reference identifiers starting with "." to any sub-domain. + * This is a non-public flag, turned on implicitly when the subject + * reference identity is a DNS name. + */ +# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 + +int X509_check_host(X509 *x, const char *chk, size_t chklen, + unsigned int flags, char **peername); +int X509_check_email(X509 *x, const char *chk, size_t chklen, + unsigned int flags); +int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, + unsigned int flags); +int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); + +ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); +ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); +int a2i_ipadd(unsigned char *ipout, const char *ipasc); +int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, + unsigned long chtype); + +void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); +DECLARE_STACK_OF(X509_POLICY_NODE) + +# ifndef OPENSSL_NO_RFC3779 + +typedef struct ASRange_st { + ASN1_INTEGER *min, *max; +} ASRange; + +# define ASIdOrRange_id 0 +# define ASIdOrRange_range 1 + +typedef struct ASIdOrRange_st { + int type; + union { + ASN1_INTEGER *id; + ASRange *range; + } u; +} ASIdOrRange; + +typedef STACK_OF(ASIdOrRange) ASIdOrRanges; +DECLARE_STACK_OF(ASIdOrRange) + +# define ASIdentifierChoice_inherit 0 +# define ASIdentifierChoice_asIdsOrRanges 1 + +typedef struct ASIdentifierChoice_st { + int type; + union { + ASN1_NULL *inherit; + ASIdOrRanges *asIdsOrRanges; + } u; +} ASIdentifierChoice; + +typedef struct ASIdentifiers_st { + ASIdentifierChoice *asnum, *rdi; +} ASIdentifiers; + +DECLARE_ASN1_FUNCTIONS(ASRange) +DECLARE_ASN1_FUNCTIONS(ASIdOrRange) +DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) +DECLARE_ASN1_FUNCTIONS(ASIdentifiers) + +typedef struct IPAddressRange_st { + ASN1_BIT_STRING *min, *max; +} IPAddressRange; + +# define IPAddressOrRange_addressPrefix 0 +# define IPAddressOrRange_addressRange 1 + +typedef struct IPAddressOrRange_st { + int type; + union { + ASN1_BIT_STRING *addressPrefix; + IPAddressRange *addressRange; + } u; +} IPAddressOrRange; + +typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; +DECLARE_STACK_OF(IPAddressOrRange) + +# define IPAddressChoice_inherit 0 +# define IPAddressChoice_addressesOrRanges 1 + +typedef struct IPAddressChoice_st { + int type; + union { + ASN1_NULL *inherit; + IPAddressOrRanges *addressesOrRanges; + } u; +} IPAddressChoice; + +typedef struct IPAddressFamily_st { + ASN1_OCTET_STRING *addressFamily; + IPAddressChoice *ipAddressChoice; +} IPAddressFamily; + +typedef STACK_OF(IPAddressFamily) IPAddrBlocks; +DECLARE_STACK_OF(IPAddressFamily) + +DECLARE_ASN1_FUNCTIONS(IPAddressRange) +DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) +DECLARE_ASN1_FUNCTIONS(IPAddressChoice) +DECLARE_ASN1_FUNCTIONS(IPAddressFamily) + +/* + * API tag for elements of the ASIdentifer SEQUENCE. + */ +# define V3_ASID_ASNUM 0 +# define V3_ASID_RDI 1 + +/* + * AFI values, assigned by IANA. It'd be nice to make the AFI + * handling code totally generic, but there are too many little things + * that would need to be defined for other address families for it to + * be worth the trouble. + */ +# define IANA_AFI_IPV4 1 +# define IANA_AFI_IPV6 2 + +/* + * Utilities to construct and extract values from RFC3779 extensions, + * since some of the encodings (particularly for IP address prefixes + * and ranges) are a bit tedious to work with directly. + */ +int v3_asid_add_inherit(ASIdentifiers *asid, int which); +int v3_asid_add_id_or_range(ASIdentifiers *asid, int which, + ASN1_INTEGER *min, ASN1_INTEGER *max); +int v3_addr_add_inherit(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi); +int v3_addr_add_prefix(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi, + unsigned char *a, const int prefixlen); +int v3_addr_add_range(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi, + unsigned char *min, unsigned char *max); +unsigned v3_addr_get_afi(const IPAddressFamily *f); +int v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, + unsigned char *min, unsigned char *max, + const int length); + +/* + * Canonical forms. + */ +int v3_asid_is_canonical(ASIdentifiers *asid); +int v3_addr_is_canonical(IPAddrBlocks *addr); +int v3_asid_canonize(ASIdentifiers *asid); +int v3_addr_canonize(IPAddrBlocks *addr); + +/* + * Tests for inheritance and containment. + */ +int v3_asid_inherits(ASIdentifiers *asid); +int v3_addr_inherits(IPAddrBlocks *addr); +int v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); +int v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); + +/* + * Check whether RFC 3779 extensions nest properly in chains. + */ +int v3_asid_validate_path(X509_STORE_CTX *); +int v3_addr_validate_path(X509_STORE_CTX *); +int v3_asid_validate_resource_set(STACK_OF(X509) *chain, + ASIdentifiers *ext, int allow_inheritance); +int v3_addr_validate_resource_set(STACK_OF(X509) *chain, + IPAddrBlocks *ext, int allow_inheritance); + +# endif /* OPENSSL_NO_RFC3779 */ + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_X509V3_strings(void); + +/* Error codes for the X509V3 functions. */ + +/* Function codes. */ +# define X509V3_F_A2I_GENERAL_NAME 164 +# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 +# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 +# define X509V3_F_COPY_EMAIL 122 +# define X509V3_F_COPY_ISSUER 123 +# define X509V3_F_DO_DIRNAME 144 +# define X509V3_F_DO_EXT_CONF 124 +# define X509V3_F_DO_EXT_I2D 135 +# define X509V3_F_DO_EXT_NCONF 151 +# define X509V3_F_DO_I2V_NAME_CONSTRAINTS 148 +# define X509V3_F_GNAMES_FROM_SECTNAME 156 +# define X509V3_F_HEX_TO_STRING 111 +# define X509V3_F_I2S_ASN1_ENUMERATED 121 +# define X509V3_F_I2S_ASN1_IA5STRING 149 +# define X509V3_F_I2S_ASN1_INTEGER 120 +# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 +# define X509V3_F_NOTICE_SECTION 132 +# define X509V3_F_NREF_NOS 133 +# define X509V3_F_POLICY_SECTION 131 +# define X509V3_F_PROCESS_PCI_VALUE 150 +# define X509V3_F_R2I_CERTPOL 130 +# define X509V3_F_R2I_PCI 155 +# define X509V3_F_S2I_ASN1_IA5STRING 100 +# define X509V3_F_S2I_ASN1_INTEGER 108 +# define X509V3_F_S2I_ASN1_OCTET_STRING 112 +# define X509V3_F_S2I_ASN1_SKEY_ID 114 +# define X509V3_F_S2I_SKEY_ID 115 +# define X509V3_F_SET_DIST_POINT_NAME 158 +# define X509V3_F_STRING_TO_HEX 113 +# define X509V3_F_SXNET_ADD_ID_ASC 125 +# define X509V3_F_SXNET_ADD_ID_INTEGER 126 +# define X509V3_F_SXNET_ADD_ID_ULONG 127 +# define X509V3_F_SXNET_GET_ID_ASC 128 +# define X509V3_F_SXNET_GET_ID_ULONG 129 +# define X509V3_F_V2I_ASIDENTIFIERS 163 +# define X509V3_F_V2I_ASN1_BIT_STRING 101 +# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 +# define X509V3_F_V2I_AUTHORITY_KEYID 119 +# define X509V3_F_V2I_BASIC_CONSTRAINTS 102 +# define X509V3_F_V2I_CRLD 134 +# define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 +# define X509V3_F_V2I_GENERAL_NAMES 118 +# define X509V3_F_V2I_GENERAL_NAME_EX 117 +# define X509V3_F_V2I_IDP 157 +# define X509V3_F_V2I_IPADDRBLOCKS 159 +# define X509V3_F_V2I_ISSUER_ALT 153 +# define X509V3_F_V2I_NAME_CONSTRAINTS 147 +# define X509V3_F_V2I_POLICY_CONSTRAINTS 146 +# define X509V3_F_V2I_POLICY_MAPPINGS 145 +# define X509V3_F_V2I_SUBJECT_ALT 154 +# define X509V3_F_V3_ADDR_VALIDATE_PATH_INTERNAL 160 +# define X509V3_F_V3_GENERIC_EXTENSION 116 +# define X509V3_F_X509V3_ADD1_I2D 140 +# define X509V3_F_X509V3_ADD_VALUE 105 +# define X509V3_F_X509V3_EXT_ADD 104 +# define X509V3_F_X509V3_EXT_ADD_ALIAS 106 +# define X509V3_F_X509V3_EXT_CONF 107 +# define X509V3_F_X509V3_EXT_FREE 165 +# define X509V3_F_X509V3_EXT_I2D 136 +# define X509V3_F_X509V3_EXT_NCONF 152 +# define X509V3_F_X509V3_GET_SECTION 142 +# define X509V3_F_X509V3_GET_STRING 143 +# define X509V3_F_X509V3_GET_VALUE_BOOL 110 +# define X509V3_F_X509V3_PARSE_LIST 109 +# define X509V3_F_X509_PURPOSE_ADD 137 +# define X509V3_F_X509_PURPOSE_SET 141 + +/* Reason codes. */ +# define X509V3_R_BAD_IP_ADDRESS 118 +# define X509V3_R_BAD_OBJECT 119 +# define X509V3_R_BN_DEC2BN_ERROR 100 +# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 +# define X509V3_R_CANNOT_FIND_FREE_FUNCTION 168 +# define X509V3_R_DIRNAME_ERROR 149 +# define X509V3_R_DISTPOINT_ALREADY_SET 160 +# define X509V3_R_DUPLICATE_ZONE_ID 133 +# define X509V3_R_ERROR_CONVERTING_ZONE 131 +# define X509V3_R_ERROR_CREATING_EXTENSION 144 +# define X509V3_R_ERROR_IN_EXTENSION 128 +# define X509V3_R_EXPECTED_A_SECTION_NAME 137 +# define X509V3_R_EXTENSION_EXISTS 145 +# define X509V3_R_EXTENSION_NAME_ERROR 115 +# define X509V3_R_EXTENSION_NOT_FOUND 102 +# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 +# define X509V3_R_EXTENSION_VALUE_ERROR 116 +# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 +# define X509V3_R_ILLEGAL_HEX_DIGIT 113 +# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 +# define X509V3_R_INVALID_ASNUMBER 162 +# define X509V3_R_INVALID_ASRANGE 163 +# define X509V3_R_INVALID_BOOLEAN_STRING 104 +# define X509V3_R_INVALID_EXTENSION_STRING 105 +# define X509V3_R_INVALID_INHERITANCE 165 +# define X509V3_R_INVALID_IPADDRESS 166 +# define X509V3_R_INVALID_MULTIPLE_RDNS 161 +# define X509V3_R_INVALID_NAME 106 +# define X509V3_R_INVALID_NULL_ARGUMENT 107 +# define X509V3_R_INVALID_NULL_NAME 108 +# define X509V3_R_INVALID_NULL_VALUE 109 +# define X509V3_R_INVALID_NUMBER 140 +# define X509V3_R_INVALID_NUMBERS 141 +# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 +# define X509V3_R_INVALID_OPTION 138 +# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 +# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 +# define X509V3_R_INVALID_PURPOSE 146 +# define X509V3_R_INVALID_SAFI 164 +# define X509V3_R_INVALID_SECTION 135 +# define X509V3_R_INVALID_SYNTAX 143 +# define X509V3_R_ISSUER_DECODE_ERROR 126 +# define X509V3_R_MISSING_VALUE 124 +# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 +# define X509V3_R_NO_CONFIG_DATABASE 136 +# define X509V3_R_NO_ISSUER_CERTIFICATE 121 +# define X509V3_R_NO_ISSUER_DETAILS 127 +# define X509V3_R_NO_POLICY_IDENTIFIER 139 +# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 +# define X509V3_R_NO_PUBLIC_KEY 114 +# define X509V3_R_NO_SUBJECT_DETAILS 125 +# define X509V3_R_ODD_NUMBER_OF_DIGITS 112 +# define X509V3_R_OPERATION_NOT_DEFINED 148 +# define X509V3_R_OTHERNAME_ERROR 147 +# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 +# define X509V3_R_POLICY_PATH_LENGTH 156 +# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 +# define X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED 158 +# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 +# define X509V3_R_SECTION_NOT_FOUND 150 +# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 +# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 +# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 +# define X509V3_R_UNKNOWN_EXTENSION 129 +# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 +# define X509V3_R_UNKNOWN_OPTION 120 +# define X509V3_R_UNSUPPORTED_OPTION 117 +# define X509V3_R_UNSUPPORTED_TYPE 167 +# define X509V3_R_USER_TOO_LONG 132 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/aes.h b/External/include64/openssl/aes.h new file mode 100644 index 00000000..faa66c49 --- /dev/null +++ b/External/include64/openssl/aes.h @@ -0,0 +1,149 @@ +/* crypto/aes/aes.h */ +/* ==================================================================== + * Copyright (c) 1998-2002 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + */ + +#ifndef HEADER_AES_H +# define HEADER_AES_H + +# include + +# ifdef OPENSSL_NO_AES +# error AES is disabled. +# endif + +# include + +# define AES_ENCRYPT 1 +# define AES_DECRYPT 0 + +/* + * Because array size can't be a const in C, the following two are macros. + * Both sizes are in bytes. + */ +# define AES_MAXNR 14 +# define AES_BLOCK_SIZE 16 + +#ifdef __cplusplus +extern "C" { +#endif + +/* This should be a hidden type, but EVP requires that the size be known */ +struct aes_key_st { +# ifdef AES_LONG + unsigned long rd_key[4 * (AES_MAXNR + 1)]; +# else + unsigned int rd_key[4 * (AES_MAXNR + 1)]; +# endif + int rounds; +}; +typedef struct aes_key_st AES_KEY; + +const char *AES_options(void); + +int AES_set_encrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); +int AES_set_decrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); + +int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); +int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); + +void AES_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); +void AES_decrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); + +void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key, const int enc); +void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, const int enc); +void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num); +void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char ivec[AES_BLOCK_SIZE], + unsigned char ecount_buf[AES_BLOCK_SIZE], + unsigned int *num); +/* NB: the IV is _two_ blocks long */ +void AES_ige_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, const int enc); +/* NB: the IV is _four_ blocks long */ +void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + const AES_KEY *key2, const unsigned char *ivec, + const int enc); + +int AES_wrap_key(AES_KEY *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, unsigned int inlen); +int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, unsigned int inlen); + + +#ifdef __cplusplus +} +#endif + +#endif /* !HEADER_AES_H */ diff --git a/External/include64/openssl/asn1.h b/External/include64/openssl/asn1.h new file mode 100644 index 00000000..68e791fc --- /dev/null +++ b/External/include64/openssl/asn1.h @@ -0,0 +1,1419 @@ +/* crypto/asn1/asn1.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_ASN1_H +# define HEADER_ASN1_H + +# include +# include +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include + +# include + +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define V_ASN1_UNIVERSAL 0x00 +# define V_ASN1_APPLICATION 0x40 +# define V_ASN1_CONTEXT_SPECIFIC 0x80 +# define V_ASN1_PRIVATE 0xc0 + +# define V_ASN1_CONSTRUCTED 0x20 +# define V_ASN1_PRIMITIVE_TAG 0x1f +# define V_ASN1_PRIMATIVE_TAG 0x1f + +# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ +# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ +# define V_ASN1_ANY -4/* used in ASN1 template code */ + +# define V_ASN1_NEG 0x100/* negative flag */ + +# define V_ASN1_UNDEF -1 +# define V_ASN1_EOC 0 +# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_INTEGER 2 +# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) +# define V_ASN1_BIT_STRING 3 +# define V_ASN1_OCTET_STRING 4 +# define V_ASN1_NULL 5 +# define V_ASN1_OBJECT 6 +# define V_ASN1_OBJECT_DESCRIPTOR 7 +# define V_ASN1_EXTERNAL 8 +# define V_ASN1_REAL 9 +# define V_ASN1_ENUMERATED 10 +# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) +# define V_ASN1_UTF8STRING 12 +# define V_ASN1_SEQUENCE 16 +# define V_ASN1_SET 17 +# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_PRINTABLESTRING 19 +# define V_ASN1_T61STRING 20 +# define V_ASN1_TELETEXSTRING 20/* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_IA5STRING 22 +# define V_ASN1_UTCTIME 23 +# define V_ASN1_GENERALIZEDTIME 24 /**/ +# define V_ASN1_GRAPHICSTRING 25 /**/ +# define V_ASN1_ISO64STRING 26 /**/ +# define V_ASN1_VISIBLESTRING 26/* alias */ +# define V_ASN1_GENERALSTRING 27 /**/ +# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_BMPSTRING 30 +/* For use with d2i_ASN1_type_bytes() */ +# define B_ASN1_NUMERICSTRING 0x0001 +# define B_ASN1_PRINTABLESTRING 0x0002 +# define B_ASN1_T61STRING 0x0004 +# define B_ASN1_TELETEXSTRING 0x0004 +# define B_ASN1_VIDEOTEXSTRING 0x0008 +# define B_ASN1_IA5STRING 0x0010 +# define B_ASN1_GRAPHICSTRING 0x0020 +# define B_ASN1_ISO64STRING 0x0040 +# define B_ASN1_VISIBLESTRING 0x0040 +# define B_ASN1_GENERALSTRING 0x0080 +# define B_ASN1_UNIVERSALSTRING 0x0100 +# define B_ASN1_OCTET_STRING 0x0200 +# define B_ASN1_BIT_STRING 0x0400 +# define B_ASN1_BMPSTRING 0x0800 +# define B_ASN1_UNKNOWN 0x1000 +# define B_ASN1_UTF8STRING 0x2000 +# define B_ASN1_UTCTIME 0x4000 +# define B_ASN1_GENERALIZEDTIME 0x8000 +# define B_ASN1_SEQUENCE 0x10000 +/* For use with ASN1_mbstring_copy() */ +# define MBSTRING_FLAG 0x1000 +# define MBSTRING_UTF8 (MBSTRING_FLAG) +# define MBSTRING_ASC (MBSTRING_FLAG|1) +# define MBSTRING_BMP (MBSTRING_FLAG|2) +# define MBSTRING_UNIV (MBSTRING_FLAG|4) +# define SMIME_OLDMIME 0x400 +# define SMIME_CRLFEOL 0x800 +# define SMIME_STREAM 0x1000 + struct X509_algor_st; +DECLARE_STACK_OF(X509_ALGOR) + +# define DECLARE_ASN1_SET_OF(type)/* filled in by mkstack.pl */ +# define IMPLEMENT_ASN1_SET_OF(type)/* nothing, no longer needed */ + +/* + * We MUST make sure that, except for constness, asn1_ctx_st and + * asn1_const_ctx are exactly the same. Fortunately, as soon as the old ASN1 + * parsing macros are gone, we can throw this away as well... + */ +typedef struct asn1_ctx_st { + unsigned char *p; /* work char pointer */ + int eos; /* end of sequence read for indefinite + * encoding */ + int error; /* error code to use when returning an error */ + int inf; /* constructed if 0x20, indefinite is 0x21 */ + int tag; /* tag from last 'get object' */ + int xclass; /* class from last 'get object' */ + long slen; /* length of last 'get object' */ + unsigned char *max; /* largest value of p allowed */ + unsigned char *q; /* temporary variable */ + unsigned char **pp; /* variable */ + int line; /* used in error processing */ +} ASN1_CTX; + +typedef struct asn1_const_ctx_st { + const unsigned char *p; /* work char pointer */ + int eos; /* end of sequence read for indefinite + * encoding */ + int error; /* error code to use when returning an error */ + int inf; /* constructed if 0x20, indefinite is 0x21 */ + int tag; /* tag from last 'get object' */ + int xclass; /* class from last 'get object' */ + long slen; /* length of last 'get object' */ + const unsigned char *max; /* largest value of p allowed */ + const unsigned char *q; /* temporary variable */ + const unsigned char **pp; /* variable */ + int line; /* used in error processing */ +} ASN1_const_CTX; + +/* + * These are used internally in the ASN1_OBJECT to keep track of whether the + * names and data need to be free()ed + */ +# define ASN1_OBJECT_FLAG_DYNAMIC 0x01/* internal use */ +# define ASN1_OBJECT_FLAG_CRITICAL 0x02/* critical x509v3 object id */ +# define ASN1_OBJECT_FLAG_DYNAMIC_STRINGS 0x04/* internal use */ +# define ASN1_OBJECT_FLAG_DYNAMIC_DATA 0x08/* internal use */ +struct asn1_object_st { + const char *sn, *ln; + int nid; + int length; + const unsigned char *data; /* data remains const after init */ + int flags; /* Should we free this one */ +}; + +# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +/* + * This indicates that the ASN1_STRING is not a real value but just a place + * holder for the location where indefinite length constructed data should be + * inserted in the memory buffer + */ +# define ASN1_STRING_FLAG_NDEF 0x010 + +/* + * This flag is used by the CMS code to indicate that a string is not + * complete and is a place holder for content when it had all been accessed. + * The flag will be reset when content has been written to it. + */ + +# define ASN1_STRING_FLAG_CONT 0x020 +/* + * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING + * type. + */ +# define ASN1_STRING_FLAG_MSTRING 0x040 +/* This is the base type that holds just about everything :-) */ +struct asn1_string_st { + int length; + int type; + unsigned char *data; + /* + * The value of the following field depends on the type being held. It + * is mostly being used for BIT_STRING so if the input data has a + * non-zero 'unused bits' value, it will be handled correctly + */ + long flags; +}; + +/* + * ASN1_ENCODING structure: this is used to save the received encoding of an + * ASN1 type. This is useful to get round problems with invalid encodings + * which can break signatures. + */ + +typedef struct ASN1_ENCODING_st { + unsigned char *enc; /* DER encoding */ + long len; /* Length of encoding */ + int modified; /* set to 1 if 'enc' is invalid */ +} ASN1_ENCODING; + +/* Used with ASN1 LONG type: if a long is set to this it is omitted */ +# define ASN1_LONG_UNDEF 0x7fffffffL + +# define STABLE_FLAGS_MALLOC 0x01 +# define STABLE_NO_MASK 0x02 +# define DIRSTRING_TYPE \ + (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) +# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) + +typedef struct asn1_string_table_st { + int nid; + long minsize; + long maxsize; + unsigned long mask; + unsigned long flags; +} ASN1_STRING_TABLE; + +DECLARE_STACK_OF(ASN1_STRING_TABLE) + +/* size limits: this stuff is taken straight from RFC2459 */ + +# define ub_name 32768 +# define ub_common_name 64 +# define ub_locality_name 128 +# define ub_state_name 128 +# define ub_organization_name 64 +# define ub_organization_unit_name 64 +# define ub_title 64 +# define ub_email_address 128 + +/* + * Declarations for template structures: for full definitions see asn1t.h + */ +typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; +typedef struct ASN1_TLC_st ASN1_TLC; +/* This is just an opaque pointer */ +typedef struct ASN1_VALUE_st ASN1_VALUE; + +/* Declare ASN1 functions: the implement macro in in asn1t.h */ + +# define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) + +# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type) + +# define DECLARE_ASN1_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) + +# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) + +# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ + type *d2i_##name(type **a, const unsigned char **in, long len); \ + int i2d_##name(type *a, unsigned char **out); \ + DECLARE_ASN1_ITEM(itname) + +# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ + type *d2i_##name(type **a, const unsigned char **in, long len); \ + int i2d_##name(const type *a, unsigned char **out); \ + DECLARE_ASN1_ITEM(name) + +# define DECLARE_ASN1_NDEF_FUNCTION(name) \ + int i2d_##name##_NDEF(name *a, unsigned char **out); + +# define DECLARE_ASN1_FUNCTIONS_const(name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS(name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) + +# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + type *name##_new(void); \ + void name##_free(type *a); + +# define DECLARE_ASN1_PRINT_FUNCTION(stname) \ + DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname) + +# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ + int fname##_print_ctx(BIO *out, stname *x, int indent, \ + const ASN1_PCTX *pctx); + +# define D2I_OF(type) type *(*)(type **,const unsigned char **,long) +# define I2D_OF(type) int (*)(type *,unsigned char **) +# define I2D_OF_const(type) int (*)(const type *,unsigned char **) + +# define CHECKED_D2I_OF(type, d2i) \ + ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) +# define CHECKED_I2D_OF(type, i2d) \ + ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) +# define CHECKED_NEW_OF(type, xnew) \ + ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) +# define CHECKED_PTR_OF(type, p) \ + ((void*) (1 ? p : (type*)0)) +# define CHECKED_PPTR_OF(type, p) \ + ((void**) (1 ? p : (type**)0)) + +# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) +# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **) +# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) + +TYPEDEF_D2I2D_OF(void); + +/*- + * The following macros and typedefs allow an ASN1_ITEM + * to be embedded in a structure and referenced. Since + * the ASN1_ITEM pointers need to be globally accessible + * (possibly from shared libraries) they may exist in + * different forms. On platforms that support it the + * ASN1_ITEM structure itself will be globally exported. + * Other platforms will export a function that returns + * an ASN1_ITEM pointer. + * + * To handle both cases transparently the macros below + * should be used instead of hard coding an ASN1_ITEM + * pointer in a structure. + * + * The structure will look like this: + * + * typedef struct SOMETHING_st { + * ... + * ASN1_ITEM_EXP *iptr; + * ... + * } SOMETHING; + * + * It would be initialised as e.g.: + * + * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; + * + * and the actual pointer extracted with: + * + * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); + * + * Finally an ASN1_ITEM pointer can be extracted from an + * appropriate reference with: ASN1_ITEM_rptr(X509). This + * would be used when a function takes an ASN1_ITEM * argument. + * + */ + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* ASN1_ITEM pointer exported type */ +typedef const ASN1_ITEM ASN1_ITEM_EXP; + +/* Macro to obtain ASN1_ITEM pointer from exported type */ +# define ASN1_ITEM_ptr(iptr) (iptr) + +/* Macro to include ASN1_ITEM pointer from base type */ +# define ASN1_ITEM_ref(iptr) (&(iptr##_it)) + +# define ASN1_ITEM_rptr(ref) (&(ref##_it)) + +# define DECLARE_ASN1_ITEM(name) \ + OPENSSL_EXTERN const ASN1_ITEM name##_it; + +# else + +/* + * Platforms that can't easily handle shared global variables are declared as + * functions returning ASN1_ITEM pointers. + */ + +/* ASN1_ITEM pointer exported type */ +typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); + +/* Macro to obtain ASN1_ITEM pointer from exported type */ +# define ASN1_ITEM_ptr(iptr) (iptr()) + +/* Macro to include ASN1_ITEM pointer from base type */ +# define ASN1_ITEM_ref(iptr) (iptr##_it) + +# define ASN1_ITEM_rptr(ref) (ref##_it()) + +# define DECLARE_ASN1_ITEM(name) \ + const ASN1_ITEM * name##_it(void); + +# endif + +/* Parameters used by ASN1_STRING_print_ex() */ + +/* + * These determine which characters to escape: RFC2253 special characters, + * control characters and MSB set characters + */ + +# define ASN1_STRFLGS_ESC_2253 1 +# define ASN1_STRFLGS_ESC_CTRL 2 +# define ASN1_STRFLGS_ESC_MSB 4 + +/* + * This flag determines how we do escaping: normally RC2253 backslash only, + * set this to use backslash and quote. + */ + +# define ASN1_STRFLGS_ESC_QUOTE 8 + +/* These three flags are internal use only. */ + +/* Character is a valid PrintableString character */ +# define CHARTYPE_PRINTABLESTRING 0x10 +/* Character needs escaping if it is the first character */ +# define CHARTYPE_FIRST_ESC_2253 0x20 +/* Character needs escaping if it is the last character */ +# define CHARTYPE_LAST_ESC_2253 0x40 + +/* + * NB the internal flags are safely reused below by flags handled at the top + * level. + */ + +/* + * If this is set we convert all character strings to UTF8 first + */ + +# define ASN1_STRFLGS_UTF8_CONVERT 0x10 + +/* + * If this is set we don't attempt to interpret content: just assume all + * strings are 1 byte per character. This will produce some pretty odd + * looking output! + */ + +# define ASN1_STRFLGS_IGNORE_TYPE 0x20 + +/* If this is set we include the string type in the output */ +# define ASN1_STRFLGS_SHOW_TYPE 0x40 + +/* + * This determines which strings to display and which to 'dump' (hex dump of + * content octets or DER encoding). We can only dump non character strings or + * everything. If we don't dump 'unknown' they are interpreted as character + * strings with 1 octet per character and are subject to the usual escaping + * options. + */ + +# define ASN1_STRFLGS_DUMP_ALL 0x80 +# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 + +/* + * These determine what 'dumping' does, we can dump the content octets or the + * DER encoding: both use the RFC2253 #XXXXX notation. + */ + +# define ASN1_STRFLGS_DUMP_DER 0x200 + +/* + * All the string flags consistent with RFC2253, escaping control characters + * isn't essential in RFC2253 but it is advisable anyway. + */ + +# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ + ASN1_STRFLGS_ESC_CTRL | \ + ASN1_STRFLGS_ESC_MSB | \ + ASN1_STRFLGS_UTF8_CONVERT | \ + ASN1_STRFLGS_DUMP_UNKNOWN | \ + ASN1_STRFLGS_DUMP_DER) + +DECLARE_STACK_OF(ASN1_INTEGER) +DECLARE_ASN1_SET_OF(ASN1_INTEGER) + +DECLARE_STACK_OF(ASN1_GENERALSTRING) + +typedef struct asn1_type_st { + int type; + union { + char *ptr; + ASN1_BOOLEAN boolean; + ASN1_STRING *asn1_string; + ASN1_OBJECT *object; + ASN1_INTEGER *integer; + ASN1_ENUMERATED *enumerated; + ASN1_BIT_STRING *bit_string; + ASN1_OCTET_STRING *octet_string; + ASN1_PRINTABLESTRING *printablestring; + ASN1_T61STRING *t61string; + ASN1_IA5STRING *ia5string; + ASN1_GENERALSTRING *generalstring; + ASN1_BMPSTRING *bmpstring; + ASN1_UNIVERSALSTRING *universalstring; + ASN1_UTCTIME *utctime; + ASN1_GENERALIZEDTIME *generalizedtime; + ASN1_VISIBLESTRING *visiblestring; + ASN1_UTF8STRING *utf8string; + /* + * set and sequence are left complete and still contain the set or + * sequence bytes + */ + ASN1_STRING *set; + ASN1_STRING *sequence; + ASN1_VALUE *asn1_value; + } value; +} ASN1_TYPE; + +DECLARE_STACK_OF(ASN1_TYPE) +DECLARE_ASN1_SET_OF(ASN1_TYPE) + +typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; + +DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) +DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) + +typedef struct NETSCAPE_X509_st { + ASN1_OCTET_STRING *header; + X509 *cert; +} NETSCAPE_X509; + +/* This is used to contain a list of bit names */ +typedef struct BIT_STRING_BITNAME_st { + int bitnum; + const char *lname; + const char *sname; +} BIT_STRING_BITNAME; + +# define M_ASN1_STRING_length(x) ((x)->length) +# define M_ASN1_STRING_length_set(x, n) ((x)->length = (n)) +# define M_ASN1_STRING_type(x) ((x)->type) +# define M_ASN1_STRING_data(x) ((x)->data) + +/* Macros for string operations */ +# define M_ASN1_BIT_STRING_new() (ASN1_BIT_STRING *)\ + ASN1_STRING_type_new(V_ASN1_BIT_STRING) +# define M_ASN1_BIT_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_BIT_STRING_dup(a) (ASN1_BIT_STRING *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) +# define M_ASN1_BIT_STRING_cmp(a,b) ASN1_STRING_cmp(\ + (const ASN1_STRING *)a,(const ASN1_STRING *)b) +# define M_ASN1_BIT_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c) + +# define M_ASN1_INTEGER_new() (ASN1_INTEGER *)\ + ASN1_STRING_type_new(V_ASN1_INTEGER) +# define M_ASN1_INTEGER_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_INTEGER_dup(a) (ASN1_INTEGER *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) +# define M_ASN1_INTEGER_cmp(a,b) ASN1_STRING_cmp(\ + (const ASN1_STRING *)a,(const ASN1_STRING *)b) + +# define M_ASN1_ENUMERATED_new() (ASN1_ENUMERATED *)\ + ASN1_STRING_type_new(V_ASN1_ENUMERATED) +# define M_ASN1_ENUMERATED_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_ENUMERATED_dup(a) (ASN1_ENUMERATED *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) +# define M_ASN1_ENUMERATED_cmp(a,b) ASN1_STRING_cmp(\ + (const ASN1_STRING *)a,(const ASN1_STRING *)b) + +# define M_ASN1_OCTET_STRING_new() (ASN1_OCTET_STRING *)\ + ASN1_STRING_type_new(V_ASN1_OCTET_STRING) +# define M_ASN1_OCTET_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_OCTET_STRING_dup(a) (ASN1_OCTET_STRING *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) +# define M_ASN1_OCTET_STRING_cmp(a,b) ASN1_STRING_cmp(\ + (const ASN1_STRING *)a,(const ASN1_STRING *)b) +# define M_ASN1_OCTET_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c) +# define M_ASN1_OCTET_STRING_print(a,b) ASN1_STRING_print(a,(ASN1_STRING *)b) +# define M_i2d_ASN1_OCTET_STRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_OCTET_STRING,\ + V_ASN1_UNIVERSAL) + +# define B_ASN1_TIME \ + B_ASN1_UTCTIME | \ + B_ASN1_GENERALIZEDTIME + +# define B_ASN1_PRINTABLE \ + B_ASN1_NUMERICSTRING| \ + B_ASN1_PRINTABLESTRING| \ + B_ASN1_T61STRING| \ + B_ASN1_IA5STRING| \ + B_ASN1_BIT_STRING| \ + B_ASN1_UNIVERSALSTRING|\ + B_ASN1_BMPSTRING|\ + B_ASN1_UTF8STRING|\ + B_ASN1_SEQUENCE|\ + B_ASN1_UNKNOWN + +# define B_ASN1_DIRECTORYSTRING \ + B_ASN1_PRINTABLESTRING| \ + B_ASN1_TELETEXSTRING|\ + B_ASN1_BMPSTRING|\ + B_ASN1_UNIVERSALSTRING|\ + B_ASN1_UTF8STRING + +# define B_ASN1_DISPLAYTEXT \ + B_ASN1_IA5STRING| \ + B_ASN1_VISIBLESTRING| \ + B_ASN1_BMPSTRING|\ + B_ASN1_UTF8STRING + +# define M_ASN1_PRINTABLE_new() ASN1_STRING_type_new(V_ASN1_T61STRING) +# define M_ASN1_PRINTABLE_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_PRINTABLE(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ + pp,a->type,V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_PRINTABLE(a,pp,l) \ + d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ + B_ASN1_PRINTABLE) + +# define M_DIRECTORYSTRING_new() ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING) +# define M_DIRECTORYSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_DIRECTORYSTRING(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ + pp,a->type,V_ASN1_UNIVERSAL) +# define M_d2i_DIRECTORYSTRING(a,pp,l) \ + d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ + B_ASN1_DIRECTORYSTRING) + +# define M_DISPLAYTEXT_new() ASN1_STRING_type_new(V_ASN1_VISIBLESTRING) +# define M_DISPLAYTEXT_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_DISPLAYTEXT(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ + pp,a->type,V_ASN1_UNIVERSAL) +# define M_d2i_DISPLAYTEXT(a,pp,l) \ + d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ + B_ASN1_DISPLAYTEXT) + +# define M_ASN1_PRINTABLESTRING_new() (ASN1_PRINTABLESTRING *)\ + ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING) +# define M_ASN1_PRINTABLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_PRINTABLESTRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_PRINTABLESTRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_PRINTABLESTRING(a,pp,l) \ + (ASN1_PRINTABLESTRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_PRINTABLESTRING) + +# define M_ASN1_T61STRING_new() (ASN1_T61STRING *)\ + ASN1_STRING_type_new(V_ASN1_T61STRING) +# define M_ASN1_T61STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_T61STRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_T61STRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_T61STRING(a,pp,l) \ + (ASN1_T61STRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_T61STRING) + +# define M_ASN1_IA5STRING_new() (ASN1_IA5STRING *)\ + ASN1_STRING_type_new(V_ASN1_IA5STRING) +# define M_ASN1_IA5STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_IA5STRING_dup(a) \ + (ASN1_IA5STRING *)ASN1_STRING_dup((const ASN1_STRING *)a) +# define M_i2d_ASN1_IA5STRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_IA5STRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_IA5STRING(a,pp,l) \ + (ASN1_IA5STRING *)d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l,\ + B_ASN1_IA5STRING) + +# define M_ASN1_UTCTIME_new() (ASN1_UTCTIME *)\ + ASN1_STRING_type_new(V_ASN1_UTCTIME) +# define M_ASN1_UTCTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_UTCTIME_dup(a) (ASN1_UTCTIME *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) + +# define M_ASN1_GENERALIZEDTIME_new() (ASN1_GENERALIZEDTIME *)\ + ASN1_STRING_type_new(V_ASN1_GENERALIZEDTIME) +# define M_ASN1_GENERALIZEDTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_GENERALIZEDTIME_dup(a) (ASN1_GENERALIZEDTIME *)ASN1_STRING_dup(\ + (const ASN1_STRING *)a) + +# define M_ASN1_TIME_new() (ASN1_TIME *)\ + ASN1_STRING_type_new(V_ASN1_UTCTIME) +# define M_ASN1_TIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_ASN1_TIME_dup(a) (ASN1_TIME *)\ + ASN1_STRING_dup((const ASN1_STRING *)a) + +# define M_ASN1_GENERALSTRING_new() (ASN1_GENERALSTRING *)\ + ASN1_STRING_type_new(V_ASN1_GENERALSTRING) +# define M_ASN1_GENERALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_GENERALSTRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_GENERALSTRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_GENERALSTRING(a,pp,l) \ + (ASN1_GENERALSTRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_GENERALSTRING) + +# define M_ASN1_UNIVERSALSTRING_new() (ASN1_UNIVERSALSTRING *)\ + ASN1_STRING_type_new(V_ASN1_UNIVERSALSTRING) +# define M_ASN1_UNIVERSALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_UNIVERSALSTRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_UNIVERSALSTRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_UNIVERSALSTRING(a,pp,l) \ + (ASN1_UNIVERSALSTRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_UNIVERSALSTRING) + +# define M_ASN1_BMPSTRING_new() (ASN1_BMPSTRING *)\ + ASN1_STRING_type_new(V_ASN1_BMPSTRING) +# define M_ASN1_BMPSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_BMPSTRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_BMPSTRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_BMPSTRING(a,pp,l) \ + (ASN1_BMPSTRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_BMPSTRING) + +# define M_ASN1_VISIBLESTRING_new() (ASN1_VISIBLESTRING *)\ + ASN1_STRING_type_new(V_ASN1_VISIBLESTRING) +# define M_ASN1_VISIBLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_VISIBLESTRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_VISIBLESTRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_VISIBLESTRING(a,pp,l) \ + (ASN1_VISIBLESTRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_VISIBLESTRING) + +# define M_ASN1_UTF8STRING_new() (ASN1_UTF8STRING *)\ + ASN1_STRING_type_new(V_ASN1_UTF8STRING) +# define M_ASN1_UTF8STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) +# define M_i2d_ASN1_UTF8STRING(a,pp) \ + i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_UTF8STRING,\ + V_ASN1_UNIVERSAL) +# define M_d2i_ASN1_UTF8STRING(a,pp,l) \ + (ASN1_UTF8STRING *)d2i_ASN1_type_bytes\ + ((ASN1_STRING **)a,pp,l,B_ASN1_UTF8STRING) + + /* for the is_set parameter to i2d_ASN1_SET */ +# define IS_SEQUENCE 0 +# define IS_SET 1 + +DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) + +int ASN1_TYPE_get(ASN1_TYPE *a); +void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); +int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); +int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); + +ASN1_OBJECT *ASN1_OBJECT_new(void); +void ASN1_OBJECT_free(ASN1_OBJECT *a); +int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp); +ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, + long length); +ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, + long length); + +DECLARE_ASN1_ITEM(ASN1_OBJECT) + +DECLARE_STACK_OF(ASN1_OBJECT) +DECLARE_ASN1_SET_OF(ASN1_OBJECT) + +ASN1_STRING *ASN1_STRING_new(void); +void ASN1_STRING_free(ASN1_STRING *a); +void ASN1_STRING_clear_free(ASN1_STRING *a); +int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); +ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); +ASN1_STRING *ASN1_STRING_type_new(int type); +int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); + /* + * Since this is used to store all sorts of things, via macros, for now, + * make its data void * + */ +int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); +void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); +int ASN1_STRING_length(const ASN1_STRING *x); +void ASN1_STRING_length_set(ASN1_STRING *x, int n); +int ASN1_STRING_type(ASN1_STRING *x); +unsigned char *ASN1_STRING_data(ASN1_STRING *x); + +DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) +int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp); +ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, + const unsigned char **pp, long length); +int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); +int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); +int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n); +int ASN1_BIT_STRING_check(ASN1_BIT_STRING *a, + unsigned char *flags, int flags_len); + +# ifndef OPENSSL_NO_BIO +int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, + BIT_STRING_BITNAME *tbl, int indent); +# endif +int ASN1_BIT_STRING_num_asc(char *name, BIT_STRING_BITNAME *tbl); +int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value, + BIT_STRING_BITNAME *tbl); + +int i2d_ASN1_BOOLEAN(int a, unsigned char **pp); +int d2i_ASN1_BOOLEAN(int *a, const unsigned char **pp, long length); + +DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) +int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp); +ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, + long length); +ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, + long length); +ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); +int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); + +DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) + +int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); +ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); +ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, + int offset_day, long offset_sec); +int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); +int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); +# if 0 +time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s); +# endif + +int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, + time_t t); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, + time_t t, int offset_day, + long offset_sec); +int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); +int ASN1_TIME_diff(int *pday, int *psec, + const ASN1_TIME *from, const ASN1_TIME *to); + +DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) +ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); +int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, + const ASN1_OCTET_STRING *b); +int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, + int len); + +DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_NULL) +DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) + +int UTF8_getc(const unsigned char *str, int len, unsigned long *val); +int UTF8_putc(unsigned char *str, int len, unsigned long value); + +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) + +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) +DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) +DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) +DECLARE_ASN1_FUNCTIONS(ASN1_TIME) + +DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) + +ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); +ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, + int offset_day, long offset_sec); +int ASN1_TIME_check(ASN1_TIME *t); +ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME + **out); +int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); + +int i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp, + i2d_of_void *i2d, int ex_tag, int ex_class, int is_set); +STACK_OF(OPENSSL_BLOCK) *d2i_ASN1_SET(STACK_OF(OPENSSL_BLOCK) **a, + const unsigned char **pp, + long length, d2i_of_void *d2i, + void (*free_func) (OPENSSL_BLOCK), + int ex_tag, int ex_class); + +# ifndef OPENSSL_NO_BIO +int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a); +int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); +int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a); +int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); +int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a); +int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); +int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type); +# endif +int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a); + +int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); +ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, + const char *sn, const char *ln); + +int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); +long ASN1_INTEGER_get(const ASN1_INTEGER *a); +ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); +BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); + +int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); +long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a); +ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai); +BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai, BIGNUM *bn); + +/* General */ +/* given a string, return the correct type, max is the maximum length */ +int ASN1_PRINTABLE_type(const unsigned char *s, int max); + +int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass); +ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp, + long length, int Ptag, int Pclass); +unsigned long ASN1_tag2bit(int tag); +/* type is one or more of the B_ASN1_ values. */ +ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a, const unsigned char **pp, + long length, int type); + +/* PARSING */ +int asn1_Finish(ASN1_CTX *c); +int asn1_const_Finish(ASN1_const_CTX *c); + +/* SPECIALS */ +int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, + int *pclass, long omax); +int ASN1_check_infinite_end(unsigned char **p, long len); +int ASN1_const_check_infinite_end(const unsigned char **p, long len); +void ASN1_put_object(unsigned char **pp, int constructed, int length, + int tag, int xclass); +int ASN1_put_eoc(unsigned char **pp); +int ASN1_object_size(int constructed, int length, int tag); + +/* Used to implement other functions */ +void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); + +# define ASN1_dup_of(type,i2d,d2i,x) \ + ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ + CHECKED_D2I_OF(type, d2i), \ + CHECKED_PTR_OF(type, x))) + +# define ASN1_dup_of_const(type,i2d,d2i,x) \ + ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \ + CHECKED_D2I_OF(type, d2i), \ + CHECKED_PTR_OF(const type, x))) + +void *ASN1_item_dup(const ASN1_ITEM *it, void *x); + +/* ASN1 alloc/free macros for when a type is only used internally */ + +# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) +# define M_ASN1_free_of(x, type) \ + ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) + +# ifndef OPENSSL_NO_FP_API +void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); + +# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ + ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ + CHECKED_D2I_OF(type, d2i), \ + in, \ + CHECKED_PPTR_OF(type, x))) + +void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); +int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); + +# define ASN1_i2d_fp_of(type,i2d,out,x) \ + (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ + out, \ + CHECKED_PTR_OF(type, x))) + +# define ASN1_i2d_fp_of_const(type,i2d,out,x) \ + (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \ + out, \ + CHECKED_PTR_OF(const type, x))) + +int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); +int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); +# endif + +int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); + +# ifndef OPENSSL_NO_BIO +void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); + +# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ + ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ + CHECKED_D2I_OF(type, d2i), \ + in, \ + CHECKED_PPTR_OF(type, x))) + +void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); +int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); + +# define ASN1_i2d_bio_of(type,i2d,out,x) \ + (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ + out, \ + CHECKED_PTR_OF(type, x))) + +# define ASN1_i2d_bio_of_const(type,i2d,out,x) \ + (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \ + out, \ + CHECKED_PTR_OF(const type, x))) + +int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); +int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); +int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); +int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); +int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); +int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); +int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, + unsigned char *buf, int off); +int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); +int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, + int dump); +# endif +const char *ASN1_tag2str(int tag); + +/* Used to load and write netscape format cert */ + +DECLARE_ASN1_FUNCTIONS(NETSCAPE_X509) + +int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); + +int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); +int ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data, int max_len); +int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, + unsigned char *data, int len); +int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num, + unsigned char *data, int max_len); + +STACK_OF(OPENSSL_BLOCK) *ASN1_seq_unpack(const unsigned char *buf, int len, + d2i_of_void *d2i, + void (*free_func) (OPENSSL_BLOCK)); +unsigned char *ASN1_seq_pack(STACK_OF(OPENSSL_BLOCK) *safes, i2d_of_void *i2d, + unsigned char **buf, int *len); +void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i); +void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it); +ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, + ASN1_OCTET_STRING **oct); + +# define ASN1_pack_string_of(type,obj,i2d,oct) \ + (ASN1_pack_string(CHECKED_PTR_OF(type, obj), \ + CHECKED_I2D_OF(type, i2d), \ + oct)) + +ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, + ASN1_OCTET_STRING **oct); + +void ASN1_STRING_set_default_mask(unsigned long mask); +int ASN1_STRING_set_default_mask_asc(const char *p); +unsigned long ASN1_STRING_get_default_mask(void); +int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, + int inform, unsigned long mask); +int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, + int inform, unsigned long mask, + long minsize, long maxsize); + +ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, + const unsigned char *in, int inlen, + int inform, int nid); +ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); +int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); +void ASN1_STRING_TABLE_cleanup(void); + +/* ASN1 template functions */ + +/* Old API compatible functions */ +ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); +void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); +ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, + long len, const ASN1_ITEM *it); +int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); +int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, + const ASN1_ITEM *it); + +void ASN1_add_oid_module(void); + +ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); +ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); + +/* ASN1 Print flags */ + +/* Indicate missing OPTIONAL fields */ +# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 +/* Mark start and end of SEQUENCE */ +# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 +/* Mark start and end of SEQUENCE/SET OF */ +# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 +/* Show the ASN1 type of primitives */ +# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 +/* Don't show ASN1 type of ANY */ +# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 +/* Don't show ASN1 type of MSTRINGs */ +# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 +/* Don't show field names in SEQUENCE */ +# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 +/* Show structure names of each SEQUENCE field */ +# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 +/* Don't show structure name even at top level */ +# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 + +int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, + const ASN1_ITEM *it, const ASN1_PCTX *pctx); +ASN1_PCTX *ASN1_PCTX_new(void); +void ASN1_PCTX_free(ASN1_PCTX *p); +unsigned long ASN1_PCTX_get_flags(ASN1_PCTX *p); +void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_nm_flags(ASN1_PCTX *p); +void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_cert_flags(ASN1_PCTX *p); +void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_oid_flags(ASN1_PCTX *p); +void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_str_flags(ASN1_PCTX *p); +void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); + +BIO_METHOD *BIO_f_asn1(void); + +BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); + +int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, + const ASN1_ITEM *it); +int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, + const char *hdr, const ASN1_ITEM *it); +int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, + int ctype_nid, int econt_nid, + STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it); +ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); +int SMIME_crlf_copy(BIO *in, BIO *out, int flags); +int SMIME_text(BIO *in, BIO *out); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_ASN1_strings(void); + +/* Error codes for the ASN1 functions. */ + +/* Function codes. */ +# define ASN1_F_A2D_ASN1_OBJECT 100 +# define ASN1_F_A2I_ASN1_ENUMERATED 101 +# define ASN1_F_A2I_ASN1_INTEGER 102 +# define ASN1_F_A2I_ASN1_STRING 103 +# define ASN1_F_APPEND_EXP 176 +# define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 +# define ASN1_F_ASN1_CB 177 +# define ASN1_F_ASN1_CHECK_TLEN 104 +# define ASN1_F_ASN1_COLLATE_PRIMITIVE 105 +# define ASN1_F_ASN1_COLLECT 106 +# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 +# define ASN1_F_ASN1_D2I_FP 109 +# define ASN1_F_ASN1_D2I_READ_BIO 107 +# define ASN1_F_ASN1_DIGEST 184 +# define ASN1_F_ASN1_DO_ADB 110 +# define ASN1_F_ASN1_DUP 111 +# define ASN1_F_ASN1_ENUMERATED_SET 112 +# define ASN1_F_ASN1_ENUMERATED_TO_BN 113 +# define ASN1_F_ASN1_EX_C2I 204 +# define ASN1_F_ASN1_FIND_END 190 +# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 +# define ASN1_F_ASN1_GENERALIZEDTIME_SET 185 +# define ASN1_F_ASN1_GENERATE_V3 178 +# define ASN1_F_ASN1_GET_OBJECT 114 +# define ASN1_F_ASN1_HEADER_NEW 115 +# define ASN1_F_ASN1_I2D_BIO 116 +# define ASN1_F_ASN1_I2D_FP 117 +# define ASN1_F_ASN1_INTEGER_SET 118 +# define ASN1_F_ASN1_INTEGER_TO_BN 119 +# define ASN1_F_ASN1_ITEM_D2I_FP 206 +# define ASN1_F_ASN1_ITEM_DUP 191 +# define ASN1_F_ASN1_ITEM_EX_COMBINE_NEW 121 +# define ASN1_F_ASN1_ITEM_EX_D2I 120 +# define ASN1_F_ASN1_ITEM_I2D_BIO 192 +# define ASN1_F_ASN1_ITEM_I2D_FP 193 +# define ASN1_F_ASN1_ITEM_PACK 198 +# define ASN1_F_ASN1_ITEM_SIGN 195 +# define ASN1_F_ASN1_ITEM_SIGN_CTX 220 +# define ASN1_F_ASN1_ITEM_UNPACK 199 +# define ASN1_F_ASN1_ITEM_VERIFY 197 +# define ASN1_F_ASN1_MBSTRING_NCOPY 122 +# define ASN1_F_ASN1_OBJECT_NEW 123 +# define ASN1_F_ASN1_OUTPUT_DATA 214 +# define ASN1_F_ASN1_PACK_STRING 124 +# define ASN1_F_ASN1_PCTX_NEW 205 +# define ASN1_F_ASN1_PKCS5_PBE_SET 125 +# define ASN1_F_ASN1_SEQ_PACK 126 +# define ASN1_F_ASN1_SEQ_UNPACK 127 +# define ASN1_F_ASN1_SIGN 128 +# define ASN1_F_ASN1_STR2TYPE 179 +# define ASN1_F_ASN1_STRING_SET 186 +# define ASN1_F_ASN1_STRING_TABLE_ADD 129 +# define ASN1_F_ASN1_STRING_TYPE_NEW 130 +# define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 +# define ASN1_F_ASN1_TEMPLATE_NEW 133 +# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 +# define ASN1_F_ASN1_TIME_ADJ 217 +# define ASN1_F_ASN1_TIME_SET 175 +# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 +# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 +# define ASN1_F_ASN1_UNPACK_STRING 136 +# define ASN1_F_ASN1_UTCTIME_ADJ 218 +# define ASN1_F_ASN1_UTCTIME_SET 187 +# define ASN1_F_ASN1_VERIFY 137 +# define ASN1_F_B64_READ_ASN1 209 +# define ASN1_F_B64_WRITE_ASN1 210 +# define ASN1_F_BIO_NEW_NDEF 208 +# define ASN1_F_BITSTR_CB 180 +# define ASN1_F_BN_TO_ASN1_ENUMERATED 138 +# define ASN1_F_BN_TO_ASN1_INTEGER 139 +# define ASN1_F_C2I_ASN1_BIT_STRING 189 +# define ASN1_F_C2I_ASN1_INTEGER 194 +# define ASN1_F_C2I_ASN1_OBJECT 196 +# define ASN1_F_COLLECT_DATA 140 +# define ASN1_F_D2I_ASN1_BIT_STRING 141 +# define ASN1_F_D2I_ASN1_BOOLEAN 142 +# define ASN1_F_D2I_ASN1_BYTES 143 +# define ASN1_F_D2I_ASN1_GENERALIZEDTIME 144 +# define ASN1_F_D2I_ASN1_HEADER 145 +# define ASN1_F_D2I_ASN1_INTEGER 146 +# define ASN1_F_D2I_ASN1_OBJECT 147 +# define ASN1_F_D2I_ASN1_SET 148 +# define ASN1_F_D2I_ASN1_TYPE_BYTES 149 +# define ASN1_F_D2I_ASN1_UINTEGER 150 +# define ASN1_F_D2I_ASN1_UTCTIME 151 +# define ASN1_F_D2I_AUTOPRIVATEKEY 207 +# define ASN1_F_D2I_NETSCAPE_RSA 152 +# define ASN1_F_D2I_NETSCAPE_RSA_2 153 +# define ASN1_F_D2I_PRIVATEKEY 154 +# define ASN1_F_D2I_PUBLICKEY 155 +# define ASN1_F_D2I_RSA_NET 200 +# define ASN1_F_D2I_RSA_NET_2 201 +# define ASN1_F_D2I_X509 156 +# define ASN1_F_D2I_X509_CINF 157 +# define ASN1_F_D2I_X509_PKEY 159 +# define ASN1_F_I2D_ASN1_BIO_STREAM 211 +# define ASN1_F_I2D_ASN1_SET 188 +# define ASN1_F_I2D_ASN1_TIME 160 +# define ASN1_F_I2D_DSA_PUBKEY 161 +# define ASN1_F_I2D_EC_PUBKEY 181 +# define ASN1_F_I2D_PRIVATEKEY 163 +# define ASN1_F_I2D_PUBLICKEY 164 +# define ASN1_F_I2D_RSA_NET 162 +# define ASN1_F_I2D_RSA_PUBKEY 165 +# define ASN1_F_LONG_C2I 166 +# define ASN1_F_OID_MODULE_INIT 174 +# define ASN1_F_PARSE_TAGGING 182 +# define ASN1_F_PKCS5_PBE2_SET_IV 167 +# define ASN1_F_PKCS5_PBE_SET 202 +# define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 +# define ASN1_F_PKCS5_PBKDF2_SET 219 +# define ASN1_F_SMIME_READ_ASN1 212 +# define ASN1_F_SMIME_TEXT 213 +# define ASN1_F_X509_CINF_NEW 168 +# define ASN1_F_X509_CRL_ADD0_REVOKED 169 +# define ASN1_F_X509_INFO_NEW 170 +# define ASN1_F_X509_NAME_ENCODE 203 +# define ASN1_F_X509_NAME_EX_D2I 158 +# define ASN1_F_X509_NAME_EX_NEW 171 +# define ASN1_F_X509_NEW 172 +# define ASN1_F_X509_PKEY_NEW 173 + +/* Reason codes. */ +# define ASN1_R_ADDING_OBJECT 171 +# define ASN1_R_ASN1_PARSE_ERROR 203 +# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 +# define ASN1_R_AUX_ERROR 100 +# define ASN1_R_BAD_CLASS 101 +# define ASN1_R_BAD_OBJECT_HEADER 102 +# define ASN1_R_BAD_PASSWORD_READ 103 +# define ASN1_R_BAD_TAG 104 +# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 +# define ASN1_R_BN_LIB 105 +# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 +# define ASN1_R_BUFFER_TOO_SMALL 107 +# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 +# define ASN1_R_CONTEXT_NOT_INITIALISED 217 +# define ASN1_R_DATA_IS_WRONG 109 +# define ASN1_R_DECODE_ERROR 110 +# define ASN1_R_DECODING_ERROR 111 +# define ASN1_R_DEPTH_EXCEEDED 174 +# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 +# define ASN1_R_ENCODE_ERROR 112 +# define ASN1_R_ERROR_GETTING_TIME 173 +# define ASN1_R_ERROR_LOADING_SECTION 172 +# define ASN1_R_ERROR_PARSING_SET_ELEMENT 113 +# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 +# define ASN1_R_EXPECTING_AN_INTEGER 115 +# define ASN1_R_EXPECTING_AN_OBJECT 116 +# define ASN1_R_EXPECTING_A_BOOLEAN 117 +# define ASN1_R_EXPECTING_A_TIME 118 +# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 +# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 +# define ASN1_R_FIELD_MISSING 121 +# define ASN1_R_FIRST_NUM_TOO_LARGE 122 +# define ASN1_R_HEADER_TOO_LONG 123 +# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 +# define ASN1_R_ILLEGAL_BOOLEAN 176 +# define ASN1_R_ILLEGAL_CHARACTERS 124 +# define ASN1_R_ILLEGAL_FORMAT 177 +# define ASN1_R_ILLEGAL_HEX 178 +# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 +# define ASN1_R_ILLEGAL_INTEGER 180 +# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 +# define ASN1_R_ILLEGAL_NULL 125 +# define ASN1_R_ILLEGAL_NULL_VALUE 182 +# define ASN1_R_ILLEGAL_OBJECT 183 +# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 +# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 +# define ASN1_R_ILLEGAL_TAGGED_ANY 127 +# define ASN1_R_ILLEGAL_TIME_VALUE 184 +# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 +# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 +# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 +# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 +# define ASN1_R_INVALID_DIGIT 130 +# define ASN1_R_INVALID_MIME_TYPE 205 +# define ASN1_R_INVALID_MODIFIER 186 +# define ASN1_R_INVALID_NUMBER 187 +# define ASN1_R_INVALID_OBJECT_ENCODING 216 +# define ASN1_R_INVALID_SEPARATOR 131 +# define ASN1_R_INVALID_TIME_FORMAT 132 +# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 +# define ASN1_R_INVALID_UTF8STRING 134 +# define ASN1_R_IV_TOO_LARGE 135 +# define ASN1_R_LENGTH_ERROR 136 +# define ASN1_R_LIST_ERROR 188 +# define ASN1_R_MIME_NO_CONTENT_TYPE 206 +# define ASN1_R_MIME_PARSE_ERROR 207 +# define ASN1_R_MIME_SIG_PARSE_ERROR 208 +# define ASN1_R_MISSING_EOC 137 +# define ASN1_R_MISSING_SECOND_NUMBER 138 +# define ASN1_R_MISSING_VALUE 189 +# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 +# define ASN1_R_MSTRING_WRONG_TAG 140 +# define ASN1_R_NESTED_ASN1_STRING 197 +# define ASN1_R_NON_HEX_CHARACTERS 141 +# define ASN1_R_NOT_ASCII_FORMAT 190 +# define ASN1_R_NOT_ENOUGH_DATA 142 +# define ASN1_R_NO_CONTENT_TYPE 209 +# define ASN1_R_NO_DEFAULT_DIGEST 201 +# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 +# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 +# define ASN1_R_NO_MULTIPART_BOUNDARY 211 +# define ASN1_R_NO_SIG_CONTENT_TYPE 212 +# define ASN1_R_NULL_IS_WRONG_LENGTH 144 +# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 +# define ASN1_R_ODD_NUMBER_OF_CHARS 145 +# define ASN1_R_PRIVATE_KEY_HEADER_MISSING 146 +# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 +# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 +# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 +# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 +# define ASN1_R_SHORT_LINE 150 +# define ASN1_R_SIG_INVALID_MIME_TYPE 213 +# define ASN1_R_STREAMING_NOT_SUPPORTED 202 +# define ASN1_R_STRING_TOO_LONG 151 +# define ASN1_R_STRING_TOO_SHORT 152 +# define ASN1_R_TAG_VALUE_TOO_HIGH 153 +# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 +# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 +# define ASN1_R_TOO_LONG 155 +# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 +# define ASN1_R_TYPE_NOT_PRIMITIVE 218 +# define ASN1_R_UNABLE_TO_DECODE_RSA_KEY 157 +# define ASN1_R_UNABLE_TO_DECODE_RSA_PRIVATE_KEY 158 +# define ASN1_R_UNEXPECTED_EOC 159 +# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 +# define ASN1_R_UNKNOWN_FORMAT 160 +# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 +# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 +# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 +# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 +# define ASN1_R_UNKNOWN_TAG 194 +# define ASN1_R_UNKOWN_FORMAT 195 +# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 +# define ASN1_R_UNSUPPORTED_CIPHER 165 +# define ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM 166 +# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 +# define ASN1_R_UNSUPPORTED_TYPE 196 +# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 +# define ASN1_R_WRONG_TAG 168 +# define ASN1_R_WRONG_TYPE 169 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/asn1_mac.h b/External/include64/openssl/asn1_mac.h new file mode 100644 index 00000000..abc6dc35 --- /dev/null +++ b/External/include64/openssl/asn1_mac.h @@ -0,0 +1,579 @@ +/* crypto/asn1/asn1_mac.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_ASN1_MAC_H +# define HEADER_ASN1_MAC_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef ASN1_MAC_ERR_LIB +# define ASN1_MAC_ERR_LIB ERR_LIB_ASN1 +# endif + +# define ASN1_MAC_H_err(f,r,line) \ + ERR_PUT_error(ASN1_MAC_ERR_LIB,(f),(r),__FILE__,(line)) + +# define M_ASN1_D2I_vars(a,type,func) \ + ASN1_const_CTX c; \ + type ret=NULL; \ + \ + c.pp=(const unsigned char **)pp; \ + c.q= *(const unsigned char **)pp; \ + c.error=ERR_R_NESTED_ASN1_ERROR; \ + if ((a == NULL) || ((*a) == NULL)) \ + { if ((ret=(type)func()) == NULL) \ + { c.line=__LINE__; goto err; } } \ + else ret=(*a); + +# define M_ASN1_D2I_Init() \ + c.p= *(const unsigned char **)pp; \ + c.max=(length == 0)?0:(c.p+length); + +# define M_ASN1_D2I_Finish_2(a) \ + if (!asn1_const_Finish(&c)) \ + { c.line=__LINE__; goto err; } \ + *(const unsigned char **)pp=c.p; \ + if (a != NULL) (*a)=ret; \ + return(ret); + +# define M_ASN1_D2I_Finish(a,func,e) \ + M_ASN1_D2I_Finish_2(a); \ +err:\ + ASN1_MAC_H_err((e),c.error,c.line); \ + asn1_add_error(*(const unsigned char **)pp,(int)(c.q- *pp)); \ + if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \ + return(NULL) + +# define M_ASN1_D2I_start_sequence() \ + if (!asn1_GetSequence(&c,&length)) \ + { c.line=__LINE__; goto err; } +/* Begin reading ASN1 without a surrounding sequence */ +# define M_ASN1_D2I_begin() \ + c.slen = length; + +/* End reading ASN1 with no check on length */ +# define M_ASN1_D2I_Finish_nolen(a, func, e) \ + *pp=c.p; \ + if (a != NULL) (*a)=ret; \ + return(ret); \ +err:\ + ASN1_MAC_H_err((e),c.error,c.line); \ + asn1_add_error(*pp,(int)(c.q- *pp)); \ + if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \ + return(NULL) + +# define M_ASN1_D2I_end_sequence() \ + (((c.inf&1) == 0)?(c.slen <= 0): \ + (c.eos=ASN1_const_check_infinite_end(&c.p,c.slen))) + +/* Don't use this with d2i_ASN1_BOOLEAN() */ +# define M_ASN1_D2I_get(b, func) \ + c.q=c.p; \ + if (func(&(b),&c.p,c.slen) == NULL) \ + {c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +/* Don't use this with d2i_ASN1_BOOLEAN() */ +# define M_ASN1_D2I_get_x(type,b,func) \ + c.q=c.p; \ + if (((D2I_OF(type))func)(&(b),&c.p,c.slen) == NULL) \ + {c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +/* use this instead () */ +# define M_ASN1_D2I_get_int(b,func) \ + c.q=c.p; \ + if (func(&(b),&c.p,c.slen) < 0) \ + {c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +# define M_ASN1_D2I_get_opt(b,func,type) \ + if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \ + == (V_ASN1_UNIVERSAL|(type)))) \ + { \ + M_ASN1_D2I_get(b,func); \ + } + +# define M_ASN1_D2I_get_int_opt(b,func,type) \ + if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \ + == (V_ASN1_UNIVERSAL|(type)))) \ + { \ + M_ASN1_D2I_get_int(b,func); \ + } + +# define M_ASN1_D2I_get_imp(b,func, type) \ + M_ASN1_next=(_tmp& V_ASN1_CONSTRUCTED)|type; \ + c.q=c.p; \ + if (func(&(b),&c.p,c.slen) == NULL) \ + {c.line=__LINE__; M_ASN1_next_prev = _tmp; goto err; } \ + c.slen-=(c.p-c.q);\ + M_ASN1_next_prev=_tmp; + +# define M_ASN1_D2I_get_IMP_opt(b,func,tag,type) \ + if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) == \ + (V_ASN1_CONTEXT_SPECIFIC|(tag)))) \ + { \ + unsigned char _tmp = M_ASN1_next; \ + M_ASN1_D2I_get_imp(b,func, type);\ + } + +# define M_ASN1_D2I_get_set(r,func,free_func) \ + M_ASN1_D2I_get_imp_set(r,func,free_func, \ + V_ASN1_SET,V_ASN1_UNIVERSAL); + +# define M_ASN1_D2I_get_set_type(type,r,func,free_func) \ + M_ASN1_D2I_get_imp_set_type(type,r,func,free_func, \ + V_ASN1_SET,V_ASN1_UNIVERSAL); + +# define M_ASN1_D2I_get_set_opt(r,func,free_func) \ + if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ + V_ASN1_CONSTRUCTED|V_ASN1_SET)))\ + { M_ASN1_D2I_get_set(r,func,free_func); } + +# define M_ASN1_D2I_get_set_opt_type(type,r,func,free_func) \ + if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ + V_ASN1_CONSTRUCTED|V_ASN1_SET)))\ + { M_ASN1_D2I_get_set_type(type,r,func,free_func); } + +# define M_ASN1_I2D_len_SET_opt(a,f) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + M_ASN1_I2D_len_SET(a,f); + +# define M_ASN1_I2D_put_SET_opt(a,f) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + M_ASN1_I2D_put_SET(a,f); + +# define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + M_ASN1_I2D_put_SEQUENCE(a,f); + +# define M_ASN1_I2D_put_SEQUENCE_opt_type(type,a,f) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + M_ASN1_I2D_put_SEQUENCE_type(type,a,f); + +# define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \ + if ((c.slen != 0) && \ + (M_ASN1_next == \ + (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\ + { \ + M_ASN1_D2I_get_imp_set(b,func,free_func,\ + tag,V_ASN1_CONTEXT_SPECIFIC); \ + } + +# define M_ASN1_D2I_get_IMP_set_opt_type(type,b,func,free_func,tag) \ + if ((c.slen != 0) && \ + (M_ASN1_next == \ + (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\ + { \ + M_ASN1_D2I_get_imp_set_type(type,b,func,free_func,\ + tag,V_ASN1_CONTEXT_SPECIFIC); \ + } + +# define M_ASN1_D2I_get_seq(r,func,free_func) \ + M_ASN1_D2I_get_imp_set(r,func,free_func,\ + V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL); + +# define M_ASN1_D2I_get_seq_type(type,r,func,free_func) \ + M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\ + V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL) + +# define M_ASN1_D2I_get_seq_opt(r,func,free_func) \ + if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ + V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ + { M_ASN1_D2I_get_seq(r,func,free_func); } + +# define M_ASN1_D2I_get_seq_opt_type(type,r,func,free_func) \ + if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ + V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ + { M_ASN1_D2I_get_seq_type(type,r,func,free_func); } + +# define M_ASN1_D2I_get_IMP_set(r,func,free_func,x) \ + M_ASN1_D2I_get_imp_set(r,func,free_func,\ + x,V_ASN1_CONTEXT_SPECIFIC); + +# define M_ASN1_D2I_get_IMP_set_type(type,r,func,free_func,x) \ + M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\ + x,V_ASN1_CONTEXT_SPECIFIC); + +# define M_ASN1_D2I_get_imp_set(r,func,free_func,a,b) \ + c.q=c.p; \ + if (d2i_ASN1_SET(&(r),&c.p,c.slen,(char *(*)())func,\ + (void (*)())free_func,a,b) == NULL) \ + { c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +# define M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,a,b) \ + c.q=c.p; \ + if (d2i_ASN1_SET_OF_##type(&(r),&c.p,c.slen,func,\ + free_func,a,b) == NULL) \ + { c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +# define M_ASN1_D2I_get_set_strings(r,func,a,b) \ + c.q=c.p; \ + if (d2i_ASN1_STRING_SET(&(r),&c.p,c.slen,a,b) == NULL) \ + { c.line=__LINE__; goto err; } \ + c.slen-=(c.p-c.q); + +# define M_ASN1_D2I_get_EXP_opt(r,func,tag) \ + if ((c.slen != 0L) && (M_ASN1_next == \ + (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ + { \ + int Tinf,Ttag,Tclass; \ + long Tlen; \ + \ + c.q=c.p; \ + Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ + if (Tinf & 0x80) \ + { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ + c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ + Tlen = c.slen - (c.p - c.q) - 2; \ + if (func(&(r),&c.p,Tlen) == NULL) \ + { c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ + Tlen = c.slen - (c.p - c.q); \ + if(!ASN1_const_check_infinite_end(&c.p, Tlen)) \ + { c.error=ERR_R_MISSING_ASN1_EOS; \ + c.line=__LINE__; goto err; } \ + }\ + c.slen-=(c.p-c.q); \ + } + +# define M_ASN1_D2I_get_EXP_set_opt(r,func,free_func,tag,b) \ + if ((c.slen != 0) && (M_ASN1_next == \ + (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ + { \ + int Tinf,Ttag,Tclass; \ + long Tlen; \ + \ + c.q=c.p; \ + Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ + if (Tinf & 0x80) \ + { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ + c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ + Tlen = c.slen - (c.p - c.q) - 2; \ + if (d2i_ASN1_SET(&(r),&c.p,Tlen,(char *(*)())func, \ + (void (*)())free_func, \ + b,V_ASN1_UNIVERSAL) == NULL) \ + { c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ + Tlen = c.slen - (c.p - c.q); \ + if(!ASN1_check_infinite_end(&c.p, Tlen)) \ + { c.error=ERR_R_MISSING_ASN1_EOS; \ + c.line=__LINE__; goto err; } \ + }\ + c.slen-=(c.p-c.q); \ + } + +# define M_ASN1_D2I_get_EXP_set_opt_type(type,r,func,free_func,tag,b) \ + if ((c.slen != 0) && (M_ASN1_next == \ + (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ + { \ + int Tinf,Ttag,Tclass; \ + long Tlen; \ + \ + c.q=c.p; \ + Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ + if (Tinf & 0x80) \ + { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ + c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ + Tlen = c.slen - (c.p - c.q) - 2; \ + if (d2i_ASN1_SET_OF_##type(&(r),&c.p,Tlen,func, \ + free_func,b,V_ASN1_UNIVERSAL) == NULL) \ + { c.line=__LINE__; goto err; } \ + if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ + Tlen = c.slen - (c.p - c.q); \ + if(!ASN1_check_infinite_end(&c.p, Tlen)) \ + { c.error=ERR_R_MISSING_ASN1_EOS; \ + c.line=__LINE__; goto err; } \ + }\ + c.slen-=(c.p-c.q); \ + } + +/* New macros */ +# define M_ASN1_New_Malloc(ret,type) \ + if ((ret=(type *)OPENSSL_malloc(sizeof(type))) == NULL) \ + { c.line=__LINE__; goto err2; } + +# define M_ASN1_New(arg,func) \ + if (((arg)=func()) == NULL) return(NULL) + +# define M_ASN1_New_Error(a) \ +/*- err: ASN1_MAC_H_err((a),ERR_R_NESTED_ASN1_ERROR,c.line); \ + return(NULL);*/ \ + err2: ASN1_MAC_H_err((a),ERR_R_MALLOC_FAILURE,c.line); \ + return(NULL) + +/* + * BIG UGLY WARNING! This is so damn ugly I wanna puke. Unfortunately, some + * macros that use ASN1_const_CTX still insist on writing in the input + * stream. ARGH! ARGH! ARGH! Let's get rid of this macro package. Please? -- + * Richard Levitte + */ +# define M_ASN1_next (*((unsigned char *)(c.p))) +# define M_ASN1_next_prev (*((unsigned char *)(c.q))) + +/*************************************************/ + +# define M_ASN1_I2D_vars(a) int r=0,ret=0; \ + unsigned char *p; \ + if (a == NULL) return(0) + +/* Length Macros */ +# define M_ASN1_I2D_len(a,f) ret+=f(a,NULL) +# define M_ASN1_I2D_len_IMP_opt(a,f) if (a != NULL) M_ASN1_I2D_len(a,f) + +# define M_ASN1_I2D_len_SET(a,f) \ + ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET); + +# define M_ASN1_I2D_len_SET_type(type,a,f) \ + ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SET, \ + V_ASN1_UNIVERSAL,IS_SET); + +# define M_ASN1_I2D_len_SEQUENCE(a,f) \ + ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \ + IS_SEQUENCE); + +# define M_ASN1_I2D_len_SEQUENCE_type(type,a,f) \ + ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SEQUENCE, \ + V_ASN1_UNIVERSAL,IS_SEQUENCE) + +# define M_ASN1_I2D_len_SEQUENCE_opt(a,f) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + M_ASN1_I2D_len_SEQUENCE(a,f); + +# define M_ASN1_I2D_len_SEQUENCE_opt_type(type,a,f) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + M_ASN1_I2D_len_SEQUENCE_type(type,a,f); + +# define M_ASN1_I2D_len_IMP_SET(a,f,x) \ + ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET); + +# define M_ASN1_I2D_len_IMP_SET_type(type,a,f,x) \ + ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ + V_ASN1_CONTEXT_SPECIFIC,IS_SET); + +# define M_ASN1_I2D_len_IMP_SET_opt(a,f,x) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ + IS_SET); + +# define M_ASN1_I2D_len_IMP_SET_opt_type(type,a,f,x) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ + V_ASN1_CONTEXT_SPECIFIC,IS_SET); + +# define M_ASN1_I2D_len_IMP_SEQUENCE(a,f,x) \ + ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ + IS_SEQUENCE); + +# define M_ASN1_I2D_len_IMP_SEQUENCE_opt(a,f,x) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ + IS_SEQUENCE); + +# define M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(type,a,f,x) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ + V_ASN1_CONTEXT_SPECIFIC, \ + IS_SEQUENCE); + +# define M_ASN1_I2D_len_EXP_opt(a,f,mtag,v) \ + if (a != NULL)\ + { \ + v=f(a,NULL); \ + ret+=ASN1_object_size(1,v,mtag); \ + } + +# define M_ASN1_I2D_len_EXP_SET_opt(a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_num(a) != 0))\ + { \ + v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL,IS_SET); \ + ret+=ASN1_object_size(1,v,mtag); \ + } + +# define M_ASN1_I2D_len_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_num(a) != 0))\ + { \ + v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL, \ + IS_SEQUENCE); \ + ret+=ASN1_object_size(1,v,mtag); \ + } + +# define M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_##type##_num(a) != 0))\ + { \ + v=i2d_ASN1_SET_OF_##type(a,NULL,f,tag, \ + V_ASN1_UNIVERSAL, \ + IS_SEQUENCE); \ + ret+=ASN1_object_size(1,v,mtag); \ + } + +/* Put Macros */ +# define M_ASN1_I2D_put(a,f) f(a,&p) + +# define M_ASN1_I2D_put_IMP_opt(a,f,t) \ + if (a != NULL) \ + { \ + unsigned char *q=p; \ + f(a,&p); \ + *q=(V_ASN1_CONTEXT_SPECIFIC|t|(*q&V_ASN1_CONSTRUCTED));\ + } + +# define M_ASN1_I2D_put_SET(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SET,\ + V_ASN1_UNIVERSAL,IS_SET) +# define M_ASN1_I2D_put_SET_type(type,a,f) \ + i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET) +# define M_ASN1_I2D_put_IMP_SET(a,f,x) i2d_ASN1_SET(a,&p,f,x,\ + V_ASN1_CONTEXT_SPECIFIC,IS_SET) +# define M_ASN1_I2D_put_IMP_SET_type(type,a,f,x) \ + i2d_ASN1_SET_OF_##type(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET) +# define M_ASN1_I2D_put_IMP_SEQUENCE(a,f,x) i2d_ASN1_SET(a,&p,f,x,\ + V_ASN1_CONTEXT_SPECIFIC,IS_SEQUENCE) + +# define M_ASN1_I2D_put_SEQUENCE(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SEQUENCE,\ + V_ASN1_UNIVERSAL,IS_SEQUENCE) + +# define M_ASN1_I2D_put_SEQUENCE_type(type,a,f) \ + i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \ + IS_SEQUENCE) + +# define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + M_ASN1_I2D_put_SEQUENCE(a,f); + +# define M_ASN1_I2D_put_IMP_SET_opt(a,f,x) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \ + IS_SET); } + +# define M_ASN1_I2D_put_IMP_SET_opt_type(type,a,f,x) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + { i2d_ASN1_SET_OF_##type(a,&p,f,x, \ + V_ASN1_CONTEXT_SPECIFIC, \ + IS_SET); } + +# define M_ASN1_I2D_put_IMP_SEQUENCE_opt(a,f,x) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \ + IS_SEQUENCE); } + +# define M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(type,a,f,x) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + { i2d_ASN1_SET_OF_##type(a,&p,f,x, \ + V_ASN1_CONTEXT_SPECIFIC, \ + IS_SEQUENCE); } + +# define M_ASN1_I2D_put_EXP_opt(a,f,tag,v) \ + if (a != NULL) \ + { \ + ASN1_put_object(&p,1,v,tag,V_ASN1_CONTEXT_SPECIFIC); \ + f(a,&p); \ + } + +# define M_ASN1_I2D_put_EXP_SET_opt(a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + { \ + ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ + i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SET); \ + } + +# define M_ASN1_I2D_put_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_num(a) != 0)) \ + { \ + ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ + i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \ + } + +# define M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ + if ((a != NULL) && (sk_##type##_num(a) != 0)) \ + { \ + ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ + i2d_ASN1_SET_OF_##type(a,&p,f,tag,V_ASN1_UNIVERSAL, \ + IS_SEQUENCE); \ + } + +# define M_ASN1_I2D_seq_total() \ + r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \ + if (pp == NULL) return(r); \ + p= *pp; \ + ASN1_put_object(&p,1,ret,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL) + +# define M_ASN1_I2D_INF_seq_start(tag,ctx) \ + *(p++)=(V_ASN1_CONSTRUCTED|(tag)|(ctx)); \ + *(p++)=0x80 + +# define M_ASN1_I2D_INF_seq_end() *(p++)=0x00; *(p++)=0x00 + +# define M_ASN1_I2D_finish() *pp=p; \ + return(r); + +int asn1_GetSequence(ASN1_const_CTX *c, long *length); +void asn1_add_error(const unsigned char *address, int offset); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/asn1t.h b/External/include64/openssl/asn1t.h new file mode 100644 index 00000000..99bc0eec --- /dev/null +++ b/External/include64/openssl/asn1t.h @@ -0,0 +1,973 @@ +/* asn1t.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project + * 2000. + */ +/* ==================================================================== + * Copyright (c) 2000-2005 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +#ifndef HEADER_ASN1T_H +# define HEADER_ASN1T_H + +# include +# include +# include + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +/* ASN1 template defines, structures and functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ +# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr)) + +/* Macros for start and end of ASN1_ITEM definition */ + +# define ASN1_ITEM_start(itname) \ + OPENSSL_GLOBAL const ASN1_ITEM itname##_it = { + +# define ASN1_ITEM_end(itname) \ + }; + +# else + +/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ +# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr())) + +/* Macros for start and end of ASN1_ITEM definition */ + +# define ASN1_ITEM_start(itname) \ + const ASN1_ITEM * itname##_it(void) \ + { \ + static const ASN1_ITEM local_it = { + +# define ASN1_ITEM_end(itname) \ + }; \ + return &local_it; \ + } + +# endif + +/* Macros to aid ASN1 template writing */ + +# define ASN1_ITEM_TEMPLATE(tname) \ + static const ASN1_TEMPLATE tname##_item_tt + +# define ASN1_ITEM_TEMPLATE_END(tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_PRIMITIVE,\ + -1,\ + &tname##_item_tt,\ + 0,\ + NULL,\ + 0,\ + #tname \ + ASN1_ITEM_end(tname) + +/* This is a ASN1 type which just embeds a template */ + +/*- + * This pair helps declare a SEQUENCE. We can do: + * + * ASN1_SEQUENCE(stname) = { + * ... SEQUENCE components ... + * } ASN1_SEQUENCE_END(stname) + * + * This will produce an ASN1_ITEM called stname_it + * for a structure called stname. + * + * If you want the same structure but a different + * name then use: + * + * ASN1_SEQUENCE(itname) = { + * ... SEQUENCE components ... + * } ASN1_SEQUENCE_END_name(stname, itname) + * + * This will create an item called itname_it using + * a structure called stname. + */ + +# define ASN1_SEQUENCE(tname) \ + static const ASN1_TEMPLATE tname##_seq_tt[] + +# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) + +# define ASN1_SEQUENCE_END_name(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_NDEF_SEQUENCE(tname) \ + ASN1_SEQUENCE(tname) + +# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ + ASN1_SEQUENCE_cb(tname, cb) + +# define ASN1_SEQUENCE_cb(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_BROKEN_SEQUENCE(tname) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_BROKEN, 0, 0, 0, 0}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_SEQUENCE_ref(tname, cb, lck) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), lck, cb, 0}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_SEQUENCE_enc(tname, enc, cb) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc)}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_NDEF_SEQUENCE_END(tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(tname),\ + #tname \ + ASN1_ITEM_end(tname) + +# define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname) + +# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) + +# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) + +# define ASN1_SEQUENCE_END_ref(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +/*- + * This pair helps declare a CHOICE type. We can do: + * + * ASN1_CHOICE(chname) = { + * ... CHOICE options ... + * ASN1_CHOICE_END(chname) + * + * This will produce an ASN1_ITEM called chname_it + * for a structure called chname. The structure + * definition must look like this: + * typedef struct { + * int type; + * union { + * ASN1_SOMETHING *opt1; + * ASN1_SOMEOTHER *opt2; + * } value; + * } chname; + * + * the name of the selector must be 'type'. + * to use an alternative selector name use the + * ASN1_CHOICE_END_selector() version. + */ + +# define ASN1_CHOICE(tname) \ + static const ASN1_TEMPLATE tname##_ch_tt[] + +# define ASN1_CHOICE_cb(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ + ASN1_CHOICE(tname) + +# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) + +# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) + +# define ASN1_CHOICE_END_selector(stname, tname, selname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_CHOICE_END_cb(stname, tname, selname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +/* This helps with the template wrapper form of ASN1_ITEM */ + +# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ + (flags), (tag), 0,\ + #name, ASN1_ITEM_ref(type) } + +/* These help with SEQUENCE or CHOICE components */ + +/* used to declare other types */ + +# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ + (flags), (tag), offsetof(stname, field),\ + #field, ASN1_ITEM_ref(type) } + +/* used when the structure is combined with the parent */ + +# define ASN1_EX_COMBINE(flags, tag, type) { \ + (flags)|ASN1_TFLG_COMBINE, (tag), 0, NULL, ASN1_ITEM_ref(type) } + +/* implicit and explicit helper macros */ + +# define ASN1_IMP_EX(stname, field, type, tag, ex) \ + ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | ex, tag, stname, field, type) + +# define ASN1_EXP_EX(stname, field, type, tag, ex) \ + ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | ex, tag, stname, field, type) + +/* Any defined by macros: the field used is in the table itself */ + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION +# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } +# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } +# else +# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } +# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } +# endif +/* Plain simple type */ +# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) + +/* OPTIONAL simple type */ +# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) + +/* IMPLICIT tagged simple type */ +# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) + +/* IMPLICIT tagged OPTIONAL simple type */ +# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) + +/* Same as above but EXPLICIT */ + +# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) +# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) + +/* SEQUENCE OF type */ +# define ASN1_SEQUENCE_OF(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) + +/* OPTIONAL SEQUENCE OF */ +# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) + +/* Same as above but for SET OF */ + +# define ASN1_SET_OF(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) + +# define ASN1_SET_OF_OPT(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) + +/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ + +# define ASN1_IMP_SET_OF(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) + +# define ASN1_EXP_SET_OF(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) + +# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) + +# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) + +# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) + +/* EXPLICIT using indefinite length constructed form */ +# define ASN1_NDEF_EXP(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) + +/* EXPLICIT OPTIONAL using indefinite length constructed form */ +# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) + +/* Macros for the ASN1_ADB structure */ + +# define ASN1_ADB(name) \ + static const ASN1_ADB_TABLE name##_adbtbl[] + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION + +# define ASN1_ADB_END(name, flags, field, app_table, def, none) \ + ;\ + static const ASN1_ADB name##_adb = {\ + flags,\ + offsetof(name, field),\ + app_table,\ + name##_adbtbl,\ + sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ + def,\ + none\ + } + +# else + +# define ASN1_ADB_END(name, flags, field, app_table, def, none) \ + ;\ + static const ASN1_ITEM *name##_adb(void) \ + { \ + static const ASN1_ADB internal_adb = \ + {\ + flags,\ + offsetof(name, field),\ + app_table,\ + name##_adbtbl,\ + sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ + def,\ + none\ + }; \ + return (const ASN1_ITEM *) &internal_adb; \ + } \ + void dummy_function(void) + +# endif + +# define ADB_ENTRY(val, template) {val, template} + +# define ASN1_ADB_TEMPLATE(name) \ + static const ASN1_TEMPLATE name##_tt + +/* + * This is the ASN1 template structure that defines a wrapper round the + * actual type. It determines the actual position of the field in the value + * structure, various flags such as OPTIONAL and the field name. + */ + +struct ASN1_TEMPLATE_st { + unsigned long flags; /* Various flags */ + long tag; /* tag, not used if no tagging */ + unsigned long offset; /* Offset of this field in structure */ +# ifndef NO_ASN1_FIELD_NAMES + const char *field_name; /* Field name */ +# endif + ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ +}; + +/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ + +# define ASN1_TEMPLATE_item(t) (t->item_ptr) +# define ASN1_TEMPLATE_adb(t) (t->item_ptr) + +typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; +typedef struct ASN1_ADB_st ASN1_ADB; + +struct ASN1_ADB_st { + unsigned long flags; /* Various flags */ + unsigned long offset; /* Offset of selector field */ + STACK_OF(ASN1_ADB_TABLE) **app_items; /* Application defined items */ + const ASN1_ADB_TABLE *tbl; /* Table of possible types */ + long tblcount; /* Number of entries in tbl */ + const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ + const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ +}; + +struct ASN1_ADB_TABLE_st { + long value; /* NID for an object or value for an int */ + const ASN1_TEMPLATE tt; /* item for this value */ +}; + +/* template flags */ + +/* Field is optional */ +# define ASN1_TFLG_OPTIONAL (0x1) + +/* Field is a SET OF */ +# define ASN1_TFLG_SET_OF (0x1 << 1) + +/* Field is a SEQUENCE OF */ +# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) + +/* + * Special case: this refers to a SET OF that will be sorted into DER order + * when encoded *and* the corresponding STACK will be modified to match the + * new order. + */ +# define ASN1_TFLG_SET_ORDER (0x3 << 1) + +/* Mask for SET OF or SEQUENCE OF */ +# define ASN1_TFLG_SK_MASK (0x3 << 1) + +/* + * These flags mean the tag should be taken from the tag field. If EXPLICIT + * then the underlying type is used for the inner tag. + */ + +/* IMPLICIT tagging */ +# define ASN1_TFLG_IMPTAG (0x1 << 3) + +/* EXPLICIT tagging, inner tag from underlying type */ +# define ASN1_TFLG_EXPTAG (0x2 << 3) + +# define ASN1_TFLG_TAG_MASK (0x3 << 3) + +/* context specific IMPLICIT */ +# define ASN1_TFLG_IMPLICIT ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT + +/* context specific EXPLICIT */ +# define ASN1_TFLG_EXPLICIT ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT + +/* + * If tagging is in force these determine the type of tag to use. Otherwise + * the tag is determined by the underlying type. These values reflect the + * actual octet format. + */ + +/* Universal tag */ +# define ASN1_TFLG_UNIVERSAL (0x0<<6) +/* Application tag */ +# define ASN1_TFLG_APPLICATION (0x1<<6) +/* Context specific tag */ +# define ASN1_TFLG_CONTEXT (0x2<<6) +/* Private tag */ +# define ASN1_TFLG_PRIVATE (0x3<<6) + +# define ASN1_TFLG_TAG_CLASS (0x3<<6) + +/* + * These are for ANY DEFINED BY type. In this case the 'item' field points to + * an ASN1_ADB structure which contains a table of values to decode the + * relevant type + */ + +# define ASN1_TFLG_ADB_MASK (0x3<<8) + +# define ASN1_TFLG_ADB_OID (0x1<<8) + +# define ASN1_TFLG_ADB_INT (0x1<<9) + +/* + * This flag means a parent structure is passed instead of the field: this is + * useful is a SEQUENCE is being combined with a CHOICE for example. Since + * this means the structure and item name will differ we need to use the + * ASN1_CHOICE_END_name() macro for example. + */ + +# define ASN1_TFLG_COMBINE (0x1<<10) + +/* + * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes + * indefinite length constructed encoding to be used if required. + */ + +# define ASN1_TFLG_NDEF (0x1<<11) + +/* This is the actual ASN1 item itself */ + +struct ASN1_ITEM_st { + char itype; /* The item type, primitive, SEQUENCE, CHOICE + * or extern */ + long utype; /* underlying type */ + const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains + * the contents */ + long tcount; /* Number of templates if SEQUENCE or CHOICE */ + const void *funcs; /* functions that handle this type */ + long size; /* Structure size (usually) */ +# ifndef NO_ASN1_FIELD_NAMES + const char *sname; /* Structure name */ +# endif +}; + +/*- + * These are values for the itype field and + * determine how the type is interpreted. + * + * For PRIMITIVE types the underlying type + * determines the behaviour if items is NULL. + * + * Otherwise templates must contain a single + * template and the type is treated in the + * same way as the type specified in the template. + * + * For SEQUENCE types the templates field points + * to the members, the size field is the + * structure size. + * + * For CHOICE types the templates field points + * to each possible member (typically a union) + * and the 'size' field is the offset of the + * selector. + * + * The 'funcs' field is used for application + * specific functions. + * + * For COMPAT types the funcs field gives a + * set of functions that handle this type, this + * supports the old d2i, i2d convention. + * + * The EXTERN type uses a new style d2i/i2d. + * The new style should be used where possible + * because it avoids things like the d2i IMPLICIT + * hack. + * + * MSTRING is a multiple string type, it is used + * for a CHOICE of character strings where the + * actual strings all occupy an ASN1_STRING + * structure. In this case the 'utype' field + * has a special meaning, it is used as a mask + * of acceptable types using the B_ASN1 constants. + * + * NDEF_SEQUENCE is the same as SEQUENCE except + * that it will use indefinite length constructed + * encoding if requested. + * + */ + +# define ASN1_ITYPE_PRIMITIVE 0x0 + +# define ASN1_ITYPE_SEQUENCE 0x1 + +# define ASN1_ITYPE_CHOICE 0x2 + +# define ASN1_ITYPE_COMPAT 0x3 + +# define ASN1_ITYPE_EXTERN 0x4 + +# define ASN1_ITYPE_MSTRING 0x5 + +# define ASN1_ITYPE_NDEF_SEQUENCE 0x6 + +/* + * Cache for ASN1 tag and length, so we don't keep re-reading it for things + * like CHOICE + */ + +struct ASN1_TLC_st { + char valid; /* Values below are valid */ + int ret; /* return value */ + long plen; /* length */ + int ptag; /* class value */ + int pclass; /* class value */ + int hdrlen; /* header length */ +}; + +/* Typedefs for ASN1 function pointers */ + +typedef ASN1_VALUE *ASN1_new_func(void); +typedef void ASN1_free_func(ASN1_VALUE *a); +typedef ASN1_VALUE *ASN1_d2i_func(ASN1_VALUE **a, const unsigned char **in, + long length); +typedef int ASN1_i2d_func(ASN1_VALUE *a, unsigned char **in); + +typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, + const ASN1_ITEM *it, int tag, int aclass, char opt, + ASN1_TLC *ctx); + +typedef int ASN1_ex_i2d(ASN1_VALUE **pval, unsigned char **out, + const ASN1_ITEM *it, int tag, int aclass); +typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); +typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); + +typedef int ASN1_ex_print_func(BIO *out, ASN1_VALUE **pval, + int indent, const char *fname, + const ASN1_PCTX *pctx); + +typedef int ASN1_primitive_i2c(ASN1_VALUE **pval, unsigned char *cont, + int *putype, const ASN1_ITEM *it); +typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, + int len, int utype, char *free_cont, + const ASN1_ITEM *it); +typedef int ASN1_primitive_print(BIO *out, ASN1_VALUE **pval, + const ASN1_ITEM *it, int indent, + const ASN1_PCTX *pctx); + +typedef struct ASN1_COMPAT_FUNCS_st { + ASN1_new_func *asn1_new; + ASN1_free_func *asn1_free; + ASN1_d2i_func *asn1_d2i; + ASN1_i2d_func *asn1_i2d; +} ASN1_COMPAT_FUNCS; + +typedef struct ASN1_EXTERN_FUNCS_st { + void *app_data; + ASN1_ex_new_func *asn1_ex_new; + ASN1_ex_free_func *asn1_ex_free; + ASN1_ex_free_func *asn1_ex_clear; + ASN1_ex_d2i *asn1_ex_d2i; + ASN1_ex_i2d *asn1_ex_i2d; + ASN1_ex_print_func *asn1_ex_print; +} ASN1_EXTERN_FUNCS; + +typedef struct ASN1_PRIMITIVE_FUNCS_st { + void *app_data; + unsigned long flags; + ASN1_ex_new_func *prim_new; + ASN1_ex_free_func *prim_free; + ASN1_ex_free_func *prim_clear; + ASN1_primitive_c2i *prim_c2i; + ASN1_primitive_i2c *prim_i2c; + ASN1_primitive_print *prim_print; +} ASN1_PRIMITIVE_FUNCS; + +/* + * This is the ASN1_AUX structure: it handles various miscellaneous + * requirements. For example the use of reference counts and an informational + * callback. The "informational callback" is called at various points during + * the ASN1 encoding and decoding. It can be used to provide minor + * customisation of the structures used. This is most useful where the + * supplied routines *almost* do the right thing but need some extra help at + * a few points. If the callback returns zero then it is assumed a fatal + * error has occurred and the main operation should be abandoned. If major + * changes in the default behaviour are required then an external type is + * more appropriate. + */ + +typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, + void *exarg); + +typedef struct ASN1_AUX_st { + void *app_data; + int flags; + int ref_offset; /* Offset of reference value */ + int ref_lock; /* Lock type to use */ + ASN1_aux_cb *asn1_cb; + int enc_offset; /* Offset of ASN1_ENCODING structure */ +} ASN1_AUX; + +/* For print related callbacks exarg points to this structure */ +typedef struct ASN1_PRINT_ARG_st { + BIO *out; + int indent; + const ASN1_PCTX *pctx; +} ASN1_PRINT_ARG; + +/* For streaming related callbacks exarg points to this structure */ +typedef struct ASN1_STREAM_ARG_st { + /* BIO to stream through */ + BIO *out; + /* BIO with filters appended */ + BIO *ndef_bio; + /* Streaming I/O boundary */ + unsigned char **boundary; +} ASN1_STREAM_ARG; + +/* Flags in ASN1_AUX */ + +/* Use a reference count */ +# define ASN1_AFLG_REFCOUNT 1 +/* Save the encoding of structure (useful for signatures) */ +# define ASN1_AFLG_ENCODING 2 +/* The Sequence length is invalid */ +# define ASN1_AFLG_BROKEN 4 + +/* operation values for asn1_cb */ + +# define ASN1_OP_NEW_PRE 0 +# define ASN1_OP_NEW_POST 1 +# define ASN1_OP_FREE_PRE 2 +# define ASN1_OP_FREE_POST 3 +# define ASN1_OP_D2I_PRE 4 +# define ASN1_OP_D2I_POST 5 +# define ASN1_OP_I2D_PRE 6 +# define ASN1_OP_I2D_POST 7 +# define ASN1_OP_PRINT_PRE 8 +# define ASN1_OP_PRINT_POST 9 +# define ASN1_OP_STREAM_PRE 10 +# define ASN1_OP_STREAM_POST 11 +# define ASN1_OP_DETACHED_PRE 12 +# define ASN1_OP_DETACHED_POST 13 + +/* Macro to implement a primitive type */ +# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) +# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ + ASN1_ITEM_start(itname) \ + ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ + ASN1_ITEM_end(itname) + +/* Macro to implement a multi string type */ +# define IMPLEMENT_ASN1_MSTRING(itname, mask) \ + ASN1_ITEM_start(itname) \ + ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ + ASN1_ITEM_end(itname) + +/* Macro to implement an ASN1_ITEM in terms of old style funcs */ + +# define IMPLEMENT_COMPAT_ASN1(sname) IMPLEMENT_COMPAT_ASN1_type(sname, V_ASN1_SEQUENCE) + +# define IMPLEMENT_COMPAT_ASN1_type(sname, tag) \ + static const ASN1_COMPAT_FUNCS sname##_ff = { \ + (ASN1_new_func *)sname##_new, \ + (ASN1_free_func *)sname##_free, \ + (ASN1_d2i_func *)d2i_##sname, \ + (ASN1_i2d_func *)i2d_##sname, \ + }; \ + ASN1_ITEM_start(sname) \ + ASN1_ITYPE_COMPAT, \ + tag, \ + NULL, \ + 0, \ + &sname##_ff, \ + 0, \ + #sname \ + ASN1_ITEM_end(sname) + +# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ + ASN1_ITEM_start(sname) \ + ASN1_ITYPE_EXTERN, \ + tag, \ + NULL, \ + 0, \ + &fptrs, \ + 0, \ + #sname \ + ASN1_ITEM_end(sname) + +/* Macro to implement standard functions in terms of ASN1_ITEM structures */ + +# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) + +# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ + IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) + +# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ + pre stname *fname##_new(void) \ + { \ + return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ + } \ + pre void fname##_free(stname *a) \ + { \ + ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ + } + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ + stname *fname##_new(void) \ + { \ + return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ + } \ + void fname##_free(stname *a) \ + { \ + ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ + } + +# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) + +# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ + stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ + { \ + return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ + } \ + int i2d_##fname(stname *a, unsigned char **out) \ + { \ + return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ + } + +# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ + int i2d_##stname##_NDEF(stname *a, unsigned char **out) \ + { \ + return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ + } + +/* + * This includes evil casts to remove const: they will go away when full ASN1 + * constification is done. + */ +# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ + stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ + { \ + return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ + } \ + int i2d_##fname(const stname *a, unsigned char **out) \ + { \ + return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ + } + +# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ + stname * stname##_dup(stname *x) \ + { \ + return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ + } + +# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ + IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ + int fname##_print_ctx(BIO *out, stname *x, int indent, \ + const ASN1_PCTX *pctx) \ + { \ + return ASN1_item_print(out, (ASN1_VALUE *)x, indent, \ + ASN1_ITEM_rptr(itname), pctx); \ + } + +# define IMPLEMENT_ASN1_FUNCTIONS_const(name) \ + IMPLEMENT_ASN1_FUNCTIONS_const_fname(name, name, name) + +# define IMPLEMENT_ASN1_FUNCTIONS_const_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) + +/* external definitions for primitive types */ + +DECLARE_ASN1_ITEM(ASN1_BOOLEAN) +DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) +DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) +DECLARE_ASN1_ITEM(ASN1_SEQUENCE) +DECLARE_ASN1_ITEM(CBIGNUM) +DECLARE_ASN1_ITEM(BIGNUM) +DECLARE_ASN1_ITEM(LONG) +DECLARE_ASN1_ITEM(ZLONG) + +DECLARE_STACK_OF(ASN1_VALUE) + +/* Functions used internally by the ASN1 code */ + +int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); +void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); +int ASN1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); +int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it); + +void ASN1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); +int ASN1_template_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, + const ASN1_TEMPLATE *tt); +int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, + const ASN1_ITEM *it, int tag, int aclass, char opt, + ASN1_TLC *ctx); + +int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out, + const ASN1_ITEM *it, int tag, int aclass); +int ASN1_template_i2d(ASN1_VALUE **pval, unsigned char **out, + const ASN1_TEMPLATE *tt); +void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it); + +int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype, + const ASN1_ITEM *it); +int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, + int utype, char *free_cont, const ASN1_ITEM *it); + +int asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM *it); +int asn1_set_choice_selector(ASN1_VALUE **pval, int value, + const ASN1_ITEM *it); + +ASN1_VALUE **asn1_get_field_ptr(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); + +const ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt, + int nullerr); + +int asn1_do_lock(ASN1_VALUE **pval, int op, const ASN1_ITEM *it); + +void asn1_enc_init(ASN1_VALUE **pval, const ASN1_ITEM *it); +void asn1_enc_free(ASN1_VALUE **pval, const ASN1_ITEM *it); +int asn1_enc_restore(int *len, unsigned char **out, ASN1_VALUE **pval, + const ASN1_ITEM *it); +int asn1_enc_save(ASN1_VALUE **pval, const unsigned char *in, int inlen, + const ASN1_ITEM *it); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/bio.h b/External/include64/openssl/bio.h new file mode 100644 index 00000000..6790aed2 --- /dev/null +++ b/External/include64/openssl/bio.h @@ -0,0 +1,883 @@ +/* crypto/bio/bio.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_BIO_H +# define HEADER_BIO_H + +# include + +# ifndef OPENSSL_NO_FP_API +# include +# endif +# include + +# include + +# ifndef OPENSSL_NO_SCTP +# ifndef OPENSSL_SYS_VMS +# include +# else +# include +# endif +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* These are the 'types' of BIOs */ +# define BIO_TYPE_NONE 0 +# define BIO_TYPE_MEM (1|0x0400) +# define BIO_TYPE_FILE (2|0x0400) + +# define BIO_TYPE_FD (4|0x0400|0x0100) +# define BIO_TYPE_SOCKET (5|0x0400|0x0100) +# define BIO_TYPE_NULL (6|0x0400) +# define BIO_TYPE_SSL (7|0x0200) +# define BIO_TYPE_MD (8|0x0200)/* passive filter */ +# define BIO_TYPE_BUFFER (9|0x0200)/* filter */ +# define BIO_TYPE_CIPHER (10|0x0200)/* filter */ +# define BIO_TYPE_BASE64 (11|0x0200)/* filter */ +# define BIO_TYPE_CONNECT (12|0x0400|0x0100)/* socket - connect */ +# define BIO_TYPE_ACCEPT (13|0x0400|0x0100)/* socket for accept */ +# define BIO_TYPE_PROXY_CLIENT (14|0x0200)/* client proxy BIO */ +# define BIO_TYPE_PROXY_SERVER (15|0x0200)/* server proxy BIO */ +# define BIO_TYPE_NBIO_TEST (16|0x0200)/* server proxy BIO */ +# define BIO_TYPE_NULL_FILTER (17|0x0200) +# define BIO_TYPE_BER (18|0x0200)/* BER -> bin filter */ +# define BIO_TYPE_BIO (19|0x0400)/* (half a) BIO pair */ +# define BIO_TYPE_LINEBUFFER (20|0x0200)/* filter */ +# define BIO_TYPE_DGRAM (21|0x0400|0x0100) +# ifndef OPENSSL_NO_SCTP +# define BIO_TYPE_DGRAM_SCTP (24|0x0400|0x0100) +# endif +# define BIO_TYPE_ASN1 (22|0x0200)/* filter */ +# define BIO_TYPE_COMP (23|0x0200)/* filter */ + +# define BIO_TYPE_DESCRIPTOR 0x0100/* socket, fd, connect or accept */ +# define BIO_TYPE_FILTER 0x0200 +# define BIO_TYPE_SOURCE_SINK 0x0400 + +/* + * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. + * BIO_set_fp(in,stdin,BIO_NOCLOSE); + */ +# define BIO_NOCLOSE 0x00 +# define BIO_CLOSE 0x01 + +/* + * These are used in the following macros and are passed to BIO_ctrl() + */ +# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */ +# define BIO_CTRL_EOF 2/* opt - are we at the eof */ +# define BIO_CTRL_INFO 3/* opt - extra tit-bits */ +# define BIO_CTRL_SET 4/* man - set the 'IO' type */ +# define BIO_CTRL_GET 5/* man - get the 'IO' type */ +# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */ +# define BIO_CTRL_POP 7/* opt - internal, used to signify change */ +# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */ +# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */ +# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */ +# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ +# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ +# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ +/* callback is int cb(BIO *bio,state,ret); */ +# define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */ +# define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */ + +# define BIO_CTRL_SET_FILENAME 30/* BIO_s_file special */ + +/* dgram BIO stuff */ +# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */ +# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected + * socket to be passed in */ +# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */ +# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */ +# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */ +# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */ + +# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */ +# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation tiemd out */ + +/* #ifdef IP_MTU_DISCOVER */ +# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */ +/* #endif */ + +# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */ +# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 +# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */ +# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU. + * want to use this if asking + * the kernel fails */ + +# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was + * exceed in the previous write + * operation */ + +# define BIO_CTRL_DGRAM_GET_PEER 46 +# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */ + +# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout + * to adjust socket timeouts */ +# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 + +# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 + +# ifndef OPENSSL_NO_SCTP +/* SCTP stuff */ +# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 +# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 +# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 +# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 +# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 +# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 +# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 +# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 +# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 +# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 +# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 +# endif + +/* modifiers */ +# define BIO_FP_READ 0x02 +# define BIO_FP_WRITE 0x04 +# define BIO_FP_APPEND 0x08 +# define BIO_FP_TEXT 0x10 + +# define BIO_FLAGS_READ 0x01 +# define BIO_FLAGS_WRITE 0x02 +# define BIO_FLAGS_IO_SPECIAL 0x04 +# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) +# define BIO_FLAGS_SHOULD_RETRY 0x08 +# ifndef BIO_FLAGS_UPLINK +/* + * "UPLINK" flag denotes file descriptors provided by application. It + * defaults to 0, as most platforms don't require UPLINK interface. + */ +# define BIO_FLAGS_UPLINK 0 +# endif + +/* Used in BIO_gethostbyname() */ +# define BIO_GHBN_CTRL_HITS 1 +# define BIO_GHBN_CTRL_MISSES 2 +# define BIO_GHBN_CTRL_CACHE_SIZE 3 +# define BIO_GHBN_CTRL_GET_ENTRY 4 +# define BIO_GHBN_CTRL_FLUSH 5 + +/* Mostly used in the SSL BIO */ +/*- + * Not used anymore + * #define BIO_FLAGS_PROTOCOL_DELAYED_READ 0x10 + * #define BIO_FLAGS_PROTOCOL_DELAYED_WRITE 0x20 + * #define BIO_FLAGS_PROTOCOL_STARTUP 0x40 + */ + +# define BIO_FLAGS_BASE64_NO_NL 0x100 + +/* + * This is used with memory BIOs: it means we shouldn't free up or change the + * data in any way. + */ +# define BIO_FLAGS_MEM_RDONLY 0x200 + +typedef struct bio_st BIO; + +void BIO_set_flags(BIO *b, int flags); +int BIO_test_flags(const BIO *b, int flags); +void BIO_clear_flags(BIO *b, int flags); + +# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) +# define BIO_set_retry_special(b) \ + BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_set_retry_read(b) \ + BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_set_retry_write(b) \ + BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) + +/* These are normally used internally in BIOs */ +# define BIO_clear_retry_flags(b) \ + BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_get_retry_flags(b) \ + BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) + +/* These should be used by the application to tell why we should retry */ +# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) +# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) +# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) +# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) +# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) + +/* + * The next three are used in conjunction with the BIO_should_io_special() + * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int + * *reason); will walk the BIO stack and return the 'reason' for the special + * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return + * the code. + */ +/* + * Returned from the SSL bio when the certificate retrieval code had an error + */ +# define BIO_RR_SSL_X509_LOOKUP 0x01 +/* Returned from the connect BIO when a connect would have blocked */ +# define BIO_RR_CONNECT 0x02 +/* Returned from the accept BIO when an accept would have blocked */ +# define BIO_RR_ACCEPT 0x03 + +/* These are passed by the BIO callback */ +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 + +/* + * The callback is called before and after the underling operation, The + * BIO_CB_RETURN flag indicates if it is after the call + */ +# define BIO_CB_RETURN 0x80 +# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) +# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) +# define BIO_cb_post(a) ((a)&BIO_CB_RETURN) + +long (*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const char *, + int, long, long); +void BIO_set_callback(BIO *b, + long (*callback) (struct bio_st *, int, const char *, + int, long, long)); +char *BIO_get_callback_arg(const BIO *b); +void BIO_set_callback_arg(BIO *b, char *arg); + +const char *BIO_method_name(const BIO *b); +int BIO_method_type(const BIO *b); + +typedef void bio_info_cb (struct bio_st *, int, const char *, int, long, + long); + +typedef struct bio_method_st { + int type; + const char *name; + int (*bwrite) (BIO *, const char *, int); + int (*bread) (BIO *, char *, int); + int (*bputs) (BIO *, const char *); + int (*bgets) (BIO *, char *, int); + long (*ctrl) (BIO *, int, long, void *); + int (*create) (BIO *); + int (*destroy) (BIO *); + long (*callback_ctrl) (BIO *, int, bio_info_cb *); +} BIO_METHOD; + +struct bio_st { + BIO_METHOD *method; + /* bio, mode, argp, argi, argl, ret */ + long (*callback) (struct bio_st *, int, const char *, int, long, long); + char *cb_arg; /* first argument for the callback */ + int init; + int shutdown; + int flags; /* extra storage */ + int retry_reason; + int num; + void *ptr; + struct bio_st *next_bio; /* used by filter BIOs */ + struct bio_st *prev_bio; /* used by filter BIOs */ + int references; + unsigned long num_read; + unsigned long num_write; + CRYPTO_EX_DATA ex_data; +}; + +DECLARE_STACK_OF(BIO) + +typedef struct bio_f_buffer_ctx_struct { + /*- + * Buffers are setup like this: + * + * <---------------------- size -----------------------> + * +---------------------------------------------------+ + * | consumed | remaining | free space | + * +---------------------------------------------------+ + * <-- off --><------- len -------> + */ + /*- BIO *bio; *//* + * this is now in the BIO struct + */ + int ibuf_size; /* how big is the input buffer */ + int obuf_size; /* how big is the output buffer */ + char *ibuf; /* the char array */ + int ibuf_len; /* how many bytes are in it */ + int ibuf_off; /* write/read offset */ + char *obuf; /* the char array */ + int obuf_len; /* how many bytes are in it */ + int obuf_off; /* write/read offset */ +} BIO_F_BUFFER_CTX; + +/* Prefix and suffix callback in ASN1 BIO */ +typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, + void *parg); + +# ifndef OPENSSL_NO_SCTP +/* SCTP parameter structs */ +struct bio_dgram_sctp_sndinfo { + uint16_t snd_sid; + uint16_t snd_flags; + uint32_t snd_ppid; + uint32_t snd_context; +}; + +struct bio_dgram_sctp_rcvinfo { + uint16_t rcv_sid; + uint16_t rcv_ssn; + uint16_t rcv_flags; + uint32_t rcv_ppid; + uint32_t rcv_tsn; + uint32_t rcv_cumtsn; + uint32_t rcv_context; +}; + +struct bio_dgram_sctp_prinfo { + uint16_t pr_policy; + uint32_t pr_value; +}; +# endif + +/* connect BIO stuff */ +# define BIO_CONN_S_BEFORE 1 +# define BIO_CONN_S_GET_IP 2 +# define BIO_CONN_S_GET_PORT 3 +# define BIO_CONN_S_CREATE_SOCKET 4 +# define BIO_CONN_S_CONNECT 5 +# define BIO_CONN_S_OK 6 +# define BIO_CONN_S_BLOCKED_CONNECT 7 +# define BIO_CONN_S_NBIO 8 +/* + * #define BIO_CONN_get_param_hostname BIO_ctrl + */ + +# define BIO_C_SET_CONNECT 100 +# define BIO_C_DO_STATE_MACHINE 101 +# define BIO_C_SET_NBIO 102 +# define BIO_C_SET_PROXY_PARAM 103 +# define BIO_C_SET_FD 104 +# define BIO_C_GET_FD 105 +# define BIO_C_SET_FILE_PTR 106 +# define BIO_C_GET_FILE_PTR 107 +# define BIO_C_SET_FILENAME 108 +# define BIO_C_SET_SSL 109 +# define BIO_C_GET_SSL 110 +# define BIO_C_SET_MD 111 +# define BIO_C_GET_MD 112 +# define BIO_C_GET_CIPHER_STATUS 113 +# define BIO_C_SET_BUF_MEM 114 +# define BIO_C_GET_BUF_MEM_PTR 115 +# define BIO_C_GET_BUFF_NUM_LINES 116 +# define BIO_C_SET_BUFF_SIZE 117 +# define BIO_C_SET_ACCEPT 118 +# define BIO_C_SSL_MODE 119 +# define BIO_C_GET_MD_CTX 120 +# define BIO_C_GET_PROXY_PARAM 121 +# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ +# define BIO_C_GET_CONNECT 123 +# define BIO_C_GET_ACCEPT 124 +# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 +# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 +# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 +# define BIO_C_FILE_SEEK 128 +# define BIO_C_GET_CIPHER_CTX 129 +# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input + * value */ +# define BIO_C_SET_BIND_MODE 131 +# define BIO_C_GET_BIND_MODE 132 +# define BIO_C_FILE_TELL 133 +# define BIO_C_GET_SOCKS 134 +# define BIO_C_SET_SOCKS 135 + +# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ +# define BIO_C_GET_WRITE_BUF_SIZE 137 +# define BIO_C_MAKE_BIO_PAIR 138 +# define BIO_C_DESTROY_BIO_PAIR 139 +# define BIO_C_GET_WRITE_GUARANTEE 140 +# define BIO_C_GET_READ_REQUEST 141 +# define BIO_C_SHUTDOWN_WR 142 +# define BIO_C_NREAD0 143 +# define BIO_C_NREAD 144 +# define BIO_C_NWRITE0 145 +# define BIO_C_NWRITE 146 +# define BIO_C_RESET_READ_REQUEST 147 +# define BIO_C_SET_MD_CTX 148 + +# define BIO_C_SET_PREFIX 149 +# define BIO_C_GET_PREFIX 150 +# define BIO_C_SET_SUFFIX 151 +# define BIO_C_GET_SUFFIX 152 + +# define BIO_C_SET_EX_ARG 153 +# define BIO_C_GET_EX_ARG 154 + +# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) +# define BIO_get_app_data(s) BIO_get_ex_data(s,0) + +/* BIO_s_connect() and BIO_s_socks4a_connect() */ +# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0,(char *)name) +# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1,(char *)port) +# define BIO_set_conn_ip(b,ip) BIO_ctrl(b,BIO_C_SET_CONNECT,2,(char *)ip) +# define BIO_set_conn_int_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,3,(char *)port) +# define BIO_get_conn_hostname(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0) +# define BIO_get_conn_port(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1) +# define BIO_get_conn_ip(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2) +# define BIO_get_conn_int_port(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) + +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) + +/* BIO_s_accept() */ +# define BIO_set_accept_port(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) +# define BIO_get_accept_port(b) BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0) +/* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ +# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,1,(n)?(void *)"a":NULL) +# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(char *)bio) + +# define BIO_BIND_NORMAL 0 +# define BIO_BIND_REUSEADDR_IF_UNUSED 1 +# define BIO_BIND_REUSEADDR 2 +# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) +# define BIO_get_bind_mode(b,mode) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) + +/* BIO_s_accept() and BIO_s_connect() */ +# define BIO_do_connect(b) BIO_do_handshake(b) +# define BIO_do_accept(b) BIO_do_handshake(b) +# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) + +/* BIO_s_proxy_client() */ +# define BIO_set_url(b,url) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,0,(char *)(url)) +# define BIO_set_proxies(b,p) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,1,(char *)(p)) +/* BIO_set_nbio(b,n) */ +# define BIO_set_filter_bio(b,s) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,2,(char *)(s)) +/* BIO *BIO_get_filter_bio(BIO *bio); */ +# define BIO_set_proxy_cb(b,cb) BIO_callback_ctrl(b,BIO_C_SET_PROXY_PARAM,3,(void *(*cb)())) +# define BIO_set_proxy_header(b,sk) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,4,(char *)sk) +# define BIO_set_no_connect_return(b,bool) BIO_int_ctrl(b,BIO_C_SET_PROXY_PARAM,5,bool) + +# define BIO_get_proxy_header(b,skp) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,0,(char *)skp) +# define BIO_get_proxies(b,pxy_p) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,1,(char *)(pxy_p)) +# define BIO_get_url(b,url) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,2,(char *)(url)) +# define BIO_get_no_connect_return(b) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,5,NULL) + +/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ +# define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) +# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) + +/* BIO_s_file() */ +# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp) +# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp) + +/* BIO_s_fd() and BIO_s_file() */ +# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) +# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) + +/* + * name is cast to lose const, but might be better to route through a + * function so we can do it safely + */ +# ifdef CONST_STRICT +/* + * If you are wondering why this isn't defined, its because CONST_STRICT is + * purely a compile-time kludge to allow const to be checked. + */ +int BIO_read_filename(BIO *b, const char *name); +# else +# define BIO_read_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_READ,(char *)name) +# endif +# define BIO_write_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_WRITE,name) +# define BIO_append_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_APPEND,name) +# define BIO_rw_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) + +/* + * WARNING WARNING, this ups the reference count on the read bio of the SSL + * structure. This is because the ssl read BIO is now pointed to by the + * next_bio field in the bio. So when you free the BIO, make sure you are + * doing a BIO_free_all() to catch the underlying BIO. + */ +# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)ssl) +# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)sslp) +# define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) +# define BIO_set_ssl_renegotiate_bytes(b,num) \ + BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL); +# define BIO_get_num_renegotiates(b) \ + BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL); +# define BIO_set_ssl_renegotiate_timeout(b,seconds) \ + BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL); + +/* defined in evp.h */ +/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)md) */ + +# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp) +# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)bm) +# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0,(char *)pp) +# define BIO_set_mem_eof_return(b,v) \ + BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) + +/* For the BIO_f_buffer() type */ +# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) +# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) +# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) +# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) +# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) + +/* Don't use the next one unless you know what you are doing :-) */ +# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) + +# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) +# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) +# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) +# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) +# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) +# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) +/* ...pending macros have inappropriate return type */ +size_t BIO_ctrl_pending(BIO *b); +size_t BIO_ctrl_wpending(BIO *b); +# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) +# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ + cbp) +# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) + +/* For the BIO_f_buffer() type */ +# define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) + +/* For BIO_s_bio() */ +# define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) +# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) +# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) +# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) +# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) +/* macros with inappropriate type -- but ...pending macros use int too: */ +# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) +# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) +size_t BIO_ctrl_get_write_guarantee(BIO *b); +size_t BIO_ctrl_get_read_request(BIO *b); +int BIO_ctrl_reset_read_request(BIO *b); + +/* ctrl macros for dgram */ +# define BIO_ctrl_dgram_connect(b,peer) \ + (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)peer) +# define BIO_ctrl_set_connected(b, state, peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, state, (char *)peer) +# define BIO_dgram_recv_timedout(b) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) +# define BIO_dgram_send_timedout(b) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) +# define BIO_dgram_get_peer(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)peer) +# define BIO_dgram_set_peer(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)peer) +# define BIO_dgram_get_mtu_overhead(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) + +/* These two aren't currently implemented */ +/* int BIO_get_ex_num(BIO *bio); */ +/* void BIO_set_ex_free_func(BIO *bio,int idx,void (*cb)()); */ +int BIO_set_ex_data(BIO *bio, int idx, void *data); +void *BIO_get_ex_data(BIO *bio, int idx); +int BIO_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +unsigned long BIO_number_read(BIO *bio); +unsigned long BIO_number_written(BIO *bio); + +/* For BIO_f_asn1() */ +int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, + asn1_ps_func *prefix_free); +int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, + asn1_ps_func **pprefix_free); +int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, + asn1_ps_func *suffix_free); +int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, + asn1_ps_func **psuffix_free); + +# ifndef OPENSSL_NO_FP_API +BIO_METHOD *BIO_s_file(void); +BIO *BIO_new_file(const char *filename, const char *mode); +BIO *BIO_new_fp(FILE *stream, int close_flag); +# define BIO_s_file_internal BIO_s_file +# endif +BIO *BIO_new(BIO_METHOD *type); +int BIO_set(BIO *a, BIO_METHOD *type); +int BIO_free(BIO *a); +void BIO_vfree(BIO *a); +int BIO_read(BIO *b, void *data, int len); +int BIO_gets(BIO *bp, char *buf, int size); +int BIO_write(BIO *b, const void *data, int len); +int BIO_puts(BIO *bp, const char *buf); +int BIO_indent(BIO *b, int indent, int max); +long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); +long BIO_callback_ctrl(BIO *b, int cmd, + void (*fp) (struct bio_st *, int, const char *, int, + long, long)); +char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); +long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); +BIO *BIO_push(BIO *b, BIO *append); +BIO *BIO_pop(BIO *b); +void BIO_free_all(BIO *a); +BIO *BIO_find_type(BIO *b, int bio_type); +BIO *BIO_next(BIO *b); +BIO *BIO_get_retry_BIO(BIO *bio, int *reason); +int BIO_get_retry_reason(BIO *bio); +BIO *BIO_dup_chain(BIO *in); + +int BIO_nread0(BIO *bio, char **buf); +int BIO_nread(BIO *bio, char **buf, int num); +int BIO_nwrite0(BIO *bio, char **buf); +int BIO_nwrite(BIO *bio, char **buf, int num); + +long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, + long argl, long ret); + +BIO_METHOD *BIO_s_mem(void); +BIO *BIO_new_mem_buf(const void *buf, int len); +BIO_METHOD *BIO_s_socket(void); +BIO_METHOD *BIO_s_connect(void); +BIO_METHOD *BIO_s_accept(void); +BIO_METHOD *BIO_s_fd(void); +# ifndef OPENSSL_SYS_OS2 +BIO_METHOD *BIO_s_log(void); +# endif +BIO_METHOD *BIO_s_bio(void); +BIO_METHOD *BIO_s_null(void); +BIO_METHOD *BIO_f_null(void); +BIO_METHOD *BIO_f_buffer(void); +# ifdef OPENSSL_SYS_VMS +BIO_METHOD *BIO_f_linebuffer(void); +# endif +BIO_METHOD *BIO_f_nbio_test(void); +# ifndef OPENSSL_NO_DGRAM +BIO_METHOD *BIO_s_datagram(void); +# ifndef OPENSSL_NO_SCTP +BIO_METHOD *BIO_s_datagram_sctp(void); +# endif +# endif + +/* BIO_METHOD *BIO_f_ber(void); */ + +int BIO_sock_should_retry(int i); +int BIO_sock_non_fatal_error(int error); +int BIO_dgram_non_fatal_error(int error); + +int BIO_fd_should_retry(int i); +int BIO_fd_non_fatal_error(int error); +int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), + void *u, const char *s, int len); +int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), + void *u, const char *s, int len, int indent); +int BIO_dump(BIO *b, const char *bytes, int len); +int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); +# ifndef OPENSSL_NO_FP_API +int BIO_dump_fp(FILE *fp, const char *s, int len); +int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); +# endif +int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, + int datalen); + +struct hostent *BIO_gethostbyname(const char *name); +/*- + * We might want a thread-safe interface too: + * struct hostent *BIO_gethostbyname_r(const char *name, + * struct hostent *result, void *buffer, size_t buflen); + * or something similar (caller allocates a struct hostent, + * pointed to by "result", and additional buffer space for the various + * substructures; if the buffer does not suffice, NULL is returned + * and an appropriate error code is set). + */ +int BIO_sock_error(int sock); +int BIO_socket_ioctl(int fd, long type, void *arg); +int BIO_socket_nbio(int fd, int mode); +int BIO_get_port(const char *str, unsigned short *port_ptr); +int BIO_get_host_ip(const char *str, unsigned char *ip); +int BIO_get_accept_socket(char *host_port, int mode); +int BIO_accept(int sock, char **ip_port); +int BIO_sock_init(void); +void BIO_sock_cleanup(void); +int BIO_set_tcp_ndelay(int sock, int turn_on); + +BIO *BIO_new_socket(int sock, int close_flag); +BIO *BIO_new_dgram(int fd, int close_flag); +# ifndef OPENSSL_NO_SCTP +BIO *BIO_new_dgram_sctp(int fd, int close_flag); +int BIO_dgram_is_sctp(BIO *bio); +int BIO_dgram_sctp_notification_cb(BIO *b, + void (*handle_notifications) (BIO *bio, + void + *context, + void *buf), + void *context); +int BIO_dgram_sctp_wait_for_dry(BIO *b); +int BIO_dgram_sctp_msg_waiting(BIO *b); +# endif +BIO *BIO_new_fd(int fd, int close_flag); +BIO *BIO_new_connect(const char *host_port); +BIO *BIO_new_accept(const char *host_port); + +int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +/* + * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. + * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default + * value. + */ + +void BIO_copy_next_retry(BIO *b); + +/* + * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); + */ + +# ifdef __GNUC__ +# define __bio_h__attr__ __attribute__ +# else +# define __bio_h__attr__(x) +# endif +int BIO_printf(BIO *bio, const char *format, ...) +__bio_h__attr__((__format__(__printf__, 2, 3))); +int BIO_vprintf(BIO *bio, const char *format, va_list args) +__bio_h__attr__((__format__(__printf__, 2, 0))); +int BIO_snprintf(char *buf, size_t n, const char *format, ...) +__bio_h__attr__((__format__(__printf__, 3, 4))); +int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) +__bio_h__attr__((__format__(__printf__, 3, 0))); +# undef __bio_h__attr__ + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_BIO_strings(void); + +/* Error codes for the BIO functions. */ + +/* Function codes. */ +# define BIO_F_ACPT_STATE 100 +# define BIO_F_BIO_ACCEPT 101 +# define BIO_F_BIO_BER_GET_HEADER 102 +# define BIO_F_BIO_CALLBACK_CTRL 131 +# define BIO_F_BIO_CTRL 103 +# define BIO_F_BIO_GETHOSTBYNAME 120 +# define BIO_F_BIO_GETS 104 +# define BIO_F_BIO_GET_ACCEPT_SOCKET 105 +# define BIO_F_BIO_GET_HOST_IP 106 +# define BIO_F_BIO_GET_PORT 107 +# define BIO_F_BIO_MAKE_PAIR 121 +# define BIO_F_BIO_NEW 108 +# define BIO_F_BIO_NEW_FILE 109 +# define BIO_F_BIO_NEW_MEM_BUF 126 +# define BIO_F_BIO_NREAD 123 +# define BIO_F_BIO_NREAD0 124 +# define BIO_F_BIO_NWRITE 125 +# define BIO_F_BIO_NWRITE0 122 +# define BIO_F_BIO_PUTS 110 +# define BIO_F_BIO_READ 111 +# define BIO_F_BIO_SOCK_INIT 112 +# define BIO_F_BIO_WRITE 113 +# define BIO_F_BUFFER_CTRL 114 +# define BIO_F_CONN_CTRL 127 +# define BIO_F_CONN_STATE 115 +# define BIO_F_DGRAM_SCTP_READ 132 +# define BIO_F_DGRAM_SCTP_WRITE 133 +# define BIO_F_FILE_CTRL 116 +# define BIO_F_FILE_READ 130 +# define BIO_F_LINEBUFFER_CTRL 129 +# define BIO_F_MEM_READ 128 +# define BIO_F_MEM_WRITE 117 +# define BIO_F_SSL_NEW 118 +# define BIO_F_WSASTARTUP 119 + +/* Reason codes. */ +# define BIO_R_ACCEPT_ERROR 100 +# define BIO_R_BAD_FOPEN_MODE 101 +# define BIO_R_BAD_HOSTNAME_LOOKUP 102 +# define BIO_R_BROKEN_PIPE 124 +# define BIO_R_CONNECT_ERROR 103 +# define BIO_R_EOF_ON_MEMORY_BIO 127 +# define BIO_R_ERROR_SETTING_NBIO 104 +# define BIO_R_ERROR_SETTING_NBIO_ON_ACCEPTED_SOCKET 105 +# define BIO_R_ERROR_SETTING_NBIO_ON_ACCEPT_SOCKET 106 +# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 +# define BIO_R_INVALID_ARGUMENT 125 +# define BIO_R_INVALID_IP_ADDRESS 108 +# define BIO_R_IN_USE 123 +# define BIO_R_KEEPALIVE 109 +# define BIO_R_NBIO_CONNECT_ERROR 110 +# define BIO_R_NO_ACCEPT_PORT_SPECIFIED 111 +# define BIO_R_NO_HOSTNAME_SPECIFIED 112 +# define BIO_R_NO_PORT_DEFINED 113 +# define BIO_R_NO_PORT_SPECIFIED 114 +# define BIO_R_NO_SUCH_FILE 128 +# define BIO_R_NULL_PARAMETER 115 +# define BIO_R_TAG_MISMATCH 116 +# define BIO_R_UNABLE_TO_BIND_SOCKET 117 +# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 +# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 +# define BIO_R_UNINITIALIZED 120 +# define BIO_R_UNSUPPORTED_METHOD 121 +# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 +# define BIO_R_WSASTARTUP 122 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/blowfish.h b/External/include64/openssl/blowfish.h new file mode 100644 index 00000000..83293027 --- /dev/null +++ b/External/include64/openssl/blowfish.h @@ -0,0 +1,130 @@ +/* crypto/bf/blowfish.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_BLOWFISH_H +# define HEADER_BLOWFISH_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_NO_BF +# error BF is disabled. +# endif + +# define BF_ENCRYPT 1 +# define BF_DECRYPT 0 + +/*- + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! BF_LONG has to be at least 32 bits wide. If it's wider, then ! + * ! BF_LONG_LOG2 has to be defined along. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ + +# if defined(__LP32__) +# define BF_LONG unsigned long +# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) +# define BF_LONG unsigned long +# define BF_LONG_LOG2 3 +/* + * _CRAY note. I could declare short, but I have no idea what impact + * does it have on performance on none-T3E machines. I could declare + * int, but at least on C90 sizeof(int) can be chosen at compile time. + * So I've chosen long... + * + */ +# else +# define BF_LONG unsigned int +# endif + +# define BF_ROUNDS 16 +# define BF_BLOCK 8 + +typedef struct bf_key_st { + BF_LONG P[BF_ROUNDS + 2]; + BF_LONG S[4 * 256]; +} BF_KEY; + +# ifdef OPENSSL_FIPS +void private_BF_set_key(BF_KEY *key, int len, const unsigned char *data); +# endif +void BF_set_key(BF_KEY *key, int len, const unsigned char *data); + +void BF_encrypt(BF_LONG *data, const BF_KEY *key); +void BF_decrypt(BF_LONG *data, const BF_KEY *key); + +void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, + const BF_KEY *key, int enc); +void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, + const BF_KEY *schedule, unsigned char *ivec, int enc); +void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const BF_KEY *schedule, + unsigned char *ivec, int *num, int enc); +void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const BF_KEY *schedule, + unsigned char *ivec, int *num); +const char *BF_options(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/bn.h b/External/include64/openssl/bn.h new file mode 100644 index 00000000..86264ae6 --- /dev/null +++ b/External/include64/openssl/bn.h @@ -0,0 +1,949 @@ +/* crypto/bn/bn.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * + * Portions of the attached software ("Contribution") are developed by + * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. + * + * The Contribution is licensed pursuant to the Eric Young open source + * license provided above. + * + * The binary polynomial arithmetic software is originally written by + * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. + * + */ + +#ifndef HEADER_BN_H +# define HEADER_BN_H + +# include +# include +# ifndef OPENSSL_NO_FP_API +# include /* FILE */ +# endif +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * These preprocessor symbols control various aspects of the bignum headers + * and library code. They're not defined by any "normal" configuration, as + * they are intended for development and testing purposes. NB: defining all + * three can be useful for debugging application code as well as openssl + * itself. BN_DEBUG - turn on various debugging alterations to the bignum + * code BN_DEBUG_RAND - uses random poisoning of unused words to trip up + * mismanagement of bignum internals. You must also define BN_DEBUG. + */ +/* #define BN_DEBUG */ +/* #define BN_DEBUG_RAND */ + +# ifndef OPENSSL_SMALL_FOOTPRINT +# define BN_MUL_COMBA +# define BN_SQR_COMBA +# define BN_RECURSION +# endif + +/* + * This next option uses the C libraries (2 word)/(1 word) function. If it is + * not defined, I use my C version (which is slower). The reason for this + * flag is that when the particular C compiler library routine is used, and + * the library is linked with a different compiler, the library is missing. + * This mostly happens when the library is built with gcc and then linked + * using normal cc. This would be a common occurrence because gcc normally + * produces code that is 2 times faster than system compilers for the big + * number stuff. For machines with only one compiler (or shared libraries), + * this should be on. Again this in only really a problem on machines using + * "long long's", are 32bit, and are not using my assembler code. + */ +# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || \ + defined(OPENSSL_SYS_WIN32) || defined(linux) +# ifndef BN_DIV2W +# define BN_DIV2W +# endif +# endif + +/* + * assuming long is 64bit - this is the DEC Alpha unsigned long long is only + * 64 bits :-(, don't define BN_LLONG for the DEC Alpha + */ +# ifdef SIXTY_FOUR_BIT_LONG +# define BN_ULLONG unsigned long long +# define BN_ULONG unsigned long +# define BN_LONG long +# define BN_BITS 128 +# define BN_BYTES 8 +# define BN_BITS2 64 +# define BN_BITS4 32 +# define BN_MASK (0xffffffffffffffffffffffffffffffffLL) +# define BN_MASK2 (0xffffffffffffffffL) +# define BN_MASK2l (0xffffffffL) +# define BN_MASK2h (0xffffffff00000000L) +# define BN_MASK2h1 (0xffffffff80000000L) +# define BN_TBIT (0x8000000000000000L) +# define BN_DEC_CONV (10000000000000000000UL) +# define BN_DEC_FMT1 "%lu" +# define BN_DEC_FMT2 "%019lu" +# define BN_DEC_NUM 19 +# define BN_HEX_FMT1 "%lX" +# define BN_HEX_FMT2 "%016lX" +# endif + +/* + * This is where the long long data type is 64 bits, but long is 32. For + * machines where there are 64bit registers, this is the mode to use. IRIX, + * on R4000 and above should use this mode, along with the relevant assembler + * code :-). Do NOT define BN_LLONG. + */ +# ifdef SIXTY_FOUR_BIT +# undef BN_LLONG +# undef BN_ULLONG +# define BN_ULONG unsigned long long +# define BN_LONG long long +# define BN_BITS 128 +# define BN_BYTES 8 +# define BN_BITS2 64 +# define BN_BITS4 32 +# define BN_MASK2 (0xffffffffffffffffLL) +# define BN_MASK2l (0xffffffffL) +# define BN_MASK2h (0xffffffff00000000LL) +# define BN_MASK2h1 (0xffffffff80000000LL) +# define BN_TBIT (0x8000000000000000LL) +# define BN_DEC_CONV (10000000000000000000ULL) +# define BN_DEC_FMT1 "%llu" +# define BN_DEC_FMT2 "%019llu" +# define BN_DEC_NUM 19 +# define BN_HEX_FMT1 "%llX" +# define BN_HEX_FMT2 "%016llX" +# endif + +# ifdef THIRTY_TWO_BIT +# ifdef BN_LLONG +# if defined(_WIN32) && !defined(__GNUC__) +# define BN_ULLONG unsigned __int64 +# define BN_MASK (0xffffffffffffffffI64) +# else +# define BN_ULLONG unsigned long long +# define BN_MASK (0xffffffffffffffffLL) +# endif +# endif +# define BN_ULONG unsigned int +# define BN_LONG int +# define BN_BITS 64 +# define BN_BYTES 4 +# define BN_BITS2 32 +# define BN_BITS4 16 +# define BN_MASK2 (0xffffffffL) +# define BN_MASK2l (0xffff) +# define BN_MASK2h1 (0xffff8000L) +# define BN_MASK2h (0xffff0000L) +# define BN_TBIT (0x80000000L) +# define BN_DEC_CONV (1000000000L) +# define BN_DEC_FMT1 "%u" +# define BN_DEC_FMT2 "%09u" +# define BN_DEC_NUM 9 +# define BN_HEX_FMT1 "%X" +# define BN_HEX_FMT2 "%08X" +# endif + +# define BN_DEFAULT_BITS 1280 + +# define BN_FLG_MALLOCED 0x01 +# define BN_FLG_STATIC_DATA 0x02 + +/* + * avoid leaking exponent information through timing, + * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, + * BN_div() will call BN_div_no_branch, + * BN_mod_inverse() will call BN_mod_inverse_no_branch. + */ +# define BN_FLG_CONSTTIME 0x04 + +# ifdef OPENSSL_NO_DEPRECATED +/* deprecated name for the flag */ +# define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME +/* + * avoid leaking exponent information through timings + * (BN_mod_exp_mont() will call BN_mod_exp_mont_consttime) + */ +# endif + +# ifndef OPENSSL_NO_DEPRECATED +# define BN_FLG_FREE 0x8000 + /* used for debuging */ +# endif +# define BN_set_flags(b,n) ((b)->flags|=(n)) +# define BN_get_flags(b,n) ((b)->flags&(n)) + +/* + * get a clone of a BIGNUM with changed flags, for *temporary* use only (the + * two BIGNUMs cannot not be used in parallel!) + */ +# define BN_with_flags(dest,b,n) ((dest)->d=(b)->d, \ + (dest)->top=(b)->top, \ + (dest)->dmax=(b)->dmax, \ + (dest)->neg=(b)->neg, \ + (dest)->flags=(((dest)->flags & BN_FLG_MALLOCED) \ + | ((b)->flags & ~BN_FLG_MALLOCED) \ + | BN_FLG_STATIC_DATA \ + | (n))) + +/* Already declared in ossl_typ.h */ +# if 0 +typedef struct bignum_st BIGNUM; +/* Used for temp variables (declaration hidden in bn_lcl.h) */ +typedef struct bignum_ctx BN_CTX; +typedef struct bn_blinding_st BN_BLINDING; +typedef struct bn_mont_ctx_st BN_MONT_CTX; +typedef struct bn_recp_ctx_st BN_RECP_CTX; +typedef struct bn_gencb_st BN_GENCB; +# endif + +struct bignum_st { + BN_ULONG *d; /* Pointer to an array of 'BN_BITS2' bit + * chunks. */ + int top; /* Index of last used d +1. */ + /* The next are internal book keeping for bn_expand. */ + int dmax; /* Size of the d array. */ + int neg; /* one if the number is negative */ + int flags; +}; + +/* Used for montgomery multiplication */ +struct bn_mont_ctx_st { + int ri; /* number of bits in R */ + BIGNUM RR; /* used to convert to montgomery form */ + BIGNUM N; /* The modulus */ + BIGNUM Ni; /* R*(1/R mod N) - N*Ni = 1 (Ni is only + * stored for bignum algorithm) */ + BN_ULONG n0[2]; /* least significant word(s) of Ni; (type + * changed with 0.9.9, was "BN_ULONG n0;" + * before) */ + int flags; +}; + +/* + * Used for reciprocal division/mod functions It cannot be shared between + * threads + */ +struct bn_recp_ctx_st { + BIGNUM N; /* the divisor */ + BIGNUM Nr; /* the reciprocal */ + int num_bits; + int shift; + int flags; +}; + +/* Used for slow "generation" functions. */ +struct bn_gencb_st { + unsigned int ver; /* To handle binary (in)compatibility */ + void *arg; /* callback-specific data */ + union { + /* if(ver==1) - handles old style callbacks */ + void (*cb_1) (int, int, void *); + /* if(ver==2) - new callback style */ + int (*cb_2) (int, int, BN_GENCB *); + } cb; +}; +/* Wrapper function to make using BN_GENCB easier, */ +int BN_GENCB_call(BN_GENCB *cb, int a, int b); +/* Macro to populate a BN_GENCB structure with an "old"-style callback */ +# define BN_GENCB_set_old(gencb, callback, cb_arg) { \ + BN_GENCB *tmp_gencb = (gencb); \ + tmp_gencb->ver = 1; \ + tmp_gencb->arg = (cb_arg); \ + tmp_gencb->cb.cb_1 = (callback); } +/* Macro to populate a BN_GENCB structure with a "new"-style callback */ +# define BN_GENCB_set(gencb, callback, cb_arg) { \ + BN_GENCB *tmp_gencb = (gencb); \ + tmp_gencb->ver = 2; \ + tmp_gencb->arg = (cb_arg); \ + tmp_gencb->cb.cb_2 = (callback); } + +# define BN_prime_checks 0 /* default: select number of iterations based + * on the size of the number */ + +/* + * number of Miller-Rabin iterations for an error rate of less than 2^-80 for + * random 'b'-bit input, b >= 100 (taken from table 4.4 in the Handbook of + * Applied Cryptography [Menezes, van Oorschot, Vanstone; CRC Press 1996]; + * original paper: Damgaard, Landrock, Pomerance: Average case error + * estimates for the strong probable prime test. -- Math. Comp. 61 (1993) + * 177-194) + */ +# define BN_prime_checks_for_size(b) ((b) >= 1300 ? 2 : \ + (b) >= 850 ? 3 : \ + (b) >= 650 ? 4 : \ + (b) >= 550 ? 5 : \ + (b) >= 450 ? 6 : \ + (b) >= 400 ? 7 : \ + (b) >= 350 ? 8 : \ + (b) >= 300 ? 9 : \ + (b) >= 250 ? 12 : \ + (b) >= 200 ? 15 : \ + (b) >= 150 ? 18 : \ + /* b >= 100 */ 27) + +# define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) + +/* Note that BN_abs_is_word didn't work reliably for w == 0 until 0.9.8 */ +# define BN_abs_is_word(a,w) ((((a)->top == 1) && ((a)->d[0] == (BN_ULONG)(w))) || \ + (((w) == 0) && ((a)->top == 0))) +# define BN_is_zero(a) ((a)->top == 0) +# define BN_is_one(a) (BN_abs_is_word((a),1) && !(a)->neg) +# define BN_is_word(a,w) (BN_abs_is_word((a),(w)) && (!(w) || !(a)->neg)) +# define BN_is_odd(a) (((a)->top > 0) && ((a)->d[0] & 1)) + +# define BN_one(a) (BN_set_word((a),1)) +# define BN_zero_ex(a) \ + do { \ + BIGNUM *_tmp_bn = (a); \ + _tmp_bn->top = 0; \ + _tmp_bn->neg = 0; \ + } while(0) +# ifdef OPENSSL_NO_DEPRECATED +# define BN_zero(a) BN_zero_ex(a) +# else +# define BN_zero(a) (BN_set_word((a),0)) +# endif + +const BIGNUM *BN_value_one(void); +char *BN_options(void); +BN_CTX *BN_CTX_new(void); +# ifndef OPENSSL_NO_DEPRECATED +void BN_CTX_init(BN_CTX *c); +# endif +void BN_CTX_free(BN_CTX *c); +void BN_CTX_start(BN_CTX *ctx); +BIGNUM *BN_CTX_get(BN_CTX *ctx); +void BN_CTX_end(BN_CTX *ctx); +int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_num_bits(const BIGNUM *a); +int BN_num_bits_word(BN_ULONG); +BIGNUM *BN_new(void); +void BN_init(BIGNUM *); +void BN_clear_free(BIGNUM *a); +BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); +void BN_swap(BIGNUM *a, BIGNUM *b); +BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2bin(const BIGNUM *a, unsigned char *to); +BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2mpi(const BIGNUM *a, unsigned char *to); +int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); +/** BN_set_negative sets sign of a BIGNUM + * \param b pointer to the BIGNUM object + * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise + */ +void BN_set_negative(BIGNUM *b, int n); +/** BN_is_negative returns 1 if the BIGNUM is negative + * \param a pointer to the BIGNUM object + * \return 1 if a < 0 and 0 otherwise + */ +# define BN_is_negative(a) ((a)->neg != 0) + +int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, + BN_CTX *ctx); +# define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) +int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); +int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *m); +int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *m); +int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); +int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); +int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); +int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); + +BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); +BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); +int BN_mul_word(BIGNUM *a, BN_ULONG w); +int BN_add_word(BIGNUM *a, BN_ULONG w); +int BN_sub_word(BIGNUM *a, BN_ULONG w); +int BN_set_word(BIGNUM *a, BN_ULONG w); +BN_ULONG BN_get_word(const BIGNUM *a); + +int BN_cmp(const BIGNUM *a, const BIGNUM *b); +void BN_free(BIGNUM *a); +int BN_is_bit_set(const BIGNUM *a, int n); +int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); +int BN_lshift1(BIGNUM *r, const BIGNUM *a); +int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); + +int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); +int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *in_mont); +int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, + const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, + BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); + +int BN_mask_bits(BIGNUM *a, int n); +# ifndef OPENSSL_NO_FP_API +int BN_print_fp(FILE *fp, const BIGNUM *a); +# endif +# ifdef HEADER_BIO_H +int BN_print(BIO *fp, const BIGNUM *a); +# else +int BN_print(void *fp, const BIGNUM *a); +# endif +int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); +int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); +int BN_rshift1(BIGNUM *r, const BIGNUM *a); +void BN_clear(BIGNUM *a); +BIGNUM *BN_dup(const BIGNUM *a); +int BN_ucmp(const BIGNUM *a, const BIGNUM *b); +int BN_set_bit(BIGNUM *a, int n); +int BN_clear_bit(BIGNUM *a, int n); +char *BN_bn2hex(const BIGNUM *a); +char *BN_bn2dec(const BIGNUM *a); +int BN_hex2bn(BIGNUM **a, const char *str); +int BN_dec2bn(BIGNUM **a, const char *str); +int BN_asc2bn(BIGNUM **a, const char *str); +int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns + * -2 for + * error */ +BIGNUM *BN_mod_inverse(BIGNUM *ret, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); +BIGNUM *BN_mod_sqrt(BIGNUM *ret, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); + +void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); + +/* Deprecated versions */ +# ifndef OPENSSL_NO_DEPRECATED +BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, + const BIGNUM *add, const BIGNUM *rem, + void (*callback) (int, int, void *), void *cb_arg); +int BN_is_prime(const BIGNUM *p, int nchecks, + void (*callback) (int, int, void *), + BN_CTX *ctx, void *cb_arg); +int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, + void (*callback) (int, int, void *), BN_CTX *ctx, + void *cb_arg, int do_trial_division); +# endif /* !defined(OPENSSL_NO_DEPRECATED) */ + +/* Newer versions */ +int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, + const BIGNUM *rem, BN_GENCB *cb); +int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); +int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, + int do_trial_division, BN_GENCB *cb); + +int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); + +int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, + const BIGNUM *Xp, const BIGNUM *Xp1, + const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, + BN_GENCB *cb); +int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, + BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, + BN_CTX *ctx, BN_GENCB *cb); + +BN_MONT_CTX *BN_MONT_CTX_new(void); +void BN_MONT_CTX_init(BN_MONT_CTX *ctx); +int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + BN_MONT_CTX *mont, BN_CTX *ctx); +# define BN_to_montgomery(r,a,mont,ctx) BN_mod_mul_montgomery(\ + (r),(a),&((mont)->RR),(mont),(ctx)) +int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, + BN_MONT_CTX *mont, BN_CTX *ctx); +void BN_MONT_CTX_free(BN_MONT_CTX *mont); +int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); +BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); +BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock, + const BIGNUM *mod, BN_CTX *ctx); + +/* BN_BLINDING flags */ +# define BN_BLINDING_NO_UPDATE 0x00000001 +# define BN_BLINDING_NO_RECREATE 0x00000002 + +BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); +void BN_BLINDING_free(BN_BLINDING *b); +int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); +int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, + BN_CTX *); +# ifndef OPENSSL_NO_DEPRECATED +unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); +void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); +# endif +CRYPTO_THREADID *BN_BLINDING_thread_id(BN_BLINDING *); +unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); +void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); +BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, + const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, + int (*bn_mod_exp) (BIGNUM *r, + const BIGNUM *a, + const BIGNUM *p, + const BIGNUM *m, + BN_CTX *ctx, + BN_MONT_CTX *m_ctx), + BN_MONT_CTX *m_ctx); + +# ifndef OPENSSL_NO_DEPRECATED +void BN_set_params(int mul, int high, int low, int mont); +int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */ +# endif + +void BN_RECP_CTX_init(BN_RECP_CTX *recp); +BN_RECP_CTX *BN_RECP_CTX_new(void); +void BN_RECP_CTX_free(BN_RECP_CTX *recp); +int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); +int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, + BN_RECP_CTX *recp, BN_CTX *ctx); +int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); +int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, + BN_RECP_CTX *recp, BN_CTX *ctx); + +# ifndef OPENSSL_NO_EC2M + +/* + * Functions for arithmetic over binary polynomials represented by BIGNUMs. + * The BIGNUM::neg property of BIGNUMs representing binary polynomials is + * ignored. Note that input arguments are not const so that their bit arrays + * can be expanded to the appropriate size if needed. + */ + +/* + * r = a + b + */ +int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +# define BN_GF2m_sub(r, a, b) BN_GF2m_add(r, a, b) +/* + * r=a mod p + */ +int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); +/* r = (a * b) mod p */ +int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +/* r = (a * a) mod p */ +int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +/* r = (1 / b) mod p */ +int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); +/* r = (a / b) mod p */ +int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +/* r = (a ^ b) mod p */ +int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +/* r = sqrt(a) mod p */ +int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + BN_CTX *ctx); +/* r^2 + r = a mod p */ +int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + BN_CTX *ctx); +# define BN_GF2m_cmp(a, b) BN_ucmp((a), (b)) +/*- + * Some functions allow for representation of the irreducible polynomials + * as an unsigned int[], say p. The irreducible f(t) is then of the form: + * t^p[0] + t^p[1] + ... + t^p[k] + * where m = p[0] > p[1] > ... > p[k] = 0. + */ +/* r = a mod p */ +int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); +/* r = (a * b) mod p */ +int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +/* r = (a * a) mod p */ +int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], + BN_CTX *ctx); +/* r = (1 / b) mod p */ +int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], + BN_CTX *ctx); +/* r = (a / b) mod p */ +int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +/* r = (a ^ b) mod p */ +int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +/* r = sqrt(a) mod p */ +int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, + const int p[], BN_CTX *ctx); +/* r^2 + r = a mod p */ +int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, + const int p[], BN_CTX *ctx); +int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); +int BN_GF2m_arr2poly(const int p[], BIGNUM *a); + +# endif + +/* + * faster mod functions for the 'NIST primes' 0 <= a < p^2 + */ +int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); + +const BIGNUM *BN_get0_nist_prime_192(void); +const BIGNUM *BN_get0_nist_prime_224(void); +const BIGNUM *BN_get0_nist_prime_256(void); +const BIGNUM *BN_get0_nist_prime_384(void); +const BIGNUM *BN_get0_nist_prime_521(void); + +/* library internal functions */ + +# define bn_expand(a,bits) \ + ( \ + bits > (INT_MAX - BN_BITS2 + 1) ? \ + NULL \ + : \ + (((bits+BN_BITS2-1)/BN_BITS2) <= (a)->dmax) ? \ + (a) \ + : \ + bn_expand2((a),(bits+BN_BITS2-1)/BN_BITS2) \ + ) + +# define bn_wexpand(a,words) (((words) <= (a)->dmax)?(a):bn_expand2((a),(words))) +BIGNUM *bn_expand2(BIGNUM *a, int words); +# ifndef OPENSSL_NO_DEPRECATED +BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ +# endif + +/*- + * Bignum consistency macros + * There is one "API" macro, bn_fix_top(), for stripping leading zeroes from + * bignum data after direct manipulations on the data. There is also an + * "internal" macro, bn_check_top(), for verifying that there are no leading + * zeroes. Unfortunately, some auditing is required due to the fact that + * bn_fix_top() has become an overabused duct-tape because bignum data is + * occasionally passed around in an inconsistent state. So the following + * changes have been made to sort this out; + * - bn_fix_top()s implementation has been moved to bn_correct_top() + * - if BN_DEBUG isn't defined, bn_fix_top() maps to bn_correct_top(), and + * bn_check_top() is as before. + * - if BN_DEBUG *is* defined; + * - bn_check_top() tries to pollute unused words even if the bignum 'top' is + * consistent. (ed: only if BN_DEBUG_RAND is defined) + * - bn_fix_top() maps to bn_check_top() rather than "fixing" anything. + * The idea is to have debug builds flag up inconsistent bignums when they + * occur. If that occurs in a bn_fix_top(), we examine the code in question; if + * the use of bn_fix_top() was appropriate (ie. it follows directly after code + * that manipulates the bignum) it is converted to bn_correct_top(), and if it + * was not appropriate, we convert it permanently to bn_check_top() and track + * down the cause of the bug. Eventually, no internal code should be using the + * bn_fix_top() macro. External applications and libraries should try this with + * their own code too, both in terms of building against the openssl headers + * with BN_DEBUG defined *and* linking with a version of OpenSSL built with it + * defined. This not only improves external code, it provides more test + * coverage for openssl's own code. + */ + +# ifdef BN_DEBUG + +/* We only need assert() when debugging */ +# include + +# ifdef BN_DEBUG_RAND +/* To avoid "make update" cvs wars due to BN_DEBUG, use some tricks */ +# ifndef RAND_pseudo_bytes +int RAND_pseudo_bytes(unsigned char *buf, int num); +# define BN_DEBUG_TRIX +# endif +# define bn_pollute(a) \ + do { \ + const BIGNUM *_bnum1 = (a); \ + if(_bnum1->top < _bnum1->dmax) { \ + unsigned char _tmp_char; \ + /* We cast away const without the compiler knowing, any \ + * *genuinely* constant variables that aren't mutable \ + * wouldn't be constructed with top!=dmax. */ \ + BN_ULONG *_not_const; \ + memcpy(&_not_const, &_bnum1->d, sizeof(BN_ULONG*)); \ + /* Debug only - safe to ignore error return */ \ + RAND_pseudo_bytes(&_tmp_char, 1); \ + memset((unsigned char *)(_not_const + _bnum1->top), _tmp_char, \ + (_bnum1->dmax - _bnum1->top) * sizeof(BN_ULONG)); \ + } \ + } while(0) +# ifdef BN_DEBUG_TRIX +# undef RAND_pseudo_bytes +# endif +# else +# define bn_pollute(a) +# endif +# define bn_check_top(a) \ + do { \ + const BIGNUM *_bnum2 = (a); \ + if (_bnum2 != NULL) { \ + assert((_bnum2->top == 0) || \ + (_bnum2->d[_bnum2->top - 1] != 0)); \ + bn_pollute(_bnum2); \ + } \ + } while(0) + +# define bn_fix_top(a) bn_check_top(a) + +# define bn_check_size(bn, bits) bn_wcheck_size(bn, ((bits+BN_BITS2-1))/BN_BITS2) +# define bn_wcheck_size(bn, words) \ + do { \ + const BIGNUM *_bnum2 = (bn); \ + assert((words) <= (_bnum2)->dmax && (words) >= (_bnum2)->top); \ + /* avoid unused variable warning with NDEBUG */ \ + (void)(_bnum2); \ + } while(0) + +# else /* !BN_DEBUG */ + +# define bn_pollute(a) +# define bn_check_top(a) +# define bn_fix_top(a) bn_correct_top(a) +# define bn_check_size(bn, bits) +# define bn_wcheck_size(bn, words) + +# endif + +# define bn_correct_top(a) \ + { \ + BN_ULONG *ftl; \ + int tmp_top = (a)->top; \ + if (tmp_top > 0) \ + { \ + for (ftl= &((a)->d[tmp_top-1]); tmp_top > 0; tmp_top--) \ + if (*(ftl--)) break; \ + (a)->top = tmp_top; \ + } \ + bn_pollute(a); \ + } + +BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num, + BN_ULONG w); +BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w); +void bn_sqr_words(BN_ULONG *rp, const BN_ULONG *ap, int num); +BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d); +BN_ULONG bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, + int num); +BN_ULONG bn_sub_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, + int num); + +/* Primes from RFC 2409 */ +BIGNUM *get_rfc2409_prime_768(BIGNUM *bn); +BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn); + +/* Primes from RFC 3526 */ +BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn); +BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn); +BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn); +BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn); +BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn); +BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn); + +int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_BN_strings(void); + +/* Error codes for the BN functions. */ + +/* Function codes. */ +# define BN_F_BNRAND 127 +# define BN_F_BN_BLINDING_CONVERT_EX 100 +# define BN_F_BN_BLINDING_CREATE_PARAM 128 +# define BN_F_BN_BLINDING_INVERT_EX 101 +# define BN_F_BN_BLINDING_NEW 102 +# define BN_F_BN_BLINDING_UPDATE 103 +# define BN_F_BN_BN2DEC 104 +# define BN_F_BN_BN2HEX 105 +# define BN_F_BN_CTX_GET 116 +# define BN_F_BN_CTX_NEW 106 +# define BN_F_BN_CTX_START 129 +# define BN_F_BN_DIV 107 +# define BN_F_BN_DIV_NO_BRANCH 138 +# define BN_F_BN_DIV_RECP 130 +# define BN_F_BN_EXP 123 +# define BN_F_BN_EXPAND2 108 +# define BN_F_BN_EXPAND_INTERNAL 120 +# define BN_F_BN_GF2M_MOD 131 +# define BN_F_BN_GF2M_MOD_EXP 132 +# define BN_F_BN_GF2M_MOD_MUL 133 +# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 +# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 +# define BN_F_BN_GF2M_MOD_SQR 136 +# define BN_F_BN_GF2M_MOD_SQRT 137 +# define BN_F_BN_LSHIFT 145 +# define BN_F_BN_MOD_EXP2_MONT 118 +# define BN_F_BN_MOD_EXP_MONT 109 +# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 +# define BN_F_BN_MOD_EXP_MONT_WORD 117 +# define BN_F_BN_MOD_EXP_RECP 125 +# define BN_F_BN_MOD_EXP_SIMPLE 126 +# define BN_F_BN_MOD_INVERSE 110 +# define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 +# define BN_F_BN_MOD_LSHIFT_QUICK 119 +# define BN_F_BN_MOD_MUL_RECIPROCAL 111 +# define BN_F_BN_MOD_SQRT 121 +# define BN_F_BN_MPI2BN 112 +# define BN_F_BN_NEW 113 +# define BN_F_BN_RAND 114 +# define BN_F_BN_RAND_RANGE 122 +# define BN_F_BN_RSHIFT 146 +# define BN_F_BN_USUB 115 + +/* Reason codes. */ +# define BN_R_ARG2_LT_ARG3 100 +# define BN_R_BAD_RECIPROCAL 101 +# define BN_R_BIGNUM_TOO_LONG 114 +# define BN_R_BITS_TOO_SMALL 118 +# define BN_R_CALLED_WITH_EVEN_MODULUS 102 +# define BN_R_DIV_BY_ZERO 103 +# define BN_R_ENCODING_ERROR 104 +# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 +# define BN_R_INPUT_NOT_REDUCED 110 +# define BN_R_INVALID_LENGTH 106 +# define BN_R_INVALID_RANGE 115 +# define BN_R_INVALID_SHIFT 119 +# define BN_R_NOT_A_SQUARE 111 +# define BN_R_NOT_INITIALIZED 107 +# define BN_R_NO_INVERSE 108 +# define BN_R_NO_SOLUTION 116 +# define BN_R_P_IS_NOT_PRIME 112 +# define BN_R_TOO_MANY_ITERATIONS 113 +# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/buffer.h b/External/include64/openssl/buffer.h new file mode 100644 index 00000000..efd240a5 --- /dev/null +++ b/External/include64/openssl/buffer.h @@ -0,0 +1,125 @@ +/* crypto/buffer/buffer.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_BUFFER_H +# define HEADER_BUFFER_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +# if !defined(NO_SYS_TYPES_H) +# include +# endif + +/* Already declared in ossl_typ.h */ +/* typedef struct buf_mem_st BUF_MEM; */ + +struct buf_mem_st { + size_t length; /* current number of bytes */ + char *data; + size_t max; /* size of buffer */ +}; + +BUF_MEM *BUF_MEM_new(void); +void BUF_MEM_free(BUF_MEM *a); +int BUF_MEM_grow(BUF_MEM *str, size_t len); +int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); +size_t BUF_strnlen(const char *str, size_t maxlen); +char *BUF_strdup(const char *str); + +/* + * Like strndup, but in addition, explicitly guarantees to never read past the + * first |siz| bytes of |str|. + */ +char *BUF_strndup(const char *str, size_t siz); + +void *BUF_memdup(const void *data, size_t siz); +void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); + +/* safe string functions */ +size_t BUF_strlcpy(char *dst, const char *src, size_t siz); +size_t BUF_strlcat(char *dst, const char *src, size_t siz); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_BUF_strings(void); + +/* Error codes for the BUF functions. */ + +/* Function codes. */ +# define BUF_F_BUF_MEMDUP 103 +# define BUF_F_BUF_MEM_GROW 100 +# define BUF_F_BUF_MEM_GROW_CLEAN 105 +# define BUF_F_BUF_MEM_NEW 101 +# define BUF_F_BUF_STRDUP 102 +# define BUF_F_BUF_STRNDUP 104 + +/* Reason codes. */ + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/camellia.h b/External/include64/openssl/camellia.h new file mode 100644 index 00000000..45e8d25b --- /dev/null +++ b/External/include64/openssl/camellia.h @@ -0,0 +1,132 @@ +/* crypto/camellia/camellia.h */ +/* ==================================================================== + * Copyright (c) 2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + */ + +#ifndef HEADER_CAMELLIA_H +# define HEADER_CAMELLIA_H + +# include + +# ifdef OPENSSL_NO_CAMELLIA +# error CAMELLIA is disabled. +# endif + +# include + +# define CAMELLIA_ENCRYPT 1 +# define CAMELLIA_DECRYPT 0 + +/* + * Because array size can't be a const in C, the following two are macros. + * Both sizes are in bytes. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* This should be a hidden type, but EVP requires that the size be known */ + +# define CAMELLIA_BLOCK_SIZE 16 +# define CAMELLIA_TABLE_BYTE_LEN 272 +# define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) + +typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match + * with WORD */ + +struct camellia_key_st { + union { + double d; /* ensures 64-bit align */ + KEY_TABLE_TYPE rd_key; + } u; + int grand_rounds; +}; +typedef struct camellia_key_st CAMELLIA_KEY; + +# ifdef OPENSSL_FIPS +int private_Camellia_set_key(const unsigned char *userKey, const int bits, + CAMELLIA_KEY *key); +# endif +int Camellia_set_key(const unsigned char *userKey, const int bits, + CAMELLIA_KEY *key); + +void Camellia_encrypt(const unsigned char *in, unsigned char *out, + const CAMELLIA_KEY *key); +void Camellia_decrypt(const unsigned char *in, unsigned char *out, + const CAMELLIA_KEY *key); + +void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, + const CAMELLIA_KEY *key, const int enc); +void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, const int enc); +void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num, const int enc); +void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num, const int enc); +void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num, const int enc); +void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num); +void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char ivec[CAMELLIA_BLOCK_SIZE], + unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], + unsigned int *num); + +#ifdef __cplusplus +} +#endif + +#endif /* !HEADER_Camellia_H */ diff --git a/External/include64/openssl/cast.h b/External/include64/openssl/cast.h new file mode 100644 index 00000000..0003ec9c --- /dev/null +++ b/External/include64/openssl/cast.h @@ -0,0 +1,107 @@ +/* crypto/cast/cast.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_CAST_H +# define HEADER_CAST_H + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +# ifdef OPENSSL_NO_CAST +# error CAST is disabled. +# endif + +# define CAST_ENCRYPT 1 +# define CAST_DECRYPT 0 + +# define CAST_LONG unsigned int + +# define CAST_BLOCK 8 +# define CAST_KEY_LENGTH 16 + +typedef struct cast_key_st { + CAST_LONG data[32]; + int short_key; /* Use reduced rounds for short key */ +} CAST_KEY; + +# ifdef OPENSSL_FIPS +void private_CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); +# endif +void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); +void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, + const CAST_KEY *key, int enc); +void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); +void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); +void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, + long length, const CAST_KEY *ks, unsigned char *iv, + int enc); +void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const CAST_KEY *schedule, + unsigned char *ivec, int *num, int enc); +void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const CAST_KEY *schedule, + unsigned char *ivec, int *num); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/cmac.h b/External/include64/openssl/cmac.h new file mode 100644 index 00000000..175be834 --- /dev/null +++ b/External/include64/openssl/cmac.h @@ -0,0 +1,82 @@ +/* crypto/cmac/cmac.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2010 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + */ + +#ifndef HEADER_CMAC_H +# define HEADER_CMAC_H + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +/* Opaque */ +typedef struct CMAC_CTX_st CMAC_CTX; + +CMAC_CTX *CMAC_CTX_new(void); +void CMAC_CTX_cleanup(CMAC_CTX *ctx); +void CMAC_CTX_free(CMAC_CTX *ctx); +EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); +int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); + +int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen, + const EVP_CIPHER *cipher, ENGINE *impl); +int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen); +int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen); +int CMAC_resume(CMAC_CTX *ctx); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/cms.h b/External/include64/openssl/cms.h new file mode 100644 index 00000000..e6c7f964 --- /dev/null +++ b/External/include64/openssl/cms.h @@ -0,0 +1,555 @@ +/* crypto/cms/cms.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + */ + +#ifndef HEADER_CMS_H +# define HEADER_CMS_H + +# include + +# ifdef OPENSSL_NO_CMS +# error CMS is disabled. +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct CMS_ContentInfo_st CMS_ContentInfo; +typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_CertificateChoices CMS_CertificateChoices; +typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; +typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; +typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; +typedef struct CMS_Receipt_st CMS_Receipt; +typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; +typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; + +DECLARE_STACK_OF(CMS_SignerInfo) +DECLARE_STACK_OF(GENERAL_NAMES) +DECLARE_STACK_OF(CMS_RecipientEncryptedKey) +DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) +DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) +DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) + +# define CMS_SIGNERINFO_ISSUER_SERIAL 0 +# define CMS_SIGNERINFO_KEYIDENTIFIER 1 + +# define CMS_RECIPINFO_NONE -1 +# define CMS_RECIPINFO_TRANS 0 +# define CMS_RECIPINFO_AGREE 1 +# define CMS_RECIPINFO_KEK 2 +# define CMS_RECIPINFO_PASS 3 +# define CMS_RECIPINFO_OTHER 4 + +/* S/MIME related flags */ + +# define CMS_TEXT 0x1 +# define CMS_NOCERTS 0x2 +# define CMS_NO_CONTENT_VERIFY 0x4 +# define CMS_NO_ATTR_VERIFY 0x8 +# define CMS_NOSIGS \ + (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) +# define CMS_NOINTERN 0x10 +# define CMS_NO_SIGNER_CERT_VERIFY 0x20 +# define CMS_NOVERIFY 0x20 +# define CMS_DETACHED 0x40 +# define CMS_BINARY 0x80 +# define CMS_NOATTR 0x100 +# define CMS_NOSMIMECAP 0x200 +# define CMS_NOOLDMIMETYPE 0x400 +# define CMS_CRLFEOL 0x800 +# define CMS_STREAM 0x1000 +# define CMS_NOCRL 0x2000 +# define CMS_PARTIAL 0x4000 +# define CMS_REUSE_DIGEST 0x8000 +# define CMS_USE_KEYID 0x10000 +# define CMS_DEBUG_DECRYPT 0x20000 +# define CMS_KEY_PARAM 0x40000 + +const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms); + +BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); +int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); + +ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); +int CMS_is_detached(CMS_ContentInfo *cms); +int CMS_set_detached(CMS_ContentInfo *cms, int detached); + +# ifdef HEADER_PEM_H +DECLARE_PEM_rw_const(CMS, CMS_ContentInfo) +# endif +int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); +CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); +int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); + +BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); +int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); +int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, + int flags); +CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); +int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); + +int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, + unsigned int flags); + +CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, BIO *data, + unsigned int flags); + +CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, + X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, unsigned int flags); + +int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); +CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); + +int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags); +CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, + unsigned int flags); + +int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, + const unsigned char *key, size_t keylen, + BIO *dcont, BIO *out, unsigned int flags); + +CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, + const unsigned char *key, + size_t keylen, unsigned int flags); + +int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, + const unsigned char *key, size_t keylen); + +int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); + +int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, + STACK_OF(X509) *certs, + X509_STORE *store, unsigned int flags); + +STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); + +CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, + const EVP_CIPHER *cipher, unsigned int flags); + +int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, + BIO *dcont, BIO *out, unsigned int flags); + +int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); +int CMS_decrypt_set1_key(CMS_ContentInfo *cms, + unsigned char *key, size_t keylen, + unsigned char *id, size_t idlen); +int CMS_decrypt_set1_password(CMS_ContentInfo *cms, + unsigned char *pass, ossl_ssize_t passlen); + +STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); +int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); +EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); +CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); +CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, + X509 *recip, unsigned int flags); +int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); +int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); +int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, + EVP_PKEY **pk, X509 **recip, + X509_ALGOR **palg); +int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); + +CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, + unsigned char *key, size_t keylen, + unsigned char *id, size_t idlen, + ASN1_GENERALIZEDTIME *date, + ASN1_OBJECT *otherTypeId, + ASN1_TYPE *otherType); + +int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pid, + ASN1_GENERALIZEDTIME **pdate, + ASN1_OBJECT **potherid, + ASN1_TYPE **pothertype); + +int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, + unsigned char *key, size_t keylen); + +int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, + const unsigned char *id, size_t idlen); + +int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, + unsigned char *pass, + ossl_ssize_t passlen); + +CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, + int iter, int wrap_nid, + int pbe_nid, + unsigned char *pass, + ossl_ssize_t passlen, + const EVP_CIPHER *kekciph); + +int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); +int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); + +int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags); +CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); + +int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); +const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); + +CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); +int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); +int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); +STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); + +CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); +int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); +int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); +STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); + +int CMS_SignedData_init(CMS_ContentInfo *cms); +CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, + X509 *signer, EVP_PKEY *pk, const EVP_MD *md, + unsigned int flags); +EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); +EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); +STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); + +void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); +int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, ASN1_INTEGER **sno); +int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); +int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + unsigned int flags); +void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, + X509 **signer, X509_ALGOR **pdig, + X509_ALGOR **psig); +ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); +int CMS_SignerInfo_sign(CMS_SignerInfo *si); +int CMS_SignerInfo_verify(CMS_SignerInfo *si); +int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); + +int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); +int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, + int algnid, int keysize); +int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); + +int CMS_signed_get_attr_count(const CMS_SignerInfo *si); +int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos); +int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); +X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); +int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); +int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len); +int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len); +int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len); +void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, + int lastpos, int type); + +int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); +int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos); +int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); +X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); +int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); +int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len); +int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len); +int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len); +void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, + int lastpos, int type); + +# ifdef HEADER_X509V3_H + +int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); +CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, + int allorfirst, + STACK_OF(GENERAL_NAMES) + *receiptList, STACK_OF(GENERAL_NAMES) + *receiptsTo); +int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); +void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, + ASN1_STRING **pcid, + int *pallorfirst, + STACK_OF(GENERAL_NAMES) **plist, + STACK_OF(GENERAL_NAMES) **prto); +# endif +int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pukm); +STACK_OF(CMS_RecipientEncryptedKey) +*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); + +int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, + X509_ALGOR **pubalg, + ASN1_BIT_STRING **pubkey, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); + +int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); + +int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, + ASN1_OCTET_STRING **keyid, + ASN1_GENERALIZEDTIME **tm, + CMS_OtherKeyAttribute **other, + X509_NAME **issuer, ASN1_INTEGER **sno); +int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, + X509 *cert); +int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); +EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); +int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri, + CMS_RecipientEncryptedKey *rek); + +int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, + ASN1_OCTET_STRING *ukm, int keylen); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_CMS_strings(void); + +/* Error codes for the CMS functions. */ + +/* Function codes. */ +# define CMS_F_CHECK_CONTENT 99 +# define CMS_F_CMS_ADD0_CERT 164 +# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 +# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 +# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 +# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 +# define CMS_F_CMS_ADD1_SIGNER 102 +# define CMS_F_CMS_ADD1_SIGNINGTIME 103 +# define CMS_F_CMS_COMPRESS 104 +# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 +# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 +# define CMS_F_CMS_COPY_CONTENT 107 +# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 +# define CMS_F_CMS_DATA 109 +# define CMS_F_CMS_DATAFINAL 110 +# define CMS_F_CMS_DATAINIT 111 +# define CMS_F_CMS_DECRYPT 112 +# define CMS_F_CMS_DECRYPT_SET1_KEY 113 +# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 +# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 +# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 +# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 +# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 +# define CMS_F_CMS_DIGEST_VERIFY 118 +# define CMS_F_CMS_ENCODE_RECEIPT 161 +# define CMS_F_CMS_ENCRYPT 119 +# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 +# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 +# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 +# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 +# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 +# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 +# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 +# define CMS_F_CMS_ENV_ASN1_CTRL 171 +# define CMS_F_CMS_FINAL 127 +# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 +# define CMS_F_CMS_GET0_CONTENT 129 +# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 +# define CMS_F_CMS_GET0_ENVELOPED 131 +# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 +# define CMS_F_CMS_GET0_SIGNED 133 +# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 +# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 +# define CMS_F_CMS_RECEIPT_VERIFY 160 +# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 +# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 +# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 +# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 +# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 +# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 +# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 +# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 +# define CMS_F_CMS_SD_ASN1_CTRL 170 +# define CMS_F_CMS_SET1_IAS 176 +# define CMS_F_CMS_SET1_KEYID 177 +# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 +# define CMS_F_CMS_SET_DETACHED 147 +# define CMS_F_CMS_SIGN 148 +# define CMS_F_CMS_SIGNED_DATA_INIT 149 +# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 +# define CMS_F_CMS_SIGNERINFO_SIGN 151 +# define CMS_F_CMS_SIGNERINFO_VERIFY 152 +# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 +# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 +# define CMS_F_CMS_SIGN_RECEIPT 163 +# define CMS_F_CMS_STREAM 155 +# define CMS_F_CMS_UNCOMPRESS 156 +# define CMS_F_CMS_VERIFY 157 + +/* Reason codes. */ +# define CMS_R_ADD_SIGNER_ERROR 99 +# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 +# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 +# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 +# define CMS_R_CIPHER_INITIALISATION_ERROR 101 +# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 +# define CMS_R_CMS_DATAFINAL_ERROR 103 +# define CMS_R_CMS_LIB 104 +# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 +# define CMS_R_CONTENT_NOT_FOUND 105 +# define CMS_R_CONTENT_TYPE_MISMATCH 171 +# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 +# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 +# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 +# define CMS_R_CONTENT_VERIFY_ERROR 109 +# define CMS_R_CTRL_ERROR 110 +# define CMS_R_CTRL_FAILURE 111 +# define CMS_R_DECRYPT_ERROR 112 +# define CMS_R_DIGEST_ERROR 161 +# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 +# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 +# define CMS_R_ERROR_SETTING_KEY 115 +# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 +# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 +# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 +# define CMS_R_INVALID_KEY_LENGTH 118 +# define CMS_R_MD_BIO_INIT_ERROR 119 +# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 +# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 +# define CMS_R_MSGSIGDIGEST_ERROR 172 +# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 +# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 +# define CMS_R_NEED_ONE_SIGNER 164 +# define CMS_R_NOT_A_SIGNED_RECEIPT 165 +# define CMS_R_NOT_ENCRYPTED_DATA 122 +# define CMS_R_NOT_KEK 123 +# define CMS_R_NOT_KEY_AGREEMENT 181 +# define CMS_R_NOT_KEY_TRANSPORT 124 +# define CMS_R_NOT_PWRI 177 +# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 +# define CMS_R_NO_CIPHER 126 +# define CMS_R_NO_CONTENT 127 +# define CMS_R_NO_CONTENT_TYPE 173 +# define CMS_R_NO_DEFAULT_DIGEST 128 +# define CMS_R_NO_DIGEST_SET 129 +# define CMS_R_NO_KEY 130 +# define CMS_R_NO_KEY_OR_CERT 174 +# define CMS_R_NO_MATCHING_DIGEST 131 +# define CMS_R_NO_MATCHING_RECIPIENT 132 +# define CMS_R_NO_MATCHING_SIGNATURE 166 +# define CMS_R_NO_MSGSIGDIGEST 167 +# define CMS_R_NO_PASSWORD 178 +# define CMS_R_NO_PRIVATE_KEY 133 +# define CMS_R_NO_PUBLIC_KEY 134 +# define CMS_R_NO_RECEIPT_REQUEST 168 +# define CMS_R_NO_SIGNERS 135 +# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 +# define CMS_R_RECEIPT_DECODE_ERROR 169 +# define CMS_R_RECIPIENT_ERROR 137 +# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 +# define CMS_R_SIGNFINAL_ERROR 139 +# define CMS_R_SMIME_TEXT_ERROR 140 +# define CMS_R_STORE_INIT_ERROR 141 +# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 +# define CMS_R_TYPE_NOT_DATA 143 +# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 +# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 +# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 +# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 +# define CMS_R_UNKNOWN_CIPHER 148 +# define CMS_R_UNKNOWN_DIGEST_ALGORIHM 149 +# define CMS_R_UNKNOWN_ID 150 +# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 +# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 +# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 +# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 +# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 +# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE 155 +# define CMS_R_UNSUPPORTED_TYPE 156 +# define CMS_R_UNWRAP_ERROR 157 +# define CMS_R_UNWRAP_FAILURE 180 +# define CMS_R_VERIFICATION_FAILURE 158 +# define CMS_R_WRAP_ERROR 159 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/comp.h b/External/include64/openssl/comp.h new file mode 100644 index 00000000..60a07340 --- /dev/null +++ b/External/include64/openssl/comp.h @@ -0,0 +1,83 @@ + +#ifndef HEADER_COMP_H +# define HEADER_COMP_H + +# include + +# ifdef OPENSSL_NO_COMP +# error COMP is disabled. +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct comp_ctx_st COMP_CTX; + +typedef struct comp_method_st { + int type; /* NID for compression library */ + const char *name; /* A text string to identify the library */ + int (*init) (COMP_CTX *ctx); + void (*finish) (COMP_CTX *ctx); + int (*compress) (COMP_CTX *ctx, + unsigned char *out, unsigned int olen, + unsigned char *in, unsigned int ilen); + int (*expand) (COMP_CTX *ctx, + unsigned char *out, unsigned int olen, + unsigned char *in, unsigned int ilen); + /* + * The following two do NOTHING, but are kept for backward compatibility + */ + long (*ctrl) (void); + long (*callback_ctrl) (void); +} COMP_METHOD; + +struct comp_ctx_st { + COMP_METHOD *meth; + unsigned long compress_in; + unsigned long compress_out; + unsigned long expand_in; + unsigned long expand_out; + CRYPTO_EX_DATA ex_data; +}; + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +COMP_METHOD *COMP_rle(void); +COMP_METHOD *COMP_zlib(void); +void COMP_zlib_cleanup(void); + +# ifdef HEADER_BIO_H +# ifdef ZLIB +BIO_METHOD *BIO_f_zlib(void); +# endif +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_COMP_strings(void); + +/* Error codes for the COMP functions. */ + +/* Function codes. */ +# define COMP_F_BIO_ZLIB_FLUSH 99 +# define COMP_F_BIO_ZLIB_NEW 100 +# define COMP_F_BIO_ZLIB_READ 101 +# define COMP_F_BIO_ZLIB_WRITE 102 + +/* Reason codes. */ +# define COMP_R_ZLIB_DEFLATE_ERROR 99 +# define COMP_R_ZLIB_INFLATE_ERROR 100 +# define COMP_R_ZLIB_NOT_SUPPORTED 101 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/conf.h b/External/include64/openssl/conf.h new file mode 100644 index 00000000..8d926d5d --- /dev/null +++ b/External/include64/openssl/conf.h @@ -0,0 +1,267 @@ +/* crypto/conf/conf.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_CONF_H +# define HEADER_CONF_H + +# include +# include +# include +# include +# include + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + char *section; + char *name; + char *value; +} CONF_VALUE; + +DECLARE_STACK_OF(CONF_VALUE) +DECLARE_LHASH_OF(CONF_VALUE); + +struct conf_st; +struct conf_method_st; +typedef struct conf_method_st CONF_METHOD; + +struct conf_method_st { + const char *name; + CONF *(*create) (CONF_METHOD *meth); + int (*init) (CONF *conf); + int (*destroy) (CONF *conf); + int (*destroy_data) (CONF *conf); + int (*load_bio) (CONF *conf, BIO *bp, long *eline); + int (*dump) (const CONF *conf, BIO *bp); + int (*is_number) (const CONF *conf, char c); + int (*to_int) (const CONF *conf, char c); + int (*load) (CONF *conf, const char *name, long *eline); +}; + +/* Module definitions */ + +typedef struct conf_imodule_st CONF_IMODULE; +typedef struct conf_module_st CONF_MODULE; + +DECLARE_STACK_OF(CONF_MODULE) +DECLARE_STACK_OF(CONF_IMODULE) + +/* DSO module function typedefs */ +typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); +typedef void conf_finish_func (CONF_IMODULE *md); + +# define CONF_MFLAGS_IGNORE_ERRORS 0x1 +# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 +# define CONF_MFLAGS_SILENT 0x4 +# define CONF_MFLAGS_NO_DSO 0x8 +# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 +# define CONF_MFLAGS_DEFAULT_SECTION 0x20 + +int CONF_set_default_method(CONF_METHOD *meth); +void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); +LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, + long *eline); +# ifndef OPENSSL_NO_FP_API +LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, + long *eline); +# endif +LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, + long *eline); +STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, + const char *section); +char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, + const char *name); +long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, + const char *name); +void CONF_free(LHASH_OF(CONF_VALUE) *conf); +int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); +int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); + +void OPENSSL_config(const char *config_name); +void OPENSSL_no_config(void); + +/* + * New conf code. The semantics are different from the functions above. If + * that wasn't the case, the above functions would have been replaced + */ + +struct conf_st { + CONF_METHOD *meth; + void *meth_data; + LHASH_OF(CONF_VALUE) *data; +}; + +CONF *NCONF_new(CONF_METHOD *meth); +CONF_METHOD *NCONF_default(void); +CONF_METHOD *NCONF_WIN32(void); +# if 0 /* Just to give you an idea of what I have in + * mind */ +CONF_METHOD *NCONF_XML(void); +# endif +void NCONF_free(CONF *conf); +void NCONF_free_data(CONF *conf); + +int NCONF_load(CONF *conf, const char *file, long *eline); +# ifndef OPENSSL_NO_FP_API +int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); +# endif +int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); +STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, + const char *section); +char *NCONF_get_string(const CONF *conf, const char *group, const char *name); +int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, + long *result); +int NCONF_dump_fp(const CONF *conf, FILE *out); +int NCONF_dump_bio(const CONF *conf, BIO *out); + +# if 0 /* The following function has no error + * checking, and should therefore be avoided */ +long NCONF_get_number(CONF *conf, char *group, char *name); +# else +# define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) +# endif + +/* Module functions */ + +int CONF_modules_load(const CONF *cnf, const char *appname, + unsigned long flags); +int CONF_modules_load_file(const char *filename, const char *appname, + unsigned long flags); +void CONF_modules_unload(int all); +void CONF_modules_finish(void); +void CONF_modules_free(void); +int CONF_module_add(const char *name, conf_init_func *ifunc, + conf_finish_func *ffunc); + +const char *CONF_imodule_get_name(const CONF_IMODULE *md); +const char *CONF_imodule_get_value(const CONF_IMODULE *md); +void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); +void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); +CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); +unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); +void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); +void *CONF_module_get_usr_data(CONF_MODULE *pmod); +void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); + +char *CONF_get1_default_config_file(void); + +int CONF_parse_list(const char *list, int sep, int nospc, + int (*list_cb) (const char *elem, int len, void *usr), + void *arg); + +void OPENSSL_load_builtin_modules(void); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_CONF_strings(void); + +/* Error codes for the CONF functions. */ + +/* Function codes. */ +# define CONF_F_CONF_DUMP_FP 104 +# define CONF_F_CONF_LOAD 100 +# define CONF_F_CONF_LOAD_BIO 102 +# define CONF_F_CONF_LOAD_FP 103 +# define CONF_F_CONF_MODULES_LOAD 116 +# define CONF_F_CONF_PARSE_LIST 119 +# define CONF_F_DEF_LOAD 120 +# define CONF_F_DEF_LOAD_BIO 121 +# define CONF_F_MODULE_INIT 115 +# define CONF_F_MODULE_LOAD_DSO 117 +# define CONF_F_MODULE_RUN 118 +# define CONF_F_NCONF_DUMP_BIO 105 +# define CONF_F_NCONF_DUMP_FP 106 +# define CONF_F_NCONF_GET_NUMBER 107 +# define CONF_F_NCONF_GET_NUMBER_E 112 +# define CONF_F_NCONF_GET_SECTION 108 +# define CONF_F_NCONF_GET_STRING 109 +# define CONF_F_NCONF_LOAD 113 +# define CONF_F_NCONF_LOAD_BIO 110 +# define CONF_F_NCONF_LOAD_FP 114 +# define CONF_F_NCONF_NEW 111 +# define CONF_F_STR_COPY 101 + +/* Reason codes. */ +# define CONF_R_ERROR_LOADING_DSO 110 +# define CONF_R_LIST_CANNOT_BE_NULL 115 +# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 +# define CONF_R_MISSING_EQUAL_SIGN 101 +# define CONF_R_MISSING_FINISH_FUNCTION 111 +# define CONF_R_MISSING_INIT_FUNCTION 112 +# define CONF_R_MODULE_INITIALIZATION_ERROR 109 +# define CONF_R_NO_CLOSE_BRACE 102 +# define CONF_R_NO_CONF 105 +# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 +# define CONF_R_NO_SECTION 107 +# define CONF_R_NO_SUCH_FILE 114 +# define CONF_R_NO_VALUE 108 +# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 +# define CONF_R_UNKNOWN_MODULE_NAME 113 +# define CONF_R_VARIABLE_HAS_NO_VALUE 104 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/conf_api.h b/External/include64/openssl/conf_api.h new file mode 100644 index 00000000..e478f7df --- /dev/null +++ b/External/include64/openssl/conf_api.h @@ -0,0 +1,89 @@ +/* conf_api.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_CONF_API_H +# define HEADER_CONF_API_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Up until OpenSSL 0.9.5a, this was new_section */ +CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); +/* Up until OpenSSL 0.9.5a, this was get_section */ +CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); +/* Up until OpenSSL 0.9.5a, this was CONF_get_section */ +STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, + const char *section); + +int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); +char *_CONF_get_string(const CONF *conf, const char *section, + const char *name); +long _CONF_get_number(const CONF *conf, const char *section, + const char *name); + +int _CONF_new_data(CONF *conf); +void _CONF_free_data(CONF *conf); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/crypto.h b/External/include64/openssl/crypto.h new file mode 100644 index 00000000..6c644ce1 --- /dev/null +++ b/External/include64/openssl/crypto.h @@ -0,0 +1,661 @@ +/* crypto/crypto.h */ +/* ==================================================================== + * Copyright (c) 1998-2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * ECDH support in OpenSSL originally developed by + * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. + */ + +#ifndef HEADER_CRYPTO_H +# define HEADER_CRYPTO_H + +# include + +# include + +# ifndef OPENSSL_NO_FP_API +# include +# endif + +# include +# include +# include +# include + +# ifdef CHARSET_EBCDIC +# include +# endif + +/* + * Resolve problems on some operating systems with symbol names that clash + * one way or another + */ +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Backward compatibility to SSLeay */ +/* + * This is more to be used to check the correct DLL is being used in the MS + * world. + */ +# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER +# define SSLEAY_VERSION 0 +/* #define SSLEAY_OPTIONS 1 no longer supported */ +# define SSLEAY_CFLAGS 2 +# define SSLEAY_BUILT_ON 3 +# define SSLEAY_PLATFORM 4 +# define SSLEAY_DIR 5 + +/* Already declared in ossl_typ.h */ +# if 0 +typedef struct crypto_ex_data_st CRYPTO_EX_DATA; +/* Called when a new object is created */ +typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +/* Called when an object is free()ed */ +typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +/* Called when we need to dup an object */ +typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, + void *from_d, int idx, long argl, void *argp); +# endif + +/* A generic structure to pass assorted data in a expandable way */ +typedef struct openssl_item_st { + int code; + void *value; /* Not used for flag attributes */ + size_t value_size; /* Max size of value for output, length for + * input */ + size_t *value_length; /* Returned length of value for output */ +} OPENSSL_ITEM; + +/* + * When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock + * names in cryptlib.c + */ + +# define CRYPTO_LOCK_ERR 1 +# define CRYPTO_LOCK_EX_DATA 2 +# define CRYPTO_LOCK_X509 3 +# define CRYPTO_LOCK_X509_INFO 4 +# define CRYPTO_LOCK_X509_PKEY 5 +# define CRYPTO_LOCK_X509_CRL 6 +# define CRYPTO_LOCK_X509_REQ 7 +# define CRYPTO_LOCK_DSA 8 +# define CRYPTO_LOCK_RSA 9 +# define CRYPTO_LOCK_EVP_PKEY 10 +# define CRYPTO_LOCK_X509_STORE 11 +# define CRYPTO_LOCK_SSL_CTX 12 +# define CRYPTO_LOCK_SSL_CERT 13 +# define CRYPTO_LOCK_SSL_SESSION 14 +# define CRYPTO_LOCK_SSL_SESS_CERT 15 +# define CRYPTO_LOCK_SSL 16 +# define CRYPTO_LOCK_SSL_METHOD 17 +# define CRYPTO_LOCK_RAND 18 +# define CRYPTO_LOCK_RAND2 19 +# define CRYPTO_LOCK_MALLOC 20 +# define CRYPTO_LOCK_BIO 21 +# define CRYPTO_LOCK_GETHOSTBYNAME 22 +# define CRYPTO_LOCK_GETSERVBYNAME 23 +# define CRYPTO_LOCK_READDIR 24 +# define CRYPTO_LOCK_RSA_BLINDING 25 +# define CRYPTO_LOCK_DH 26 +# define CRYPTO_LOCK_MALLOC2 27 +# define CRYPTO_LOCK_DSO 28 +# define CRYPTO_LOCK_DYNLOCK 29 +# define CRYPTO_LOCK_ENGINE 30 +# define CRYPTO_LOCK_UI 31 +# define CRYPTO_LOCK_ECDSA 32 +# define CRYPTO_LOCK_EC 33 +# define CRYPTO_LOCK_ECDH 34 +# define CRYPTO_LOCK_BN 35 +# define CRYPTO_LOCK_EC_PRE_COMP 36 +# define CRYPTO_LOCK_STORE 37 +# define CRYPTO_LOCK_COMP 38 +# define CRYPTO_LOCK_FIPS 39 +# define CRYPTO_LOCK_FIPS2 40 +# define CRYPTO_NUM_LOCKS 41 + +# define CRYPTO_LOCK 1 +# define CRYPTO_UNLOCK 2 +# define CRYPTO_READ 4 +# define CRYPTO_WRITE 8 + +# ifndef OPENSSL_NO_LOCKING +# ifndef CRYPTO_w_lock +# define CRYPTO_w_lock(type) \ + CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) +# define CRYPTO_w_unlock(type) \ + CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) +# define CRYPTO_r_lock(type) \ + CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__) +# define CRYPTO_r_unlock(type) \ + CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__) +# define CRYPTO_add(addr,amount,type) \ + CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__) +# endif +# else +# define CRYPTO_w_lock(a) +# define CRYPTO_w_unlock(a) +# define CRYPTO_r_lock(a) +# define CRYPTO_r_unlock(a) +# define CRYPTO_add(a,b,c) ((*(a))+=(b)) +# endif + +/* + * Some applications as well as some parts of OpenSSL need to allocate and + * deallocate locks in a dynamic fashion. The following typedef makes this + * possible in a type-safe manner. + */ +/* struct CRYPTO_dynlock_value has to be defined by the application. */ +typedef struct { + int references; + struct CRYPTO_dynlock_value *data; +} CRYPTO_dynlock; + +/* + * The following can be used to detect memory leaks in the SSLeay library. It + * used, it turns on malloc checking + */ + +# define CRYPTO_MEM_CHECK_OFF 0x0/* an enume */ +# define CRYPTO_MEM_CHECK_ON 0x1/* a bit */ +# define CRYPTO_MEM_CHECK_ENABLE 0x2/* a bit */ +# define CRYPTO_MEM_CHECK_DISABLE 0x3/* an enume */ + +/* + * The following are bit values to turn on or off options connected to the + * malloc checking functionality + */ + +/* Adds time to the memory checking information */ +# define V_CRYPTO_MDEBUG_TIME 0x1/* a bit */ +/* Adds thread number to the memory checking information */ +# define V_CRYPTO_MDEBUG_THREAD 0x2/* a bit */ + +# define V_CRYPTO_MDEBUG_ALL (V_CRYPTO_MDEBUG_TIME | V_CRYPTO_MDEBUG_THREAD) + +/* predec of the BIO type */ +typedef struct bio_st BIO_dummy; + +struct crypto_ex_data_st { + STACK_OF(void) *sk; + /* gcc is screwing up this data structure :-( */ + int dummy; +}; +DECLARE_STACK_OF(void) + +/* + * This stuff is basically class callback functions The current classes are + * SSL_CTX, SSL, SSL_SESSION, and a few more + */ + +typedef struct crypto_ex_data_func_st { + long argl; /* Arbitary long */ + void *argp; /* Arbitary void * */ + CRYPTO_EX_new *new_func; + CRYPTO_EX_free *free_func; + CRYPTO_EX_dup *dup_func; +} CRYPTO_EX_DATA_FUNCS; + +DECLARE_STACK_OF(CRYPTO_EX_DATA_FUNCS) + +/* + * Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA + * entry. + */ + +# define CRYPTO_EX_INDEX_BIO 0 +# define CRYPTO_EX_INDEX_SSL 1 +# define CRYPTO_EX_INDEX_SSL_CTX 2 +# define CRYPTO_EX_INDEX_SSL_SESSION 3 +# define CRYPTO_EX_INDEX_X509_STORE 4 +# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 +# define CRYPTO_EX_INDEX_RSA 6 +# define CRYPTO_EX_INDEX_DSA 7 +# define CRYPTO_EX_INDEX_DH 8 +# define CRYPTO_EX_INDEX_ENGINE 9 +# define CRYPTO_EX_INDEX_X509 10 +# define CRYPTO_EX_INDEX_UI 11 +# define CRYPTO_EX_INDEX_ECDSA 12 +# define CRYPTO_EX_INDEX_ECDH 13 +# define CRYPTO_EX_INDEX_COMP 14 +# define CRYPTO_EX_INDEX_STORE 15 + +/* + * Dynamically assigned indexes start from this value (don't use directly, + * use via CRYPTO_ex_data_new_class). + */ +# define CRYPTO_EX_INDEX_USER 100 + +/* + * This is the default callbacks, but we can have others as well: this is + * needed in Win32 where the application malloc and the library malloc may + * not be the same. + */ +# define CRYPTO_malloc_init() CRYPTO_set_mem_functions(\ + malloc, realloc, free) + +# if defined CRYPTO_MDEBUG_ALL || defined CRYPTO_MDEBUG_TIME || defined CRYPTO_MDEBUG_THREAD +# ifndef CRYPTO_MDEBUG /* avoid duplicate #define */ +# define CRYPTO_MDEBUG +# endif +# endif + +/* + * Set standard debugging functions (not done by default unless CRYPTO_MDEBUG + * is defined) + */ +# define CRYPTO_malloc_debug_init() do {\ + CRYPTO_set_mem_debug_functions(\ + CRYPTO_dbg_malloc,\ + CRYPTO_dbg_realloc,\ + CRYPTO_dbg_free,\ + CRYPTO_dbg_set_options,\ + CRYPTO_dbg_get_options);\ + } while(0) + +int CRYPTO_mem_ctrl(int mode); +int CRYPTO_is_mem_check_on(void); + +/* for applications */ +# define MemCheck_start() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON) +# define MemCheck_stop() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF) + +/* for library-internal use */ +# define MemCheck_on() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ENABLE) +# define MemCheck_off() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE) +# define is_MemCheck_on() CRYPTO_is_mem_check_on() + +# define OPENSSL_malloc(num) CRYPTO_malloc((int)num,__FILE__,__LINE__) +# define OPENSSL_strdup(str) CRYPTO_strdup((str),__FILE__,__LINE__) +# define OPENSSL_realloc(addr,num) \ + CRYPTO_realloc((char *)addr,(int)num,__FILE__,__LINE__) +# define OPENSSL_realloc_clean(addr,old_num,num) \ + CRYPTO_realloc_clean(addr,old_num,num,__FILE__,__LINE__) +# define OPENSSL_remalloc(addr,num) \ + CRYPTO_remalloc((char **)addr,(int)num,__FILE__,__LINE__) +# define OPENSSL_freeFunc CRYPTO_free +# define OPENSSL_free(addr) CRYPTO_free(addr) + +# define OPENSSL_malloc_locked(num) \ + CRYPTO_malloc_locked((int)num,__FILE__,__LINE__) +# define OPENSSL_free_locked(addr) CRYPTO_free_locked(addr) + +const char *SSLeay_version(int type); +unsigned long SSLeay(void); + +int OPENSSL_issetugid(void); + +/* An opaque type representing an implementation of "ex_data" support */ +typedef struct st_CRYPTO_EX_DATA_IMPL CRYPTO_EX_DATA_IMPL; +/* Return an opaque pointer to the current "ex_data" implementation */ +const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void); +/* Sets the "ex_data" implementation to be used (if it's not too late) */ +int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i); +/* Get a new "ex_data" class, and return the corresponding "class_index" */ +int CRYPTO_ex_data_new_class(void); +/* Within a given class, get/register a new index */ +int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, + CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +/* + * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a + * given class (invokes whatever per-class callbacks are applicable) + */ +int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); +int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, + CRYPTO_EX_DATA *from); +void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); +/* + * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular + * index (relative to the class type involved) + */ +int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); +void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); +/* + * This function cleans up all "ex_data" state. It mustn't be called under + * potential race-conditions. + */ +void CRYPTO_cleanup_all_ex_data(void); + +int CRYPTO_get_new_lockid(char *name); + +int CRYPTO_num_locks(void); /* return CRYPTO_NUM_LOCKS (shared libs!) */ +void CRYPTO_lock(int mode, int type, const char *file, int line); +void CRYPTO_set_locking_callback(void (*func) (int mode, int type, + const char *file, int line)); +void (*CRYPTO_get_locking_callback(void)) (int mode, int type, + const char *file, int line); +void CRYPTO_set_add_lock_callback(int (*func) + (int *num, int mount, int type, + const char *file, int line)); +int (*CRYPTO_get_add_lock_callback(void)) (int *num, int mount, int type, + const char *file, int line); + +/* Don't use this structure directly. */ +typedef struct crypto_threadid_st { + void *ptr; + unsigned long val; +} CRYPTO_THREADID; +/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ +void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val); +void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr); +int CRYPTO_THREADID_set_callback(void (*threadid_func) (CRYPTO_THREADID *)); +void (*CRYPTO_THREADID_get_callback(void)) (CRYPTO_THREADID *); +void CRYPTO_THREADID_current(CRYPTO_THREADID *id); +int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b); +void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src); +unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); +# ifndef OPENSSL_NO_DEPRECATED +void CRYPTO_set_id_callback(unsigned long (*func) (void)); +unsigned long (*CRYPTO_get_id_callback(void)) (void); +unsigned long CRYPTO_thread_id(void); +# endif + +const char *CRYPTO_get_lock_name(int type); +int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file, + int line); + +int CRYPTO_get_new_dynlockid(void); +void CRYPTO_destroy_dynlockid(int i); +struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i); +void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value + *(*dyn_create_function) (const char + *file, + int line)); +void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function) + (int mode, + struct CRYPTO_dynlock_value *l, + const char *file, int line)); +void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function) + (struct CRYPTO_dynlock_value *l, + const char *file, int line)); +struct CRYPTO_dynlock_value +*(*CRYPTO_get_dynlock_create_callback(void)) (const char *file, int line); +void (*CRYPTO_get_dynlock_lock_callback(void)) (int mode, + struct CRYPTO_dynlock_value + *l, const char *file, + int line); +void (*CRYPTO_get_dynlock_destroy_callback(void)) (struct CRYPTO_dynlock_value + *l, const char *file, + int line); + +/* + * CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- call + * the latter last if you need different functions + */ +int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t), + void (*f) (void *)); +int CRYPTO_set_locked_mem_functions(void *(*m) (size_t), + void (*free_func) (void *)); +int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int), + void *(*r) (void *, size_t, const char *, + int), void (*f) (void *)); +int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int), + void (*free_func) (void *)); +int CRYPTO_set_mem_debug_functions(void (*m) + (void *, int, const char *, int, int), + void (*r) (void *, void *, int, + const char *, int, int), + void (*f) (void *, int), void (*so) (long), + long (*go) (void)); +void CRYPTO_get_mem_functions(void *(**m) (size_t), + void *(**r) (void *, size_t), + void (**f) (void *)); +void CRYPTO_get_locked_mem_functions(void *(**m) (size_t), + void (**f) (void *)); +void CRYPTO_get_mem_ex_functions(void *(**m) (size_t, const char *, int), + void *(**r) (void *, size_t, const char *, + int), void (**f) (void *)); +void CRYPTO_get_locked_mem_ex_functions(void + *(**m) (size_t, const char *, int), + void (**f) (void *)); +void CRYPTO_get_mem_debug_functions(void (**m) + (void *, int, const char *, int, int), + void (**r) (void *, void *, int, + const char *, int, int), + void (**f) (void *, int), + void (**so) (long), long (**go) (void)); + +void *CRYPTO_malloc_locked(int num, const char *file, int line); +void CRYPTO_free_locked(void *ptr); +void *CRYPTO_malloc(int num, const char *file, int line); +char *CRYPTO_strdup(const char *str, const char *file, int line); +void CRYPTO_free(void *ptr); +void *CRYPTO_realloc(void *addr, int num, const char *file, int line); +void *CRYPTO_realloc_clean(void *addr, int old_num, int num, const char *file, + int line); +void *CRYPTO_remalloc(void *addr, int num, const char *file, int line); + +void OPENSSL_cleanse(void *ptr, size_t len); + +void CRYPTO_set_mem_debug_options(long bits); +long CRYPTO_get_mem_debug_options(void); + +# define CRYPTO_push_info(info) \ + CRYPTO_push_info_(info, __FILE__, __LINE__); +int CRYPTO_push_info_(const char *info, const char *file, int line); +int CRYPTO_pop_info(void); +int CRYPTO_remove_all_info(void); + +/* + * Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro; + * used as default in CRYPTO_MDEBUG compilations): + */ +/*- + * The last argument has the following significance: + * + * 0: called before the actual memory allocation has taken place + * 1: called after the actual memory allocation has taken place + */ +void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line, + int before_p); +void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, const char *file, + int line, int before_p); +void CRYPTO_dbg_free(void *addr, int before_p); +/*- + * Tell the debugging code about options. By default, the following values + * apply: + * + * 0: Clear all options. + * V_CRYPTO_MDEBUG_TIME (1): Set the "Show Time" option. + * V_CRYPTO_MDEBUG_THREAD (2): Set the "Show Thread Number" option. + * V_CRYPTO_MDEBUG_ALL (3): 1 + 2 + */ +void CRYPTO_dbg_set_options(long bits); +long CRYPTO_dbg_get_options(void); + +# ifndef OPENSSL_NO_FP_API +void CRYPTO_mem_leaks_fp(FILE *); +# endif +void CRYPTO_mem_leaks(struct bio_st *bio); +/* unsigned long order, char *file, int line, int num_bytes, char *addr */ +typedef void *CRYPTO_MEM_LEAK_CB (unsigned long, const char *, int, int, + void *); +void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb); + +/* die if we have to */ +void OpenSSLDie(const char *file, int line, const char *assertion); +# define OPENSSL_assert(e) (void)((e) ? 0 : (OpenSSLDie(__FILE__, __LINE__, #e),1)) + +unsigned long *OPENSSL_ia32cap_loc(void); +# define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc())) +int OPENSSL_isservice(void); + +int FIPS_mode(void); +int FIPS_mode_set(int r); + +void OPENSSL_init(void); + +# define fips_md_init(alg) fips_md_init_ctx(alg, alg) + +# ifdef OPENSSL_FIPS +# define fips_md_init_ctx(alg, cx) \ + int alg##_Init(cx##_CTX *c) \ + { \ + if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \ + "Low level API call to digest " #alg " forbidden in FIPS mode!"); \ + return private_##alg##_Init(c); \ + } \ + int private_##alg##_Init(cx##_CTX *c) + +# define fips_cipher_abort(alg) \ + if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \ + "Low level API call to cipher " #alg " forbidden in FIPS mode!") + +# else +# define fips_md_init_ctx(alg, cx) \ + int alg##_Init(cx##_CTX *c) +# define fips_cipher_abort(alg) while(0) +# endif + +/* + * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. + * It takes an amount of time dependent on |len|, but independent of the + * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements + * into a defined order as the return value when a != b is undefined, other + * than to be non-zero. + */ +int CRYPTO_memcmp(const volatile void *a, const volatile void *b, size_t len); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_CRYPTO_strings(void); + +/* Error codes for the CRYPTO functions. */ + +/* Function codes. */ +# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 +# define CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID 103 +# define CRYPTO_F_CRYPTO_GET_NEW_LOCKID 101 +# define CRYPTO_F_CRYPTO_SET_EX_DATA 102 +# define CRYPTO_F_DEF_ADD_INDEX 104 +# define CRYPTO_F_DEF_GET_CLASS 105 +# define CRYPTO_F_FIPS_MODE_SET 109 +# define CRYPTO_F_INT_DUP_EX_DATA 106 +# define CRYPTO_F_INT_FREE_EX_DATA 107 +# define CRYPTO_F_INT_NEW_EX_DATA 108 + +/* Reason codes. */ +# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 +# define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK 100 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/des.h b/External/include64/openssl/des.h new file mode 100644 index 00000000..1b40144e --- /dev/null +++ b/External/include64/openssl/des.h @@ -0,0 +1,257 @@ +/* crypto/des/des.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_NEW_DES_H +# define HEADER_NEW_DES_H + +# include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG + * (via openssl/opensslconf.h */ + +# ifdef OPENSSL_NO_DES +# error DES is disabled. +# endif + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef unsigned char DES_cblock[8]; +typedef /* const */ unsigned char const_DES_cblock[8]; +/* + * With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * and + * const_DES_cblock * are incompatible pointer types. + */ + +typedef struct DES_ks { + union { + DES_cblock cblock; + /* + * make sure things are correct size on machines with 8 byte longs + */ + DES_LONG deslong[2]; + } ks[16]; +} DES_key_schedule; + +# ifndef OPENSSL_DISABLE_OLD_DES_SUPPORT +# ifndef OPENSSL_ENABLE_OLD_DES_SUPPORT +# define OPENSSL_ENABLE_OLD_DES_SUPPORT +# endif +# endif + +# ifdef OPENSSL_ENABLE_OLD_DES_SUPPORT +# include +# endif + +# define DES_KEY_SZ (sizeof(DES_cblock)) +# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) + +# define DES_ENCRYPT 1 +# define DES_DECRYPT 0 + +# define DES_CBC_MODE 0 +# define DES_PCBC_MODE 1 + +# define DES_ecb2_encrypt(i,o,k1,k2,e) \ + DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) + +# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ + DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) + +# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ + DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) + +# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ + DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) + +OPENSSL_DECLARE_GLOBAL(int, DES_check_key); /* defaults to false */ +# define DES_check_key OPENSSL_GLOBAL_REF(DES_check_key) +OPENSSL_DECLARE_GLOBAL(int, DES_rw_mode); /* defaults to DES_PCBC_MODE */ +# define DES_rw_mode OPENSSL_GLOBAL_REF(DES_rw_mode) + +const char *DES_options(void); +void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, + DES_key_schedule *ks1, DES_key_schedule *ks2, + DES_key_schedule *ks3, int enc); +DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, + long length, DES_key_schedule *schedule, + const_DES_cblock *ivec); +/* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ +void DES_cbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, const_DES_cblock *inw, + const_DES_cblock *outw, int enc); +void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, + DES_key_schedule *ks, int enc); + +/* + * This is the DES encryption function that gets called by just about every + * other DES routine in the library. You should not use this function except + * to implement 'modes' of DES. I say this because the functions that call + * this routine do the conversion from 'char *' to long, and this needs to be + * done to make sure 'non-aligned' memory access do not occur. The + * characters are loaded 'little endian'. Data is a pointer to 2 unsigned + * long's and ks is the DES_key_schedule to use. enc, is non zero specifies + * encryption, zero if decryption. + */ +void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); + +/* + * This functions is the same as DES_encrypt1() except that the DES initial + * permutation (IP) and final permutation (FP) have been left out. As for + * DES_encrypt1(), you should not use this function. It is used by the + * routines in the library that implement triple DES. IP() DES_encrypt2() + * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() + * DES_encrypt1() DES_encrypt1() except faster :-). + */ +void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc); + +void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3); +void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3); +void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, + long length, + DES_key_schedule *ks1, DES_key_schedule *ks2, + DES_key_schedule *ks3, DES_cblock *ivec, int enc); +void DES_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out, + long length, + DES_key_schedule *ks1, DES_key_schedule *ks2, + DES_key_schedule *ks3, + DES_cblock *ivec1, DES_cblock *ivec2, int enc); +void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3, + DES_cblock *ivec, int *num, int enc); +void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out, + int numbits, long length, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3, + DES_cblock *ivec, int enc); +void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3, + DES_cblock *ivec, int *num); +# if 0 +void DES_xwhite_in2out(const_DES_cblock *DES_key, const_DES_cblock *in_white, + DES_cblock *out_white); +# endif + +int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched, + DES_cblock *iv); +int DES_enc_write(int fd, const void *buf, int len, DES_key_schedule *sched, + DES_cblock *iv); +char *DES_fcrypt(const char *buf, const char *salt, char *ret); +char *DES_crypt(const char *buf, const char *salt); +void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, + long length, DES_key_schedule *schedule, + DES_cblock *ivec); +void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], + long length, int out_count, DES_cblock *seed); +int DES_random_key(DES_cblock *ret); +void DES_set_odd_parity(DES_cblock *key); +int DES_check_key_parity(const_DES_cblock *key); +int DES_is_weak_key(const_DES_cblock *key); +/* + * DES_set_key (= set_key = DES_key_sched = key_sched) calls + * DES_set_key_checked if global variable DES_check_key is set, + * DES_set_key_unchecked otherwise. + */ +int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); +int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); +int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); +void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); +# ifdef OPENSSL_FIPS +void private_DES_set_key_unchecked(const_DES_cblock *key, + DES_key_schedule *schedule); +# endif +void DES_string_to_key(const char *str, DES_cblock *key); +void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); +void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int *num, int enc); +void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int *num); + +int DES_read_password(DES_cblock *key, const char *prompt, int verify); +int DES_read_2passwords(DES_cblock *key1, DES_cblock *key2, + const char *prompt, int verify); + +# define DES_fixup_key_parity DES_set_odd_parity + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/des_old.h b/External/include64/openssl/des_old.h new file mode 100644 index 00000000..ee7607a2 --- /dev/null +++ b/External/include64/openssl/des_old.h @@ -0,0 +1,497 @@ +/* crypto/des/des_old.h */ + +/*- + * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + * + * The function names in here are deprecated and are only present to + * provide an interface compatible with openssl 0.9.6 and older as + * well as libdes. OpenSSL now provides functions where "des_" has + * been replaced with "DES_" in the names, to make it possible to + * make incompatible changes that are needed for C type security and + * other stuff. + * + * This include files has two compatibility modes: + * + * - If OPENSSL_DES_LIBDES_COMPATIBILITY is defined, you get an API + * that is compatible with libdes and SSLeay. + * - If OPENSSL_DES_LIBDES_COMPATIBILITY isn't defined, you get an + * API that is compatible with OpenSSL 0.9.5x to 0.9.6x. + * + * Note that these modes break earlier snapshots of OpenSSL, where + * libdes compatibility was the only available mode or (later on) the + * prefered compatibility mode. However, after much consideration + * (and more or less violent discussions with external parties), it + * was concluded that OpenSSL should be compatible with earlier versions + * of itself before anything else. Also, in all honesty, libdes is + * an old beast that shouldn't really be used any more. + * + * Please consider starting to use the DES_ functions rather than the + * des_ ones. The des_ functions will disappear completely before + * OpenSSL 1.0! + * + * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + */ + +/* + * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project + * 2001. + */ +/* ==================================================================== + * Copyright (c) 1998-2002 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_DES_H +# define HEADER_DES_H + +# include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG */ + +# ifdef OPENSSL_NO_DES +# error DES is disabled. +# endif + +# ifndef HEADER_NEW_DES_H +# error You must include des.h, not des_old.h directly. +# endif + +# ifdef _KERBEROS_DES_H +# error replaces . +# endif + +# include + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef _ +# undef _ +# endif + +typedef unsigned char _ossl_old_des_cblock[8]; +typedef struct _ossl_old_des_ks_struct { + union { + _ossl_old_des_cblock _; + /* + * make sure things are correct size on machines with 8 byte longs + */ + DES_LONG pad[2]; + } ks; +} _ossl_old_des_key_schedule[16]; + +# ifndef OPENSSL_DES_LIBDES_COMPATIBILITY +# define des_cblock DES_cblock +# define const_des_cblock const_DES_cblock +# define des_key_schedule DES_key_schedule +# define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ + DES_ecb3_encrypt((i),(o),&(k1),&(k2),&(k3),(e)) +# define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ + DES_ede3_cbc_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(e)) +# define des_ede3_cbcm_encrypt(i,o,l,k1,k2,k3,iv1,iv2,e)\ + DES_ede3_cbcm_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv1),(iv2),(e)) +# define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ + DES_ede3_cfb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n),(e)) +# define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ + DES_ede3_ofb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n)) +# define des_options()\ + DES_options() +# define des_cbc_cksum(i,o,l,k,iv)\ + DES_cbc_cksum((i),(o),(l),&(k),(iv)) +# define des_cbc_encrypt(i,o,l,k,iv,e)\ + DES_cbc_encrypt((i),(o),(l),&(k),(iv),(e)) +# define des_ncbc_encrypt(i,o,l,k,iv,e)\ + DES_ncbc_encrypt((i),(o),(l),&(k),(iv),(e)) +# define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ + DES_xcbc_encrypt((i),(o),(l),&(k),(iv),(inw),(outw),(e)) +# define des_cfb_encrypt(i,o,n,l,k,iv,e)\ + DES_cfb_encrypt((i),(o),(n),(l),&(k),(iv),(e)) +# define des_ecb_encrypt(i,o,k,e)\ + DES_ecb_encrypt((i),(o),&(k),(e)) +# define des_encrypt1(d,k,e)\ + DES_encrypt1((d),&(k),(e)) +# define des_encrypt2(d,k,e)\ + DES_encrypt2((d),&(k),(e)) +# define des_encrypt3(d,k1,k2,k3)\ + DES_encrypt3((d),&(k1),&(k2),&(k3)) +# define des_decrypt3(d,k1,k2,k3)\ + DES_decrypt3((d),&(k1),&(k2),&(k3)) +# define des_xwhite_in2out(k,i,o)\ + DES_xwhite_in2out((k),(i),(o)) +# define des_enc_read(f,b,l,k,iv)\ + DES_enc_read((f),(b),(l),&(k),(iv)) +# define des_enc_write(f,b,l,k,iv)\ + DES_enc_write((f),(b),(l),&(k),(iv)) +# define des_fcrypt(b,s,r)\ + DES_fcrypt((b),(s),(r)) +# if 0 +# define des_crypt(b,s)\ + DES_crypt((b),(s)) +# if !defined(PERL5) && !defined(__FreeBSD__) && !defined(NeXT) && !defined(__OpenBSD__) +# define crypt(b,s)\ + DES_crypt((b),(s)) +# endif +# endif +# define des_ofb_encrypt(i,o,n,l,k,iv)\ + DES_ofb_encrypt((i),(o),(n),(l),&(k),(iv)) +# define des_pcbc_encrypt(i,o,l,k,iv,e)\ + DES_pcbc_encrypt((i),(o),(l),&(k),(iv),(e)) +# define des_quad_cksum(i,o,l,c,s)\ + DES_quad_cksum((i),(o),(l),(c),(s)) +# define des_random_seed(k)\ + _ossl_096_des_random_seed((k)) +# define des_random_key(r)\ + DES_random_key((r)) +# define des_read_password(k,p,v) \ + DES_read_password((k),(p),(v)) +# define des_read_2passwords(k1,k2,p,v) \ + DES_read_2passwords((k1),(k2),(p),(v)) +# define des_set_odd_parity(k)\ + DES_set_odd_parity((k)) +# define des_check_key_parity(k)\ + DES_check_key_parity((k)) +# define des_is_weak_key(k)\ + DES_is_weak_key((k)) +# define des_set_key(k,ks)\ + DES_set_key((k),&(ks)) +# define des_key_sched(k,ks)\ + DES_key_sched((k),&(ks)) +# define des_set_key_checked(k,ks)\ + DES_set_key_checked((k),&(ks)) +# define des_set_key_unchecked(k,ks)\ + DES_set_key_unchecked((k),&(ks)) +# define des_string_to_key(s,k)\ + DES_string_to_key((s),(k)) +# define des_string_to_2keys(s,k1,k2)\ + DES_string_to_2keys((s),(k1),(k2)) +# define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ + DES_cfb64_encrypt((i),(o),(l),&(ks),(iv),(n),(e)) +# define des_ofb64_encrypt(i,o,l,ks,iv,n)\ + DES_ofb64_encrypt((i),(o),(l),&(ks),(iv),(n)) + +# define des_ecb2_encrypt(i,o,k1,k2,e) \ + des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) + +# define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ + des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) + +# define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ + des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) + +# define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ + des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) + +# define des_check_key DES_check_key +# define des_rw_mode DES_rw_mode +# else /* libdes compatibility */ +/* + * Map all symbol names to _ossl_old_des_* form, so we avoid all clashes with + * libdes + */ +# define des_cblock _ossl_old_des_cblock +# define des_key_schedule _ossl_old_des_key_schedule +# define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ + _ossl_old_des_ecb3_encrypt((i),(o),(k1),(k2),(k3),(e)) +# define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ + _ossl_old_des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) +# define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ + _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e)) +# define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ + _ossl_old_des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n)) +# define des_options()\ + _ossl_old_des_options() +# define des_cbc_cksum(i,o,l,k,iv)\ + _ossl_old_des_cbc_cksum((i),(o),(l),(k),(iv)) +# define des_cbc_encrypt(i,o,l,k,iv,e)\ + _ossl_old_des_cbc_encrypt((i),(o),(l),(k),(iv),(e)) +# define des_ncbc_encrypt(i,o,l,k,iv,e)\ + _ossl_old_des_ncbc_encrypt((i),(o),(l),(k),(iv),(e)) +# define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ + _ossl_old_des_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e)) +# define des_cfb_encrypt(i,o,n,l,k,iv,e)\ + _ossl_old_des_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e)) +# define des_ecb_encrypt(i,o,k,e)\ + _ossl_old_des_ecb_encrypt((i),(o),(k),(e)) +# define des_encrypt(d,k,e)\ + _ossl_old_des_encrypt((d),(k),(e)) +# define des_encrypt2(d,k,e)\ + _ossl_old_des_encrypt2((d),(k),(e)) +# define des_encrypt3(d,k1,k2,k3)\ + _ossl_old_des_encrypt3((d),(k1),(k2),(k3)) +# define des_decrypt3(d,k1,k2,k3)\ + _ossl_old_des_decrypt3((d),(k1),(k2),(k3)) +# define des_xwhite_in2out(k,i,o)\ + _ossl_old_des_xwhite_in2out((k),(i),(o)) +# define des_enc_read(f,b,l,k,iv)\ + _ossl_old_des_enc_read((f),(b),(l),(k),(iv)) +# define des_enc_write(f,b,l,k,iv)\ + _ossl_old_des_enc_write((f),(b),(l),(k),(iv)) +# define des_fcrypt(b,s,r)\ + _ossl_old_des_fcrypt((b),(s),(r)) +# define des_crypt(b,s)\ + _ossl_old_des_crypt((b),(s)) +# if 0 +# define crypt(b,s)\ + _ossl_old_crypt((b),(s)) +# endif +# define des_ofb_encrypt(i,o,n,l,k,iv)\ + _ossl_old_des_ofb_encrypt((i),(o),(n),(l),(k),(iv)) +# define des_pcbc_encrypt(i,o,l,k,iv,e)\ + _ossl_old_des_pcbc_encrypt((i),(o),(l),(k),(iv),(e)) +# define des_quad_cksum(i,o,l,c,s)\ + _ossl_old_des_quad_cksum((i),(o),(l),(c),(s)) +# define des_random_seed(k)\ + _ossl_old_des_random_seed((k)) +# define des_random_key(r)\ + _ossl_old_des_random_key((r)) +# define des_read_password(k,p,v) \ + _ossl_old_des_read_password((k),(p),(v)) +# define des_read_2passwords(k1,k2,p,v) \ + _ossl_old_des_read_2passwords((k1),(k2),(p),(v)) +# define des_set_odd_parity(k)\ + _ossl_old_des_set_odd_parity((k)) +# define des_is_weak_key(k)\ + _ossl_old_des_is_weak_key((k)) +# define des_set_key(k,ks)\ + _ossl_old_des_set_key((k),(ks)) +# define des_key_sched(k,ks)\ + _ossl_old_des_key_sched((k),(ks)) +# define des_string_to_key(s,k)\ + _ossl_old_des_string_to_key((s),(k)) +# define des_string_to_2keys(s,k1,k2)\ + _ossl_old_des_string_to_2keys((s),(k1),(k2)) +# define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ + _ossl_old_des_cfb64_encrypt((i),(o),(l),(ks),(iv),(n),(e)) +# define des_ofb64_encrypt(i,o,l,ks,iv,n)\ + _ossl_old_des_ofb64_encrypt((i),(o),(l),(ks),(iv),(n)) + +# define des_ecb2_encrypt(i,o,k1,k2,e) \ + des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) + +# define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ + des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) + +# define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ + des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) + +# define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ + des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) + +# define des_check_key DES_check_key +# define des_rw_mode DES_rw_mode +# endif + +const char *_ossl_old_des_options(void); +void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, int enc); +DES_LONG _ossl_old_des_cbc_cksum(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec); +void _ossl_old_des_cbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_ncbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_xcbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, + _ossl_old_des_cblock *inw, + _ossl_old_des_cblock *outw, int enc); +void _ossl_old_des_cfb_encrypt(unsigned char *in, unsigned char *out, + int numbits, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_ecb_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, + _ossl_old_des_key_schedule ks, int enc); +void _ossl_old_des_encrypt(DES_LONG *data, _ossl_old_des_key_schedule ks, + int enc); +void _ossl_old_des_encrypt2(DES_LONG *data, _ossl_old_des_key_schedule ks, + int enc); +void _ossl_old_des_encrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3); +void _ossl_old_des_decrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3); +void _ossl_old_des_ede3_cbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_ede3_cfb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, + _ossl_old_des_cblock *ivec, int *num, + int enc); +void _ossl_old_des_ede3_ofb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, + _ossl_old_des_cblock *ivec, int *num); +# if 0 +void _ossl_old_des_xwhite_in2out(_ossl_old_des_cblock (*des_key), + _ossl_old_des_cblock (*in_white), + _ossl_old_des_cblock (*out_white)); +# endif + +int _ossl_old_des_enc_read(int fd, char *buf, int len, + _ossl_old_des_key_schedule sched, + _ossl_old_des_cblock *iv); +int _ossl_old_des_enc_write(int fd, char *buf, int len, + _ossl_old_des_key_schedule sched, + _ossl_old_des_cblock *iv); +char *_ossl_old_des_fcrypt(const char *buf, const char *salt, char *ret); +char *_ossl_old_des_crypt(const char *buf, const char *salt); +# if !defined(PERL5) && !defined(NeXT) +char *_ossl_old_crypt(const char *buf, const char *salt); +# endif +void _ossl_old_des_ofb_encrypt(unsigned char *in, unsigned char *out, + int numbits, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec); +void _ossl_old_des_pcbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +DES_LONG _ossl_old_des_quad_cksum(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + int out_count, _ossl_old_des_cblock *seed); +void _ossl_old_des_random_seed(_ossl_old_des_cblock key); +void _ossl_old_des_random_key(_ossl_old_des_cblock ret); +int _ossl_old_des_read_password(_ossl_old_des_cblock *key, const char *prompt, + int verify); +int _ossl_old_des_read_2passwords(_ossl_old_des_cblock *key1, + _ossl_old_des_cblock *key2, + const char *prompt, int verify); +void _ossl_old_des_set_odd_parity(_ossl_old_des_cblock *key); +int _ossl_old_des_is_weak_key(_ossl_old_des_cblock *key); +int _ossl_old_des_set_key(_ossl_old_des_cblock *key, + _ossl_old_des_key_schedule schedule); +int _ossl_old_des_key_sched(_ossl_old_des_cblock *key, + _ossl_old_des_key_schedule schedule); +void _ossl_old_des_string_to_key(char *str, _ossl_old_des_cblock *key); +void _ossl_old_des_string_to_2keys(char *str, _ossl_old_des_cblock *key1, + _ossl_old_des_cblock *key2); +void _ossl_old_des_cfb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int *num, + int enc); +void _ossl_old_des_ofb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int *num); + +void _ossl_096_des_random_seed(des_cblock *key); + +/* + * The following definitions provide compatibility with the MIT Kerberos + * library. The _ossl_old_des_key_schedule structure is not binary + * compatible. + */ + +# define _KERBEROS_DES_H + +# define KRBDES_ENCRYPT DES_ENCRYPT +# define KRBDES_DECRYPT DES_DECRYPT + +# ifdef KERBEROS +# define ENCRYPT DES_ENCRYPT +# define DECRYPT DES_DECRYPT +# endif + +# ifndef NCOMPAT +# define C_Block des_cblock +# define Key_schedule des_key_schedule +# define KEY_SZ DES_KEY_SZ +# define string_to_key des_string_to_key +# define read_pw_string des_read_pw_string +# define random_key des_random_key +# define pcbc_encrypt des_pcbc_encrypt +# define set_key des_set_key +# define key_sched des_key_sched +# define ecb_encrypt des_ecb_encrypt +# define cbc_encrypt des_cbc_encrypt +# define ncbc_encrypt des_ncbc_encrypt +# define xcbc_encrypt des_xcbc_encrypt +# define cbc_cksum des_cbc_cksum +# define quad_cksum des_quad_cksum +# define check_parity des_check_key_parity +# endif + +# define des_fixup_key_parity DES_fixup_key_parity + +#ifdef __cplusplus +} +#endif + +/* for DES_read_pw_string et al */ +# include + +#endif diff --git a/External/include64/openssl/dh.h b/External/include64/openssl/dh.h new file mode 100644 index 00000000..a5bd9016 --- /dev/null +++ b/External/include64/openssl/dh.h @@ -0,0 +1,393 @@ +/* crypto/dh/dh.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_DH_H +# define HEADER_DH_H + +# include + +# ifdef OPENSSL_NO_DH +# error DH is disabled. +# endif + +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +# ifndef OPENSSL_DH_MAX_MODULUS_BITS +# define OPENSSL_DH_MAX_MODULUS_BITS 10000 +# endif + +# define DH_FLAG_CACHE_MONT_P 0x01 + +/* + * new with 0.9.7h; the built-in DH + * implementation now uses constant time + * modular exponentiation for secret exponents + * by default. This flag causes the + * faster variable sliding window method to + * be used for all exponents. + */ +# define DH_FLAG_NO_EXP_CONSTTIME 0x02 + +/* + * If this flag is set the DH method is FIPS compliant and can be used in + * FIPS mode. This is set in the validated module method. If an application + * sets this flag in its own methods it is its reposibility to ensure the + * result is compliant. + */ + +# define DH_FLAG_FIPS_METHOD 0x0400 + +/* + * If this flag is set the operations normally disabled in FIPS mode are + * permitted it is then the applications responsibility to ensure that the + * usage is compliant. + */ + +# define DH_FLAG_NON_FIPS_ALLOW 0x0400 + +#ifdef __cplusplus +extern "C" { +#endif + +/* Already defined in ossl_typ.h */ +/* typedef struct dh_st DH; */ +/* typedef struct dh_method DH_METHOD; */ + +struct dh_method { + const char *name; + /* Methods here */ + int (*generate_key) (DH *dh); + int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh); + /* Can be null */ + int (*bn_mod_exp) (const DH *dh, BIGNUM *r, const BIGNUM *a, + const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *m_ctx); + int (*init) (DH *dh); + int (*finish) (DH *dh); + int flags; + char *app_data; + /* If this is non-NULL, it will be used to generate parameters */ + int (*generate_params) (DH *dh, int prime_len, int generator, + BN_GENCB *cb); +}; + +struct dh_st { + /* + * This first argument is used to pick up errors when a DH is passed + * instead of a EVP_PKEY + */ + int pad; + int version; + BIGNUM *p; + BIGNUM *g; + long length; /* optional */ + BIGNUM *pub_key; /* g^x % p */ + BIGNUM *priv_key; /* x */ + int flags; + BN_MONT_CTX *method_mont_p; + /* Place holders if we want to do X9.42 DH */ + BIGNUM *q; + BIGNUM *j; + unsigned char *seed; + int seedlen; + BIGNUM *counter; + int references; + CRYPTO_EX_DATA ex_data; + const DH_METHOD *meth; + ENGINE *engine; +}; + +# define DH_GENERATOR_2 2 +/* #define DH_GENERATOR_3 3 */ +# define DH_GENERATOR_5 5 + +/* DH_check error codes */ +# define DH_CHECK_P_NOT_PRIME 0x01 +# define DH_CHECK_P_NOT_SAFE_PRIME 0x02 +# define DH_UNABLE_TO_CHECK_GENERATOR 0x04 +# define DH_NOT_SUITABLE_GENERATOR 0x08 +# define DH_CHECK_Q_NOT_PRIME 0x10 +# define DH_CHECK_INVALID_Q_VALUE 0x20 +# define DH_CHECK_INVALID_J_VALUE 0x40 + +/* DH_check_pub_key error codes */ +# define DH_CHECK_PUBKEY_TOO_SMALL 0x01 +# define DH_CHECK_PUBKEY_TOO_LARGE 0x02 +# define DH_CHECK_PUBKEY_INVALID 0x04 + +/* + * primes p where (p-1)/2 is prime too are called "safe"; we define this for + * backward compatibility: + */ +# define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME + +# define d2i_DHparams_fp(fp,x) (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ + (char *(*)())d2i_DHparams,(fp),(unsigned char **)(x)) +# define i2d_DHparams_fp(fp,x) ASN1_i2d_fp(i2d_DHparams,(fp), \ + (unsigned char *)(x)) +# define d2i_DHparams_bio(bp,x) ASN1_d2i_bio_of(DH,DH_new,d2i_DHparams,bp,x) +# define i2d_DHparams_bio(bp,x) ASN1_i2d_bio_of_const(DH,i2d_DHparams,bp,x) + +DH *DHparams_dup(DH *); + +const DH_METHOD *DH_OpenSSL(void); + +void DH_set_default_method(const DH_METHOD *meth); +const DH_METHOD *DH_get_default_method(void); +int DH_set_method(DH *dh, const DH_METHOD *meth); +DH *DH_new_method(ENGINE *engine); + +DH *DH_new(void); +void DH_free(DH *dh); +int DH_up_ref(DH *dh); +int DH_size(const DH *dh); +int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int DH_set_ex_data(DH *d, int idx, void *arg); +void *DH_get_ex_data(DH *d, int idx); + +/* Deprecated version */ +# ifndef OPENSSL_NO_DEPRECATED +DH *DH_generate_parameters(int prime_len, int generator, + void (*callback) (int, int, void *), void *cb_arg); +# endif /* !defined(OPENSSL_NO_DEPRECATED) */ + +/* New version */ +int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, + BN_GENCB *cb); + +int DH_check(const DH *dh, int *codes); +int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); +int DH_generate_key(DH *dh); +int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); +int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); +DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); +int i2d_DHparams(const DH *a, unsigned char **pp); +DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); +int i2d_DHxparams(const DH *a, unsigned char **pp); +# ifndef OPENSSL_NO_FP_API +int DHparams_print_fp(FILE *fp, const DH *x); +# endif +# ifndef OPENSSL_NO_BIO +int DHparams_print(BIO *bp, const DH *x); +# else +int DHparams_print(char *bp, const DH *x); +# endif + +/* RFC 5114 parameters */ +DH *DH_get_1024_160(void); +DH *DH_get_2048_224(void); +DH *DH_get_2048_256(void); + +/* RFC2631 KDF */ +int DH_KDF_X9_42(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + ASN1_OBJECT *key_oid, + const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); + +# define EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, len, NULL) + +# define EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN, len, NULL) + +# define EVP_PKEY_CTX_set_dh_paramgen_type(ctx, typ) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_TYPE, typ, NULL) + +# define EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR, gen, NULL) + +# define EVP_PKEY_CTX_set_dh_rfc5114(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) + +# define EVP_PKEY_CTX_set_dhx_rfc5114(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) + +# define EVP_PKEY_CTX_set_dh_kdf_type(ctx, kdf) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_TYPE, kdf, NULL) + +# define EVP_PKEY_CTX_get_dh_kdf_type(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_TYPE, -2, NULL) + +# define EVP_PKEY_CTX_set0_dh_kdf_oid(ctx, oid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_OID, 0, (void *)oid) + +# define EVP_PKEY_CTX_get0_dh_kdf_oid(ctx, poid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_OID, 0, (void *)poid) + +# define EVP_PKEY_CTX_set_dh_kdf_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_get_dh_kdf_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_set_dh_kdf_outlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_OUTLEN, len, NULL) + +# define EVP_PKEY_CTX_get_dh_kdf_outlen(ctx, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN, 0, (void *)plen) + +# define EVP_PKEY_CTX_set0_dh_kdf_ukm(ctx, p, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_UKM, plen, (void *)p) + +# define EVP_PKEY_CTX_get0_dh_kdf_ukm(ctx, p) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_UKM, 0, (void *)p) + +# define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10) +# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12) +# define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13) +# define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14) + +/* KDF types */ +# define EVP_PKEY_DH_KDF_NONE 1 +# define EVP_PKEY_DH_KDF_X9_42 2 + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_DH_strings(void); + +/* Error codes for the DH functions. */ + +/* Function codes. */ +# define DH_F_COMPUTE_KEY 102 +# define DH_F_DHPARAMS_PRINT_FP 101 +# define DH_F_DH_BUILTIN_GENPARAMS 106 +# define DH_F_DH_CMS_DECRYPT 117 +# define DH_F_DH_CMS_SET_PEERKEY 118 +# define DH_F_DH_CMS_SET_SHARED_INFO 119 +# define DH_F_DH_COMPUTE_KEY 114 +# define DH_F_DH_GENERATE_KEY 115 +# define DH_F_DH_GENERATE_PARAMETERS_EX 116 +# define DH_F_DH_NEW_METHOD 105 +# define DH_F_DH_PARAM_DECODE 107 +# define DH_F_DH_PRIV_DECODE 110 +# define DH_F_DH_PRIV_ENCODE 111 +# define DH_F_DH_PUB_DECODE 108 +# define DH_F_DH_PUB_ENCODE 109 +# define DH_F_DO_DH_PRINT 100 +# define DH_F_GENERATE_KEY 103 +# define DH_F_GENERATE_PARAMETERS 104 +# define DH_F_PKEY_DH_DERIVE 112 +# define DH_F_PKEY_DH_KEYGEN 113 + +/* Reason codes. */ +# define DH_R_BAD_GENERATOR 101 +# define DH_R_BN_DECODE_ERROR 109 +# define DH_R_BN_ERROR 106 +# define DH_R_DECODE_ERROR 104 +# define DH_R_INVALID_PUBKEY 102 +# define DH_R_KDF_PARAMETER_ERROR 112 +# define DH_R_KEYS_NOT_SET 108 +# define DH_R_KEY_SIZE_TOO_SMALL 110 +# define DH_R_MODULUS_TOO_LARGE 103 +# define DH_R_NON_FIPS_METHOD 111 +# define DH_R_NO_PARAMETERS_SET 107 +# define DH_R_NO_PRIVATE_VALUE 100 +# define DH_R_PARAMETER_ENCODING_ERROR 105 +# define DH_R_PEER_KEY_ERROR 113 +# define DH_R_SHARED_INFO_ERROR 114 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/dsa.h b/External/include64/openssl/dsa.h new file mode 100644 index 00000000..545358fd --- /dev/null +++ b/External/include64/openssl/dsa.h @@ -0,0 +1,332 @@ +/* crypto/dsa/dsa.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +/* + * The DSS routines are based on patches supplied by + * Steven Schoch . He basically did the + * work and I have just tweaked them a little to fit into my + * stylistic vision for SSLeay :-) */ + +#ifndef HEADER_DSA_H +# define HEADER_DSA_H + +# include + +# ifdef OPENSSL_NO_DSA +# error DSA is disabled. +# endif + +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include + +# ifndef OPENSSL_NO_DEPRECATED +# include +# ifndef OPENSSL_NO_DH +# include +# endif +# endif + +# ifndef OPENSSL_DSA_MAX_MODULUS_BITS +# define OPENSSL_DSA_MAX_MODULUS_BITS 10000 +# endif + +# define DSA_FLAG_CACHE_MONT_P 0x01 +/* + * new with 0.9.7h; the built-in DSA implementation now uses constant time + * modular exponentiation for secret exponents by default. This flag causes + * the faster variable sliding window method to be used for all exponents. + */ +# define DSA_FLAG_NO_EXP_CONSTTIME 0x02 + +/* + * If this flag is set the DSA method is FIPS compliant and can be used in + * FIPS mode. This is set in the validated module method. If an application + * sets this flag in its own methods it is its reposibility to ensure the + * result is compliant. + */ + +# define DSA_FLAG_FIPS_METHOD 0x0400 + +/* + * If this flag is set the operations normally disabled in FIPS mode are + * permitted it is then the applications responsibility to ensure that the + * usage is compliant. + */ + +# define DSA_FLAG_NON_FIPS_ALLOW 0x0400 + +#ifdef __cplusplus +extern "C" { +#endif + +/* Already defined in ossl_typ.h */ +/* typedef struct dsa_st DSA; */ +/* typedef struct dsa_method DSA_METHOD; */ + +typedef struct DSA_SIG_st { + BIGNUM *r; + BIGNUM *s; +} DSA_SIG; + +struct dsa_method { + const char *name; + DSA_SIG *(*dsa_do_sign) (const unsigned char *dgst, int dlen, DSA *dsa); + int (*dsa_sign_setup) (DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, + BIGNUM **rp); + int (*dsa_do_verify) (const unsigned char *dgst, int dgst_len, + DSA_SIG *sig, DSA *dsa); + int (*dsa_mod_exp) (DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1, + BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *in_mont); + /* Can be null */ + int (*bn_mod_exp) (DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); + int (*init) (DSA *dsa); + int (*finish) (DSA *dsa); + int flags; + char *app_data; + /* If this is non-NULL, it is used to generate DSA parameters */ + int (*dsa_paramgen) (DSA *dsa, int bits, + const unsigned char *seed, int seed_len, + int *counter_ret, unsigned long *h_ret, + BN_GENCB *cb); + /* If this is non-NULL, it is used to generate DSA keys */ + int (*dsa_keygen) (DSA *dsa); +}; + +struct dsa_st { + /* + * This first variable is used to pick up errors where a DSA is passed + * instead of of a EVP_PKEY + */ + int pad; + long version; + int write_params; + BIGNUM *p; + BIGNUM *q; /* == 20 */ + BIGNUM *g; + BIGNUM *pub_key; /* y public key */ + BIGNUM *priv_key; /* x private key */ + BIGNUM *kinv; /* Signing pre-calc */ + BIGNUM *r; /* Signing pre-calc */ + int flags; + /* Normally used to cache montgomery values */ + BN_MONT_CTX *method_mont_p; + int references; + CRYPTO_EX_DATA ex_data; + const DSA_METHOD *meth; + /* functional reference if 'meth' is ENGINE-provided */ + ENGINE *engine; +}; + +# define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ + (char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x)) +# define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), \ + (unsigned char *)(x)) +# define d2i_DSAparams_bio(bp,x) ASN1_d2i_bio_of(DSA,DSA_new,d2i_DSAparams,bp,x) +# define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio_of_const(DSA,i2d_DSAparams,bp,x) + +DSA *DSAparams_dup(DSA *x); +DSA_SIG *DSA_SIG_new(void); +void DSA_SIG_free(DSA_SIG *a); +int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); +DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); + +DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); +int DSA_do_verify(const unsigned char *dgst, int dgst_len, + DSA_SIG *sig, DSA *dsa); + +const DSA_METHOD *DSA_OpenSSL(void); + +void DSA_set_default_method(const DSA_METHOD *); +const DSA_METHOD *DSA_get_default_method(void); +int DSA_set_method(DSA *dsa, const DSA_METHOD *); + +DSA *DSA_new(void); +DSA *DSA_new_method(ENGINE *engine); +void DSA_free(DSA *r); +/* "up" the DSA object's reference count */ +int DSA_up_ref(DSA *r); +int DSA_size(const DSA *); + /* next 4 return -1 on error */ +int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); +int DSA_sign(int type, const unsigned char *dgst, int dlen, + unsigned char *sig, unsigned int *siglen, DSA *dsa); +int DSA_verify(int type, const unsigned char *dgst, int dgst_len, + const unsigned char *sigbuf, int siglen, DSA *dsa); +int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int DSA_set_ex_data(DSA *d, int idx, void *arg); +void *DSA_get_ex_data(DSA *d, int idx); + +DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); +DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); +DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); + +/* Deprecated version */ +# ifndef OPENSSL_NO_DEPRECATED +DSA *DSA_generate_parameters(int bits, + unsigned char *seed, int seed_len, + int *counter_ret, unsigned long *h_ret, void + (*callback) (int, int, void *), void *cb_arg); +# endif /* !defined(OPENSSL_NO_DEPRECATED) */ + +/* New version */ +int DSA_generate_parameters_ex(DSA *dsa, int bits, + const unsigned char *seed, int seed_len, + int *counter_ret, unsigned long *h_ret, + BN_GENCB *cb); + +int DSA_generate_key(DSA *a); +int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); +int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); +int i2d_DSAparams(const DSA *a, unsigned char **pp); + +# ifndef OPENSSL_NO_BIO +int DSAparams_print(BIO *bp, const DSA *x); +int DSA_print(BIO *bp, const DSA *x, int off); +# endif +# ifndef OPENSSL_NO_FP_API +int DSAparams_print_fp(FILE *fp, const DSA *x); +int DSA_print_fp(FILE *bp, const DSA *x, int off); +# endif + +# define DSS_prime_checks 50 +/* + * Primality test according to FIPS PUB 186[-1], Appendix 2.1: 50 rounds of + * Rabin-Miller + */ +# define DSA_is_prime(n, callback, cb_arg) \ + BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) + +# ifndef OPENSSL_NO_DH +/* + * Convert DSA structure (key or just parameters) into DH structure (be + * careful to avoid small subgroup attacks when using this!) + */ +DH *DSA_dup_DH(const DSA *r); +# endif + +# define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL) + +# define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3) + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_DSA_strings(void); + +/* Error codes for the DSA functions. */ + +/* Function codes. */ +# define DSA_F_D2I_DSA_SIG 110 +# define DSA_F_DO_DSA_PRINT 104 +# define DSA_F_DSAPARAMS_PRINT 100 +# define DSA_F_DSAPARAMS_PRINT_FP 101 +# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 +# define DSA_F_DSA_DO_SIGN 112 +# define DSA_F_DSA_DO_VERIFY 113 +# define DSA_F_DSA_GENERATE_KEY 124 +# define DSA_F_DSA_GENERATE_PARAMETERS_EX 123 +# define DSA_F_DSA_NEW_METHOD 103 +# define DSA_F_DSA_PARAM_DECODE 119 +# define DSA_F_DSA_PRINT_FP 105 +# define DSA_F_DSA_PRIV_DECODE 115 +# define DSA_F_DSA_PRIV_ENCODE 116 +# define DSA_F_DSA_PUB_DECODE 117 +# define DSA_F_DSA_PUB_ENCODE 118 +# define DSA_F_DSA_SIGN 106 +# define DSA_F_DSA_SIGN_SETUP 107 +# define DSA_F_DSA_SIG_NEW 109 +# define DSA_F_DSA_SIG_PRINT 125 +# define DSA_F_DSA_VERIFY 108 +# define DSA_F_I2D_DSA_SIG 111 +# define DSA_F_OLD_DSA_PRIV_DECODE 122 +# define DSA_F_PKEY_DSA_CTRL 120 +# define DSA_F_PKEY_DSA_KEYGEN 121 +# define DSA_F_SIG_CB 114 + +/* Reason codes. */ +# define DSA_R_BAD_Q_VALUE 102 +# define DSA_R_BN_DECODE_ERROR 108 +# define DSA_R_BN_ERROR 109 +# define DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 100 +# define DSA_R_DECODE_ERROR 104 +# define DSA_R_INVALID_DIGEST_TYPE 106 +# define DSA_R_INVALID_PARAMETERS 112 +# define DSA_R_MISSING_PARAMETERS 101 +# define DSA_R_MODULUS_TOO_LARGE 103 +# define DSA_R_NEED_NEW_SETUP_VALUES 110 +# define DSA_R_NON_FIPS_DSA_METHOD 111 +# define DSA_R_NO_PARAMETERS_SET 107 +# define DSA_R_PARAMETER_ENCODING_ERROR 105 +# define DSA_R_Q_NOT_PRIME 113 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/dso.h b/External/include64/openssl/dso.h new file mode 100644 index 00000000..c9013f5c --- /dev/null +++ b/External/include64/openssl/dso.h @@ -0,0 +1,451 @@ +/* dso.h */ +/* + * Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL project + * 2000. + */ +/* ==================================================================== + * Copyright (c) 2000 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_DSO_H +# define HEADER_DSO_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* These values are used as commands to DSO_ctrl() */ +# define DSO_CTRL_GET_FLAGS 1 +# define DSO_CTRL_SET_FLAGS 2 +# define DSO_CTRL_OR_FLAGS 3 + +/* + * By default, DSO_load() will translate the provided filename into a form + * typical for the platform (more specifically the DSO_METHOD) using the + * dso_name_converter function of the method. Eg. win32 will transform "blah" + * into "blah.dll", and dlfcn will transform it into "libblah.so". The + * behaviour can be overriden by setting the name_converter callback in the + * DSO object (using DSO_set_name_converter()). This callback could even + * utilise the DSO_METHOD's converter too if it only wants to override + * behaviour for one or two possible DSO methods. However, the following flag + * can be set in a DSO to prevent *any* native name-translation at all - eg. + * if the caller has prompted the user for a path to a driver library so the + * filename should be interpreted as-is. + */ +# define DSO_FLAG_NO_NAME_TRANSLATION 0x01 +/* + * An extra flag to give if only the extension should be added as + * translation. This is obviously only of importance on Unix and other + * operating systems where the translation also may prefix the name with + * something, like 'lib', and ignored everywhere else. This flag is also + * ignored if DSO_FLAG_NO_NAME_TRANSLATION is used at the same time. + */ +# define DSO_FLAG_NAME_TRANSLATION_EXT_ONLY 0x02 + +/* + * The following flag controls the translation of symbol names to upper case. + * This is currently only being implemented for OpenVMS. + */ +# define DSO_FLAG_UPCASE_SYMBOL 0x10 + +/* + * This flag loads the library with public symbols. Meaning: The exported + * symbols of this library are public to all libraries loaded after this + * library. At the moment only implemented in unix. + */ +# define DSO_FLAG_GLOBAL_SYMBOLS 0x20 + +typedef void (*DSO_FUNC_TYPE) (void); + +typedef struct dso_st DSO; + +/* + * The function prototype used for method functions (or caller-provided + * callbacks) that transform filenames. They are passed a DSO structure + * pointer (or NULL if they are to be used independantly of a DSO object) and + * a filename to transform. They should either return NULL (if there is an + * error condition) or a newly allocated string containing the transformed + * form that the caller will need to free with OPENSSL_free() when done. + */ +typedef char *(*DSO_NAME_CONVERTER_FUNC)(DSO *, const char *); +/* + * The function prototype used for method functions (or caller-provided + * callbacks) that merge two file specifications. They are passed a DSO + * structure pointer (or NULL if they are to be used independantly of a DSO + * object) and two file specifications to merge. They should either return + * NULL (if there is an error condition) or a newly allocated string + * containing the result of merging that the caller will need to free with + * OPENSSL_free() when done. Here, merging means that bits and pieces are + * taken from each of the file specifications and added together in whatever + * fashion that is sensible for the DSO method in question. The only rule + * that really applies is that if the two specification contain pieces of the + * same type, the copy from the first string takes priority. One could see + * it as the first specification is the one given by the user and the second + * being a bunch of defaults to add on if they're missing in the first. + */ +typedef char *(*DSO_MERGER_FUNC)(DSO *, const char *, const char *); + +typedef struct dso_meth_st { + const char *name; + /* + * Loads a shared library, NB: new DSO_METHODs must ensure that a + * successful load populates the loaded_filename field, and likewise a + * successful unload OPENSSL_frees and NULLs it out. + */ + int (*dso_load) (DSO *dso); + /* Unloads a shared library */ + int (*dso_unload) (DSO *dso); + /* Binds a variable */ + void *(*dso_bind_var) (DSO *dso, const char *symname); + /* + * Binds a function - assumes a return type of DSO_FUNC_TYPE. This should + * be cast to the real function prototype by the caller. Platforms that + * don't have compatible representations for different prototypes (this + * is possible within ANSI C) are highly unlikely to have shared + * libraries at all, let alone a DSO_METHOD implemented for them. + */ + DSO_FUNC_TYPE (*dso_bind_func) (DSO *dso, const char *symname); +/* I don't think this would actually be used in any circumstances. */ +# if 0 + /* Unbinds a variable */ + int (*dso_unbind_var) (DSO *dso, char *symname, void *symptr); + /* Unbinds a function */ + int (*dso_unbind_func) (DSO *dso, char *symname, DSO_FUNC_TYPE symptr); +# endif + /* + * The generic (yuck) "ctrl()" function. NB: Negative return values + * (rather than zero) indicate errors. + */ + long (*dso_ctrl) (DSO *dso, int cmd, long larg, void *parg); + /* + * The default DSO_METHOD-specific function for converting filenames to a + * canonical native form. + */ + DSO_NAME_CONVERTER_FUNC dso_name_converter; + /* + * The default DSO_METHOD-specific function for converting filenames to a + * canonical native form. + */ + DSO_MERGER_FUNC dso_merger; + /* [De]Initialisation handlers. */ + int (*init) (DSO *dso); + int (*finish) (DSO *dso); + /* Return pathname of the module containing location */ + int (*pathbyaddr) (void *addr, char *path, int sz); + /* Perform global symbol lookup, i.e. among *all* modules */ + void *(*globallookup) (const char *symname); +} DSO_METHOD; + +/**********************************************************************/ +/* The low-level handle type used to refer to a loaded shared library */ + +struct dso_st { + DSO_METHOD *meth; + /* + * Standard dlopen uses a (void *). Win32 uses a HANDLE. VMS doesn't use + * anything but will need to cache the filename for use in the dso_bind + * handler. All in all, let each method control its own destiny. + * "Handles" and such go in a STACK. + */ + STACK_OF(void) *meth_data; + int references; + int flags; + /* + * For use by applications etc ... use this for your bits'n'pieces, don't + * touch meth_data! + */ + CRYPTO_EX_DATA ex_data; + /* + * If this callback function pointer is set to non-NULL, then it will be + * used in DSO_load() in place of meth->dso_name_converter. NB: This + * should normally set using DSO_set_name_converter(). + */ + DSO_NAME_CONVERTER_FUNC name_converter; + /* + * If this callback function pointer is set to non-NULL, then it will be + * used in DSO_load() in place of meth->dso_merger. NB: This should + * normally set using DSO_set_merger(). + */ + DSO_MERGER_FUNC merger; + /* + * This is populated with (a copy of) the platform-independant filename + * used for this DSO. + */ + char *filename; + /* + * This is populated with (a copy of) the translated filename by which + * the DSO was actually loaded. It is NULL iff the DSO is not currently + * loaded. NB: This is here because the filename translation process may + * involve a callback being invoked more than once not only to convert to + * a platform-specific form, but also to try different filenames in the + * process of trying to perform a load. As such, this variable can be + * used to indicate (a) whether this DSO structure corresponds to a + * loaded library or not, and (b) the filename with which it was actually + * loaded. + */ + char *loaded_filename; +}; + +DSO *DSO_new(void); +DSO *DSO_new_method(DSO_METHOD *method); +int DSO_free(DSO *dso); +int DSO_flags(DSO *dso); +int DSO_up_ref(DSO *dso); +long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg); + +/* + * This function sets the DSO's name_converter callback. If it is non-NULL, + * then it will be used instead of the associated DSO_METHOD's function. If + * oldcb is non-NULL then it is set to the function pointer value being + * replaced. Return value is non-zero for success. + */ +int DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb, + DSO_NAME_CONVERTER_FUNC *oldcb); +/* + * These functions can be used to get/set the platform-independant filename + * used for a DSO. NB: set will fail if the DSO is already loaded. + */ +const char *DSO_get_filename(DSO *dso); +int DSO_set_filename(DSO *dso, const char *filename); +/* + * This function will invoke the DSO's name_converter callback to translate a + * filename, or if the callback isn't set it will instead use the DSO_METHOD's + * converter. If "filename" is NULL, the "filename" in the DSO itself will be + * used. If the DSO_FLAG_NO_NAME_TRANSLATION flag is set, then the filename is + * simply duplicated. NB: This function is usually called from within a + * DSO_METHOD during the processing of a DSO_load() call, and is exposed so + * that caller-created DSO_METHODs can do the same thing. A non-NULL return + * value will need to be OPENSSL_free()'d. + */ +char *DSO_convert_filename(DSO *dso, const char *filename); +/* + * This function will invoke the DSO's merger callback to merge two file + * specifications, or if the callback isn't set it will instead use the + * DSO_METHOD's merger. A non-NULL return value will need to be + * OPENSSL_free()'d. + */ +char *DSO_merge(DSO *dso, const char *filespec1, const char *filespec2); +/* + * If the DSO is currently loaded, this returns the filename that it was + * loaded under, otherwise it returns NULL. So it is also useful as a test as + * to whether the DSO is currently loaded. NB: This will not necessarily + * return the same value as DSO_convert_filename(dso, dso->filename), because + * the DSO_METHOD's load function may have tried a variety of filenames (with + * and/or without the aid of the converters) before settling on the one it + * actually loaded. + */ +const char *DSO_get_loaded_filename(DSO *dso); + +void DSO_set_default_method(DSO_METHOD *meth); +DSO_METHOD *DSO_get_default_method(void); +DSO_METHOD *DSO_get_method(DSO *dso); +DSO_METHOD *DSO_set_method(DSO *dso, DSO_METHOD *meth); + +/* + * The all-singing all-dancing load function, you normally pass NULL for the + * first and third parameters. Use DSO_up and DSO_free for subsequent + * reference count handling. Any flags passed in will be set in the + * constructed DSO after its init() function but before the load operation. + * If 'dso' is non-NULL, 'flags' is ignored. + */ +DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags); + +/* This function binds to a variable inside a shared library. */ +void *DSO_bind_var(DSO *dso, const char *symname); + +/* This function binds to a function inside a shared library. */ +DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname); + +/* + * This method is the default, but will beg, borrow, or steal whatever method + * should be the default on any particular platform (including + * DSO_METH_null() if necessary). + */ +DSO_METHOD *DSO_METHOD_openssl(void); + +/* + * This method is defined for all platforms - if a platform has no DSO + * support then this will be the only method! + */ +DSO_METHOD *DSO_METHOD_null(void); + +/* + * If DSO_DLFCN is defined, the standard dlfcn.h-style functions (dlopen, + * dlclose, dlsym, etc) will be used and incorporated into this method. If + * not, this method will return NULL. + */ +DSO_METHOD *DSO_METHOD_dlfcn(void); + +/* + * If DSO_DL is defined, the standard dl.h-style functions (shl_load, + * shl_unload, shl_findsym, etc) will be used and incorporated into this + * method. If not, this method will return NULL. + */ +DSO_METHOD *DSO_METHOD_dl(void); + +/* If WIN32 is defined, use DLLs. If not, return NULL. */ +DSO_METHOD *DSO_METHOD_win32(void); + +/* If VMS is defined, use shared images. If not, return NULL. */ +DSO_METHOD *DSO_METHOD_vms(void); + +/* + * This function writes null-terminated pathname of DSO module containing + * 'addr' into 'sz' large caller-provided 'path' and returns the number of + * characters [including trailing zero] written to it. If 'sz' is 0 or + * negative, 'path' is ignored and required amount of charachers [including + * trailing zero] to accomodate pathname is returned. If 'addr' is NULL, then + * pathname of cryptolib itself is returned. Negative or zero return value + * denotes error. + */ +int DSO_pathbyaddr(void *addr, char *path, int sz); + +/* + * This function should be used with caution! It looks up symbols in *all* + * loaded modules and if module gets unloaded by somebody else attempt to + * dereference the pointer is doomed to have fatal consequences. Primary + * usage for this function is to probe *core* system functionality, e.g. + * check if getnameinfo(3) is available at run-time without bothering about + * OS-specific details such as libc.so.versioning or where does it actually + * reside: in libc itself or libsocket. + */ +void *DSO_global_lookup(const char *name); + +/* If BeOS is defined, use shared images. If not, return NULL. */ +DSO_METHOD *DSO_METHOD_beos(void); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_DSO_strings(void); + +/* Error codes for the DSO functions. */ + +/* Function codes. */ +# define DSO_F_BEOS_BIND_FUNC 144 +# define DSO_F_BEOS_BIND_VAR 145 +# define DSO_F_BEOS_LOAD 146 +# define DSO_F_BEOS_NAME_CONVERTER 147 +# define DSO_F_BEOS_UNLOAD 148 +# define DSO_F_DLFCN_BIND_FUNC 100 +# define DSO_F_DLFCN_BIND_VAR 101 +# define DSO_F_DLFCN_LOAD 102 +# define DSO_F_DLFCN_MERGER 130 +# define DSO_F_DLFCN_NAME_CONVERTER 123 +# define DSO_F_DLFCN_UNLOAD 103 +# define DSO_F_DL_BIND_FUNC 104 +# define DSO_F_DL_BIND_VAR 105 +# define DSO_F_DL_LOAD 106 +# define DSO_F_DL_MERGER 131 +# define DSO_F_DL_NAME_CONVERTER 124 +# define DSO_F_DL_UNLOAD 107 +# define DSO_F_DSO_BIND_FUNC 108 +# define DSO_F_DSO_BIND_VAR 109 +# define DSO_F_DSO_CONVERT_FILENAME 126 +# define DSO_F_DSO_CTRL 110 +# define DSO_F_DSO_FREE 111 +# define DSO_F_DSO_GET_FILENAME 127 +# define DSO_F_DSO_GET_LOADED_FILENAME 128 +# define DSO_F_DSO_GLOBAL_LOOKUP 139 +# define DSO_F_DSO_LOAD 112 +# define DSO_F_DSO_MERGE 132 +# define DSO_F_DSO_NEW_METHOD 113 +# define DSO_F_DSO_PATHBYADDR 140 +# define DSO_F_DSO_SET_FILENAME 129 +# define DSO_F_DSO_SET_NAME_CONVERTER 122 +# define DSO_F_DSO_UP_REF 114 +# define DSO_F_GLOBAL_LOOKUP_FUNC 138 +# define DSO_F_PATHBYADDR 137 +# define DSO_F_VMS_BIND_SYM 115 +# define DSO_F_VMS_LOAD 116 +# define DSO_F_VMS_MERGER 133 +# define DSO_F_VMS_UNLOAD 117 +# define DSO_F_WIN32_BIND_FUNC 118 +# define DSO_F_WIN32_BIND_VAR 119 +# define DSO_F_WIN32_GLOBALLOOKUP 142 +# define DSO_F_WIN32_GLOBALLOOKUP_FUNC 143 +# define DSO_F_WIN32_JOINER 135 +# define DSO_F_WIN32_LOAD 120 +# define DSO_F_WIN32_MERGER 134 +# define DSO_F_WIN32_NAME_CONVERTER 125 +# define DSO_F_WIN32_PATHBYADDR 141 +# define DSO_F_WIN32_SPLITTER 136 +# define DSO_F_WIN32_UNLOAD 121 + +/* Reason codes. */ +# define DSO_R_CTRL_FAILED 100 +# define DSO_R_DSO_ALREADY_LOADED 110 +# define DSO_R_EMPTY_FILE_STRUCTURE 113 +# define DSO_R_FAILURE 114 +# define DSO_R_FILENAME_TOO_BIG 101 +# define DSO_R_FINISH_FAILED 102 +# define DSO_R_INCORRECT_FILE_SYNTAX 115 +# define DSO_R_LOAD_FAILED 103 +# define DSO_R_NAME_TRANSLATION_FAILED 109 +# define DSO_R_NO_FILENAME 111 +# define DSO_R_NO_FILE_SPECIFICATION 116 +# define DSO_R_NULL_HANDLE 104 +# define DSO_R_SET_FILENAME_FAILED 112 +# define DSO_R_STACK_ERROR 105 +# define DSO_R_SYM_FAILURE 106 +# define DSO_R_UNLOAD_FAILED 107 +# define DSO_R_UNSUPPORTED 108 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/dtls1.h b/External/include64/openssl/dtls1.h new file mode 100644 index 00000000..30bbcf27 --- /dev/null +++ b/External/include64/openssl/dtls1.h @@ -0,0 +1,272 @@ +/* ssl/dtls1.h */ +/* + * DTLS implementation written by Nagendra Modadugu + * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. + */ +/* ==================================================================== + * Copyright (c) 1999-2005 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_DTLS1_H +# define HEADER_DTLS1_H + +# include +# include +# ifdef OPENSSL_SYS_VMS +# include +# include +# endif +# ifdef OPENSSL_SYS_WIN32 +/* Needed for struct timeval */ +# include +# elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_) +# include +# else +# if defined(OPENSSL_SYS_VXWORKS) +# include +# else +# include +# endif +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define DTLS1_VERSION 0xFEFF +# define DTLS1_2_VERSION 0xFEFD +# define DTLS_MAX_VERSION DTLS1_2_VERSION +# define DTLS1_VERSION_MAJOR 0xFE + +# define DTLS1_BAD_VER 0x0100 + +/* Special value for method supporting multiple versions */ +# define DTLS_ANY_VERSION 0x1FFFF + +# if 0 +/* this alert description is not specified anywhere... */ +# define DTLS1_AD_MISSING_HANDSHAKE_MESSAGE 110 +# endif + +/* lengths of messages */ +# define DTLS1_COOKIE_LENGTH 256 + +# define DTLS1_RT_HEADER_LENGTH 13 + +# define DTLS1_HM_HEADER_LENGTH 12 + +# define DTLS1_HM_BAD_FRAGMENT -2 +# define DTLS1_HM_FRAGMENT_RETRY -3 + +# define DTLS1_CCS_HEADER_LENGTH 1 + +# ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE +# define DTLS1_AL_HEADER_LENGTH 7 +# else +# define DTLS1_AL_HEADER_LENGTH 2 +# endif + +# ifndef OPENSSL_NO_SSL_INTERN + +# ifndef OPENSSL_NO_SCTP +# define DTLS1_SCTP_AUTH_LABEL "EXPORTER_DTLS_OVER_SCTP" +# endif + +/* Max MTU overhead we know about so far is 40 for IPv6 + 8 for UDP */ +# define DTLS1_MAX_MTU_OVERHEAD 48 + +typedef struct dtls1_bitmap_st { + unsigned long map; /* track 32 packets on 32-bit systems and 64 + * - on 64-bit systems */ + unsigned char max_seq_num[8]; /* max record number seen so far, 64-bit + * value in big-endian encoding */ +} DTLS1_BITMAP; + +struct dtls1_retransmit_state { + EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ + EVP_MD_CTX *write_hash; /* used for mac generation */ +# ifndef OPENSSL_NO_COMP + COMP_CTX *compress; /* compression */ +# else + char *compress; +# endif + SSL_SESSION *session; + unsigned short epoch; +}; + +struct hm_header_st { + unsigned char type; + unsigned long msg_len; + unsigned short seq; + unsigned long frag_off; + unsigned long frag_len; + unsigned int is_ccs; + struct dtls1_retransmit_state saved_retransmit_state; +}; + +struct ccs_header_st { + unsigned char type; + unsigned short seq; +}; + +struct dtls1_timeout_st { + /* Number of read timeouts so far */ + unsigned int read_timeouts; + /* Number of write timeouts so far */ + unsigned int write_timeouts; + /* Number of alerts received so far */ + unsigned int num_alerts; +}; + +typedef struct record_pqueue_st { + unsigned short epoch; + pqueue q; +} record_pqueue; + +typedef struct hm_fragment_st { + struct hm_header_st msg_header; + unsigned char *fragment; + unsigned char *reassembly; +} hm_fragment; + +typedef struct dtls1_state_st { + unsigned int send_cookie; + unsigned char cookie[DTLS1_COOKIE_LENGTH]; + unsigned char rcvd_cookie[DTLS1_COOKIE_LENGTH]; + unsigned int cookie_len; + /* + * The current data and handshake epoch. This is initially + * undefined, and starts at zero once the initial handshake is + * completed + */ + unsigned short r_epoch; + unsigned short w_epoch; + /* records being received in the current epoch */ + DTLS1_BITMAP bitmap; + /* renegotiation starts a new set of sequence numbers */ + DTLS1_BITMAP next_bitmap; + /* handshake message numbers */ + unsigned short handshake_write_seq; + unsigned short next_handshake_write_seq; + unsigned short handshake_read_seq; + /* save last sequence number for retransmissions */ + unsigned char last_write_sequence[8]; + /* Received handshake records (processed and unprocessed) */ + record_pqueue unprocessed_rcds; + record_pqueue processed_rcds; + /* Buffered handshake messages */ + pqueue buffered_messages; + /* Buffered (sent) handshake records */ + pqueue sent_messages; + /* + * Buffered application records. Only for records between CCS and + * Finished to prevent either protocol violation or unnecessary message + * loss. + */ + record_pqueue buffered_app_data; + /* Is set when listening for new connections with dtls1_listen() */ + unsigned int listen; + unsigned int link_mtu; /* max on-the-wire DTLS packet size */ + unsigned int mtu; /* max DTLS packet size */ + struct hm_header_st w_msg_hdr; + struct hm_header_st r_msg_hdr; + struct dtls1_timeout_st timeout; + /* + * Indicates when the last handshake msg or heartbeat sent will timeout + */ + struct timeval next_timeout; + /* Timeout duration */ + unsigned short timeout_duration; + /* + * storage for Alert/Handshake protocol data received but not yet + * processed by ssl3_read_bytes: + */ + unsigned char alert_fragment[DTLS1_AL_HEADER_LENGTH]; + unsigned int alert_fragment_len; + unsigned char handshake_fragment[DTLS1_HM_HEADER_LENGTH]; + unsigned int handshake_fragment_len; + unsigned int retransmitting; + /* + * Set when the handshake is ready to process peer's ChangeCipherSpec message. + * Cleared after the message has been processed. + */ + unsigned int change_cipher_spec_ok; +# ifndef OPENSSL_NO_SCTP + /* used when SSL_ST_XX_FLUSH is entered */ + int next_state; + int shutdown_received; +# endif +} DTLS1_STATE; + +typedef struct dtls1_record_data_st { + unsigned char *packet; + unsigned int packet_length; + SSL3_BUFFER rbuf; + SSL3_RECORD rrec; +# ifndef OPENSSL_NO_SCTP + struct bio_dgram_sctp_rcvinfo recordinfo; +# endif +} DTLS1_RECORD_DATA; + +# endif + +/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */ +# define DTLS1_TMO_READ_COUNT 2 +# define DTLS1_TMO_WRITE_COUNT 2 + +# define DTLS1_TMO_ALERT_COUNT 12 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/e_os2.h b/External/include64/openssl/e_os2.h new file mode 100644 index 00000000..7be9989a --- /dev/null +++ b/External/include64/openssl/e_os2.h @@ -0,0 +1,328 @@ +/* e_os2.h */ +/* ==================================================================== + * Copyright (c) 1998-2000 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#include + +#ifndef HEADER_E_OS2_H +# define HEADER_E_OS2_H + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** + * Detect operating systems. This probably needs completing. + * The result is that at least one OPENSSL_SYS_os macro should be defined. + * However, if none is defined, Unix is assumed. + **/ + +# define OPENSSL_SYS_UNIX + +/* ---------------------- Macintosh, before MacOS X ----------------------- */ +# if defined(__MWERKS__) && defined(macintosh) || defined(OPENSSL_SYSNAME_MAC) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_MACINTOSH_CLASSIC +# endif + +/* ---------------------- NetWare ----------------------------------------- */ +# if defined(NETWARE) || defined(OPENSSL_SYSNAME_NETWARE) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_NETWARE +# endif + +/* --------------------- Microsoft operating systems ---------------------- */ + +/* + * Note that MSDOS actually denotes 32-bit environments running on top of + * MS-DOS, such as DJGPP one. + */ +# if defined(OPENSSL_SYSNAME_MSDOS) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_MSDOS +# endif + +/* + * For 32 bit environment, there seems to be the CygWin environment and then + * all the others that try to do the same thing Microsoft does... + */ +# if defined(OPENSSL_SYSNAME_UWIN) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WIN32_UWIN +# else +# if defined(__CYGWIN__) || defined(OPENSSL_SYSNAME_CYGWIN) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WIN32_CYGWIN +# else +# if defined(_WIN32) || defined(OPENSSL_SYSNAME_WIN32) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WIN32 +# endif +# if defined(_WIN64) || defined(OPENSSL_SYSNAME_WIN64) +# undef OPENSSL_SYS_UNIX +# if !defined(OPENSSL_SYS_WIN64) +# define OPENSSL_SYS_WIN64 +# endif +# endif +# if defined(OPENSSL_SYSNAME_WINNT) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WINNT +# endif +# if defined(OPENSSL_SYSNAME_WINCE) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WINCE +# endif +# endif +# endif + +/* Anything that tries to look like Microsoft is "Windows" */ +# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN64) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WINDOWS +# ifndef OPENSSL_SYS_MSDOS +# define OPENSSL_SYS_MSDOS +# endif +# endif + +/* + * DLL settings. This part is a bit tough, because it's up to the + * application implementor how he or she will link the application, so it + * requires some macro to be used. + */ +# ifdef OPENSSL_SYS_WINDOWS +# ifndef OPENSSL_OPT_WINDLL +# if defined(_WINDLL) /* This is used when building OpenSSL to + * indicate that DLL linkage should be used */ +# define OPENSSL_OPT_WINDLL +# endif +# endif +# endif + +/* ------------------------------- OpenVMS -------------------------------- */ +# if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYSNAME_VMS) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_VMS +# if defined(__DECC) +# define OPENSSL_SYS_VMS_DECC +# elif defined(__DECCXX) +# define OPENSSL_SYS_VMS_DECC +# define OPENSSL_SYS_VMS_DECCXX +# else +# define OPENSSL_SYS_VMS_NODECC +# endif +# endif + +/* -------------------------------- OS/2 ---------------------------------- */ +# if defined(__EMX__) || defined(__OS2__) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_OS2 +# endif + +/* -------------------------------- Unix ---------------------------------- */ +# ifdef OPENSSL_SYS_UNIX +# if defined(linux) || defined(__linux__) || defined(OPENSSL_SYSNAME_LINUX) +# define OPENSSL_SYS_LINUX +# endif +# ifdef OPENSSL_SYSNAME_MPE +# define OPENSSL_SYS_MPE +# endif +# ifdef OPENSSL_SYSNAME_SNI +# define OPENSSL_SYS_SNI +# endif +# ifdef OPENSSL_SYSNAME_ULTRASPARC +# define OPENSSL_SYS_ULTRASPARC +# endif +# ifdef OPENSSL_SYSNAME_NEWS4 +# define OPENSSL_SYS_NEWS4 +# endif +# ifdef OPENSSL_SYSNAME_MACOSX +# define OPENSSL_SYS_MACOSX +# endif +# ifdef OPENSSL_SYSNAME_MACOSX_RHAPSODY +# define OPENSSL_SYS_MACOSX_RHAPSODY +# define OPENSSL_SYS_MACOSX +# endif +# ifdef OPENSSL_SYSNAME_SUNOS +# define OPENSSL_SYS_SUNOS +# endif +# if defined(_CRAY) || defined(OPENSSL_SYSNAME_CRAY) +# define OPENSSL_SYS_CRAY +# endif +# if defined(_AIX) || defined(OPENSSL_SYSNAME_AIX) +# define OPENSSL_SYS_AIX +# endif +# endif + +/* -------------------------------- VOS ----------------------------------- */ +# if defined(__VOS__) || defined(OPENSSL_SYSNAME_VOS) +# define OPENSSL_SYS_VOS +# ifdef __HPPA__ +# define OPENSSL_SYS_VOS_HPPA +# endif +# ifdef __IA32__ +# define OPENSSL_SYS_VOS_IA32 +# endif +# endif + +/* ------------------------------ VxWorks --------------------------------- */ +# ifdef OPENSSL_SYSNAME_VXWORKS +# define OPENSSL_SYS_VXWORKS +# endif + +/* -------------------------------- BeOS ---------------------------------- */ +# if defined(__BEOS__) +# define OPENSSL_SYS_BEOS +# include +# if defined(BONE_VERSION) +# define OPENSSL_SYS_BEOS_BONE +# else +# define OPENSSL_SYS_BEOS_R5 +# endif +# endif + +/** + * That's it for OS-specific stuff + *****************************************************************************/ + +/* Specials for I/O an exit */ +# ifdef OPENSSL_SYS_MSDOS +# define OPENSSL_UNISTD_IO +# define OPENSSL_DECLARE_EXIT extern void exit(int); +# else +# define OPENSSL_UNISTD_IO OPENSSL_UNISTD +# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ +# endif + +/*- + * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare + * certain global symbols that, with some compilers under VMS, have to be + * defined and declared explicitely with globaldef and globalref. + * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare + * DLL exports and imports for compilers under Win32. These are a little + * more complicated to use. Basically, for any library that exports some + * global variables, the following code must be present in the header file + * that declares them, before OPENSSL_EXTERN is used: + * + * #ifdef SOME_BUILD_FLAG_MACRO + * # undef OPENSSL_EXTERN + * # define OPENSSL_EXTERN OPENSSL_EXPORT + * #endif + * + * The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL + * have some generally sensible values, and for OPENSSL_EXTERN to have the + * value OPENSSL_IMPORT. + */ + +# if defined(OPENSSL_SYS_VMS_NODECC) +# define OPENSSL_EXPORT globalref +# define OPENSSL_IMPORT globalref +# define OPENSSL_GLOBAL globaldef +# elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) +# define OPENSSL_EXPORT extern __declspec(dllexport) +# define OPENSSL_IMPORT extern __declspec(dllimport) +# define OPENSSL_GLOBAL +# else +# define OPENSSL_EXPORT extern +# define OPENSSL_IMPORT extern +# define OPENSSL_GLOBAL +# endif +# define OPENSSL_EXTERN OPENSSL_IMPORT + +/*- + * Macros to allow global variables to be reached through function calls when + * required (if a shared library version requires it, for example. + * The way it's done allows definitions like this: + * + * // in foobar.c + * OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) + * // in foobar.h + * OPENSSL_DECLARE_GLOBAL(int,foobar); + * #define foobar OPENSSL_GLOBAL_REF(foobar) + */ +# ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION +# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \ + type *_shadow_##name(void) \ + { static type _hide_##name=value; return &_hide_##name; } +# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) +# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) +# else +# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) OPENSSL_GLOBAL type _shadow_##name=value; +# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name +# define OPENSSL_GLOBAL_REF(name) _shadow_##name +# endif + +# if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) && macintosh==1 && !defined(MAC_OS_GUSI_SOURCE) +# define ossl_ssize_t long +# endif + +# ifdef OPENSSL_SYS_MSDOS +# define ossl_ssize_t long +# endif + +# if defined(NeXT) || defined(OPENSSL_SYS_NEWS4) || defined(OPENSSL_SYS_SUNOS) +# define ssize_t int +# endif + +# if defined(__ultrix) && !defined(ssize_t) +# define ossl_ssize_t int +# endif + +# ifndef ossl_ssize_t +# define ossl_ssize_t ssize_t +# endif + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/ebcdic.h b/External/include64/openssl/ebcdic.h new file mode 100644 index 00000000..4cbdfeb7 --- /dev/null +++ b/External/include64/openssl/ebcdic.h @@ -0,0 +1,26 @@ +/* crypto/ebcdic.h */ + +#ifndef HEADER_EBCDIC_H +# define HEADER_EBCDIC_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Avoid name clashes with other applications */ +# define os_toascii _openssl_os_toascii +# define os_toebcdic _openssl_os_toebcdic +# define ebcdic2ascii _openssl_ebcdic2ascii +# define ascii2ebcdic _openssl_ascii2ebcdic + +extern const unsigned char os_toascii[256]; +extern const unsigned char os_toebcdic[256]; +void *ebcdic2ascii(void *dest, const void *srce, size_t count); +void *ascii2ebcdic(void *dest, const void *srce, size_t count); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/ec.h b/External/include64/openssl/ec.h new file mode 100644 index 00000000..81e6faf6 --- /dev/null +++ b/External/include64/openssl/ec.h @@ -0,0 +1,1282 @@ +/* crypto/ec/ec.h */ +/* + * Originally written by Bodo Moeller for the OpenSSL project. + */ +/** + * \file crypto/ec/ec.h Include file for the OpenSSL EC functions + * \author Originally written by Bodo Moeller for the OpenSSL project + */ +/* ==================================================================== + * Copyright (c) 1998-2005 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * + * Portions of the attached software ("Contribution") are developed by + * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. + * + * The Contribution is licensed pursuant to the OpenSSL open source + * license provided above. + * + * The elliptic curve binary polynomial software is originally written by + * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. + * + */ + +#ifndef HEADER_EC_H +# define HEADER_EC_H + +# include + +# ifdef OPENSSL_NO_EC +# error EC is disabled. +# endif + +# include +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +# ifdef __cplusplus +extern "C" { +# elif defined(__SUNPRO_C) +# if __SUNPRO_C >= 0x520 +# pragma error_messages (off,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) +# endif +# endif + +# ifndef OPENSSL_ECC_MAX_FIELD_BITS +# define OPENSSL_ECC_MAX_FIELD_BITS 661 +# endif + +/** Enum for the point conversion form as defined in X9.62 (ECDSA) + * for the encoding of a elliptic curve point (x,y) */ +typedef enum { + /** the point is encoded as z||x, where the octet z specifies + * which solution of the quadratic equation y is */ + POINT_CONVERSION_COMPRESSED = 2, + /** the point is encoded as z||x||y, where z is the octet 0x04 */ + POINT_CONVERSION_UNCOMPRESSED = 4, + /** the point is encoded as z||x||y, where the octet z specifies + * which solution of the quadratic equation y is */ + POINT_CONVERSION_HYBRID = 6 +} point_conversion_form_t; + +typedef struct ec_method_st EC_METHOD; + +typedef struct ec_group_st + /*- + EC_METHOD *meth; + -- field definition + -- curve coefficients + -- optional generator with associated information (order, cofactor) + -- optional extra data (precomputed table for fast computation of multiples of generator) + -- ASN1 stuff + */ + EC_GROUP; + +typedef struct ec_point_st EC_POINT; + +/********************************************************************/ +/* EC_METHODs for curves over GF(p) */ +/********************************************************************/ + +/** Returns the basic GFp ec methods which provides the basis for the + * optimized methods. + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_simple_method(void); + +/** Returns GFp methods using montgomery multiplication. + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_mont_method(void); + +/** Returns GFp methods using optimized methods for NIST recommended curves + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nist_method(void); + +# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +/** Returns 64-bit optimized methods for nistp224 + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nistp224_method(void); + +/** Returns 64-bit optimized methods for nistp256 + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nistp256_method(void); + +/** Returns 64-bit optimized methods for nistp521 + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nistp521_method(void); +# endif + +# ifndef OPENSSL_NO_EC2M +/********************************************************************/ +/* EC_METHOD for curves over GF(2^m) */ +/********************************************************************/ + +/** Returns the basic GF2m ec method + * \return EC_METHOD object + */ +const EC_METHOD *EC_GF2m_simple_method(void); + +# endif + +/********************************************************************/ +/* EC_GROUP functions */ +/********************************************************************/ + +/** Creates a new EC_GROUP object + * \param meth EC_METHOD to use + * \return newly created EC_GROUP object or NULL in case of an error. + */ +EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); + +/** Frees a EC_GROUP object + * \param group EC_GROUP object to be freed. + */ +void EC_GROUP_free(EC_GROUP *group); + +/** Clears and frees a EC_GROUP object + * \param group EC_GROUP object to be cleared and freed. + */ +void EC_GROUP_clear_free(EC_GROUP *group); + +/** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. + * \param dst destination EC_GROUP object + * \param src source EC_GROUP object + * \return 1 on success and 0 if an error occurred. + */ +int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); + +/** Creates a new EC_GROUP object and copies the copies the content + * form src to the newly created EC_KEY object + * \param src source EC_GROUP object + * \return newly created EC_GROUP object or NULL in case of an error. + */ +EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); + +/** Returns the EC_METHOD of the EC_GROUP object. + * \param group EC_GROUP object + * \return EC_METHOD used in this EC_GROUP object. + */ +const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); + +/** Returns the field type of the EC_METHOD. + * \param meth EC_METHOD object + * \return NID of the underlying field type OID. + */ +int EC_METHOD_get_field_type(const EC_METHOD *meth); + +/** Sets the generator and it's order/cofactor of a EC_GROUP object. + * \param group EC_GROUP object + * \param generator EC_POINT object with the generator. + * \param order the order of the group generated by the generator. + * \param cofactor the index of the sub-group generated by the generator + * in the group of all points on the elliptic curve. + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, + const BIGNUM *order, const BIGNUM *cofactor); + +/** Returns the generator of a EC_GROUP object. + * \param group EC_GROUP object + * \return the currently used generator (possibly NULL). + */ +const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); + +/** Returns the montgomery data for order(Generator) + * \param group EC_GROUP object + * \return the currently used generator (possibly NULL). +*/ +BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); + +/** Gets the order of a EC_GROUP + * \param group EC_GROUP object + * \param order BIGNUM to which the order is copied + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); + +/** Gets the cofactor of a EC_GROUP + * \param group EC_GROUP object + * \param cofactor BIGNUM to which the cofactor is copied + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, + BN_CTX *ctx); + +/** Sets the name of a EC_GROUP object + * \param group EC_GROUP object + * \param nid NID of the curve name OID + */ +void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); + +/** Returns the curve name of a EC_GROUP object + * \param group EC_GROUP object + * \return NID of the curve name OID or 0 if not set. + */ +int EC_GROUP_get_curve_name(const EC_GROUP *group); + +void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); +int EC_GROUP_get_asn1_flag(const EC_GROUP *group); + +void EC_GROUP_set_point_conversion_form(EC_GROUP *group, + point_conversion_form_t form); +point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); + +unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); +size_t EC_GROUP_get_seed_len(const EC_GROUP *); +size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); + +/** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b + * \param group EC_GROUP object + * \param p BIGNUM with the prime number + * \param a BIGNUM with parameter a of the equation + * \param b BIGNUM with parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); + +/** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b + * \param group EC_GROUP object + * \param p BIGNUM for the prime number + * \param a BIGNUM for parameter a of the equation + * \param b BIGNUM for parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, + BIGNUM *b, BN_CTX *ctx); + +# ifndef OPENSSL_NO_EC2M +/** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b + * \param group EC_GROUP object + * \param p BIGNUM with the polynomial defining the underlying field + * \param a BIGNUM with parameter a of the equation + * \param b BIGNUM with parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); + +/** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b + * \param group EC_GROUP object + * \param p BIGNUM for the polynomial defining the underlying field + * \param a BIGNUM for parameter a of the equation + * \param b BIGNUM for parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, + BIGNUM *b, BN_CTX *ctx); +# endif +/** Returns the number of bits needed to represent a field element + * \param group EC_GROUP object + * \return number of bits needed to represent a field element + */ +int EC_GROUP_get_degree(const EC_GROUP *group); + +/** Checks whether the parameter in the EC_GROUP define a valid ec group + * \param group EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 1 if group is a valid ec group and 0 otherwise + */ +int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); + +/** Checks whether the discriminant of the elliptic curve is zero or not + * \param group EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 1 if the discriminant is not zero and 0 otherwise + */ +int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); + +/** Compares two EC_GROUP objects + * \param a first EC_GROUP object + * \param b second EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 0 if both groups are equal and 1 otherwise + */ +int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); + +/* + * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after + * choosing an appropriate EC_METHOD + */ + +/** Creates a new EC_GROUP object with the specified parameters defined + * over GFp (defined by the equation y^2 = x^3 + a*x + b) + * \param p BIGNUM with the prime number + * \param a BIGNUM with the parameter a of the equation + * \param b BIGNUM with the parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return newly created EC_GROUP object with the specified parameters + */ +EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +# ifndef OPENSSL_NO_EC2M +/** Creates a new EC_GROUP object with the specified parameters defined + * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) + * \param p BIGNUM with the polynomial defining the underlying field + * \param a BIGNUM with the parameter a of the equation + * \param b BIGNUM with the parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return newly created EC_GROUP object with the specified parameters + */ +EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +# endif +/** Creates a EC_GROUP object with a curve specified by a NID + * \param nid NID of the OID of the curve name + * \return newly created EC_GROUP object with specified curve or NULL + * if an error occurred + */ +EC_GROUP *EC_GROUP_new_by_curve_name(int nid); + +/********************************************************************/ +/* handling of internal curves */ +/********************************************************************/ + +typedef struct { + int nid; + const char *comment; +} EC_builtin_curve; + +/* + * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all + * available curves or zero if a error occurred. In case r ist not zero + * nitems EC_builtin_curve structures are filled with the data of the first + * nitems internal groups + */ +size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); + +const char *EC_curve_nid2nist(int nid); +int EC_curve_nist2nid(const char *name); + +/********************************************************************/ +/* EC_POINT functions */ +/********************************************************************/ + +/** Creates a new EC_POINT object for the specified EC_GROUP + * \param group EC_GROUP the underlying EC_GROUP object + * \return newly created EC_POINT object or NULL if an error occurred + */ +EC_POINT *EC_POINT_new(const EC_GROUP *group); + +/** Frees a EC_POINT object + * \param point EC_POINT object to be freed + */ +void EC_POINT_free(EC_POINT *point); + +/** Clears and frees a EC_POINT object + * \param point EC_POINT object to be cleared and freed + */ +void EC_POINT_clear_free(EC_POINT *point); + +/** Copies EC_POINT object + * \param dst destination EC_POINT object + * \param src source EC_POINT object + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); + +/** Creates a new EC_POINT object and copies the content of the supplied + * EC_POINT + * \param src source EC_POINT object + * \param group underlying the EC_GROUP object + * \return newly created EC_POINT object or NULL if an error occurred + */ +EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); + +/** Returns the EC_METHOD used in EC_POINT object + * \param point EC_POINT object + * \return the EC_METHOD used + */ +const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); + +/** Sets a point to infinity (neutral element) + * \param group underlying EC_GROUP object + * \param point EC_POINT to set to infinity + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); + +/** Sets the jacobian projective coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param z BIGNUM with the z-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, + EC_POINT *p, const BIGNUM *x, + const BIGNUM *y, const BIGNUM *z, + BN_CTX *ctx); + +/** Gets the jacobian projective coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param z BIGNUM for the z-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, + const EC_POINT *p, BIGNUM *x, + BIGNUM *y, BIGNUM *z, + BN_CTX *ctx); + +/** Sets the affine coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, + const BIGNUM *x, const BIGNUM *y, + BN_CTX *ctx); + +/** Gets the affine coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, + const EC_POINT *p, BIGNUM *x, + BIGNUM *y, BN_CTX *ctx); + +/** Sets the x9.62 compressed coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with x-coordinate + * \param y_bit integer with the y-Bit (either 0 or 1) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, + EC_POINT *p, const BIGNUM *x, + int y_bit, BN_CTX *ctx); +# ifndef OPENSSL_NO_EC2M +/** Sets the affine coordinates of a EC_POINT over GF2m + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, + const BIGNUM *x, const BIGNUM *y, + BN_CTX *ctx); + +/** Gets the affine coordinates of a EC_POINT over GF2m + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, + const EC_POINT *p, BIGNUM *x, + BIGNUM *y, BN_CTX *ctx); + +/** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with x-coordinate + * \param y_bit integer with the y-Bit (either 0 or 1) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, + EC_POINT *p, const BIGNUM *x, + int y_bit, BN_CTX *ctx); +# endif +/** Encodes a EC_POINT object to a octet string + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param form point conversion form + * \param buf memory buffer for the result. If NULL the function returns + * required buffer size. + * \param len length of the memory buffer + * \param ctx BN_CTX object (optional) + * \return the length of the encoded octet string or 0 if an error occurred + */ +size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, + point_conversion_form_t form, + unsigned char *buf, size_t len, BN_CTX *ctx); + +/** Decodes a EC_POINT from a octet string + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param buf memory buffer with the encoded ec point + * \param len length of the encoded ec point + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, + const unsigned char *buf, size_t len, BN_CTX *ctx); + +/* other interfaces to point2oct/oct2point: */ +BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, + point_conversion_form_t form, BIGNUM *, BN_CTX *); +EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, + EC_POINT *, BN_CTX *); +char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, + point_conversion_form_t form, BN_CTX *); +EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, + EC_POINT *, BN_CTX *); + +/********************************************************************/ +/* functions for doing EC_POINT arithmetic */ +/********************************************************************/ + +/** Computes the sum of two EC_POINT + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result (r = a + b) + * \param a EC_POINT object with the first summand + * \param b EC_POINT object with the second summand + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, + const EC_POINT *b, BN_CTX *ctx); + +/** Computes the double of a EC_POINT + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result (r = 2 * a) + * \param a EC_POINT object + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, + BN_CTX *ctx); + +/** Computes the inverse of a EC_POINT + * \param group underlying EC_GROUP object + * \param a EC_POINT object to be inverted (it's used for the result as well) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); + +/** Checks whether the point is the neutral element of the group + * \param group the underlying EC_GROUP object + * \param p EC_POINT object + * \return 1 if the point is the neutral element and 0 otherwise + */ +int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); + +/** Checks whether the point is on the curve + * \param group underlying EC_GROUP object + * \param point EC_POINT object to check + * \param ctx BN_CTX object (optional) + * \return 1 if point if on the curve and 0 otherwise + */ +int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, + BN_CTX *ctx); + +/** Compares two EC_POINTs + * \param group underlying EC_GROUP object + * \param a first EC_POINT object + * \param b second EC_POINT object + * \param ctx BN_CTX object (optional) + * \return 0 if both points are equal and a value != 0 otherwise + */ +int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, + BN_CTX *ctx); + +int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); +int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, + EC_POINT *points[], BN_CTX *ctx); + +/** Computes r = generator * n sum_{i=0}^{num-1} p[i] * m[i] + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result + * \param n BIGNUM with the multiplier for the group generator (optional) + * \param num number futher summands + * \param p array of size num of EC_POINT objects + * \param m array of size num of BIGNUM objects + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, + size_t num, const EC_POINT *p[], const BIGNUM *m[], + BN_CTX *ctx); + +/** Computes r = generator * n + q * m + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result + * \param n BIGNUM with the multiplier for the group generator (optional) + * \param q EC_POINT object with the first factor of the second summand + * \param m BIGNUM with the second factor of the second summand + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, + const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); + +/** Stores multiples of generator for faster point multiplication + * \param group EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occured + */ +int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); + +/** Reports whether a precomputation has been done + * \param group EC_GROUP object + * \return 1 if a pre-computation has been done and 0 otherwise + */ +int EC_GROUP_have_precompute_mult(const EC_GROUP *group); + +/********************************************************************/ +/* ASN1 stuff */ +/********************************************************************/ + +/* + * EC_GROUP_get_basis_type() returns the NID of the basis type used to + * represent the field elements + */ +int EC_GROUP_get_basis_type(const EC_GROUP *); +# ifndef OPENSSL_NO_EC2M +int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); +int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, + unsigned int *k2, unsigned int *k3); +# endif + +# define OPENSSL_EC_NAMED_CURVE 0x001 + +typedef struct ecpk_parameters_st ECPKPARAMETERS; + +EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); +int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); + +# define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) +# define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) +# define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \ + (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) +# define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \ + (unsigned char *)(x)) + +# ifndef OPENSSL_NO_BIO +int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); +# endif +# ifndef OPENSSL_NO_FP_API +int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); +# endif + +/********************************************************************/ +/* EC_KEY functions */ +/********************************************************************/ + +typedef struct ec_key_st EC_KEY; + +/* some values for the encoding_flag */ +# define EC_PKEY_NO_PARAMETERS 0x001 +# define EC_PKEY_NO_PUBKEY 0x002 + +/* some values for the flags field */ +# define EC_FLAG_NON_FIPS_ALLOW 0x1 +# define EC_FLAG_FIPS_CHECKED 0x2 + +/** Creates a new EC_KEY object. + * \return EC_KEY object or NULL if an error occurred. + */ +EC_KEY *EC_KEY_new(void); + +int EC_KEY_get_flags(const EC_KEY *key); + +void EC_KEY_set_flags(EC_KEY *key, int flags); + +void EC_KEY_clear_flags(EC_KEY *key, int flags); + +/** Creates a new EC_KEY object using a named curve as underlying + * EC_GROUP object. + * \param nid NID of the named curve. + * \return EC_KEY object or NULL if an error occurred. + */ +EC_KEY *EC_KEY_new_by_curve_name(int nid); + +/** Frees a EC_KEY object. + * \param key EC_KEY object to be freed. + */ +void EC_KEY_free(EC_KEY *key); + +/** Copies a EC_KEY object. + * \param dst destination EC_KEY object + * \param src src EC_KEY object + * \return dst or NULL if an error occurred. + */ +EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); + +/** Creates a new EC_KEY object and copies the content from src to it. + * \param src the source EC_KEY object + * \return newly created EC_KEY object or NULL if an error occurred. + */ +EC_KEY *EC_KEY_dup(const EC_KEY *src); + +/** Increases the internal reference count of a EC_KEY object. + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_up_ref(EC_KEY *key); + +/** Returns the EC_GROUP object of a EC_KEY object + * \param key EC_KEY object + * \return the EC_GROUP object (possibly NULL). + */ +const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); + +/** Sets the EC_GROUP of a EC_KEY object. + * \param key EC_KEY object + * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY + * object will use an own copy of the EC_GROUP). + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); + +/** Returns the private key of a EC_KEY object. + * \param key EC_KEY object + * \return a BIGNUM with the private key (possibly NULL). + */ +const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); + +/** Sets the private key of a EC_KEY object. + * \param key EC_KEY object + * \param prv BIGNUM with the private key (note: the EC_KEY object + * will use an own copy of the BIGNUM). + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); + +/** Returns the public key of a EC_KEY object. + * \param key the EC_KEY object + * \return a EC_POINT object with the public key (possibly NULL) + */ +const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); + +/** Sets the public key of a EC_KEY object. + * \param key EC_KEY object + * \param pub EC_POINT object with the public key (note: the EC_KEY object + * will use an own copy of the EC_POINT object). + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); + +unsigned EC_KEY_get_enc_flags(const EC_KEY *key); +void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); +point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); +void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); +/* functions to set/get method specific data */ +void *EC_KEY_get_key_method_data(EC_KEY *key, + void *(*dup_func) (void *), + void (*free_func) (void *), + void (*clear_free_func) (void *)); +/** Sets the key method data of an EC_KEY object, if none has yet been set. + * \param key EC_KEY object + * \param data opaque data to install. + * \param dup_func a function that duplicates |data|. + * \param free_func a function that frees |data|. + * \param clear_free_func a function that wipes and frees |data|. + * \return the previously set data pointer, or NULL if |data| was inserted. + */ +void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data, + void *(*dup_func) (void *), + void (*free_func) (void *), + void (*clear_free_func) (void *)); +/* wrapper functions for the underlying EC_GROUP object */ +void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); + +/** Creates a table of pre-computed multiples of the generator to + * accelerate further EC_KEY operations. + * \param key EC_KEY object + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); + +/** Creates a new ec private (and optional a new public) key. + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_generate_key(EC_KEY *key); + +/** Verifies that a private and/or public key is valid. + * \param key the EC_KEY object + * \return 1 on success and 0 otherwise. + */ +int EC_KEY_check_key(const EC_KEY *key); + +/** Sets a public key from affine coordindates performing + * neccessary NIST PKV tests. + * \param key the EC_KEY object + * \param x public key x coordinate + * \param y public key y coordinate + * \return 1 on success and 0 otherwise. + */ +int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, + BIGNUM *y); + +/********************************************************************/ +/* de- and encoding functions for SEC1 ECPrivateKey */ +/********************************************************************/ + +/** Decodes a private key from a memory buffer. + * \param key a pointer to a EC_KEY object which should be used (or NULL) + * \param in pointer to memory with the DER encoded private key + * \param len length of the DER encoded private key + * \return the decoded private key or NULL if an error occurred. + */ +EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); + +/** Encodes a private key object and stores the result in a buffer. + * \param key the EC_KEY object to encode + * \param out the buffer for the result (if NULL the function returns number + * of bytes needed). + * \return 1 on success and 0 if an error occurred. + */ +int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); + +/********************************************************************/ +/* de- and encoding functions for EC parameters */ +/********************************************************************/ + +/** Decodes ec parameter from a memory buffer. + * \param key a pointer to a EC_KEY object which should be used (or NULL) + * \param in pointer to memory with the DER encoded ec parameters + * \param len length of the DER encoded ec parameters + * \return a EC_KEY object with the decoded parameters or NULL if an error + * occurred. + */ +EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); + +/** Encodes ec parameter and stores the result in a buffer. + * \param key the EC_KEY object with ec paramters to encode + * \param out the buffer for the result (if NULL the function returns number + * of bytes needed). + * \return 1 on success and 0 if an error occurred. + */ +int i2d_ECParameters(EC_KEY *key, unsigned char **out); + +/********************************************************************/ +/* de- and encoding functions for EC public key */ +/* (octet string, not DER -- hence 'o2i' and 'i2o') */ +/********************************************************************/ + +/** Decodes a ec public key from a octet string. + * \param key a pointer to a EC_KEY object which should be used + * \param in memory buffer with the encoded public key + * \param len length of the encoded public key + * \return EC_KEY object with decoded public key or NULL if an error + * occurred. + */ +EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); + +/** Encodes a ec public key in an octet string. + * \param key the EC_KEY object with the public key + * \param out the buffer for the result (if NULL the function returns number + * of bytes needed). + * \return 1 on success and 0 if an error occurred + */ +int i2o_ECPublicKey(EC_KEY *key, unsigned char **out); + +# ifndef OPENSSL_NO_BIO +/** Prints out the ec parameters on human readable form. + * \param bp BIO object to which the information is printed + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred + */ +int ECParameters_print(BIO *bp, const EC_KEY *key); + +/** Prints out the contents of a EC_KEY object + * \param bp BIO object to which the information is printed + * \param key EC_KEY object + * \param off line offset + * \return 1 on success and 0 if an error occurred + */ +int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); + +# endif +# ifndef OPENSSL_NO_FP_API +/** Prints out the ec parameters on human readable form. + * \param fp file descriptor to which the information is printed + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred + */ +int ECParameters_print_fp(FILE *fp, const EC_KEY *key); + +/** Prints out the contents of a EC_KEY object + * \param fp file descriptor to which the information is printed + * \param key EC_KEY object + * \param off line offset + * \return 1 on success and 0 if an error occurred + */ +int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); + +# endif + +# define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) + +# ifndef __cplusplus +# if defined(__SUNPRO_C) +# if __SUNPRO_C >= 0x520 +# pragma error_messages (default,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) +# endif +# endif +# endif + +# define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) + +# define EVP_PKEY_CTX_set_ec_param_enc(ctx, flag) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_EC_PARAM_ENC, flag, NULL) + +# define EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx, flag) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_ECDH_COFACTOR, flag, NULL) + +# define EVP_PKEY_CTX_get_ecdh_cofactor_mode(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_ECDH_COFACTOR, -2, NULL) + +# define EVP_PKEY_CTX_set_ecdh_kdf_type(ctx, kdf) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_TYPE, kdf, NULL) + +# define EVP_PKEY_CTX_get_ecdh_kdf_type(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_TYPE, -2, NULL) + +# define EVP_PKEY_CTX_set_ecdh_kdf_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_get_ecdh_kdf_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_OUTLEN, len, NULL) + +# define EVP_PKEY_CTX_get_ecdh_kdf_outlen(ctx, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN, 0, (void *)plen) + +# define EVP_PKEY_CTX_set0_ecdh_kdf_ukm(ctx, p, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_UKM, plen, (void *)p) + +# define EVP_PKEY_CTX_get0_ecdh_kdf_ukm(ctx, p) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_UKM, 0, (void *)p) + +# define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_EC_PARAM_ENC (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_EC_ECDH_COFACTOR (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_EC_KDF_TYPE (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_GET_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_GET_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 10) +/* KDF types */ +# define EVP_PKEY_ECDH_KDF_NONE 1 +# define EVP_PKEY_ECDH_KDF_X9_62 2 + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_EC_strings(void); + +/* Error codes for the EC functions. */ + +/* Function codes. */ +# define EC_F_BN_TO_FELEM 224 +# define EC_F_COMPUTE_WNAF 143 +# define EC_F_D2I_ECPARAMETERS 144 +# define EC_F_D2I_ECPKPARAMETERS 145 +# define EC_F_D2I_ECPRIVATEKEY 146 +# define EC_F_DO_EC_KEY_PRINT 221 +# define EC_F_ECDH_CMS_DECRYPT 238 +# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 +# define EC_F_ECKEY_PARAM2TYPE 223 +# define EC_F_ECKEY_PARAM_DECODE 212 +# define EC_F_ECKEY_PRIV_DECODE 213 +# define EC_F_ECKEY_PRIV_ENCODE 214 +# define EC_F_ECKEY_PUB_DECODE 215 +# define EC_F_ECKEY_PUB_ENCODE 216 +# define EC_F_ECKEY_TYPE2PARAM 220 +# define EC_F_ECPARAMETERS_PRINT 147 +# define EC_F_ECPARAMETERS_PRINT_FP 148 +# define EC_F_ECPKPARAMETERS_PRINT 149 +# define EC_F_ECPKPARAMETERS_PRINT_FP 150 +# define EC_F_ECP_NISTZ256_GET_AFFINE 240 +# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 +# define EC_F_ECP_NISTZ256_POINTS_MUL 241 +# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 +# define EC_F_ECP_NISTZ256_SET_WORDS 245 +# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 +# define EC_F_ECP_NIST_MOD_192 203 +# define EC_F_ECP_NIST_MOD_224 204 +# define EC_F_ECP_NIST_MOD_256 205 +# define EC_F_ECP_NIST_MOD_521 206 +# define EC_F_EC_ASN1_GROUP2CURVE 153 +# define EC_F_EC_ASN1_GROUP2FIELDID 154 +# define EC_F_EC_ASN1_GROUP2PARAMETERS 155 +# define EC_F_EC_ASN1_GROUP2PKPARAMETERS 156 +# define EC_F_EC_ASN1_PARAMETERS2GROUP 157 +# define EC_F_EC_ASN1_PKPARAMETERS2GROUP 158 +# define EC_F_EC_EX_DATA_SET_DATA 211 +# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 +# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 +# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 +# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 +# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 +# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 +# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 +# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 +# define EC_F_EC_GFP_MONT_FIELD_DECODE 133 +# define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 +# define EC_F_EC_GFP_MONT_FIELD_MUL 131 +# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 +# define EC_F_EC_GFP_MONT_FIELD_SQR 132 +# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 +# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE_GFP 135 +# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 +# define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 +# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 +# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 +# define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 +# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 +# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 +# define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 +# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 +# define EC_F_EC_GFP_NIST_FIELD_MUL 200 +# define EC_F_EC_GFP_NIST_FIELD_SQR 201 +# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 +# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 +# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 +# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE_GFP 100 +# define EC_F_EC_GFP_SIMPLE_GROUP_SET_GENERATOR 101 +# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 +# define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 +# define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 +# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 +# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 +# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES_GFP 105 +# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 +# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES_GFP 128 +# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 +# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES_GFP 129 +# define EC_F_EC_GROUP_CHECK 170 +# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 +# define EC_F_EC_GROUP_COPY 106 +# define EC_F_EC_GROUP_GET0_GENERATOR 139 +# define EC_F_EC_GROUP_GET_COFACTOR 140 +# define EC_F_EC_GROUP_GET_CURVE_GF2M 172 +# define EC_F_EC_GROUP_GET_CURVE_GFP 130 +# define EC_F_EC_GROUP_GET_DEGREE 173 +# define EC_F_EC_GROUP_GET_ORDER 141 +# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 +# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 +# define EC_F_EC_GROUP_NEW 108 +# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 +# define EC_F_EC_GROUP_NEW_FROM_DATA 175 +# define EC_F_EC_GROUP_PRECOMPUTE_MULT 142 +# define EC_F_EC_GROUP_SET_CURVE_GF2M 176 +# define EC_F_EC_GROUP_SET_CURVE_GFP 109 +# define EC_F_EC_GROUP_SET_EXTRA_DATA 110 +# define EC_F_EC_GROUP_SET_GENERATOR 111 +# define EC_F_EC_KEY_CHECK_KEY 177 +# define EC_F_EC_KEY_COPY 178 +# define EC_F_EC_KEY_GENERATE_KEY 179 +# define EC_F_EC_KEY_NEW 182 +# define EC_F_EC_KEY_PRINT 180 +# define EC_F_EC_KEY_PRINT_FP 181 +# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 +# define EC_F_EC_POINTS_MAKE_AFFINE 136 +# define EC_F_EC_POINT_ADD 112 +# define EC_F_EC_POINT_CMP 113 +# define EC_F_EC_POINT_COPY 114 +# define EC_F_EC_POINT_DBL 115 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 +# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 +# define EC_F_EC_POINT_INVERT 210 +# define EC_F_EC_POINT_IS_AT_INFINITY 118 +# define EC_F_EC_POINT_IS_ON_CURVE 119 +# define EC_F_EC_POINT_MAKE_AFFINE 120 +# define EC_F_EC_POINT_MUL 184 +# define EC_F_EC_POINT_NEW 121 +# define EC_F_EC_POINT_OCT2POINT 122 +# define EC_F_EC_POINT_POINT2OCT 123 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 +# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 +# define EC_F_EC_POINT_SET_TO_INFINITY 127 +# define EC_F_EC_PRE_COMP_DUP 207 +# define EC_F_EC_PRE_COMP_NEW 196 +# define EC_F_EC_WNAF_MUL 187 +# define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 +# define EC_F_I2D_ECPARAMETERS 190 +# define EC_F_I2D_ECPKPARAMETERS 191 +# define EC_F_I2D_ECPRIVATEKEY 192 +# define EC_F_I2O_ECPUBLICKEY 151 +# define EC_F_NISTP224_PRE_COMP_NEW 227 +# define EC_F_NISTP256_PRE_COMP_NEW 236 +# define EC_F_NISTP521_PRE_COMP_NEW 237 +# define EC_F_O2I_ECPUBLICKEY 152 +# define EC_F_OLD_EC_PRIV_DECODE 222 +# define EC_F_PKEY_EC_CTRL 197 +# define EC_F_PKEY_EC_CTRL_STR 198 +# define EC_F_PKEY_EC_DERIVE 217 +# define EC_F_PKEY_EC_KEYGEN 199 +# define EC_F_PKEY_EC_PARAMGEN 219 +# define EC_F_PKEY_EC_SIGN 218 + +/* Reason codes. */ +# define EC_R_ASN1_ERROR 115 +# define EC_R_ASN1_UNKNOWN_FIELD 116 +# define EC_R_BIGNUM_OUT_OF_RANGE 144 +# define EC_R_BUFFER_TOO_SMALL 100 +# define EC_R_COORDINATES_OUT_OF_RANGE 146 +# define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 +# define EC_R_DECODE_ERROR 142 +# define EC_R_DISCRIMINANT_IS_ZERO 118 +# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 +# define EC_R_FIELD_TOO_LARGE 143 +# define EC_R_GF2M_NOT_SUPPORTED 147 +# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 +# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 +# define EC_R_INCOMPATIBLE_OBJECTS 101 +# define EC_R_INVALID_ARGUMENT 112 +# define EC_R_INVALID_COMPRESSED_POINT 110 +# define EC_R_INVALID_COMPRESSION_BIT 109 +# define EC_R_INVALID_CURVE 141 +# define EC_R_INVALID_DIGEST 151 +# define EC_R_INVALID_DIGEST_TYPE 138 +# define EC_R_INVALID_ENCODING 102 +# define EC_R_INVALID_FIELD 103 +# define EC_R_INVALID_FORM 104 +# define EC_R_INVALID_GROUP_ORDER 122 +# define EC_R_INVALID_PENTANOMIAL_BASIS 132 +# define EC_R_INVALID_PRIVATE_KEY 123 +# define EC_R_INVALID_TRINOMIAL_BASIS 137 +# define EC_R_KDF_PARAMETER_ERROR 148 +# define EC_R_KEYS_NOT_SET 140 +# define EC_R_MISSING_PARAMETERS 124 +# define EC_R_MISSING_PRIVATE_KEY 125 +# define EC_R_NOT_A_NIST_PRIME 135 +# define EC_R_NOT_A_SUPPORTED_NIST_PRIME 136 +# define EC_R_NOT_IMPLEMENTED 126 +# define EC_R_NOT_INITIALIZED 111 +# define EC_R_NO_FIELD_MOD 133 +# define EC_R_NO_PARAMETERS_SET 139 +# define EC_R_PASSED_NULL_PARAMETER 134 +# define EC_R_PEER_KEY_ERROR 149 +# define EC_R_PKPARAMETERS2GROUP_FAILURE 127 +# define EC_R_POINT_AT_INFINITY 106 +# define EC_R_POINT_IS_NOT_ON_CURVE 107 +# define EC_R_SHARED_INFO_ERROR 150 +# define EC_R_SLOT_FULL 108 +# define EC_R_UNDEFINED_GENERATOR 113 +# define EC_R_UNDEFINED_ORDER 128 +# define EC_R_UNKNOWN_GROUP 129 +# define EC_R_UNKNOWN_ORDER 114 +# define EC_R_UNSUPPORTED_FIELD 131 +# define EC_R_WRONG_CURVE_PARAMETERS 145 +# define EC_R_WRONG_ORDER 130 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/ecdh.h b/External/include64/openssl/ecdh.h new file mode 100644 index 00000000..25348b30 --- /dev/null +++ b/External/include64/openssl/ecdh.h @@ -0,0 +1,134 @@ +/* crypto/ecdh/ecdh.h */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * + * The Elliptic Curve Public-Key Crypto Library (ECC Code) included + * herein is developed by SUN MICROSYSTEMS, INC., and is contributed + * to the OpenSSL project. + * + * The ECC Code is licensed pursuant to the OpenSSL open source + * license provided below. + * + * The ECDH software is originally written by Douglas Stebila of + * Sun Microsystems Laboratories. + * + */ +/* ==================================================================== + * Copyright (c) 2000-2002 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +#ifndef HEADER_ECDH_H +# define HEADER_ECDH_H + +# include + +# ifdef OPENSSL_NO_ECDH +# error ECDH is disabled. +# endif + +# include +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define EC_FLAG_COFACTOR_ECDH 0x1000 + +const ECDH_METHOD *ECDH_OpenSSL(void); + +void ECDH_set_default_method(const ECDH_METHOD *); +const ECDH_METHOD *ECDH_get_default_method(void); +int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); + +int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, + EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen, + void *out, size_t *outlen)); + +int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new + *new_func, CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg); +void *ECDH_get_ex_data(EC_KEY *d, int idx); + +int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + const unsigned char *sinfo, size_t sinfolen, + const EVP_MD *md); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_ECDH_strings(void); + +/* Error codes for the ECDH functions. */ + +/* Function codes. */ +# define ECDH_F_ECDH_CHECK 102 +# define ECDH_F_ECDH_COMPUTE_KEY 100 +# define ECDH_F_ECDH_DATA_NEW_METHOD 101 + +/* Reason codes. */ +# define ECDH_R_KDF_FAILED 102 +# define ECDH_R_NON_FIPS_METHOD 103 +# define ECDH_R_NO_PRIVATE_VALUE 100 +# define ECDH_R_POINT_ARITHMETIC_FAILURE 101 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/ecdsa.h b/External/include64/openssl/ecdsa.h new file mode 100644 index 00000000..a6f0930f --- /dev/null +++ b/External/include64/openssl/ecdsa.h @@ -0,0 +1,335 @@ +/* crypto/ecdsa/ecdsa.h */ +/** + * \file crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions + * \author Written by Nils Larsch for the OpenSSL project + */ +/* ==================================================================== + * Copyright (c) 2000-2005 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +#ifndef HEADER_ECDSA_H +# define HEADER_ECDSA_H + +# include + +# ifdef OPENSSL_NO_ECDSA +# error ECDSA is disabled. +# endif + +# include +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ECDSA_SIG_st { + BIGNUM *r; + BIGNUM *s; +} ECDSA_SIG; + +/** Allocates and initialize a ECDSA_SIG structure + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_SIG_new(void); + +/** frees a ECDSA_SIG structure + * \param sig pointer to the ECDSA_SIG structure + */ +void ECDSA_SIG_free(ECDSA_SIG *sig); + +/** DER encode content of ECDSA_SIG object (note: this function modifies *pp + * (*pp += length of the DER encoded signature)). + * \param sig pointer to the ECDSA_SIG object + * \param pp pointer to a unsigned char pointer for the output or NULL + * \return the length of the DER encoded ECDSA_SIG object or 0 + */ +int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); + +/** Decodes a DER encoded ECDSA signature (note: this function changes *pp + * (*pp += len)). + * \param sig pointer to ECDSA_SIG pointer (may be NULL) + * \param pp memory buffer with the DER encoded signature + * \param len length of the buffer + * \return pointer to the decoded ECDSA_SIG structure (or NULL) + */ +ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); + +/** Computes the ECDSA signature of the given hash value using + * the supplied private key and returns the created signature. + * \param dgst pointer to the hash value + * \param dgst_len length of the hash value + * \param eckey EC_KEY object containing a private EC key + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, + EC_KEY *eckey); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param kinv BIGNUM with a pre-computed inverse k (optional) + * \param rp BIGNUM with a pre-computed rp value (optioanl), + * see ECDSA_sign_setup + * \param eckey EC_KEY object containing a private EC key + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, + const BIGNUM *kinv, const BIGNUM *rp, + EC_KEY *eckey); + +/** Verifies that the supplied signature is a valid ECDSA + * signature of the supplied hash value using the supplied public key. + * \param dgst pointer to the hash value + * \param dgst_len length of the hash value + * \param sig ECDSA_SIG structure + * \param eckey EC_KEY object containing a public EC key + * \return 1 if the signature is valid, 0 if the signature is invalid + * and -1 on error + */ +int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, + const ECDSA_SIG *sig, EC_KEY *eckey); + +const ECDSA_METHOD *ECDSA_OpenSSL(void); + +/** Sets the default ECDSA method + * \param meth new default ECDSA_METHOD + */ +void ECDSA_set_default_method(const ECDSA_METHOD *meth); + +/** Returns the default ECDSA method + * \return pointer to ECDSA_METHOD structure containing the default method + */ +const ECDSA_METHOD *ECDSA_get_default_method(void); + +/** Sets method to be used for the ECDSA operations + * \param eckey EC_KEY object + * \param meth new method + * \return 1 on success and 0 otherwise + */ +int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth); + +/** Returns the maximum length of the DER encoded signature + * \param eckey EC_KEY object + * \return numbers of bytes required for the DER encoded signature + */ +int ECDSA_size(const EC_KEY *eckey); + +/** Precompute parts of the signing operation + * \param eckey EC_KEY object containing a private EC key + * \param ctx BN_CTX object (optional) + * \param kinv BIGNUM pointer for the inverse of k + * \param rp BIGNUM pointer for x coordinate of k * generator + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param type this parameter is ignored + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param sig memory for the DER encoded created signature + * \param siglen pointer to the length of the returned signature + * \param eckey EC_KEY object containing a private EC key + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param type this parameter is ignored + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param sig buffer to hold the DER encoded signature + * \param siglen pointer to the length of the returned signature + * \param kinv BIGNUM with a pre-computed inverse k (optional) + * \param rp BIGNUM with a pre-computed rp value (optioanl), + * see ECDSA_sign_setup + * \param eckey EC_KEY object containing a private EC key + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); + +/** Verifies that the given signature is valid ECDSA signature + * of the supplied hash value using the specified public key. + * \param type this parameter is ignored + * \param dgst pointer to the hash value + * \param dgstlen length of the hash value + * \param sig pointer to the DER encoded signature + * \param siglen length of the DER encoded signature + * \param eckey EC_KEY object containing a public EC key + * \return 1 if the signature is valid, 0 if the signature is invalid + * and -1 on error + */ +int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, + const unsigned char *sig, int siglen, EC_KEY *eckey); + +/* the standard ex_data functions */ +int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new + *new_func, CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg); +void *ECDSA_get_ex_data(EC_KEY *d, int idx); + +/** Allocates and initialize a ECDSA_METHOD structure + * \param ecdsa_method pointer to ECDSA_METHOD to copy. (May be NULL) + * \return pointer to a ECDSA_METHOD structure or NULL if an error occurred + */ + +ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method); + +/** frees a ECDSA_METHOD structure + * \param ecdsa_method pointer to the ECDSA_METHOD structure + */ +void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method); + +/** Sets application specific data in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param app application specific data to set + */ + +void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app); + +/** Returns application specific data from a ECDSA_METHOD structure + * \param ecdsa_method pointer to ECDSA_METHOD structure + * \return pointer to application specific data. + */ + +void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method); + +/** Set the ECDSA_do_sign function in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param ecdsa_do_sign a funtion of type ECDSA_do_sign + */ + +void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method, + ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char + *dgst, int dgst_len, + const BIGNUM *inv, + const BIGNUM *rp, + EC_KEY *eckey)); + +/** Set the ECDSA_sign_setup function in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param ecdsa_sign_setup a funtion of type ECDSA_sign_setup + */ + +void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method, + int (*ecdsa_sign_setup) (EC_KEY *eckey, + BN_CTX *ctx, + BIGNUM **kinv, + BIGNUM **r)); + +/** Set the ECDSA_do_verify function in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param ecdsa_do_verify a funtion of type ECDSA_do_verify + */ + +void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method, + int (*ecdsa_do_verify) (const unsigned char + *dgst, int dgst_len, + const ECDSA_SIG *sig, + EC_KEY *eckey)); + +void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags); + +/** Set the flags field in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param flags flags value to set + */ + +void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name); + +/** Set the name field in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param name name to set + */ + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_ECDSA_strings(void); + +/* Error codes for the ECDSA functions. */ + +/* Function codes. */ +# define ECDSA_F_ECDSA_CHECK 104 +# define ECDSA_F_ECDSA_DATA_NEW_METHOD 100 +# define ECDSA_F_ECDSA_DO_SIGN 101 +# define ECDSA_F_ECDSA_DO_VERIFY 102 +# define ECDSA_F_ECDSA_METHOD_NEW 105 +# define ECDSA_F_ECDSA_SIGN_SETUP 103 + +/* Reason codes. */ +# define ECDSA_R_BAD_SIGNATURE 100 +# define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 101 +# define ECDSA_R_ERR_EC_LIB 102 +# define ECDSA_R_MISSING_PARAMETERS 103 +# define ECDSA_R_NEED_NEW_SETUP_VALUES 106 +# define ECDSA_R_NON_FIPS_METHOD 107 +# define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED 104 +# define ECDSA_R_SIGNATURE_MALLOC_FAILED 105 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/engine.h b/External/include64/openssl/engine.h new file mode 100644 index 00000000..bd7b5914 --- /dev/null +++ b/External/include64/openssl/engine.h @@ -0,0 +1,960 @@ +/* openssl/engine.h */ +/* + * Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL project + * 2000. + */ +/* ==================================================================== + * Copyright (c) 1999-2004 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * ECDH support in OpenSSL originally developed by + * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. + */ + +#ifndef HEADER_ENGINE_H +# define HEADER_ENGINE_H + +# include + +# ifdef OPENSSL_NO_ENGINE +# error ENGINE is disabled. +# endif + +# ifndef OPENSSL_NO_DEPRECATED +# include +# ifndef OPENSSL_NO_RSA +# include +# endif +# ifndef OPENSSL_NO_DSA +# include +# endif +# ifndef OPENSSL_NO_DH +# include +# endif +# ifndef OPENSSL_NO_ECDH +# include +# endif +# ifndef OPENSSL_NO_ECDSA +# include +# endif +# include +# include +# include +# endif + +# include +# include + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * These flags are used to control combinations of algorithm (methods) by + * bitwise "OR"ing. + */ +# define ENGINE_METHOD_RSA (unsigned int)0x0001 +# define ENGINE_METHOD_DSA (unsigned int)0x0002 +# define ENGINE_METHOD_DH (unsigned int)0x0004 +# define ENGINE_METHOD_RAND (unsigned int)0x0008 +# define ENGINE_METHOD_ECDH (unsigned int)0x0010 +# define ENGINE_METHOD_ECDSA (unsigned int)0x0020 +# define ENGINE_METHOD_CIPHERS (unsigned int)0x0040 +# define ENGINE_METHOD_DIGESTS (unsigned int)0x0080 +# define ENGINE_METHOD_STORE (unsigned int)0x0100 +# define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200 +# define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400 +/* Obvious all-or-nothing cases. */ +# define ENGINE_METHOD_ALL (unsigned int)0xFFFF +# define ENGINE_METHOD_NONE (unsigned int)0x0000 + +/* + * This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used + * internally to control registration of ENGINE implementations, and can be + * set by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to + * initialise registered ENGINEs if they are not already initialised. + */ +# define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001 + +/* ENGINE flags that can be set by ENGINE_set_flags(). */ +/* Not used */ +/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ + +/* + * This flag is for ENGINEs that wish to handle the various 'CMD'-related + * control commands on their own. Without this flag, ENGINE_ctrl() handles + * these control commands on behalf of the ENGINE using their "cmd_defns" + * data. + */ +# define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002 + +/* + * This flag is for ENGINEs who return new duplicate structures when found + * via "ENGINE_by_id()". When an ENGINE must store state (eg. if + * ENGINE_ctrl() commands are called in sequence as part of some stateful + * process like key-generation setup and execution), it can set this flag - + * then each attempt to obtain the ENGINE will result in it being copied into + * a new structure. Normally, ENGINEs don't declare this flag so + * ENGINE_by_id() just increments the existing ENGINE's structural reference + * count. + */ +# define ENGINE_FLAGS_BY_ID_COPY (int)0x0004 + +/* + * This flag if for an ENGINE that does not want its methods registered as + * part of ENGINE_register_all_complete() for example if the methods are not + * usable as default methods. + */ + +# define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008 + +/* + * ENGINEs can support their own command types, and these flags are used in + * ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input + * each command expects. Currently only numeric and string input is + * supported. If a control command supports none of the _NUMERIC, _STRING, or + * _NO_INPUT options, then it is regarded as an "internal" control command - + * and not for use in config setting situations. As such, they're not + * available to the ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() + * access. Changes to this list of 'command types' should be reflected + * carefully in ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). + */ + +/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */ +# define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 +/* + * accepts string input (cast from 'void*' to 'const char *', 4th parameter + * to ENGINE_ctrl) + */ +# define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 +/* + * Indicates that the control command takes *no* input. Ie. the control + * command is unparameterised. + */ +# define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 +/* + * Indicates that the control command is internal. This control command won't + * be shown in any output, and is only usable through the ENGINE_ctrl_cmd() + * function. + */ +# define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 + +/* + * NB: These 3 control commands are deprecated and should not be used. + * ENGINEs relying on these commands should compile conditional support for + * compatibility (eg. if these symbols are defined) but should also migrate + * the same functionality to their own ENGINE-specific control functions that + * can be "discovered" by calling applications. The fact these control + * commands wouldn't be "executable" (ie. usable by text-based config) + * doesn't change the fact that application code can find and use them + * without requiring per-ENGINE hacking. + */ + +/* + * These flags are used to tell the ctrl function what should be done. All + * command numbers are shared between all engines, even if some don't make + * sense to some engines. In such a case, they do nothing but return the + * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. + */ +# define ENGINE_CTRL_SET_LOGSTREAM 1 +# define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2 +# define ENGINE_CTRL_HUP 3/* Close and reinitialise + * any handles/connections + * etc. */ +# define ENGINE_CTRL_SET_USER_INTERFACE 4/* Alternative to callback */ +# define ENGINE_CTRL_SET_CALLBACK_DATA 5/* User-specific data, used + * when calling the password + * callback and the user + * interface */ +# define ENGINE_CTRL_LOAD_CONFIGURATION 6/* Load a configuration, + * given a string that + * represents a file name + * or so */ +# define ENGINE_CTRL_LOAD_SECTION 7/* Load data from a given + * section in the already + * loaded configuration */ + +/* + * These control commands allow an application to deal with an arbitrary + * engine in a dynamic way. Warn: Negative return values indicate errors FOR + * THESE COMMANDS because zero is used to indicate 'end-of-list'. Other + * commands, including ENGINE-specific command types, return zero for an + * error. An ENGINE can choose to implement these ctrl functions, and can + * internally manage things however it chooses - it does so by setting the + * ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise + * the ENGINE_ctrl() code handles this on the ENGINE's behalf using the + * cmd_defns data (set using ENGINE_set_cmd_defns()). This means an ENGINE's + * ctrl() handler need only implement its own commands - the above "meta" + * commands will be taken care of. + */ + +/* + * Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", + * then all the remaining control commands will return failure, so it is + * worth checking this first if the caller is trying to "discover" the + * engine's capabilities and doesn't want errors generated unnecessarily. + */ +# define ENGINE_CTRL_HAS_CTRL_FUNCTION 10 +/* + * Returns a positive command number for the first command supported by the + * engine. Returns zero if no ctrl commands are supported. + */ +# define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 +/* + * The 'long' argument specifies a command implemented by the engine, and the + * return value is the next command supported, or zero if there are no more. + */ +# define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 +/* + * The 'void*' argument is a command name (cast from 'const char *'), and the + * return value is the command that corresponds to it. + */ +# define ENGINE_CTRL_GET_CMD_FROM_NAME 13 +/* + * The next two allow a command to be converted into its corresponding string + * form. In each case, the 'long' argument supplies the command. In the + * NAME_LEN case, the return value is the length of the command name (not + * counting a trailing EOL). In the NAME case, the 'void*' argument must be a + * string buffer large enough, and it will be populated with the name of the + * command (WITH a trailing EOL). + */ +# define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 +# define ENGINE_CTRL_GET_NAME_FROM_CMD 15 +/* The next two are similar but give a "short description" of a command. */ +# define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 +# define ENGINE_CTRL_GET_DESC_FROM_CMD 17 +/* + * With this command, the return value is the OR'd combination of + * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given + * engine-specific ctrl command expects. + */ +# define ENGINE_CTRL_GET_CMD_FLAGS 18 + +/* + * ENGINE implementations should start the numbering of their own control + * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). + */ +# define ENGINE_CMD_BASE 200 + +/* + * NB: These 2 nCipher "chil" control commands are deprecated, and their + * functionality is now available through ENGINE-specific control commands + * (exposed through the above-mentioned 'CMD'-handling). Code using these 2 + * commands should be migrated to the more general command handling before + * these are removed. + */ + +/* Flags specific to the nCipher "chil" engine */ +# define ENGINE_CTRL_CHIL_SET_FORKCHECK 100 + /* + * Depending on the value of the (long)i argument, this sets or + * unsets the SimpleForkCheck flag in the CHIL API to enable or + * disable checking and workarounds for applications that fork(). + */ +# define ENGINE_CTRL_CHIL_NO_LOCKING 101 + /* + * This prevents the initialisation function from providing mutex + * callbacks to the nCipher library. + */ + +/* + * If an ENGINE supports its own specific control commands and wishes the + * framework to handle the above 'ENGINE_CMD_***'-manipulation commands on + * its behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN + * entries to ENGINE_set_cmd_defns(). It should also implement a ctrl() + * handler that supports the stated commands (ie. the "cmd_num" entries as + * described by the array). NB: The array must be ordered in increasing order + * of cmd_num. "null-terminated" means that the last ENGINE_CMD_DEFN element + * has cmd_num set to zero and/or cmd_name set to NULL. + */ +typedef struct ENGINE_CMD_DEFN_st { + unsigned int cmd_num; /* The command number */ + const char *cmd_name; /* The command name itself */ + const char *cmd_desc; /* A short description of the command */ + unsigned int cmd_flags; /* The input the command expects */ +} ENGINE_CMD_DEFN; + +/* Generic function pointer */ +typedef int (*ENGINE_GEN_FUNC_PTR) (void); +/* Generic function pointer taking no arguments */ +typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *); +/* Specific control function pointer */ +typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long, void *, + void (*f) (void)); +/* Generic load_key function pointer */ +typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, + UI_METHOD *ui_method, + void *callback_data); +typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl, + STACK_OF(X509_NAME) *ca_dn, + X509 **pcert, EVP_PKEY **pkey, + STACK_OF(X509) **pother, + UI_METHOD *ui_method, + void *callback_data); +/*- + * These callback types are for an ENGINE's handler for cipher and digest logic. + * These handlers have these prototypes; + * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); + * int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); + * Looking at how to implement these handlers in the case of cipher support, if + * the framework wants the EVP_CIPHER for 'nid', it will call; + * foo(e, &p_evp_cipher, NULL, nid); (return zero for failure) + * If the framework wants a list of supported 'nid's, it will call; + * foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error) + */ +/* + * Returns to a pointer to the array of supported cipher 'nid's. If the + * second parameter is non-NULL it is set to the size of the returned array. + */ +typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *, const EVP_CIPHER **, + const int **, int); +typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *, const EVP_MD **, const int **, + int); +typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **, + const int **, int); +typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **, + const int **, int); +/* + * STRUCTURE functions ... all of these functions deal with pointers to + * ENGINE structures where the pointers have a "structural reference". This + * means that their reference is to allowed access to the structure but it + * does not imply that the structure is functional. To simply increment or + * decrement the structural reference count, use ENGINE_by_id and + * ENGINE_free. NB: This is not required when iterating using ENGINE_get_next + * as it will automatically decrement the structural reference count of the + * "current" ENGINE and increment the structural reference count of the + * ENGINE it returns (unless it is NULL). + */ + +/* Get the first/last "ENGINE" type available. */ +ENGINE *ENGINE_get_first(void); +ENGINE *ENGINE_get_last(void); +/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */ +ENGINE *ENGINE_get_next(ENGINE *e); +ENGINE *ENGINE_get_prev(ENGINE *e); +/* Add another "ENGINE" type into the array. */ +int ENGINE_add(ENGINE *e); +/* Remove an existing "ENGINE" type from the array. */ +int ENGINE_remove(ENGINE *e); +/* Retrieve an engine from the list by its unique "id" value. */ +ENGINE *ENGINE_by_id(const char *id); +/* Add all the built-in engines. */ +void ENGINE_load_openssl(void); +void ENGINE_load_dynamic(void); +# ifndef OPENSSL_NO_STATIC_ENGINE +void ENGINE_load_4758cca(void); +void ENGINE_load_aep(void); +void ENGINE_load_atalla(void); +void ENGINE_load_chil(void); +void ENGINE_load_cswift(void); +void ENGINE_load_nuron(void); +void ENGINE_load_sureware(void); +void ENGINE_load_ubsec(void); +void ENGINE_load_padlock(void); +void ENGINE_load_capi(void); +# ifndef OPENSSL_NO_GMP +void ENGINE_load_gmp(void); +# endif +# ifndef OPENSSL_NO_GOST +void ENGINE_load_gost(void); +# endif +# endif +void ENGINE_load_cryptodev(void); +void ENGINE_load_rdrand(void); +void ENGINE_load_builtin_engines(void); + +/* + * Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation + * "registry" handling. + */ +unsigned int ENGINE_get_table_flags(void); +void ENGINE_set_table_flags(unsigned int flags); + +/*- Manage registration of ENGINEs per "table". For each type, there are 3 + * functions; + * ENGINE_register_***(e) - registers the implementation from 'e' (if it has one) + * ENGINE_unregister_***(e) - unregister the implementation from 'e' + * ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list + * Cleanup is automatically registered from each table when required, so + * ENGINE_cleanup() will reverse any "register" operations. + */ + +int ENGINE_register_RSA(ENGINE *e); +void ENGINE_unregister_RSA(ENGINE *e); +void ENGINE_register_all_RSA(void); + +int ENGINE_register_DSA(ENGINE *e); +void ENGINE_unregister_DSA(ENGINE *e); +void ENGINE_register_all_DSA(void); + +int ENGINE_register_ECDH(ENGINE *e); +void ENGINE_unregister_ECDH(ENGINE *e); +void ENGINE_register_all_ECDH(void); + +int ENGINE_register_ECDSA(ENGINE *e); +void ENGINE_unregister_ECDSA(ENGINE *e); +void ENGINE_register_all_ECDSA(void); + +int ENGINE_register_DH(ENGINE *e); +void ENGINE_unregister_DH(ENGINE *e); +void ENGINE_register_all_DH(void); + +int ENGINE_register_RAND(ENGINE *e); +void ENGINE_unregister_RAND(ENGINE *e); +void ENGINE_register_all_RAND(void); + +int ENGINE_register_STORE(ENGINE *e); +void ENGINE_unregister_STORE(ENGINE *e); +void ENGINE_register_all_STORE(void); + +int ENGINE_register_ciphers(ENGINE *e); +void ENGINE_unregister_ciphers(ENGINE *e); +void ENGINE_register_all_ciphers(void); + +int ENGINE_register_digests(ENGINE *e); +void ENGINE_unregister_digests(ENGINE *e); +void ENGINE_register_all_digests(void); + +int ENGINE_register_pkey_meths(ENGINE *e); +void ENGINE_unregister_pkey_meths(ENGINE *e); +void ENGINE_register_all_pkey_meths(void); + +int ENGINE_register_pkey_asn1_meths(ENGINE *e); +void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); +void ENGINE_register_all_pkey_asn1_meths(void); + +/* + * These functions register all support from the above categories. Note, use + * of these functions can result in static linkage of code your application + * may not need. If you only need a subset of functionality, consider using + * more selective initialisation. + */ +int ENGINE_register_complete(ENGINE *e); +int ENGINE_register_all_complete(void); + +/* + * Send parametrised control commands to the engine. The possibilities to + * send down an integer, a pointer to data or a function pointer are + * provided. Any of the parameters may or may not be NULL, depending on the + * command number. In actuality, this function only requires a structural + * (rather than functional) reference to an engine, but many control commands + * may require the engine be functional. The caller should be aware of trying + * commands that require an operational ENGINE, and only use functional + * references in such situations. + */ +int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void)); + +/* + * This function tests if an ENGINE-specific command is usable as a + * "setting". Eg. in an application's config file that gets processed through + * ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to + * ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). + */ +int ENGINE_cmd_is_executable(ENGINE *e, int cmd); + +/* + * This function works like ENGINE_ctrl() with the exception of taking a + * command name instead of a command number, and can handle optional + * commands. See the comment on ENGINE_ctrl_cmd_string() for an explanation + * on how to use the cmd_name and cmd_optional. + */ +int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, + long i, void *p, void (*f) (void), int cmd_optional); + +/* + * This function passes a command-name and argument to an ENGINE. The + * cmd_name is converted to a command number and the control command is + * called using 'arg' as an argument (unless the ENGINE doesn't support such + * a command, in which case no control command is called). The command is + * checked for input flags, and if necessary the argument will be converted + * to a numeric value. If cmd_optional is non-zero, then if the ENGINE + * doesn't support the given cmd_name the return value will be success + * anyway. This function is intended for applications to use so that users + * (or config files) can supply engine-specific config data to the ENGINE at + * run-time to control behaviour of specific engines. As such, it shouldn't + * be used for calling ENGINE_ctrl() functions that return data, deal with + * binary data, or that are otherwise supposed to be used directly through + * ENGINE_ctrl() in application code. Any "return" data from an ENGINE_ctrl() + * operation in this function will be lost - the return value is interpreted + * as failure if the return value is zero, success otherwise, and this + * function returns a boolean value as a result. In other words, vendors of + * 'ENGINE'-enabled devices should write ENGINE implementations with + * parameterisations that work in this scheme, so that compliant ENGINE-based + * applications can work consistently with the same configuration for the + * same ENGINE-enabled devices, across applications. + */ +int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, + int cmd_optional); + +/* + * These functions are useful for manufacturing new ENGINE structures. They + * don't address reference counting at all - one uses them to populate an + * ENGINE structure with personalised implementations of things prior to + * using it directly or adding it to the builtin ENGINE list in OpenSSL. + * These are also here so that the ENGINE structure doesn't have to be + * exposed and break binary compatibility! + */ +ENGINE *ENGINE_new(void); +int ENGINE_free(ENGINE *e); +int ENGINE_up_ref(ENGINE *e); +int ENGINE_set_id(ENGINE *e, const char *id); +int ENGINE_set_name(ENGINE *e, const char *name); +int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); +int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); +int ENGINE_set_ECDH(ENGINE *e, const ECDH_METHOD *ecdh_meth); +int ENGINE_set_ECDSA(ENGINE *e, const ECDSA_METHOD *ecdsa_meth); +int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); +int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); +int ENGINE_set_STORE(ENGINE *e, const STORE_METHOD *store_meth); +int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f); +int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); +int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); +int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); +int ENGINE_set_load_privkey_function(ENGINE *e, + ENGINE_LOAD_KEY_PTR loadpriv_f); +int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); +int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, + ENGINE_SSL_CLIENT_CERT_PTR + loadssl_f); +int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); +int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); +int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); +int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); +int ENGINE_set_flags(ENGINE *e, int flags); +int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns); +/* These functions allow control over any per-structure ENGINE data. */ +int ENGINE_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); +void *ENGINE_get_ex_data(const ENGINE *e, int idx); + +/* + * This function cleans up anything that needs it. Eg. the ENGINE_add() + * function automatically ensures the list cleanup function is registered to + * be called from ENGINE_cleanup(). Similarly, all ENGINE_register_*** + * functions ensure ENGINE_cleanup() will clean up after them. + */ +void ENGINE_cleanup(void); + +/* + * These return values from within the ENGINE structure. These can be useful + * with functional references as well as structural references - it depends + * which you obtained. Using the result for functional purposes if you only + * obtained a structural reference may be problematic! + */ +const char *ENGINE_get_id(const ENGINE *e); +const char *ENGINE_get_name(const ENGINE *e); +const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); +const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); +const ECDH_METHOD *ENGINE_get_ECDH(const ENGINE *e); +const ECDSA_METHOD *ENGINE_get_ECDSA(const ENGINE *e); +const DH_METHOD *ENGINE_get_DH(const ENGINE *e); +const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); +const STORE_METHOD *ENGINE_get_STORE(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); +ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); +ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); +ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); +ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE + *e); +ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); +ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); +ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); +ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); +const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); +const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); +const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); +const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); +const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, + const char *str, + int len); +const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, + const char *str, + int len); +const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); +int ENGINE_get_flags(const ENGINE *e); + +/* + * FUNCTIONAL functions. These functions deal with ENGINE structures that + * have (or will) be initialised for use. Broadly speaking, the structural + * functions are useful for iterating the list of available engine types, + * creating new engine types, and other "list" operations. These functions + * actually deal with ENGINEs that are to be used. As such these functions + * can fail (if applicable) when particular engines are unavailable - eg. if + * a hardware accelerator is not attached or not functioning correctly. Each + * ENGINE has 2 reference counts; structural and functional. Every time a + * functional reference is obtained or released, a corresponding structural + * reference is automatically obtained or released too. + */ + +/* + * Initialise a engine type for use (or up its reference count if it's + * already in use). This will fail if the engine is not currently operational + * and cannot initialise. + */ +int ENGINE_init(ENGINE *e); +/* + * Free a functional reference to a engine type. This does not require a + * corresponding call to ENGINE_free as it also releases a structural + * reference. + */ +int ENGINE_finish(ENGINE *e); + +/* + * The following functions handle keys that are stored in some secondary + * location, handled by the engine. The storage may be on a card or + * whatever. + */ +EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, + UI_METHOD *ui_method, void *callback_data); +EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, + UI_METHOD *ui_method, void *callback_data); +int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, + STACK_OF(X509_NAME) *ca_dn, X509 **pcert, + EVP_PKEY **ppkey, STACK_OF(X509) **pother, + UI_METHOD *ui_method, void *callback_data); + +/* + * This returns a pointer for the current ENGINE structure that is (by + * default) performing any RSA operations. The value returned is an + * incremented reference, so it should be free'd (ENGINE_finish) before it is + * discarded. + */ +ENGINE *ENGINE_get_default_RSA(void); +/* Same for the other "methods" */ +ENGINE *ENGINE_get_default_DSA(void); +ENGINE *ENGINE_get_default_ECDH(void); +ENGINE *ENGINE_get_default_ECDSA(void); +ENGINE *ENGINE_get_default_DH(void); +ENGINE *ENGINE_get_default_RAND(void); +/* + * These functions can be used to get a functional reference to perform + * ciphering or digesting corresponding to "nid". + */ +ENGINE *ENGINE_get_cipher_engine(int nid); +ENGINE *ENGINE_get_digest_engine(int nid); +ENGINE *ENGINE_get_pkey_meth_engine(int nid); +ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); + +/* + * This sets a new default ENGINE structure for performing RSA operations. If + * the result is non-zero (success) then the ENGINE structure will have had + * its reference count up'd so the caller should still free their own + * reference 'e'. + */ +int ENGINE_set_default_RSA(ENGINE *e); +int ENGINE_set_default_string(ENGINE *e, const char *def_list); +/* Same for the other "methods" */ +int ENGINE_set_default_DSA(ENGINE *e); +int ENGINE_set_default_ECDH(ENGINE *e); +int ENGINE_set_default_ECDSA(ENGINE *e); +int ENGINE_set_default_DH(ENGINE *e); +int ENGINE_set_default_RAND(ENGINE *e); +int ENGINE_set_default_ciphers(ENGINE *e); +int ENGINE_set_default_digests(ENGINE *e); +int ENGINE_set_default_pkey_meths(ENGINE *e); +int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); + +/* + * The combination "set" - the flags are bitwise "OR"d from the + * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()" + * function, this function can result in unnecessary static linkage. If your + * application requires only specific functionality, consider using more + * selective functions. + */ +int ENGINE_set_default(ENGINE *e, unsigned int flags); + +void ENGINE_add_conf_module(void); + +/* Deprecated functions ... */ +/* int ENGINE_clear_defaults(void); */ + +/**************************/ +/* DYNAMIC ENGINE SUPPORT */ +/**************************/ + +/* Binary/behaviour compatibility levels */ +# define OSSL_DYNAMIC_VERSION (unsigned long)0x00020000 +/* + * Binary versions older than this are too old for us (whether we're a loader + * or a loadee) + */ +# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00020000 + +/* + * When compiling an ENGINE entirely as an external shared library, loadable + * by the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' + * structure type provides the calling application's (or library's) error + * functionality and memory management function pointers to the loaded + * library. These should be used/set in the loaded library code so that the + * loading application's 'state' will be used/changed in all operations. The + * 'static_state' pointer allows the loaded library to know if it shares the + * same static data as the calling application (or library), and thus whether + * these callbacks need to be set or not. + */ +typedef void *(*dyn_MEM_malloc_cb) (size_t); +typedef void *(*dyn_MEM_realloc_cb) (void *, size_t); +typedef void (*dyn_MEM_free_cb) (void *); +typedef struct st_dynamic_MEM_fns { + dyn_MEM_malloc_cb malloc_cb; + dyn_MEM_realloc_cb realloc_cb; + dyn_MEM_free_cb free_cb; +} dynamic_MEM_fns; +/* + * FIXME: Perhaps the memory and locking code (crypto.h) should declare and + * use these types so we (and any other dependant code) can simplify a bit?? + */ +typedef void (*dyn_lock_locking_cb) (int, int, const char *, int); +typedef int (*dyn_lock_add_lock_cb) (int *, int, int, const char *, int); +typedef struct CRYPTO_dynlock_value *(*dyn_dynlock_create_cb) (const char *, + int); +typedef void (*dyn_dynlock_lock_cb) (int, struct CRYPTO_dynlock_value *, + const char *, int); +typedef void (*dyn_dynlock_destroy_cb) (struct CRYPTO_dynlock_value *, + const char *, int); +typedef struct st_dynamic_LOCK_fns { + dyn_lock_locking_cb lock_locking_cb; + dyn_lock_add_lock_cb lock_add_lock_cb; + dyn_dynlock_create_cb dynlock_create_cb; + dyn_dynlock_lock_cb dynlock_lock_cb; + dyn_dynlock_destroy_cb dynlock_destroy_cb; +} dynamic_LOCK_fns; +/* The top-level structure */ +typedef struct st_dynamic_fns { + void *static_state; + const ERR_FNS *err_fns; + const CRYPTO_EX_DATA_IMPL *ex_data_fns; + dynamic_MEM_fns mem_fns; + dynamic_LOCK_fns lock_fns; +} dynamic_fns; + +/* + * The version checking function should be of this prototype. NB: The + * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading + * code. If this function returns zero, it indicates a (potential) version + * incompatibility and the loaded library doesn't believe it can proceed. + * Otherwise, the returned value is the (latest) version supported by the + * loading library. The loader may still decide that the loaded code's + * version is unsatisfactory and could veto the load. The function is + * expected to be implemented with the symbol name "v_check", and a default + * implementation can be fully instantiated with + * IMPLEMENT_DYNAMIC_CHECK_FN(). + */ +typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); +# define IMPLEMENT_DYNAMIC_CHECK_FN() \ + OPENSSL_EXPORT unsigned long v_check(unsigned long v); \ + OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \ + if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ + return 0; } + +/* + * This function is passed the ENGINE structure to initialise with its own + * function and command settings. It should not adjust the structural or + * functional reference counts. If this function returns zero, (a) the load + * will be aborted, (b) the previous ENGINE state will be memcpy'd back onto + * the structure, and (c) the shared library will be unloaded. So + * implementations should do their own internal cleanup in failure + * circumstances otherwise they could leak. The 'id' parameter, if non-NULL, + * represents the ENGINE id that the loader is looking for. If this is NULL, + * the shared library can choose to return failure or to initialise a + * 'default' ENGINE. If non-NULL, the shared library must initialise only an + * ENGINE matching the passed 'id'. The function is expected to be + * implemented with the symbol name "bind_engine". A standard implementation + * can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where the parameter + * 'fn' is a callback function that populates the ENGINE structure and + * returns an int value (zero for failure). 'fn' should have prototype; + * [static] int fn(ENGINE *e, const char *id); + */ +typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, + const dynamic_fns *fns); +# define IMPLEMENT_DYNAMIC_BIND_FN(fn) \ + OPENSSL_EXPORT \ + int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \ + OPENSSL_EXPORT \ + int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \ + if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ + if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \ + fns->mem_fns.realloc_cb, fns->mem_fns.free_cb)) \ + return 0; \ + CRYPTO_set_locking_callback(fns->lock_fns.lock_locking_cb); \ + CRYPTO_set_add_lock_callback(fns->lock_fns.lock_add_lock_cb); \ + CRYPTO_set_dynlock_create_callback(fns->lock_fns.dynlock_create_cb); \ + CRYPTO_set_dynlock_lock_callback(fns->lock_fns.dynlock_lock_cb); \ + CRYPTO_set_dynlock_destroy_callback(fns->lock_fns.dynlock_destroy_cb); \ + if(!CRYPTO_set_ex_data_implementation(fns->ex_data_fns)) \ + return 0; \ + if(!ERR_set_implementation(fns->err_fns)) return 0; \ + skip_cbs: \ + if(!fn(e,id)) return 0; \ + return 1; } + +/* + * If the loading application (or library) and the loaded ENGINE library + * share the same static data (eg. they're both dynamically linked to the + * same libcrypto.so) we need a way to avoid trying to set system callbacks - + * this would fail, and for the same reason that it's unnecessary to try. If + * the loaded ENGINE has (or gets from through the loader) its own copy of + * the libcrypto static data, we will need to set the callbacks. The easiest + * way to detect this is to have a function that returns a pointer to some + * static data and let the loading application and loaded ENGINE compare + * their respective values. + */ +void *ENGINE_get_static_state(void); + +# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV) +void ENGINE_setup_bsd_cryptodev(void); +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_ENGINE_strings(void); + +/* Error codes for the ENGINE functions. */ + +/* Function codes. */ +# define ENGINE_F_DYNAMIC_CTRL 180 +# define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 +# define ENGINE_F_DYNAMIC_LOAD 182 +# define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 +# define ENGINE_F_ENGINE_ADD 105 +# define ENGINE_F_ENGINE_BY_ID 106 +# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 +# define ENGINE_F_ENGINE_CTRL 142 +# define ENGINE_F_ENGINE_CTRL_CMD 178 +# define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 +# define ENGINE_F_ENGINE_FINISH 107 +# define ENGINE_F_ENGINE_FREE_UTIL 108 +# define ENGINE_F_ENGINE_GET_CIPHER 185 +# define ENGINE_F_ENGINE_GET_DEFAULT_TYPE 177 +# define ENGINE_F_ENGINE_GET_DIGEST 186 +# define ENGINE_F_ENGINE_GET_NEXT 115 +# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 +# define ENGINE_F_ENGINE_GET_PKEY_METH 192 +# define ENGINE_F_ENGINE_GET_PREV 116 +# define ENGINE_F_ENGINE_INIT 119 +# define ENGINE_F_ENGINE_LIST_ADD 120 +# define ENGINE_F_ENGINE_LIST_REMOVE 121 +# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 +# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 +# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 +# define ENGINE_F_ENGINE_NEW 122 +# define ENGINE_F_ENGINE_REMOVE 123 +# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 +# define ENGINE_F_ENGINE_SET_DEFAULT_TYPE 126 +# define ENGINE_F_ENGINE_SET_ID 129 +# define ENGINE_F_ENGINE_SET_NAME 130 +# define ENGINE_F_ENGINE_TABLE_REGISTER 184 +# define ENGINE_F_ENGINE_UNLOAD_KEY 152 +# define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 +# define ENGINE_F_ENGINE_UP_REF 190 +# define ENGINE_F_INT_CTRL_HELPER 172 +# define ENGINE_F_INT_ENGINE_CONFIGURE 188 +# define ENGINE_F_INT_ENGINE_MODULE_INIT 187 +# define ENGINE_F_LOG_MESSAGE 141 + +/* Reason codes. */ +# define ENGINE_R_ALREADY_LOADED 100 +# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 +# define ENGINE_R_CMD_NOT_EXECUTABLE 134 +# define ENGINE_R_COMMAND_TAKES_INPUT 135 +# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 +# define ENGINE_R_CONFLICTING_ENGINE_ID 103 +# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 +# define ENGINE_R_DH_NOT_IMPLEMENTED 139 +# define ENGINE_R_DSA_NOT_IMPLEMENTED 140 +# define ENGINE_R_DSO_FAILURE 104 +# define ENGINE_R_DSO_NOT_FOUND 132 +# define ENGINE_R_ENGINES_SECTION_ERROR 148 +# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 +# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 +# define ENGINE_R_ENGINE_SECTION_ERROR 149 +# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 +# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 +# define ENGINE_R_FINISH_FAILED 106 +# define ENGINE_R_GET_HANDLE_FAILED 107 +# define ENGINE_R_ID_OR_NAME_MISSING 108 +# define ENGINE_R_INIT_FAILED 109 +# define ENGINE_R_INTERNAL_LIST_ERROR 110 +# define ENGINE_R_INVALID_ARGUMENT 143 +# define ENGINE_R_INVALID_CMD_NAME 137 +# define ENGINE_R_INVALID_CMD_NUMBER 138 +# define ENGINE_R_INVALID_INIT_VALUE 151 +# define ENGINE_R_INVALID_STRING 150 +# define ENGINE_R_NOT_INITIALISED 117 +# define ENGINE_R_NOT_LOADED 112 +# define ENGINE_R_NO_CONTROL_FUNCTION 120 +# define ENGINE_R_NO_INDEX 144 +# define ENGINE_R_NO_LOAD_FUNCTION 125 +# define ENGINE_R_NO_REFERENCE 130 +# define ENGINE_R_NO_SUCH_ENGINE 116 +# define ENGINE_R_NO_UNLOAD_FUNCTION 126 +# define ENGINE_R_PROVIDE_PARAMETERS 113 +# define ENGINE_R_RSA_NOT_IMPLEMENTED 141 +# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 +# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 +# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 +# define ENGINE_R_VERSION_INCOMPATIBILITY 145 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/err.h b/External/include64/openssl/err.h new file mode 100644 index 00000000..585aa8ba --- /dev/null +++ b/External/include64/openssl/err.h @@ -0,0 +1,389 @@ +/* crypto/err/err.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_ERR_H +# define HEADER_ERR_H + +# include + +# ifndef OPENSSL_NO_FP_API +# include +# include +# endif + +# include +# ifndef OPENSSL_NO_BIO +# include +# endif +# ifndef OPENSSL_NO_LHASH +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef OPENSSL_NO_ERR +# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,d,e) +# else +# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,NULL,0) +# endif + +# include + +# define ERR_TXT_MALLOCED 0x01 +# define ERR_TXT_STRING 0x02 + +# define ERR_FLAG_MARK 0x01 + +# define ERR_NUM_ERRORS 16 +typedef struct err_state_st { + CRYPTO_THREADID tid; + int err_flags[ERR_NUM_ERRORS]; + unsigned long err_buffer[ERR_NUM_ERRORS]; + char *err_data[ERR_NUM_ERRORS]; + int err_data_flags[ERR_NUM_ERRORS]; + const char *err_file[ERR_NUM_ERRORS]; + int err_line[ERR_NUM_ERRORS]; + int top, bottom; +} ERR_STATE; + +/* library */ +# define ERR_LIB_NONE 1 +# define ERR_LIB_SYS 2 +# define ERR_LIB_BN 3 +# define ERR_LIB_RSA 4 +# define ERR_LIB_DH 5 +# define ERR_LIB_EVP 6 +# define ERR_LIB_BUF 7 +# define ERR_LIB_OBJ 8 +# define ERR_LIB_PEM 9 +# define ERR_LIB_DSA 10 +# define ERR_LIB_X509 11 +/* #define ERR_LIB_METH 12 */ +# define ERR_LIB_ASN1 13 +# define ERR_LIB_CONF 14 +# define ERR_LIB_CRYPTO 15 +# define ERR_LIB_EC 16 +# define ERR_LIB_SSL 20 +/* #define ERR_LIB_SSL23 21 */ +/* #define ERR_LIB_SSL2 22 */ +/* #define ERR_LIB_SSL3 23 */ +/* #define ERR_LIB_RSAREF 30 */ +/* #define ERR_LIB_PROXY 31 */ +# define ERR_LIB_BIO 32 +# define ERR_LIB_PKCS7 33 +# define ERR_LIB_X509V3 34 +# define ERR_LIB_PKCS12 35 +# define ERR_LIB_RAND 36 +# define ERR_LIB_DSO 37 +# define ERR_LIB_ENGINE 38 +# define ERR_LIB_OCSP 39 +# define ERR_LIB_UI 40 +# define ERR_LIB_COMP 41 +# define ERR_LIB_ECDSA 42 +# define ERR_LIB_ECDH 43 +# define ERR_LIB_STORE 44 +# define ERR_LIB_FIPS 45 +# define ERR_LIB_CMS 46 +# define ERR_LIB_TS 47 +# define ERR_LIB_HMAC 48 +# define ERR_LIB_JPAKE 49 + +# define ERR_LIB_USER 128 + +# define SYSerr(f,r) ERR_PUT_error(ERR_LIB_SYS,(f),(r),__FILE__,__LINE__) +# define BNerr(f,r) ERR_PUT_error(ERR_LIB_BN,(f),(r),__FILE__,__LINE__) +# define RSAerr(f,r) ERR_PUT_error(ERR_LIB_RSA,(f),(r),__FILE__,__LINE__) +# define DHerr(f,r) ERR_PUT_error(ERR_LIB_DH,(f),(r),__FILE__,__LINE__) +# define EVPerr(f,r) ERR_PUT_error(ERR_LIB_EVP,(f),(r),__FILE__,__LINE__) +# define BUFerr(f,r) ERR_PUT_error(ERR_LIB_BUF,(f),(r),__FILE__,__LINE__) +# define OBJerr(f,r) ERR_PUT_error(ERR_LIB_OBJ,(f),(r),__FILE__,__LINE__) +# define PEMerr(f,r) ERR_PUT_error(ERR_LIB_PEM,(f),(r),__FILE__,__LINE__) +# define DSAerr(f,r) ERR_PUT_error(ERR_LIB_DSA,(f),(r),__FILE__,__LINE__) +# define X509err(f,r) ERR_PUT_error(ERR_LIB_X509,(f),(r),__FILE__,__LINE__) +# define ASN1err(f,r) ERR_PUT_error(ERR_LIB_ASN1,(f),(r),__FILE__,__LINE__) +# define CONFerr(f,r) ERR_PUT_error(ERR_LIB_CONF,(f),(r),__FILE__,__LINE__) +# define CRYPTOerr(f,r) ERR_PUT_error(ERR_LIB_CRYPTO,(f),(r),__FILE__,__LINE__) +# define ECerr(f,r) ERR_PUT_error(ERR_LIB_EC,(f),(r),__FILE__,__LINE__) +# define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),__FILE__,__LINE__) +# define BIOerr(f,r) ERR_PUT_error(ERR_LIB_BIO,(f),(r),__FILE__,__LINE__) +# define PKCS7err(f,r) ERR_PUT_error(ERR_LIB_PKCS7,(f),(r),__FILE__,__LINE__) +# define X509V3err(f,r) ERR_PUT_error(ERR_LIB_X509V3,(f),(r),__FILE__,__LINE__) +# define PKCS12err(f,r) ERR_PUT_error(ERR_LIB_PKCS12,(f),(r),__FILE__,__LINE__) +# define RANDerr(f,r) ERR_PUT_error(ERR_LIB_RAND,(f),(r),__FILE__,__LINE__) +# define DSOerr(f,r) ERR_PUT_error(ERR_LIB_DSO,(f),(r),__FILE__,__LINE__) +# define ENGINEerr(f,r) ERR_PUT_error(ERR_LIB_ENGINE,(f),(r),__FILE__,__LINE__) +# define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),__FILE__,__LINE__) +# define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),__FILE__,__LINE__) +# define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),__FILE__,__LINE__) +# define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),__FILE__,__LINE__) +# define ECDHerr(f,r) ERR_PUT_error(ERR_LIB_ECDH,(f),(r),__FILE__,__LINE__) +# define STOREerr(f,r) ERR_PUT_error(ERR_LIB_STORE,(f),(r),__FILE__,__LINE__) +# define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),__FILE__,__LINE__) +# define CMSerr(f,r) ERR_PUT_error(ERR_LIB_CMS,(f),(r),__FILE__,__LINE__) +# define TSerr(f,r) ERR_PUT_error(ERR_LIB_TS,(f),(r),__FILE__,__LINE__) +# define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),__FILE__,__LINE__) +# define JPAKEerr(f,r) ERR_PUT_error(ERR_LIB_JPAKE,(f),(r),__FILE__,__LINE__) + +/* + * Borland C seems too stupid to be able to shift and do longs in the + * pre-processor :-( + */ +# define ERR_PACK(l,f,r) (((((unsigned long)l)&0xffL)*0x1000000)| \ + ((((unsigned long)f)&0xfffL)*0x1000)| \ + ((((unsigned long)r)&0xfffL))) +# define ERR_GET_LIB(l) (int)((((unsigned long)l)>>24L)&0xffL) +# define ERR_GET_FUNC(l) (int)((((unsigned long)l)>>12L)&0xfffL) +# define ERR_GET_REASON(l) (int)((l)&0xfffL) +# define ERR_FATAL_ERROR(l) (int)((l)&ERR_R_FATAL) + +/* OS functions */ +# define SYS_F_FOPEN 1 +# define SYS_F_CONNECT 2 +# define SYS_F_GETSERVBYNAME 3 +# define SYS_F_SOCKET 4 +# define SYS_F_IOCTLSOCKET 5 +# define SYS_F_BIND 6 +# define SYS_F_LISTEN 7 +# define SYS_F_ACCEPT 8 +# define SYS_F_WSASTARTUP 9/* Winsock stuff */ +# define SYS_F_OPENDIR 10 +# define SYS_F_FREAD 11 + +/* reasons */ +# define ERR_R_SYS_LIB ERR_LIB_SYS/* 2 */ +# define ERR_R_BN_LIB ERR_LIB_BN/* 3 */ +# define ERR_R_RSA_LIB ERR_LIB_RSA/* 4 */ +# define ERR_R_DH_LIB ERR_LIB_DH/* 5 */ +# define ERR_R_EVP_LIB ERR_LIB_EVP/* 6 */ +# define ERR_R_BUF_LIB ERR_LIB_BUF/* 7 */ +# define ERR_R_OBJ_LIB ERR_LIB_OBJ/* 8 */ +# define ERR_R_PEM_LIB ERR_LIB_PEM/* 9 */ +# define ERR_R_DSA_LIB ERR_LIB_DSA/* 10 */ +# define ERR_R_X509_LIB ERR_LIB_X509/* 11 */ +# define ERR_R_ASN1_LIB ERR_LIB_ASN1/* 13 */ +# define ERR_R_CONF_LIB ERR_LIB_CONF/* 14 */ +# define ERR_R_CRYPTO_LIB ERR_LIB_CRYPTO/* 15 */ +# define ERR_R_EC_LIB ERR_LIB_EC/* 16 */ +# define ERR_R_SSL_LIB ERR_LIB_SSL/* 20 */ +# define ERR_R_BIO_LIB ERR_LIB_BIO/* 32 */ +# define ERR_R_PKCS7_LIB ERR_LIB_PKCS7/* 33 */ +# define ERR_R_X509V3_LIB ERR_LIB_X509V3/* 34 */ +# define ERR_R_PKCS12_LIB ERR_LIB_PKCS12/* 35 */ +# define ERR_R_RAND_LIB ERR_LIB_RAND/* 36 */ +# define ERR_R_DSO_LIB ERR_LIB_DSO/* 37 */ +# define ERR_R_ENGINE_LIB ERR_LIB_ENGINE/* 38 */ +# define ERR_R_OCSP_LIB ERR_LIB_OCSP/* 39 */ +# define ERR_R_UI_LIB ERR_LIB_UI/* 40 */ +# define ERR_R_COMP_LIB ERR_LIB_COMP/* 41 */ +# define ERR_R_ECDSA_LIB ERR_LIB_ECDSA/* 42 */ +# define ERR_R_ECDH_LIB ERR_LIB_ECDH/* 43 */ +# define ERR_R_STORE_LIB ERR_LIB_STORE/* 44 */ +# define ERR_R_TS_LIB ERR_LIB_TS/* 45 */ + +# define ERR_R_NESTED_ASN1_ERROR 58 +# define ERR_R_BAD_ASN1_OBJECT_HEADER 59 +# define ERR_R_BAD_GET_ASN1_OBJECT_CALL 60 +# define ERR_R_EXPECTING_AN_ASN1_SEQUENCE 61 +# define ERR_R_ASN1_LENGTH_MISMATCH 62 +# define ERR_R_MISSING_ASN1_EOS 63 + +/* fatal error */ +# define ERR_R_FATAL 64 +# define ERR_R_MALLOC_FAILURE (1|ERR_R_FATAL) +# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (2|ERR_R_FATAL) +# define ERR_R_PASSED_NULL_PARAMETER (3|ERR_R_FATAL) +# define ERR_R_INTERNAL_ERROR (4|ERR_R_FATAL) +# define ERR_R_DISABLED (5|ERR_R_FATAL) + +/* + * 99 is the maximum possible ERR_R_... code, higher values are reserved for + * the individual libraries + */ + +typedef struct ERR_string_data_st { + unsigned long error; + const char *string; +} ERR_STRING_DATA; + +void ERR_put_error(int lib, int func, int reason, const char *file, int line); +void ERR_set_error_data(char *data, int flags); + +unsigned long ERR_get_error(void); +unsigned long ERR_get_error_line(const char **file, int *line); +unsigned long ERR_get_error_line_data(const char **file, int *line, + const char **data, int *flags); +unsigned long ERR_peek_error(void); +unsigned long ERR_peek_error_line(const char **file, int *line); +unsigned long ERR_peek_error_line_data(const char **file, int *line, + const char **data, int *flags); +unsigned long ERR_peek_last_error(void); +unsigned long ERR_peek_last_error_line(const char **file, int *line); +unsigned long ERR_peek_last_error_line_data(const char **file, int *line, + const char **data, int *flags); +void ERR_clear_error(void); +char *ERR_error_string(unsigned long e, char *buf); +void ERR_error_string_n(unsigned long e, char *buf, size_t len); +const char *ERR_lib_error_string(unsigned long e); +const char *ERR_func_error_string(unsigned long e); +const char *ERR_reason_error_string(unsigned long e); +void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), + void *u); +# ifndef OPENSSL_NO_FP_API +void ERR_print_errors_fp(FILE *fp); +# endif +# ifndef OPENSSL_NO_BIO +void ERR_print_errors(BIO *bp); +# endif +void ERR_add_error_data(int num, ...); +void ERR_add_error_vdata(int num, va_list args); +void ERR_load_strings(int lib, ERR_STRING_DATA str[]); +void ERR_unload_strings(int lib, ERR_STRING_DATA str[]); +void ERR_load_ERR_strings(void); +void ERR_load_crypto_strings(void); +void ERR_free_strings(void); + +void ERR_remove_thread_state(const CRYPTO_THREADID *tid); +# ifndef OPENSSL_NO_DEPRECATED +void ERR_remove_state(unsigned long pid); /* if zero we look it up */ +# endif +ERR_STATE *ERR_get_state(void); + +# ifndef OPENSSL_NO_LHASH +LHASH_OF(ERR_STRING_DATA) *ERR_get_string_table(void); +LHASH_OF(ERR_STATE) *ERR_get_err_state_table(void); +void ERR_release_err_state_table(LHASH_OF(ERR_STATE) **hash); +# endif + +int ERR_get_next_error_library(void); + +int ERR_set_mark(void); +int ERR_pop_to_mark(void); + +/* Already defined in ossl_typ.h */ +/* typedef struct st_ERR_FNS ERR_FNS; */ +/* + * An application can use this function and provide the return value to + * loaded modules that should use the application's ERR state/functionality + */ +const ERR_FNS *ERR_get_implementation(void); +/* + * A loaded module should call this function prior to any ERR operations + * using the application's "ERR_FNS". + */ +int ERR_set_implementation(const ERR_FNS *fns); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/evp.h b/External/include64/openssl/evp.h new file mode 100644 index 00000000..39ab7937 --- /dev/null +++ b/External/include64/openssl/evp.h @@ -0,0 +1,1534 @@ +/* crypto/evp/evp.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_ENVELOPE_H +# define HEADER_ENVELOPE_H + +# ifdef OPENSSL_ALGORITHM_DEFINES +# include +# else +# define OPENSSL_ALGORITHM_DEFINES +# include +# undef OPENSSL_ALGORITHM_DEFINES +# endif + +# include + +# include + +# ifndef OPENSSL_NO_BIO +# include +# endif + +/*- +#define EVP_RC2_KEY_SIZE 16 +#define EVP_RC4_KEY_SIZE 16 +#define EVP_BLOWFISH_KEY_SIZE 16 +#define EVP_CAST5_KEY_SIZE 16 +#define EVP_RC5_32_12_16_KEY_SIZE 16 +*/ +# define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ +# define EVP_MAX_KEY_LENGTH 64 +# define EVP_MAX_IV_LENGTH 16 +# define EVP_MAX_BLOCK_LENGTH 32 + +# define PKCS5_SALT_LEN 8 +/* Default PKCS#5 iteration count */ +# define PKCS5_DEFAULT_ITER 2048 + +# include + +# define EVP_PK_RSA 0x0001 +# define EVP_PK_DSA 0x0002 +# define EVP_PK_DH 0x0004 +# define EVP_PK_EC 0x0008 +# define EVP_PKT_SIGN 0x0010 +# define EVP_PKT_ENC 0x0020 +# define EVP_PKT_EXCH 0x0040 +# define EVP_PKS_RSA 0x0100 +# define EVP_PKS_DSA 0x0200 +# define EVP_PKS_EC 0x0400 + +# define EVP_PKEY_NONE NID_undef +# define EVP_PKEY_RSA NID_rsaEncryption +# define EVP_PKEY_RSA2 NID_rsa +# define EVP_PKEY_DSA NID_dsa +# define EVP_PKEY_DSA1 NID_dsa_2 +# define EVP_PKEY_DSA2 NID_dsaWithSHA +# define EVP_PKEY_DSA3 NID_dsaWithSHA1 +# define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 +# define EVP_PKEY_DH NID_dhKeyAgreement +# define EVP_PKEY_DHX NID_dhpublicnumber +# define EVP_PKEY_EC NID_X9_62_id_ecPublicKey +# define EVP_PKEY_HMAC NID_hmac +# define EVP_PKEY_CMAC NID_cmac + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Type needs to be a bit field Sub-type needs to be for variations on the + * method, as in, can it do arbitrary encryption.... + */ +struct evp_pkey_st { + int type; + int save_type; + int references; + const EVP_PKEY_ASN1_METHOD *ameth; + ENGINE *engine; + union { + char *ptr; +# ifndef OPENSSL_NO_RSA + struct rsa_st *rsa; /* RSA */ +# endif +# ifndef OPENSSL_NO_DSA + struct dsa_st *dsa; /* DSA */ +# endif +# ifndef OPENSSL_NO_DH + struct dh_st *dh; /* DH */ +# endif +# ifndef OPENSSL_NO_EC + struct ec_key_st *ec; /* ECC */ +# endif + } pkey; + int save_parameters; + STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */ +} /* EVP_PKEY */ ; + +# define EVP_PKEY_MO_SIGN 0x0001 +# define EVP_PKEY_MO_VERIFY 0x0002 +# define EVP_PKEY_MO_ENCRYPT 0x0004 +# define EVP_PKEY_MO_DECRYPT 0x0008 + +# ifndef EVP_MD +struct env_md_st { + int type; + int pkey_type; + int md_size; + unsigned long flags; + int (*init) (EVP_MD_CTX *ctx); + int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); + int (*final) (EVP_MD_CTX *ctx, unsigned char *md); + int (*copy) (EVP_MD_CTX *to, const EVP_MD_CTX *from); + int (*cleanup) (EVP_MD_CTX *ctx); + /* FIXME: prototype these some day */ + int (*sign) (int type, const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, void *key); + int (*verify) (int type, const unsigned char *m, unsigned int m_length, + const unsigned char *sigbuf, unsigned int siglen, + void *key); + int required_pkey_type[5]; /* EVP_PKEY_xxx */ + int block_size; + int ctx_size; /* how big does the ctx->md_data need to be */ + /* control function */ + int (*md_ctrl) (EVP_MD_CTX *ctx, int cmd, int p1, void *p2); +} /* EVP_MD */ ; + +typedef int evp_sign_method(int type, const unsigned char *m, + unsigned int m_length, unsigned char *sigret, + unsigned int *siglen, void *key); +typedef int evp_verify_method(int type, const unsigned char *m, + unsigned int m_length, + const unsigned char *sigbuf, + unsigned int siglen, void *key); + +/* digest can only handle a single block */ +# define EVP_MD_FLAG_ONESHOT 0x0001 + +/* + * digest is a "clone" digest used + * which is a copy of an existing + * one for a specific public key type. + * EVP_dss1() etc + */ +# define EVP_MD_FLAG_PKEY_DIGEST 0x0002 + +/* Digest uses EVP_PKEY_METHOD for signing instead of MD specific signing */ + +# define EVP_MD_FLAG_PKEY_METHOD_SIGNATURE 0x0004 + +/* DigestAlgorithmIdentifier flags... */ + +# define EVP_MD_FLAG_DIGALGID_MASK 0x0018 + +/* NULL or absent parameter accepted. Use NULL */ + +# define EVP_MD_FLAG_DIGALGID_NULL 0x0000 + +/* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ + +# define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008 + +/* Custom handling via ctrl */ + +# define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018 + +/* Note if suitable for use in FIPS mode */ +# define EVP_MD_FLAG_FIPS 0x0400 + +/* Digest ctrls */ + +# define EVP_MD_CTRL_DIGALGID 0x1 +# define EVP_MD_CTRL_MICALG 0x2 + +/* Minimum Algorithm specific ctrl value */ + +# define EVP_MD_CTRL_ALG_CTRL 0x1000 + +# define EVP_PKEY_NULL_method NULL,NULL,{0,0,0,0} + +# ifndef OPENSSL_NO_DSA +# define EVP_PKEY_DSA_method (evp_sign_method *)DSA_sign, \ + (evp_verify_method *)DSA_verify, \ + {EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3, \ + EVP_PKEY_DSA4,0} +# else +# define EVP_PKEY_DSA_method EVP_PKEY_NULL_method +# endif + +# ifndef OPENSSL_NO_ECDSA +# define EVP_PKEY_ECDSA_method (evp_sign_method *)ECDSA_sign, \ + (evp_verify_method *)ECDSA_verify, \ + {EVP_PKEY_EC,0,0,0} +# else +# define EVP_PKEY_ECDSA_method EVP_PKEY_NULL_method +# endif + +# ifndef OPENSSL_NO_RSA +# define EVP_PKEY_RSA_method (evp_sign_method *)RSA_sign, \ + (evp_verify_method *)RSA_verify, \ + {EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0} +# define EVP_PKEY_RSA_ASN1_OCTET_STRING_method \ + (evp_sign_method *)RSA_sign_ASN1_OCTET_STRING, \ + (evp_verify_method *)RSA_verify_ASN1_OCTET_STRING, \ + {EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0} +# else +# define EVP_PKEY_RSA_method EVP_PKEY_NULL_method +# define EVP_PKEY_RSA_ASN1_OCTET_STRING_method EVP_PKEY_NULL_method +# endif + +# endif /* !EVP_MD */ + +struct env_md_ctx_st { + const EVP_MD *digest; + ENGINE *engine; /* functional reference if 'digest' is + * ENGINE-provided */ + unsigned long flags; + void *md_data; + /* Public key context for sign/verify */ + EVP_PKEY_CTX *pctx; + /* Update function: usually copied from EVP_MD */ + int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); +} /* EVP_MD_CTX */ ; + +/* values for EVP_MD_CTX flags */ + +# define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be + * called once only */ +# define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been + * cleaned */ +# define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data + * in EVP_MD_CTX_cleanup */ +/* + * FIPS and pad options are ignored in 1.0.0, definitions are here so we + * don't accidentally reuse the values for other purposes. + */ + +# define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008/* Allow use of non FIPS + * digest in FIPS mode */ + +/* + * The following PAD options are also currently ignored in 1.0.0, digest + * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() + * instead. + */ +# define EVP_MD_CTX_FLAG_PAD_MASK 0xF0/* RSA mode to use */ +# define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00/* PKCS#1 v1.5 mode */ +# define EVP_MD_CTX_FLAG_PAD_X931 0x10/* X9.31 mode */ +# define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */ + +# define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */ + +struct evp_cipher_st { + int nid; + int block_size; + /* Default value for variable length ciphers */ + int key_len; + int iv_len; + /* Various flags */ + unsigned long flags; + /* init key */ + int (*init) (EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc); + /* encrypt/decrypt data */ + int (*do_cipher) (EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t inl); + /* cleanup ctx */ + int (*cleanup) (EVP_CIPHER_CTX *); + /* how big ctx->cipher_data needs to be */ + int ctx_size; + /* Populate a ASN1_TYPE with parameters */ + int (*set_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); + /* Get parameters from a ASN1_TYPE */ + int (*get_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); + /* Miscellaneous operations */ + int (*ctrl) (EVP_CIPHER_CTX *, int type, int arg, void *ptr); + /* Application data */ + void *app_data; +} /* EVP_CIPHER */ ; + +/* Values for cipher flags */ + +/* Modes for ciphers */ + +# define EVP_CIPH_STREAM_CIPHER 0x0 +# define EVP_CIPH_ECB_MODE 0x1 +# define EVP_CIPH_CBC_MODE 0x2 +# define EVP_CIPH_CFB_MODE 0x3 +# define EVP_CIPH_OFB_MODE 0x4 +# define EVP_CIPH_CTR_MODE 0x5 +# define EVP_CIPH_GCM_MODE 0x6 +# define EVP_CIPH_CCM_MODE 0x7 +# define EVP_CIPH_XTS_MODE 0x10001 +# define EVP_CIPH_WRAP_MODE 0x10002 +# define EVP_CIPH_MODE 0xF0007 +/* Set if variable length cipher */ +# define EVP_CIPH_VARIABLE_LENGTH 0x8 +/* Set if the iv handling should be done by the cipher itself */ +# define EVP_CIPH_CUSTOM_IV 0x10 +/* Set if the cipher's init() function should be called if key is NULL */ +# define EVP_CIPH_ALWAYS_CALL_INIT 0x20 +/* Call ctrl() to init cipher parameters */ +# define EVP_CIPH_CTRL_INIT 0x40 +/* Don't use standard key length function */ +# define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 +/* Don't use standard block padding */ +# define EVP_CIPH_NO_PADDING 0x100 +/* cipher handles random key generation */ +# define EVP_CIPH_RAND_KEY 0x200 +/* cipher has its own additional copying logic */ +# define EVP_CIPH_CUSTOM_COPY 0x400 +/* Allow use default ASN1 get/set iv */ +# define EVP_CIPH_FLAG_DEFAULT_ASN1 0x1000 +/* Buffer length in bits not bytes: CFB1 mode only */ +# define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 +/* Note if suitable for use in FIPS mode */ +# define EVP_CIPH_FLAG_FIPS 0x4000 +/* Allow non FIPS cipher in FIPS mode */ +# define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0x8000 +/* + * Cipher handles any and all padding logic as well as finalisation. + */ +# define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 +# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 +# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 + +/* + * Cipher context flag to indicate we can handle wrap mode: if allowed in + * older applications it could overflow buffers. + */ + +# define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1 + +/* ctrl() values */ + +# define EVP_CTRL_INIT 0x0 +# define EVP_CTRL_SET_KEY_LENGTH 0x1 +# define EVP_CTRL_GET_RC2_KEY_BITS 0x2 +# define EVP_CTRL_SET_RC2_KEY_BITS 0x3 +# define EVP_CTRL_GET_RC5_ROUNDS 0x4 +# define EVP_CTRL_SET_RC5_ROUNDS 0x5 +# define EVP_CTRL_RAND_KEY 0x6 +# define EVP_CTRL_PBE_PRF_NID 0x7 +# define EVP_CTRL_COPY 0x8 +# define EVP_CTRL_GCM_SET_IVLEN 0x9 +# define EVP_CTRL_GCM_GET_TAG 0x10 +# define EVP_CTRL_GCM_SET_TAG 0x11 +# define EVP_CTRL_GCM_SET_IV_FIXED 0x12 +# define EVP_CTRL_GCM_IV_GEN 0x13 +# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_GCM_SET_IVLEN +# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_GCM_GET_TAG +# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_GCM_SET_TAG +# define EVP_CTRL_CCM_SET_L 0x14 +# define EVP_CTRL_CCM_SET_MSGLEN 0x15 +/* + * AEAD cipher deduces payload length and returns number of bytes required to + * store MAC and eventual padding. Subsequent call to EVP_Cipher even + * appends/verifies MAC. + */ +# define EVP_CTRL_AEAD_TLS1_AAD 0x16 +/* Used by composite AEAD ciphers, no-op in GCM, CCM... */ +# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 +/* Set the GCM invocation field, decrypt only */ +# define EVP_CTRL_GCM_SET_IV_INV 0x18 + +# define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19 +# define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a +# define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b +# define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c + +/* RFC 5246 defines additional data to be 13 bytes in length */ +# define EVP_AEAD_TLS1_AAD_LEN 13 + +typedef struct { + unsigned char *out; + const unsigned char *inp; + size_t len; + unsigned int interleave; +} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; + +/* GCM TLS constants */ +/* Length of fixed part of IV derived from PRF */ +# define EVP_GCM_TLS_FIXED_IV_LEN 4 +/* Length of explicit part of IV part of TLS records */ +# define EVP_GCM_TLS_EXPLICIT_IV_LEN 8 +/* Length of tag for TLS */ +# define EVP_GCM_TLS_TAG_LEN 16 + +typedef struct evp_cipher_info_st { + const EVP_CIPHER *cipher; + unsigned char iv[EVP_MAX_IV_LENGTH]; +} EVP_CIPHER_INFO; + +struct evp_cipher_ctx_st { + const EVP_CIPHER *cipher; + ENGINE *engine; /* functional reference if 'cipher' is + * ENGINE-provided */ + int encrypt; /* encrypt or decrypt */ + int buf_len; /* number we have left */ + unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */ + unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */ + unsigned char buf[EVP_MAX_BLOCK_LENGTH]; /* saved partial block */ + int num; /* used by cfb/ofb/ctr mode */ + void *app_data; /* application stuff */ + int key_len; /* May change for variable length cipher */ + unsigned long flags; /* Various flags */ + void *cipher_data; /* per EVP data */ + int final_used; + int block_mask; + unsigned char final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */ +} /* EVP_CIPHER_CTX */ ; + +typedef struct evp_Encode_Ctx_st { + /* number saved in a partial encode/decode */ + int num; + /* + * The length is either the output line length (in input bytes) or the + * shortest input line length that is ok. Once decoding begins, the + * length is adjusted up each time a longer line is decoded + */ + int length; + /* data to encode */ + unsigned char enc_data[80]; + /* number read on current line */ + int line_num; + int expect_nl; +} EVP_ENCODE_CTX; + +/* Password based encryption function */ +typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, + int passlen, ASN1_TYPE *param, + const EVP_CIPHER *cipher, const EVP_MD *md, + int en_de); + +# ifndef OPENSSL_NO_RSA +# define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ + (char *)(rsa)) +# endif + +# ifndef OPENSSL_NO_DSA +# define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ + (char *)(dsa)) +# endif + +# ifndef OPENSSL_NO_DH +# define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\ + (char *)(dh)) +# endif + +# ifndef OPENSSL_NO_EC +# define EVP_PKEY_assign_EC_KEY(pkey,eckey) EVP_PKEY_assign((pkey),EVP_PKEY_EC,\ + (char *)(eckey)) +# endif + +/* Add some extra combinations */ +# define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) +# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) +# define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) +# define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) + +int EVP_MD_type(const EVP_MD *md); +# define EVP_MD_nid(e) EVP_MD_type(e) +# define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e)) +int EVP_MD_pkey_type(const EVP_MD *md); +int EVP_MD_size(const EVP_MD *md); +int EVP_MD_block_size(const EVP_MD *md); +unsigned long EVP_MD_flags(const EVP_MD *md); + +const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); +# define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e)) +# define EVP_MD_CTX_block_size(e) EVP_MD_block_size(EVP_MD_CTX_md(e)) +# define EVP_MD_CTX_type(e) EVP_MD_type(EVP_MD_CTX_md(e)) + +int EVP_CIPHER_nid(const EVP_CIPHER *cipher); +# define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e)) +int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); +int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); +int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); +unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); +# define EVP_CIPHER_mode(e) (EVP_CIPHER_flags(e) & EVP_CIPH_MODE) + +const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); +void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); +void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); +# define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) +unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx); +# define EVP_CIPHER_CTX_mode(e) (EVP_CIPHER_CTX_flags(e) & EVP_CIPH_MODE) + +# define EVP_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80) +# define EVP_DECODE_LENGTH(l) ((l+3)/4*3+80) + +# define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) +# define EVP_SignInit(a,b) EVP_DigestInit(a,b) +# define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +# define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) +# define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) +# define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +# define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) +# define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) +# define EVP_DigestSignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +# define EVP_DigestVerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) + +# ifdef CONST_STRICT +void BIO_set_md(BIO *, const EVP_MD *md); +# else +# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(char *)md) +# endif +# define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)mdp) +# define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(char *)mdcp) +# define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0,(char *)mdcp) +# define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) +# define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(char *)c_pp) + +int EVP_Cipher(EVP_CIPHER_CTX *c, + unsigned char *out, const unsigned char *in, unsigned int inl); + +# define EVP_add_cipher_alias(n,alias) \ + OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) +# define EVP_add_digest_alias(n,alias) \ + OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) +# define EVP_delete_cipher_alias(alias) \ + OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); +# define EVP_delete_digest_alias(alias) \ + OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); + +void EVP_MD_CTX_init(EVP_MD_CTX *ctx); +int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx); +EVP_MD_CTX *EVP_MD_CTX_create(void); +void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); +int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); +void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); +void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); +int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); +int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); +int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); +int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); +int EVP_Digest(const void *data, size_t count, + unsigned char *md, unsigned int *size, const EVP_MD *type, + ENGINE *impl); + +int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); +int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); +int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); + +int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); +int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, + const char *prompt, int verify); +void EVP_set_pw_prompt(const char *prompt); +char *EVP_get_pw_prompt(void); + +int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, + const unsigned char *salt, const unsigned char *data, + int datal, int count, unsigned char *key, + unsigned char *iv); + +void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); +void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); +int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); + +int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv); +int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + ENGINE *impl, const unsigned char *key, + const unsigned char *iv); +int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); +int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); + +int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv); +int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + ENGINE *impl, const unsigned char *key, + const unsigned char *iv); +int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); +int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); + +int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv, + int enc); +int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + ENGINE *impl, const unsigned char *key, + const unsigned char *iv, int enc); +int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); +int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); + +int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, + EVP_PKEY *pkey); + +int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, + unsigned int siglen, EVP_PKEY *pkey); + +int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, + const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); +int EVP_DigestSignFinal(EVP_MD_CTX *ctx, + unsigned char *sigret, size_t *siglen); + +int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, + const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); +int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, + const unsigned char *sig, size_t siglen); + +int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, + const unsigned char *ek, int ekl, const unsigned char *iv, + EVP_PKEY *priv); +int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); + +int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, + unsigned char **ek, int *ekl, unsigned char *iv, + EVP_PKEY **pubk, int npubk); +int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); + +void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); +void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); +int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); + +void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); +int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned + char *out, int *outl); +int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); + +void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a); +int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a); +EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); +void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); +int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); +int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); +int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); +int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); + +# ifndef OPENSSL_NO_BIO +BIO_METHOD *BIO_f_md(void); +BIO_METHOD *BIO_f_base64(void); +BIO_METHOD *BIO_f_cipher(void); +BIO_METHOD *BIO_f_reliable(void); +void BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, + const unsigned char *i, int enc); +# endif + +const EVP_MD *EVP_md_null(void); +# ifndef OPENSSL_NO_MD2 +const EVP_MD *EVP_md2(void); +# endif +# ifndef OPENSSL_NO_MD4 +const EVP_MD *EVP_md4(void); +# endif +# ifndef OPENSSL_NO_MD5 +const EVP_MD *EVP_md5(void); +# endif +# ifndef OPENSSL_NO_SHA +const EVP_MD *EVP_sha(void); +const EVP_MD *EVP_sha1(void); +const EVP_MD *EVP_dss(void); +const EVP_MD *EVP_dss1(void); +const EVP_MD *EVP_ecdsa(void); +# endif +# ifndef OPENSSL_NO_SHA256 +const EVP_MD *EVP_sha224(void); +const EVP_MD *EVP_sha256(void); +# endif +# ifndef OPENSSL_NO_SHA512 +const EVP_MD *EVP_sha384(void); +const EVP_MD *EVP_sha512(void); +# endif +# ifndef OPENSSL_NO_MDC2 +const EVP_MD *EVP_mdc2(void); +# endif +# ifndef OPENSSL_NO_RIPEMD +const EVP_MD *EVP_ripemd160(void); +# endif +# ifndef OPENSSL_NO_WHIRLPOOL +const EVP_MD *EVP_whirlpool(void); +# endif +const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ +# ifndef OPENSSL_NO_DES +const EVP_CIPHER *EVP_des_ecb(void); +const EVP_CIPHER *EVP_des_ede(void); +const EVP_CIPHER *EVP_des_ede3(void); +const EVP_CIPHER *EVP_des_ede_ecb(void); +const EVP_CIPHER *EVP_des_ede3_ecb(void); +const EVP_CIPHER *EVP_des_cfb64(void); +# define EVP_des_cfb EVP_des_cfb64 +const EVP_CIPHER *EVP_des_cfb1(void); +const EVP_CIPHER *EVP_des_cfb8(void); +const EVP_CIPHER *EVP_des_ede_cfb64(void); +# define EVP_des_ede_cfb EVP_des_ede_cfb64 +# if 0 +const EVP_CIPHER *EVP_des_ede_cfb1(void); +const EVP_CIPHER *EVP_des_ede_cfb8(void); +# endif +const EVP_CIPHER *EVP_des_ede3_cfb64(void); +# define EVP_des_ede3_cfb EVP_des_ede3_cfb64 +const EVP_CIPHER *EVP_des_ede3_cfb1(void); +const EVP_CIPHER *EVP_des_ede3_cfb8(void); +const EVP_CIPHER *EVP_des_ofb(void); +const EVP_CIPHER *EVP_des_ede_ofb(void); +const EVP_CIPHER *EVP_des_ede3_ofb(void); +const EVP_CIPHER *EVP_des_cbc(void); +const EVP_CIPHER *EVP_des_ede_cbc(void); +const EVP_CIPHER *EVP_des_ede3_cbc(void); +const EVP_CIPHER *EVP_desx_cbc(void); +const EVP_CIPHER *EVP_des_ede3_wrap(void); +/* + * This should now be supported through the dev_crypto ENGINE. But also, why + * are rc4 and md5 declarations made here inside a "NO_DES" precompiler + * branch? + */ +# if 0 +# ifdef OPENSSL_OPENBSD_DEV_CRYPTO +const EVP_CIPHER *EVP_dev_crypto_des_ede3_cbc(void); +const EVP_CIPHER *EVP_dev_crypto_rc4(void); +const EVP_MD *EVP_dev_crypto_md5(void); +# endif +# endif +# endif +# ifndef OPENSSL_NO_RC4 +const EVP_CIPHER *EVP_rc4(void); +const EVP_CIPHER *EVP_rc4_40(void); +# ifndef OPENSSL_NO_MD5 +const EVP_CIPHER *EVP_rc4_hmac_md5(void); +# endif +# endif +# ifndef OPENSSL_NO_IDEA +const EVP_CIPHER *EVP_idea_ecb(void); +const EVP_CIPHER *EVP_idea_cfb64(void); +# define EVP_idea_cfb EVP_idea_cfb64 +const EVP_CIPHER *EVP_idea_ofb(void); +const EVP_CIPHER *EVP_idea_cbc(void); +# endif +# ifndef OPENSSL_NO_RC2 +const EVP_CIPHER *EVP_rc2_ecb(void); +const EVP_CIPHER *EVP_rc2_cbc(void); +const EVP_CIPHER *EVP_rc2_40_cbc(void); +const EVP_CIPHER *EVP_rc2_64_cbc(void); +const EVP_CIPHER *EVP_rc2_cfb64(void); +# define EVP_rc2_cfb EVP_rc2_cfb64 +const EVP_CIPHER *EVP_rc2_ofb(void); +# endif +# ifndef OPENSSL_NO_BF +const EVP_CIPHER *EVP_bf_ecb(void); +const EVP_CIPHER *EVP_bf_cbc(void); +const EVP_CIPHER *EVP_bf_cfb64(void); +# define EVP_bf_cfb EVP_bf_cfb64 +const EVP_CIPHER *EVP_bf_ofb(void); +# endif +# ifndef OPENSSL_NO_CAST +const EVP_CIPHER *EVP_cast5_ecb(void); +const EVP_CIPHER *EVP_cast5_cbc(void); +const EVP_CIPHER *EVP_cast5_cfb64(void); +# define EVP_cast5_cfb EVP_cast5_cfb64 +const EVP_CIPHER *EVP_cast5_ofb(void); +# endif +# ifndef OPENSSL_NO_RC5 +const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); +const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); +const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void); +# define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64 +const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); +# endif +# ifndef OPENSSL_NO_AES +const EVP_CIPHER *EVP_aes_128_ecb(void); +const EVP_CIPHER *EVP_aes_128_cbc(void); +const EVP_CIPHER *EVP_aes_128_cfb1(void); +const EVP_CIPHER *EVP_aes_128_cfb8(void); +const EVP_CIPHER *EVP_aes_128_cfb128(void); +# define EVP_aes_128_cfb EVP_aes_128_cfb128 +const EVP_CIPHER *EVP_aes_128_ofb(void); +const EVP_CIPHER *EVP_aes_128_ctr(void); +const EVP_CIPHER *EVP_aes_128_ccm(void); +const EVP_CIPHER *EVP_aes_128_gcm(void); +const EVP_CIPHER *EVP_aes_128_xts(void); +const EVP_CIPHER *EVP_aes_128_wrap(void); +const EVP_CIPHER *EVP_aes_192_ecb(void); +const EVP_CIPHER *EVP_aes_192_cbc(void); +const EVP_CIPHER *EVP_aes_192_cfb1(void); +const EVP_CIPHER *EVP_aes_192_cfb8(void); +const EVP_CIPHER *EVP_aes_192_cfb128(void); +# define EVP_aes_192_cfb EVP_aes_192_cfb128 +const EVP_CIPHER *EVP_aes_192_ofb(void); +const EVP_CIPHER *EVP_aes_192_ctr(void); +const EVP_CIPHER *EVP_aes_192_ccm(void); +const EVP_CIPHER *EVP_aes_192_gcm(void); +const EVP_CIPHER *EVP_aes_192_wrap(void); +const EVP_CIPHER *EVP_aes_256_ecb(void); +const EVP_CIPHER *EVP_aes_256_cbc(void); +const EVP_CIPHER *EVP_aes_256_cfb1(void); +const EVP_CIPHER *EVP_aes_256_cfb8(void); +const EVP_CIPHER *EVP_aes_256_cfb128(void); +# define EVP_aes_256_cfb EVP_aes_256_cfb128 +const EVP_CIPHER *EVP_aes_256_ofb(void); +const EVP_CIPHER *EVP_aes_256_ctr(void); +const EVP_CIPHER *EVP_aes_256_ccm(void); +const EVP_CIPHER *EVP_aes_256_gcm(void); +const EVP_CIPHER *EVP_aes_256_xts(void); +const EVP_CIPHER *EVP_aes_256_wrap(void); +# if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); +# endif +# ifndef OPENSSL_NO_SHA256 +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); +# endif +# endif +# ifndef OPENSSL_NO_CAMELLIA +const EVP_CIPHER *EVP_camellia_128_ecb(void); +const EVP_CIPHER *EVP_camellia_128_cbc(void); +const EVP_CIPHER *EVP_camellia_128_cfb1(void); +const EVP_CIPHER *EVP_camellia_128_cfb8(void); +const EVP_CIPHER *EVP_camellia_128_cfb128(void); +# define EVP_camellia_128_cfb EVP_camellia_128_cfb128 +const EVP_CIPHER *EVP_camellia_128_ofb(void); +const EVP_CIPHER *EVP_camellia_192_ecb(void); +const EVP_CIPHER *EVP_camellia_192_cbc(void); +const EVP_CIPHER *EVP_camellia_192_cfb1(void); +const EVP_CIPHER *EVP_camellia_192_cfb8(void); +const EVP_CIPHER *EVP_camellia_192_cfb128(void); +# define EVP_camellia_192_cfb EVP_camellia_192_cfb128 +const EVP_CIPHER *EVP_camellia_192_ofb(void); +const EVP_CIPHER *EVP_camellia_256_ecb(void); +const EVP_CIPHER *EVP_camellia_256_cbc(void); +const EVP_CIPHER *EVP_camellia_256_cfb1(void); +const EVP_CIPHER *EVP_camellia_256_cfb8(void); +const EVP_CIPHER *EVP_camellia_256_cfb128(void); +# define EVP_camellia_256_cfb EVP_camellia_256_cfb128 +const EVP_CIPHER *EVP_camellia_256_ofb(void); +# endif + +# ifndef OPENSSL_NO_SEED +const EVP_CIPHER *EVP_seed_ecb(void); +const EVP_CIPHER *EVP_seed_cbc(void); +const EVP_CIPHER *EVP_seed_cfb128(void); +# define EVP_seed_cfb EVP_seed_cfb128 +const EVP_CIPHER *EVP_seed_ofb(void); +# endif + +void OPENSSL_add_all_algorithms_noconf(void); +void OPENSSL_add_all_algorithms_conf(void); + +# ifdef OPENSSL_LOAD_CONF +# define OpenSSL_add_all_algorithms() \ + OPENSSL_add_all_algorithms_conf() +# else +# define OpenSSL_add_all_algorithms() \ + OPENSSL_add_all_algorithms_noconf() +# endif + +void OpenSSL_add_all_ciphers(void); +void OpenSSL_add_all_digests(void); +# define SSLeay_add_all_algorithms() OpenSSL_add_all_algorithms() +# define SSLeay_add_all_ciphers() OpenSSL_add_all_ciphers() +# define SSLeay_add_all_digests() OpenSSL_add_all_digests() + +int EVP_add_cipher(const EVP_CIPHER *cipher); +int EVP_add_digest(const EVP_MD *digest); + +const EVP_CIPHER *EVP_get_cipherbyname(const char *name); +const EVP_MD *EVP_get_digestbyname(const char *name); +void EVP_cleanup(void); + +void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, + const char *from, const char *to, void *x), + void *arg); +void EVP_CIPHER_do_all_sorted(void (*fn) + (const EVP_CIPHER *ciph, const char *from, + const char *to, void *x), void *arg); + +void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, + const char *from, const char *to, void *x), + void *arg); +void EVP_MD_do_all_sorted(void (*fn) + (const EVP_MD *ciph, const char *from, + const char *to, void *x), void *arg); + +int EVP_PKEY_decrypt_old(unsigned char *dec_key, + const unsigned char *enc_key, int enc_key_len, + EVP_PKEY *private_key); +int EVP_PKEY_encrypt_old(unsigned char *enc_key, + const unsigned char *key, int key_len, + EVP_PKEY *pub_key); +int EVP_PKEY_type(int type); +int EVP_PKEY_id(const EVP_PKEY *pkey); +int EVP_PKEY_base_id(const EVP_PKEY *pkey); +int EVP_PKEY_bits(EVP_PKEY *pkey); +int EVP_PKEY_size(EVP_PKEY *pkey); +int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); +int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); +int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); +void *EVP_PKEY_get0(EVP_PKEY *pkey); + +# ifndef OPENSSL_NO_RSA +struct rsa_st; +int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); +struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); +# endif +# ifndef OPENSSL_NO_DSA +struct dsa_st; +int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); +struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); +# endif +# ifndef OPENSSL_NO_DH +struct dh_st; +int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); +struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); +# endif +# ifndef OPENSSL_NO_EC +struct ec_key_st; +int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); +struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); +# endif + +EVP_PKEY *EVP_PKEY_new(void); +void EVP_PKEY_free(EVP_PKEY *pkey); + +EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, + long length); +int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); + +EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, + long length); +EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, + long length); +int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); + +int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); +int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); +int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); +int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); + +int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); + +int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); +int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); +int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); + +int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); + +int EVP_CIPHER_type(const EVP_CIPHER *ctx); + +/* calls methods */ +int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); +int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); + +/* These are used by EVP_CIPHER methods */ +int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); +int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); + +/* PKCS5 password based encryption */ +int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md, int en_de); +int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, + const unsigned char *salt, int saltlen, int iter, + int keylen, unsigned char *out); +int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, + const unsigned char *salt, int saltlen, int iter, + const EVP_MD *digest, int keylen, unsigned char *out); +int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md, int en_de); + +void PKCS5_PBE_add(void); + +int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, + ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); + +/* PBE type */ + +/* Can appear as the outermost AlgorithmIdentifier */ +# define EVP_PBE_TYPE_OUTER 0x0 +/* Is an PRF type OID */ +# define EVP_PBE_TYPE_PRF 0x1 + +int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, + int md_nid, EVP_PBE_KEYGEN *keygen); +int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, + EVP_PBE_KEYGEN *keygen); +int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, + EVP_PBE_KEYGEN **pkeygen); +void EVP_PBE_cleanup(void); + +# define ASN1_PKEY_ALIAS 0x1 +# define ASN1_PKEY_DYNAMIC 0x2 +# define ASN1_PKEY_SIGPARAM_NULL 0x4 + +# define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1 +# define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2 +# define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 +# define ASN1_PKEY_CTRL_CMS_SIGN 0x5 +# define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 +# define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 + +int EVP_PKEY_asn1_get_count(void); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, + const char *str, int len); +int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); +int EVP_PKEY_asn1_add_alias(int to, int from); +int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, + int *ppkey_flags, const char **pinfo, + const char **ppem_str, + const EVP_PKEY_ASN1_METHOD *ameth); + +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(EVP_PKEY *pkey); +EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, + const char *pem_str, + const char *info); +void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, + const EVP_PKEY_ASN1_METHOD *src); +void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); +void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, + int (*pub_decode) (EVP_PKEY *pk, + X509_PUBKEY *pub), + int (*pub_encode) (X509_PUBKEY *pub, + const EVP_PKEY *pk), + int (*pub_cmp) (const EVP_PKEY *a, + const EVP_PKEY *b), + int (*pub_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx), + int (*pkey_size) (const EVP_PKEY *pk), + int (*pkey_bits) (const EVP_PKEY *pk)); +void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, + int (*priv_decode) (EVP_PKEY *pk, + PKCS8_PRIV_KEY_INFO + *p8inf), + int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, + const EVP_PKEY *pk), + int (*priv_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, + ASN1_PCTX *pctx)); +void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, + int (*param_decode) (EVP_PKEY *pkey, + const unsigned char **pder, + int derlen), + int (*param_encode) (const EVP_PKEY *pkey, + unsigned char **pder), + int (*param_missing) (const EVP_PKEY *pk), + int (*param_copy) (EVP_PKEY *to, + const EVP_PKEY *from), + int (*param_cmp) (const EVP_PKEY *a, + const EVP_PKEY *b), + int (*param_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, + ASN1_PCTX *pctx)); + +void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, + void (*pkey_free) (EVP_PKEY *pkey)); +void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_ctrl) (EVP_PKEY *pkey, int op, + long arg1, void *arg2)); +void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, + int (*item_verify) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *a, + ASN1_BIT_STRING *sig, + EVP_PKEY *pkey), + int (*item_sign) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *alg1, + X509_ALGOR *alg2, + ASN1_BIT_STRING *sig)); + +# define EVP_PKEY_OP_UNDEFINED 0 +# define EVP_PKEY_OP_PARAMGEN (1<<1) +# define EVP_PKEY_OP_KEYGEN (1<<2) +# define EVP_PKEY_OP_SIGN (1<<3) +# define EVP_PKEY_OP_VERIFY (1<<4) +# define EVP_PKEY_OP_VERIFYRECOVER (1<<5) +# define EVP_PKEY_OP_SIGNCTX (1<<6) +# define EVP_PKEY_OP_VERIFYCTX (1<<7) +# define EVP_PKEY_OP_ENCRYPT (1<<8) +# define EVP_PKEY_OP_DECRYPT (1<<9) +# define EVP_PKEY_OP_DERIVE (1<<10) + +# define EVP_PKEY_OP_TYPE_SIG \ + (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYRECOVER \ + | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX) + +# define EVP_PKEY_OP_TYPE_CRYPT \ + (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT) + +# define EVP_PKEY_OP_TYPE_NOGEN \ + (EVP_PKEY_OP_SIG | EVP_PKEY_OP_CRYPT | EVP_PKEY_OP_DERIVE) + +# define EVP_PKEY_OP_TYPE_GEN \ + (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) + +# define EVP_PKEY_CTX_set_signature_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ + EVP_PKEY_CTRL_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_get_signature_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ + EVP_PKEY_CTRL_GET_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTRL_MD 1 +# define EVP_PKEY_CTRL_PEER_KEY 2 + +# define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3 +# define EVP_PKEY_CTRL_PKCS7_DECRYPT 4 + +# define EVP_PKEY_CTRL_PKCS7_SIGN 5 + +# define EVP_PKEY_CTRL_SET_MAC_KEY 6 + +# define EVP_PKEY_CTRL_DIGESTINIT 7 + +/* Used by GOST key encryption in TLS */ +# define EVP_PKEY_CTRL_SET_IV 8 + +# define EVP_PKEY_CTRL_CMS_ENCRYPT 9 +# define EVP_PKEY_CTRL_CMS_DECRYPT 10 +# define EVP_PKEY_CTRL_CMS_SIGN 11 + +# define EVP_PKEY_CTRL_CIPHER 12 + +# define EVP_PKEY_CTRL_GET_MD 13 + +# define EVP_PKEY_ALG_CTRL 0x1000 + +# define EVP_PKEY_FLAG_AUTOARGLEN 2 +/* + * Method handles all operations: don't assume any digest related defaults. + */ +# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4 + +const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); +EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); +void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, + const EVP_PKEY_METHOD *meth); +void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); +void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); +int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); + +EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); +EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); +EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); +void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); + +int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, + int cmd, int p1, void *p2); +int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, + const char *value); + +int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); +void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); + +EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, + const unsigned char *key, int keylen); + +void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); +void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); +EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); + +EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); + +void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); +void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); + +int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, size_t tbslen); +int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, + const unsigned char *sig, size_t siglen, + const unsigned char *tbs, size_t tbslen); +int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, + unsigned char *rout, size_t *routlen, + const unsigned char *sig, size_t siglen); +int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen); +int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen); + +int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); +int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); + +typedef int EVP_PKEY_gen_cb (EVP_PKEY_CTX *ctx); + +int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); +int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); + +void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); +EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); + +int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); + +void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, + int (*init) (EVP_PKEY_CTX *ctx)); + +void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, + int (*copy) (EVP_PKEY_CTX *dst, + EVP_PKEY_CTX *src)); + +void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, + void (*cleanup) (EVP_PKEY_CTX *ctx)); + +void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, + int (*paramgen_init) (EVP_PKEY_CTX *ctx), + int (*paramgen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, + int (*keygen_init) (EVP_PKEY_CTX *ctx), + int (*keygen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, + int (*sign_init) (EVP_PKEY_CTX *ctx), + int (*sign) (EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, + int (*verify_init) (EVP_PKEY_CTX *ctx), + int (*verify) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + size_t siglen, + const unsigned char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, + int (*verify_recover_init) (EVP_PKEY_CTX + *ctx), + int (*verify_recover) (EVP_PKEY_CTX + *ctx, + unsigned char + *sig, + size_t *siglen, + const unsigned + char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, + int (*signctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (*signctx) (EVP_PKEY_CTX *ctx, + unsigned char *sig, + size_t *siglen, + EVP_MD_CTX *mctx)); + +void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, + int (*verifyctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (*verifyctx) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + int siglen, + EVP_MD_CTX *mctx)); + +void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, + int (*encrypt_init) (EVP_PKEY_CTX *ctx), + int (*encryptfn) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); + +void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, + int (*decrypt_init) (EVP_PKEY_CTX *ctx), + int (*decrypt) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); + +void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, + int (*derive_init) (EVP_PKEY_CTX *ctx), + int (*derive) (EVP_PKEY_CTX *ctx, + unsigned char *key, + size_t *keylen)); + +void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, + int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, + void *p2), + int (*ctrl_str) (EVP_PKEY_CTX *ctx, + const char *type, + const char *value)); + +void EVP_add_alg_module(void); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_EVP_strings(void); + +/* Error codes for the EVP functions. */ + +/* Function codes. */ +# define EVP_F_AESNI_INIT_KEY 165 +# define EVP_F_AESNI_XTS_CIPHER 176 +# define EVP_F_AES_INIT_KEY 133 +# define EVP_F_AES_T4_INIT_KEY 178 +# define EVP_F_AES_XTS 172 +# define EVP_F_AES_XTS_CIPHER 175 +# define EVP_F_ALG_MODULE_INIT 177 +# define EVP_F_CAMELLIA_INIT_KEY 159 +# define EVP_F_CMAC_INIT 173 +# define EVP_F_CMLL_T4_INIT_KEY 179 +# define EVP_F_D2I_PKEY 100 +# define EVP_F_DO_SIGVER_INIT 161 +# define EVP_F_DSAPKEY2PKCS8 134 +# define EVP_F_DSA_PKEY2PKCS8 135 +# define EVP_F_ECDSA_PKEY2PKCS8 129 +# define EVP_F_ECKEY_PKEY2PKCS8 132 +# define EVP_F_EVP_CIPHERINIT_EX 123 +# define EVP_F_EVP_CIPHER_CTX_COPY 163 +# define EVP_F_EVP_CIPHER_CTX_CTRL 124 +# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 +# define EVP_F_EVP_DECRYPTFINAL_EX 101 +# define EVP_F_EVP_DIGESTINIT_EX 128 +# define EVP_F_EVP_ENCRYPTFINAL_EX 127 +# define EVP_F_EVP_MD_CTX_COPY_EX 110 +# define EVP_F_EVP_MD_SIZE 162 +# define EVP_F_EVP_OPENINIT 102 +# define EVP_F_EVP_PBE_ALG_ADD 115 +# define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 +# define EVP_F_EVP_PBE_CIPHERINIT 116 +# define EVP_F_EVP_PKCS82PKEY 111 +# define EVP_F_EVP_PKCS82PKEY_BROKEN 136 +# define EVP_F_EVP_PKEY2PKCS8_BROKEN 113 +# define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 +# define EVP_F_EVP_PKEY_CTX_CTRL 137 +# define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 +# define EVP_F_EVP_PKEY_CTX_DUP 156 +# define EVP_F_EVP_PKEY_DECRYPT 104 +# define EVP_F_EVP_PKEY_DECRYPT_INIT 138 +# define EVP_F_EVP_PKEY_DECRYPT_OLD 151 +# define EVP_F_EVP_PKEY_DERIVE 153 +# define EVP_F_EVP_PKEY_DERIVE_INIT 154 +# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 +# define EVP_F_EVP_PKEY_ENCRYPT 105 +# define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 +# define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 +# define EVP_F_EVP_PKEY_GET1_DH 119 +# define EVP_F_EVP_PKEY_GET1_DSA 120 +# define EVP_F_EVP_PKEY_GET1_ECDSA 130 +# define EVP_F_EVP_PKEY_GET1_EC_KEY 131 +# define EVP_F_EVP_PKEY_GET1_RSA 121 +# define EVP_F_EVP_PKEY_KEYGEN 146 +# define EVP_F_EVP_PKEY_KEYGEN_INIT 147 +# define EVP_F_EVP_PKEY_NEW 106 +# define EVP_F_EVP_PKEY_PARAMGEN 148 +# define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 +# define EVP_F_EVP_PKEY_SIGN 140 +# define EVP_F_EVP_PKEY_SIGN_INIT 141 +# define EVP_F_EVP_PKEY_VERIFY 142 +# define EVP_F_EVP_PKEY_VERIFY_INIT 143 +# define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 +# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 +# define EVP_F_EVP_RIJNDAEL 126 +# define EVP_F_EVP_SIGNFINAL 107 +# define EVP_F_EVP_VERIFYFINAL 108 +# define EVP_F_FIPS_CIPHERINIT 166 +# define EVP_F_FIPS_CIPHER_CTX_COPY 170 +# define EVP_F_FIPS_CIPHER_CTX_CTRL 167 +# define EVP_F_FIPS_CIPHER_CTX_SET_KEY_LENGTH 171 +# define EVP_F_FIPS_DIGESTINIT 168 +# define EVP_F_FIPS_MD_CTX_COPY 169 +# define EVP_F_HMAC_INIT_EX 174 +# define EVP_F_INT_CTX_NEW 157 +# define EVP_F_PKCS5_PBE_KEYIVGEN 117 +# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 +# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 +# define EVP_F_PKCS8_SET_BROKEN 112 +# define EVP_F_PKEY_SET_TYPE 158 +# define EVP_F_RC2_MAGIC_TO_METH 109 +# define EVP_F_RC5_CTRL 125 + +/* Reason codes. */ +# define EVP_R_AES_IV_SETUP_FAILED 162 +# define EVP_R_AES_KEY_SETUP_FAILED 143 +# define EVP_R_ASN1_LIB 140 +# define EVP_R_BAD_BLOCK_LENGTH 136 +# define EVP_R_BAD_DECRYPT 100 +# define EVP_R_BAD_KEY_LENGTH 137 +# define EVP_R_BN_DECODE_ERROR 112 +# define EVP_R_BN_PUBKEY_ERROR 113 +# define EVP_R_BUFFER_TOO_SMALL 155 +# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 +# define EVP_R_CIPHER_PARAMETER_ERROR 122 +# define EVP_R_COMMAND_NOT_SUPPORTED 147 +# define EVP_R_CTRL_NOT_IMPLEMENTED 132 +# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 +# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 +# define EVP_R_DECODE_ERROR 114 +# define EVP_R_DIFFERENT_KEY_TYPES 101 +# define EVP_R_DIFFERENT_PARAMETERS 153 +# define EVP_R_DISABLED_FOR_FIPS 163 +# define EVP_R_ENCODE_ERROR 115 +# define EVP_R_ERROR_LOADING_SECTION 165 +# define EVP_R_ERROR_SETTING_FIPS_MODE 166 +# define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119 +# define EVP_R_EXPECTING_AN_RSA_KEY 127 +# define EVP_R_EXPECTING_A_DH_KEY 128 +# define EVP_R_EXPECTING_A_DSA_KEY 129 +# define EVP_R_EXPECTING_A_ECDSA_KEY 141 +# define EVP_R_EXPECTING_A_EC_KEY 142 +# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 +# define EVP_R_INITIALIZATION_ERROR 134 +# define EVP_R_INPUT_NOT_INITIALIZED 111 +# define EVP_R_INVALID_DIGEST 152 +# define EVP_R_INVALID_FIPS_MODE 168 +# define EVP_R_INVALID_KEY_LENGTH 130 +# define EVP_R_INVALID_OPERATION 148 +# define EVP_R_IV_TOO_LARGE 102 +# define EVP_R_KEYGEN_FAILURE 120 +# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 +# define EVP_R_METHOD_NOT_SUPPORTED 144 +# define EVP_R_MISSING_PARAMETERS 103 +# define EVP_R_NO_CIPHER_SET 131 +# define EVP_R_NO_DEFAULT_DIGEST 158 +# define EVP_R_NO_DIGEST_SET 139 +# define EVP_R_NO_DSA_PARAMETERS 116 +# define EVP_R_NO_KEY_SET 154 +# define EVP_R_NO_OPERATION_SET 149 +# define EVP_R_NO_SIGN_FUNCTION_CONFIGURED 104 +# define EVP_R_NO_VERIFY_FUNCTION_CONFIGURED 105 +# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 +# define EVP_R_OPERATON_NOT_INITIALIZED 151 +# define EVP_R_PKCS8_UNKNOWN_BROKEN_TYPE 117 +# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 +# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 +# define EVP_R_PUBLIC_KEY_NOT_RSA 106 +# define EVP_R_TOO_LARGE 164 +# define EVP_R_UNKNOWN_CIPHER 160 +# define EVP_R_UNKNOWN_DIGEST 161 +# define EVP_R_UNKNOWN_OPTION 169 +# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 +# define EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS 135 +# define EVP_R_UNSUPPORTED_ALGORITHM 156 +# define EVP_R_UNSUPPORTED_CIPHER 107 +# define EVP_R_UNSUPPORTED_KEYLENGTH 123 +# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 +# define EVP_R_UNSUPPORTED_KEY_SIZE 108 +# define EVP_R_UNSUPPORTED_PRF 125 +# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 +# define EVP_R_UNSUPPORTED_SALT_TYPE 126 +# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 +# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 +# define EVP_R_WRONG_PUBLIC_KEY_TYPE 110 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/hmac.h b/External/include64/openssl/hmac.h new file mode 100644 index 00000000..b8b55cda --- /dev/null +++ b/External/include64/openssl/hmac.h @@ -0,0 +1,109 @@ +/* crypto/hmac/hmac.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +#ifndef HEADER_HMAC_H +# define HEADER_HMAC_H + +# include + +# ifdef OPENSSL_NO_HMAC +# error HMAC is disabled. +# endif + +# include + +# define HMAC_MAX_MD_CBLOCK 128/* largest known is SHA512 */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct hmac_ctx_st { + const EVP_MD *md; + EVP_MD_CTX md_ctx; + EVP_MD_CTX i_ctx; + EVP_MD_CTX o_ctx; + unsigned int key_length; + unsigned char key[HMAC_MAX_MD_CBLOCK]; +} HMAC_CTX; + +# define HMAC_size(e) (EVP_MD_size((e)->md)) + +void HMAC_CTX_init(HMAC_CTX *ctx); +void HMAC_CTX_cleanup(HMAC_CTX *ctx); + +/* deprecated */ +# define HMAC_cleanup(ctx) HMAC_CTX_cleanup(ctx) + +/* deprecated */ +int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md); +int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, + const EVP_MD *md, ENGINE *impl); +int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len); +int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len); +unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, + const unsigned char *d, size_t n, unsigned char *md, + unsigned int *md_len); +int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); + +void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/idea.h b/External/include64/openssl/idea.h new file mode 100644 index 00000000..60759840 --- /dev/null +++ b/External/include64/openssl/idea.h @@ -0,0 +1,105 @@ +/* crypto/idea/idea.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_IDEA_H +# define HEADER_IDEA_H + +# include /* IDEA_INT, OPENSSL_NO_IDEA */ + +# ifdef OPENSSL_NO_IDEA +# error IDEA is disabled. +# endif + +# define IDEA_ENCRYPT 1 +# define IDEA_DECRYPT 0 + +# define IDEA_BLOCK 8 +# define IDEA_KEY_LENGTH 16 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct idea_key_st { + IDEA_INT data[9][6]; +} IDEA_KEY_SCHEDULE; + +const char *idea_options(void); +void idea_ecb_encrypt(const unsigned char *in, unsigned char *out, + IDEA_KEY_SCHEDULE *ks); +# ifdef OPENSSL_FIPS +void private_idea_set_encrypt_key(const unsigned char *key, + IDEA_KEY_SCHEDULE *ks); +# endif +void idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks); +void idea_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk); +void idea_cbc_encrypt(const unsigned char *in, unsigned char *out, + long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, + int enc); +void idea_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, + int *num, int enc); +void idea_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, + int *num); +void idea_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/krb5_asn.h b/External/include64/openssl/krb5_asn.h new file mode 100644 index 00000000..9cf5a26d --- /dev/null +++ b/External/include64/openssl/krb5_asn.h @@ -0,0 +1,240 @@ +/* krb5_asn.h */ +/* + * Written by Vern Staats for the OpenSSL project, ** + * using ocsp/{*.h,*asn*.c} as a starting point + */ + +/* ==================================================================== + * Copyright (c) 1998-2000 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_KRB5_ASN_H +# define HEADER_KRB5_ASN_H + +/* + * #include + */ +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * ASN.1 from Kerberos RFC 1510 + */ + +/*- EncryptedData ::= SEQUENCE { + * etype[0] INTEGER, -- EncryptionType + * kvno[1] INTEGER OPTIONAL, + * cipher[2] OCTET STRING -- ciphertext + * } + */ +typedef struct krb5_encdata_st { + ASN1_INTEGER *etype; + ASN1_INTEGER *kvno; + ASN1_OCTET_STRING *cipher; +} KRB5_ENCDATA; + +DECLARE_STACK_OF(KRB5_ENCDATA) + +/*- PrincipalName ::= SEQUENCE { + * name-type[0] INTEGER, + * name-string[1] SEQUENCE OF GeneralString + * } + */ +typedef struct krb5_princname_st { + ASN1_INTEGER *nametype; + STACK_OF(ASN1_GENERALSTRING) *namestring; +} KRB5_PRINCNAME; + +DECLARE_STACK_OF(KRB5_PRINCNAME) + +/*- Ticket ::= [APPLICATION 1] SEQUENCE { + * tkt-vno[0] INTEGER, + * realm[1] Realm, + * sname[2] PrincipalName, + * enc-part[3] EncryptedData + * } + */ +typedef struct krb5_tktbody_st { + ASN1_INTEGER *tktvno; + ASN1_GENERALSTRING *realm; + KRB5_PRINCNAME *sname; + KRB5_ENCDATA *encdata; +} KRB5_TKTBODY; + +typedef STACK_OF(KRB5_TKTBODY) KRB5_TICKET; +DECLARE_STACK_OF(KRB5_TKTBODY) + +/*- AP-REQ ::= [APPLICATION 14] SEQUENCE { + * pvno[0] INTEGER, + * msg-type[1] INTEGER, + * ap-options[2] APOptions, + * ticket[3] Ticket, + * authenticator[4] EncryptedData + * } + * + * APOptions ::= BIT STRING { + * reserved(0), use-session-key(1), mutual-required(2) } + */ +typedef struct krb5_ap_req_st { + ASN1_INTEGER *pvno; + ASN1_INTEGER *msgtype; + ASN1_BIT_STRING *apoptions; + KRB5_TICKET *ticket; + KRB5_ENCDATA *authenticator; +} KRB5_APREQBODY; + +typedef STACK_OF(KRB5_APREQBODY) KRB5_APREQ; +DECLARE_STACK_OF(KRB5_APREQBODY) + +/* Authenticator Stuff */ + +/*- Checksum ::= SEQUENCE { + * cksumtype[0] INTEGER, + * checksum[1] OCTET STRING + * } + */ +typedef struct krb5_checksum_st { + ASN1_INTEGER *ctype; + ASN1_OCTET_STRING *checksum; +} KRB5_CHECKSUM; + +DECLARE_STACK_OF(KRB5_CHECKSUM) + +/*- EncryptionKey ::= SEQUENCE { + * keytype[0] INTEGER, + * keyvalue[1] OCTET STRING + * } + */ +typedef struct krb5_encryptionkey_st { + ASN1_INTEGER *ktype; + ASN1_OCTET_STRING *keyvalue; +} KRB5_ENCKEY; + +DECLARE_STACK_OF(KRB5_ENCKEY) + +/*- AuthorizationData ::= SEQUENCE OF SEQUENCE { + * ad-type[0] INTEGER, + * ad-data[1] OCTET STRING + * } + */ +typedef struct krb5_authorization_st { + ASN1_INTEGER *adtype; + ASN1_OCTET_STRING *addata; +} KRB5_AUTHDATA; + +DECLARE_STACK_OF(KRB5_AUTHDATA) + +/*- -- Unencrypted authenticator + * Authenticator ::= [APPLICATION 2] SEQUENCE { + * authenticator-vno[0] INTEGER, + * crealm[1] Realm, + * cname[2] PrincipalName, + * cksum[3] Checksum OPTIONAL, + * cusec[4] INTEGER, + * ctime[5] KerberosTime, + * subkey[6] EncryptionKey OPTIONAL, + * seq-number[7] INTEGER OPTIONAL, + * authorization-data[8] AuthorizationData OPTIONAL + * } + */ +typedef struct krb5_authenticator_st { + ASN1_INTEGER *avno; + ASN1_GENERALSTRING *crealm; + KRB5_PRINCNAME *cname; + KRB5_CHECKSUM *cksum; + ASN1_INTEGER *cusec; + ASN1_GENERALIZEDTIME *ctime; + KRB5_ENCKEY *subkey; + ASN1_INTEGER *seqnum; + KRB5_AUTHDATA *authorization; +} KRB5_AUTHENTBODY; + +typedef STACK_OF(KRB5_AUTHENTBODY) KRB5_AUTHENT; +DECLARE_STACK_OF(KRB5_AUTHENTBODY) + +/*- DECLARE_ASN1_FUNCTIONS(type) = DECLARE_ASN1_FUNCTIONS_name(type, type) = + * type *name##_new(void); + * void name##_free(type *a); + * DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) = + * DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) = + * type *d2i_##name(type **a, const unsigned char **in, long len); + * int i2d_##name(type *a, unsigned char **out); + * DECLARE_ASN1_ITEM(itname) = OPENSSL_EXTERN const ASN1_ITEM itname##_it + */ + +DECLARE_ASN1_FUNCTIONS(KRB5_ENCDATA) +DECLARE_ASN1_FUNCTIONS(KRB5_PRINCNAME) +DECLARE_ASN1_FUNCTIONS(KRB5_TKTBODY) +DECLARE_ASN1_FUNCTIONS(KRB5_APREQBODY) +DECLARE_ASN1_FUNCTIONS(KRB5_TICKET) +DECLARE_ASN1_FUNCTIONS(KRB5_APREQ) + +DECLARE_ASN1_FUNCTIONS(KRB5_CHECKSUM) +DECLARE_ASN1_FUNCTIONS(KRB5_ENCKEY) +DECLARE_ASN1_FUNCTIONS(KRB5_AUTHDATA) +DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENTBODY) +DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENT) + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/kssl.h b/External/include64/openssl/kssl.h new file mode 100644 index 00000000..ae8a51f4 --- /dev/null +++ b/External/include64/openssl/kssl.h @@ -0,0 +1,197 @@ +/* ssl/kssl.h */ +/* + * Written by Vern Staats for the OpenSSL project + * 2000. project 2000. + */ +/* ==================================================================== + * Copyright (c) 2000 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +/* + ** 19990701 VRS Started. + */ + +#ifndef KSSL_H +# define KSSL_H + +# include + +# ifndef OPENSSL_NO_KRB5 + +# include +# include +# include +# ifdef OPENSSL_SYS_WIN32 +/* + * These can sometimes get redefined indirectly by krb5 header files after + * they get undefed in ossl_typ.h + */ +# undef X509_NAME +# undef X509_EXTENSIONS +# undef OCSP_REQUEST +# undef OCSP_RESPONSE +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Depending on which KRB5 implementation used, some types from + * the other may be missing. Resolve that here and now + */ +# ifdef KRB5_HEIMDAL +typedef unsigned char krb5_octet; +# define FAR +# else + +# ifndef FAR +# define FAR +# endif + +# endif + +/*- + * Uncomment this to debug kssl problems or + * to trace usage of the Kerberos session key + * + * #define KSSL_DEBUG + */ + +# ifndef KRB5SVC +# define KRB5SVC "host" +# endif + +# ifndef KRB5KEYTAB +# define KRB5KEYTAB "/etc/krb5.keytab" +# endif + +# ifndef KRB5SENDAUTH +# define KRB5SENDAUTH 1 +# endif + +# ifndef KRB5CHECKAUTH +# define KRB5CHECKAUTH 1 +# endif + +# ifndef KSSL_CLOCKSKEW +# define KSSL_CLOCKSKEW 300; +# endif + +# define KSSL_ERR_MAX 255 +typedef struct kssl_err_st { + int reason; + char text[KSSL_ERR_MAX + 1]; +} KSSL_ERR; + +/*- Context for passing + * (1) Kerberos session key to SSL, and + * (2) Config data between application and SSL lib + */ +typedef struct kssl_ctx_st { + /* used by: disposition: */ + char *service_name; /* C,S default ok (kssl) */ + char *service_host; /* C input, REQUIRED */ + char *client_princ; /* S output from krb5 ticket */ + char *keytab_file; /* S NULL (/etc/krb5.keytab) */ + char *cred_cache; /* C NULL (default) */ + krb5_enctype enctype; + int length; + krb5_octet FAR *key; +} KSSL_CTX; + +# define KSSL_CLIENT 1 +# define KSSL_SERVER 2 +# define KSSL_SERVICE 3 +# define KSSL_KEYTAB 4 + +# define KSSL_CTX_OK 0 +# define KSSL_CTX_ERR 1 +# define KSSL_NOMEM 2 + +/* Public (for use by applications that use OpenSSL with Kerberos 5 support */ +krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which, char *text); +KSSL_CTX *kssl_ctx_new(void); +KSSL_CTX *kssl_ctx_free(KSSL_CTX *kssl_ctx); +void kssl_ctx_show(KSSL_CTX *kssl_ctx); +krb5_error_code kssl_ctx_setprinc(KSSL_CTX *kssl_ctx, int which, + krb5_data *realm, krb5_data *entity, + int nentities); +krb5_error_code kssl_cget_tkt(KSSL_CTX *kssl_ctx, krb5_data **enc_tktp, + krb5_data *authenp, KSSL_ERR *kssl_err); +krb5_error_code kssl_sget_tkt(KSSL_CTX *kssl_ctx, krb5_data *indata, + krb5_ticket_times *ttimes, KSSL_ERR *kssl_err); +krb5_error_code kssl_ctx_setkey(KSSL_CTX *kssl_ctx, krb5_keyblock *session); +void kssl_err_set(KSSL_ERR *kssl_err, int reason, char *text); +void kssl_krb5_free_data_contents(krb5_context context, krb5_data *data); +krb5_error_code kssl_build_principal_2(krb5_context context, + krb5_principal *princ, int rlen, + const char *realm, int slen, + const char *svc, int hlen, + const char *host); +krb5_error_code kssl_validate_times(krb5_timestamp atime, + krb5_ticket_times *ttimes); +krb5_error_code kssl_check_authent(KSSL_CTX *kssl_ctx, krb5_data *authentp, + krb5_timestamp *atimep, + KSSL_ERR *kssl_err); +unsigned char *kssl_skip_confound(krb5_enctype enctype, unsigned char *authn); + +void SSL_set0_kssl_ctx(SSL *s, KSSL_CTX *kctx); +KSSL_CTX *SSL_get0_kssl_ctx(SSL *s); +char *kssl_ctx_get0_client_princ(KSSL_CTX *kctx); + +#ifdef __cplusplus +} +#endif +# endif /* OPENSSL_NO_KRB5 */ +#endif /* KSSL_H */ diff --git a/External/include64/openssl/lhash.h b/External/include64/openssl/lhash.h new file mode 100644 index 00000000..b6c328bf --- /dev/null +++ b/External/include64/openssl/lhash.h @@ -0,0 +1,240 @@ +/* crypto/lhash/lhash.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +/* + * Header for dynamic hash table routines Author - Eric Young + */ + +#ifndef HEADER_LHASH_H +# define HEADER_LHASH_H + +# include +# ifndef OPENSSL_NO_FP_API +# include +# endif + +# ifndef OPENSSL_NO_BIO +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct lhash_node_st { + void *data; + struct lhash_node_st *next; +# ifndef OPENSSL_NO_HASH_COMP + unsigned long hash; +# endif +} LHASH_NODE; + +typedef int (*LHASH_COMP_FN_TYPE) (const void *, const void *); +typedef unsigned long (*LHASH_HASH_FN_TYPE) (const void *); +typedef void (*LHASH_DOALL_FN_TYPE) (void *); +typedef void (*LHASH_DOALL_ARG_FN_TYPE) (void *, void *); + +/* + * Macros for declaring and implementing type-safe wrappers for LHASH + * callbacks. This way, callbacks can be provided to LHASH structures without + * function pointer casting and the macro-defined callbacks provide + * per-variable casting before deferring to the underlying type-specific + * callbacks. NB: It is possible to place a "static" in front of both the + * DECLARE and IMPLEMENT macros if the functions are strictly internal. + */ + +/* First: "hash" functions */ +# define DECLARE_LHASH_HASH_FN(name, o_type) \ + unsigned long name##_LHASH_HASH(const void *); +# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ + unsigned long name##_LHASH_HASH(const void *arg) { \ + const o_type *a = arg; \ + return name##_hash(a); } +# define LHASH_HASH_FN(name) name##_LHASH_HASH + +/* Second: "compare" functions */ +# define DECLARE_LHASH_COMP_FN(name, o_type) \ + int name##_LHASH_COMP(const void *, const void *); +# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ + int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ + const o_type *a = arg1; \ + const o_type *b = arg2; \ + return name##_cmp(a,b); } +# define LHASH_COMP_FN(name) name##_LHASH_COMP + +/* Third: "doall" functions */ +# define DECLARE_LHASH_DOALL_FN(name, o_type) \ + void name##_LHASH_DOALL(void *); +# define IMPLEMENT_LHASH_DOALL_FN(name, o_type) \ + void name##_LHASH_DOALL(void *arg) { \ + o_type *a = arg; \ + name##_doall(a); } +# define LHASH_DOALL_FN(name) name##_LHASH_DOALL + +/* Fourth: "doall_arg" functions */ +# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ + void name##_LHASH_DOALL_ARG(void *, void *); +# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ + void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ + o_type *a = arg1; \ + a_type *b = arg2; \ + name##_doall_arg(a, b); } +# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG + +typedef struct lhash_st { + LHASH_NODE **b; + LHASH_COMP_FN_TYPE comp; + LHASH_HASH_FN_TYPE hash; + unsigned int num_nodes; + unsigned int num_alloc_nodes; + unsigned int p; + unsigned int pmax; + unsigned long up_load; /* load times 256 */ + unsigned long down_load; /* load times 256 */ + unsigned long num_items; + unsigned long num_expands; + unsigned long num_expand_reallocs; + unsigned long num_contracts; + unsigned long num_contract_reallocs; + unsigned long num_hash_calls; + unsigned long num_comp_calls; + unsigned long num_insert; + unsigned long num_replace; + unsigned long num_delete; + unsigned long num_no_delete; + unsigned long num_retrieve; + unsigned long num_retrieve_miss; + unsigned long num_hash_comps; + int error; +} _LHASH; /* Do not use _LHASH directly, use LHASH_OF + * and friends */ + +# define LH_LOAD_MULT 256 + +/* + * Indicates a malloc() error in the last call, this is only bad in + * lh_insert(). + */ +# define lh_error(lh) ((lh)->error) + +_LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c); +void lh_free(_LHASH *lh); +void *lh_insert(_LHASH *lh, void *data); +void *lh_delete(_LHASH *lh, const void *data); +void *lh_retrieve(_LHASH *lh, const void *data); +void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func); +void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg); +unsigned long lh_strhash(const char *c); +unsigned long lh_num_items(const _LHASH *lh); + +# ifndef OPENSSL_NO_FP_API +void lh_stats(const _LHASH *lh, FILE *out); +void lh_node_stats(const _LHASH *lh, FILE *out); +void lh_node_usage_stats(const _LHASH *lh, FILE *out); +# endif + +# ifndef OPENSSL_NO_BIO +void lh_stats_bio(const _LHASH *lh, BIO *out); +void lh_node_stats_bio(const _LHASH *lh, BIO *out); +void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out); +# endif + +/* Type checking... */ + +# define LHASH_OF(type) struct lhash_st_##type + +# define DECLARE_LHASH_OF(type) LHASH_OF(type) { int dummy; } + +# define CHECKED_LHASH_OF(type,lh) \ + ((_LHASH *)CHECKED_PTR_OF(LHASH_OF(type),lh)) + +/* Define wrapper functions. */ +# define LHM_lh_new(type, name) \ + ((LHASH_OF(type) *)lh_new(LHASH_HASH_FN(name), LHASH_COMP_FN(name))) +# define LHM_lh_error(type, lh) \ + lh_error(CHECKED_LHASH_OF(type,lh)) +# define LHM_lh_insert(type, lh, inst) \ + ((type *)lh_insert(CHECKED_LHASH_OF(type, lh), \ + CHECKED_PTR_OF(type, inst))) +# define LHM_lh_retrieve(type, lh, inst) \ + ((type *)lh_retrieve(CHECKED_LHASH_OF(type, lh), \ + CHECKED_PTR_OF(type, inst))) +# define LHM_lh_delete(type, lh, inst) \ + ((type *)lh_delete(CHECKED_LHASH_OF(type, lh), \ + CHECKED_PTR_OF(type, inst))) +# define LHM_lh_doall(type, lh,fn) lh_doall(CHECKED_LHASH_OF(type, lh), fn) +# define LHM_lh_doall_arg(type, lh, fn, arg_type, arg) \ + lh_doall_arg(CHECKED_LHASH_OF(type, lh), fn, CHECKED_PTR_OF(arg_type, arg)) +# define LHM_lh_num_items(type, lh) lh_num_items(CHECKED_LHASH_OF(type, lh)) +# define LHM_lh_down_load(type, lh) (CHECKED_LHASH_OF(type, lh)->down_load) +# define LHM_lh_node_stats_bio(type, lh, out) \ + lh_node_stats_bio(CHECKED_LHASH_OF(type, lh), out) +# define LHM_lh_node_usage_stats_bio(type, lh, out) \ + lh_node_usage_stats_bio(CHECKED_LHASH_OF(type, lh), out) +# define LHM_lh_stats_bio(type, lh, out) \ + lh_stats_bio(CHECKED_LHASH_OF(type, lh), out) +# define LHM_lh_free(type, lh) lh_free(CHECKED_LHASH_OF(type, lh)) + +DECLARE_LHASH_OF(OPENSSL_STRING); +DECLARE_LHASH_OF(OPENSSL_CSTRING); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/md4.h b/External/include64/openssl/md4.h new file mode 100644 index 00000000..11fd7129 --- /dev/null +++ b/External/include64/openssl/md4.h @@ -0,0 +1,119 @@ +/* crypto/md4/md4.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_MD4_H +# define HEADER_MD4_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_NO_MD4 +# error MD4 is disabled. +# endif + +/*- + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! MD4_LONG has to be at least 32 bits wide. If it's wider, then ! + * ! MD4_LONG_LOG2 has to be defined along. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ + +# if defined(__LP32__) +# define MD4_LONG unsigned long +# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) +# define MD4_LONG unsigned long +# define MD4_LONG_LOG2 3 +/* + * _CRAY note. I could declare short, but I have no idea what impact + * does it have on performance on none-T3E machines. I could declare + * int, but at least on C90 sizeof(int) can be chosen at compile time. + * So I've chosen long... + * + */ +# else +# define MD4_LONG unsigned int +# endif + +# define MD4_CBLOCK 64 +# define MD4_LBLOCK (MD4_CBLOCK/4) +# define MD4_DIGEST_LENGTH 16 + +typedef struct MD4state_st { + MD4_LONG A, B, C, D; + MD4_LONG Nl, Nh; + MD4_LONG data[MD4_LBLOCK]; + unsigned int num; +} MD4_CTX; + +# ifdef OPENSSL_FIPS +int private_MD4_Init(MD4_CTX *c); +# endif +int MD4_Init(MD4_CTX *c); +int MD4_Update(MD4_CTX *c, const void *data, size_t len); +int MD4_Final(unsigned char *md, MD4_CTX *c); +unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md); +void MD4_Transform(MD4_CTX *c, const unsigned char *b); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/md5.h b/External/include64/openssl/md5.h new file mode 100644 index 00000000..2659038a --- /dev/null +++ b/External/include64/openssl/md5.h @@ -0,0 +1,119 @@ +/* crypto/md5/md5.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_MD5_H +# define HEADER_MD5_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_NO_MD5 +# error MD5 is disabled. +# endif + +/* + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! MD5_LONG has to be at least 32 bits wide. If it's wider, then ! + * ! MD5_LONG_LOG2 has to be defined along. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ + +# if defined(__LP32__) +# define MD5_LONG unsigned long +# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) +# define MD5_LONG unsigned long +# define MD5_LONG_LOG2 3 +/* + * _CRAY note. I could declare short, but I have no idea what impact + * does it have on performance on none-T3E machines. I could declare + * int, but at least on C90 sizeof(int) can be chosen at compile time. + * So I've chosen long... + * + */ +# else +# define MD5_LONG unsigned int +# endif + +# define MD5_CBLOCK 64 +# define MD5_LBLOCK (MD5_CBLOCK/4) +# define MD5_DIGEST_LENGTH 16 + +typedef struct MD5state_st { + MD5_LONG A, B, C, D; + MD5_LONG Nl, Nh; + MD5_LONG data[MD5_LBLOCK]; + unsigned int num; +} MD5_CTX; + +# ifdef OPENSSL_FIPS +int private_MD5_Init(MD5_CTX *c); +# endif +int MD5_Init(MD5_CTX *c); +int MD5_Update(MD5_CTX *c, const void *data, size_t len); +int MD5_Final(unsigned char *md, MD5_CTX *c); +unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md); +void MD5_Transform(MD5_CTX *c, const unsigned char *b); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/mdc2.h b/External/include64/openssl/mdc2.h new file mode 100644 index 00000000..7efe53bc --- /dev/null +++ b/External/include64/openssl/mdc2.h @@ -0,0 +1,94 @@ +/* crypto/mdc2/mdc2.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_MDC2_H +# define HEADER_MDC2_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_NO_MDC2 +# error MDC2 is disabled. +# endif + +# define MDC2_BLOCK 8 +# define MDC2_DIGEST_LENGTH 16 + +typedef struct mdc2_ctx_st { + unsigned int num; + unsigned char data[MDC2_BLOCK]; + DES_cblock h, hh; + int pad_type; /* either 1 or 2, default 1 */ +} MDC2_CTX; + +# ifdef OPENSSL_FIPS +int private_MDC2_Init(MDC2_CTX *c); +# endif +int MDC2_Init(MDC2_CTX *c); +int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len); +int MDC2_Final(unsigned char *md, MDC2_CTX *c); +unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/modes.h b/External/include64/openssl/modes.h new file mode 100644 index 00000000..fd488499 --- /dev/null +++ b/External/include64/openssl/modes.h @@ -0,0 +1,163 @@ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Rights for redistribution and usage in source and binary + * forms are granted according to the OpenSSL license. + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif +typedef void (*block128_f) (const unsigned char in[16], + unsigned char out[16], const void *key); + +typedef void (*cbc128_f) (const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], int enc); + +typedef void (*ctr128_f) (const unsigned char *in, unsigned char *out, + size_t blocks, const void *key, + const unsigned char ivec[16]); + +typedef void (*ccm128_f) (const unsigned char *in, unsigned char *out, + size_t blocks, const void *key, + const unsigned char ivec[16], + unsigned char cmac[16]); + +void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], block128_f block); +void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], block128_f block); + +void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], + unsigned char ecount_buf[16], unsigned int *num, + block128_f block); + +void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], + unsigned char ecount_buf[16], + unsigned int *num, ctr128_f ctr); + +void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], int *num, + block128_f block); + +void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], int *num, + int enc, block128_f block); +void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const void *key, + unsigned char ivec[16], int *num, + int enc, block128_f block); +void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, + size_t bits, const void *key, + unsigned char ivec[16], int *num, + int enc, block128_f block); + +size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, unsigned char ivec[16], + block128_f block); +size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); +size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, unsigned char ivec[16], + block128_f block); +size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); + +size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, + unsigned char ivec[16], + block128_f block); +size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); +size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, + unsigned char ivec[16], + block128_f block); +size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); + +typedef struct gcm128_context GCM128_CONTEXT; + +GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); +void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block); +void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, + size_t len); +int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, + size_t len); +int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len); +int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len); +int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len, ctr128_f stream); +int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len, ctr128_f stream); +int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag, + size_t len); +void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); +void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); + +typedef struct ccm128_context CCM128_CONTEXT; + +void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, + unsigned int M, unsigned int L, void *key, + block128_f block); +int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, const unsigned char *nonce, + size_t nlen, size_t mlen); +void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, const unsigned char *aad, + size_t alen); +int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len); +int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len); +int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len, + ccm128_f stream); +int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len, + ccm128_f stream); +size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); + +typedef struct xts128_context XTS128_CONTEXT; + +int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, + const unsigned char iv[16], + const unsigned char *inp, unsigned char *out, + size_t len, int enc); + +size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, size_t inlen, + block128_f block); + +size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, size_t inlen, + block128_f block); + +#ifdef __cplusplus +} +#endif diff --git a/External/include64/openssl/obj_mac.h b/External/include64/openssl/obj_mac.h new file mode 100644 index 00000000..779c309b --- /dev/null +++ b/External/include64/openssl/obj_mac.h @@ -0,0 +1,4194 @@ +/* crypto/objects/obj_mac.h */ + +/* + * THIS FILE IS GENERATED FROM objects.txt by objects.pl via the following + * command: perl objects.pl objects.txt obj_mac.num obj_mac.h + */ + +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#define SN_undef "UNDEF" +#define LN_undef "undefined" +#define NID_undef 0 +#define OBJ_undef 0L + +#define SN_itu_t "ITU-T" +#define LN_itu_t "itu-t" +#define NID_itu_t 645 +#define OBJ_itu_t 0L + +#define NID_ccitt 404 +#define OBJ_ccitt OBJ_itu_t + +#define SN_iso "ISO" +#define LN_iso "iso" +#define NID_iso 181 +#define OBJ_iso 1L + +#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T" +#define LN_joint_iso_itu_t "joint-iso-itu-t" +#define NID_joint_iso_itu_t 646 +#define OBJ_joint_iso_itu_t 2L + +#define NID_joint_iso_ccitt 393 +#define OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t + +#define SN_member_body "member-body" +#define LN_member_body "ISO Member Body" +#define NID_member_body 182 +#define OBJ_member_body OBJ_iso,2L + +#define SN_identified_organization "identified-organization" +#define NID_identified_organization 676 +#define OBJ_identified_organization OBJ_iso,3L + +#define SN_hmac_md5 "HMAC-MD5" +#define LN_hmac_md5 "hmac-md5" +#define NID_hmac_md5 780 +#define OBJ_hmac_md5 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L + +#define SN_hmac_sha1 "HMAC-SHA1" +#define LN_hmac_sha1 "hmac-sha1" +#define NID_hmac_sha1 781 +#define OBJ_hmac_sha1 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,2L + +#define SN_certicom_arc "certicom-arc" +#define NID_certicom_arc 677 +#define OBJ_certicom_arc OBJ_identified_organization,132L + +#define SN_international_organizations "international-organizations" +#define LN_international_organizations "International Organizations" +#define NID_international_organizations 647 +#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L + +#define SN_wap "wap" +#define NID_wap 678 +#define OBJ_wap OBJ_international_organizations,43L + +#define SN_wap_wsg "wap-wsg" +#define NID_wap_wsg 679 +#define OBJ_wap_wsg OBJ_wap,1L + +#define SN_selected_attribute_types "selected-attribute-types" +#define LN_selected_attribute_types "Selected Attribute Types" +#define NID_selected_attribute_types 394 +#define OBJ_selected_attribute_types OBJ_joint_iso_itu_t,5L,1L,5L + +#define SN_clearance "clearance" +#define NID_clearance 395 +#define OBJ_clearance OBJ_selected_attribute_types,55L + +#define SN_ISO_US "ISO-US" +#define LN_ISO_US "ISO US Member Body" +#define NID_ISO_US 183 +#define OBJ_ISO_US OBJ_member_body,840L + +#define SN_X9_57 "X9-57" +#define LN_X9_57 "X9.57" +#define NID_X9_57 184 +#define OBJ_X9_57 OBJ_ISO_US,10040L + +#define SN_X9cm "X9cm" +#define LN_X9cm "X9.57 CM ?" +#define NID_X9cm 185 +#define OBJ_X9cm OBJ_X9_57,4L + +#define SN_dsa "DSA" +#define LN_dsa "dsaEncryption" +#define NID_dsa 116 +#define OBJ_dsa OBJ_X9cm,1L + +#define SN_dsaWithSHA1 "DSA-SHA1" +#define LN_dsaWithSHA1 "dsaWithSHA1" +#define NID_dsaWithSHA1 113 +#define OBJ_dsaWithSHA1 OBJ_X9cm,3L + +#define SN_ansi_X9_62 "ansi-X9-62" +#define LN_ansi_X9_62 "ANSI X9.62" +#define NID_ansi_X9_62 405 +#define OBJ_ansi_X9_62 OBJ_ISO_US,10045L + +#define OBJ_X9_62_id_fieldType OBJ_ansi_X9_62,1L + +#define SN_X9_62_prime_field "prime-field" +#define NID_X9_62_prime_field 406 +#define OBJ_X9_62_prime_field OBJ_X9_62_id_fieldType,1L + +#define SN_X9_62_characteristic_two_field "characteristic-two-field" +#define NID_X9_62_characteristic_two_field 407 +#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L + +#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis" +#define NID_X9_62_id_characteristic_two_basis 680 +#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L + +#define SN_X9_62_onBasis "onBasis" +#define NID_X9_62_onBasis 681 +#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L + +#define SN_X9_62_tpBasis "tpBasis" +#define NID_X9_62_tpBasis 682 +#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L + +#define SN_X9_62_ppBasis "ppBasis" +#define NID_X9_62_ppBasis 683 +#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L + +#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L + +#define SN_X9_62_id_ecPublicKey "id-ecPublicKey" +#define NID_X9_62_id_ecPublicKey 408 +#define OBJ_X9_62_id_ecPublicKey OBJ_X9_62_id_publicKeyType,1L + +#define OBJ_X9_62_ellipticCurve OBJ_ansi_X9_62,3L + +#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L + +#define SN_X9_62_c2pnb163v1 "c2pnb163v1" +#define NID_X9_62_c2pnb163v1 684 +#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L + +#define SN_X9_62_c2pnb163v2 "c2pnb163v2" +#define NID_X9_62_c2pnb163v2 685 +#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L + +#define SN_X9_62_c2pnb163v3 "c2pnb163v3" +#define NID_X9_62_c2pnb163v3 686 +#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L + +#define SN_X9_62_c2pnb176v1 "c2pnb176v1" +#define NID_X9_62_c2pnb176v1 687 +#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L + +#define SN_X9_62_c2tnb191v1 "c2tnb191v1" +#define NID_X9_62_c2tnb191v1 688 +#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L + +#define SN_X9_62_c2tnb191v2 "c2tnb191v2" +#define NID_X9_62_c2tnb191v2 689 +#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L + +#define SN_X9_62_c2tnb191v3 "c2tnb191v3" +#define NID_X9_62_c2tnb191v3 690 +#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L + +#define SN_X9_62_c2onb191v4 "c2onb191v4" +#define NID_X9_62_c2onb191v4 691 +#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L + +#define SN_X9_62_c2onb191v5 "c2onb191v5" +#define NID_X9_62_c2onb191v5 692 +#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L + +#define SN_X9_62_c2pnb208w1 "c2pnb208w1" +#define NID_X9_62_c2pnb208w1 693 +#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L + +#define SN_X9_62_c2tnb239v1 "c2tnb239v1" +#define NID_X9_62_c2tnb239v1 694 +#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L + +#define SN_X9_62_c2tnb239v2 "c2tnb239v2" +#define NID_X9_62_c2tnb239v2 695 +#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L + +#define SN_X9_62_c2tnb239v3 "c2tnb239v3" +#define NID_X9_62_c2tnb239v3 696 +#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L + +#define SN_X9_62_c2onb239v4 "c2onb239v4" +#define NID_X9_62_c2onb239v4 697 +#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L + +#define SN_X9_62_c2onb239v5 "c2onb239v5" +#define NID_X9_62_c2onb239v5 698 +#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L + +#define SN_X9_62_c2pnb272w1 "c2pnb272w1" +#define NID_X9_62_c2pnb272w1 699 +#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L + +#define SN_X9_62_c2pnb304w1 "c2pnb304w1" +#define NID_X9_62_c2pnb304w1 700 +#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L + +#define SN_X9_62_c2tnb359v1 "c2tnb359v1" +#define NID_X9_62_c2tnb359v1 701 +#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L + +#define SN_X9_62_c2pnb368w1 "c2pnb368w1" +#define NID_X9_62_c2pnb368w1 702 +#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L + +#define SN_X9_62_c2tnb431r1 "c2tnb431r1" +#define NID_X9_62_c2tnb431r1 703 +#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L + +#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L + +#define SN_X9_62_prime192v1 "prime192v1" +#define NID_X9_62_prime192v1 409 +#define OBJ_X9_62_prime192v1 OBJ_X9_62_primeCurve,1L + +#define SN_X9_62_prime192v2 "prime192v2" +#define NID_X9_62_prime192v2 410 +#define OBJ_X9_62_prime192v2 OBJ_X9_62_primeCurve,2L + +#define SN_X9_62_prime192v3 "prime192v3" +#define NID_X9_62_prime192v3 411 +#define OBJ_X9_62_prime192v3 OBJ_X9_62_primeCurve,3L + +#define SN_X9_62_prime239v1 "prime239v1" +#define NID_X9_62_prime239v1 412 +#define OBJ_X9_62_prime239v1 OBJ_X9_62_primeCurve,4L + +#define SN_X9_62_prime239v2 "prime239v2" +#define NID_X9_62_prime239v2 413 +#define OBJ_X9_62_prime239v2 OBJ_X9_62_primeCurve,5L + +#define SN_X9_62_prime239v3 "prime239v3" +#define NID_X9_62_prime239v3 414 +#define OBJ_X9_62_prime239v3 OBJ_X9_62_primeCurve,6L + +#define SN_X9_62_prime256v1 "prime256v1" +#define NID_X9_62_prime256v1 415 +#define OBJ_X9_62_prime256v1 OBJ_X9_62_primeCurve,7L + +#define OBJ_X9_62_id_ecSigType OBJ_ansi_X9_62,4L + +#define SN_ecdsa_with_SHA1 "ecdsa-with-SHA1" +#define NID_ecdsa_with_SHA1 416 +#define OBJ_ecdsa_with_SHA1 OBJ_X9_62_id_ecSigType,1L + +#define SN_ecdsa_with_Recommended "ecdsa-with-Recommended" +#define NID_ecdsa_with_Recommended 791 +#define OBJ_ecdsa_with_Recommended OBJ_X9_62_id_ecSigType,2L + +#define SN_ecdsa_with_Specified "ecdsa-with-Specified" +#define NID_ecdsa_with_Specified 792 +#define OBJ_ecdsa_with_Specified OBJ_X9_62_id_ecSigType,3L + +#define SN_ecdsa_with_SHA224 "ecdsa-with-SHA224" +#define NID_ecdsa_with_SHA224 793 +#define OBJ_ecdsa_with_SHA224 OBJ_ecdsa_with_Specified,1L + +#define SN_ecdsa_with_SHA256 "ecdsa-with-SHA256" +#define NID_ecdsa_with_SHA256 794 +#define OBJ_ecdsa_with_SHA256 OBJ_ecdsa_with_Specified,2L + +#define SN_ecdsa_with_SHA384 "ecdsa-with-SHA384" +#define NID_ecdsa_with_SHA384 795 +#define OBJ_ecdsa_with_SHA384 OBJ_ecdsa_with_Specified,3L + +#define SN_ecdsa_with_SHA512 "ecdsa-with-SHA512" +#define NID_ecdsa_with_SHA512 796 +#define OBJ_ecdsa_with_SHA512 OBJ_ecdsa_with_Specified,4L + +#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L + +#define SN_secp112r1 "secp112r1" +#define NID_secp112r1 704 +#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L + +#define SN_secp112r2 "secp112r2" +#define NID_secp112r2 705 +#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L + +#define SN_secp128r1 "secp128r1" +#define NID_secp128r1 706 +#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L + +#define SN_secp128r2 "secp128r2" +#define NID_secp128r2 707 +#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L + +#define SN_secp160k1 "secp160k1" +#define NID_secp160k1 708 +#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L + +#define SN_secp160r1 "secp160r1" +#define NID_secp160r1 709 +#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L + +#define SN_secp160r2 "secp160r2" +#define NID_secp160r2 710 +#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L + +#define SN_secp192k1 "secp192k1" +#define NID_secp192k1 711 +#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L + +#define SN_secp224k1 "secp224k1" +#define NID_secp224k1 712 +#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L + +#define SN_secp224r1 "secp224r1" +#define NID_secp224r1 713 +#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L + +#define SN_secp256k1 "secp256k1" +#define NID_secp256k1 714 +#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L + +#define SN_secp384r1 "secp384r1" +#define NID_secp384r1 715 +#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L + +#define SN_secp521r1 "secp521r1" +#define NID_secp521r1 716 +#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L + +#define SN_sect113r1 "sect113r1" +#define NID_sect113r1 717 +#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L + +#define SN_sect113r2 "sect113r2" +#define NID_sect113r2 718 +#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L + +#define SN_sect131r1 "sect131r1" +#define NID_sect131r1 719 +#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L + +#define SN_sect131r2 "sect131r2" +#define NID_sect131r2 720 +#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L + +#define SN_sect163k1 "sect163k1" +#define NID_sect163k1 721 +#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L + +#define SN_sect163r1 "sect163r1" +#define NID_sect163r1 722 +#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L + +#define SN_sect163r2 "sect163r2" +#define NID_sect163r2 723 +#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L + +#define SN_sect193r1 "sect193r1" +#define NID_sect193r1 724 +#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L + +#define SN_sect193r2 "sect193r2" +#define NID_sect193r2 725 +#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L + +#define SN_sect233k1 "sect233k1" +#define NID_sect233k1 726 +#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L + +#define SN_sect233r1 "sect233r1" +#define NID_sect233r1 727 +#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L + +#define SN_sect239k1 "sect239k1" +#define NID_sect239k1 728 +#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L + +#define SN_sect283k1 "sect283k1" +#define NID_sect283k1 729 +#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L + +#define SN_sect283r1 "sect283r1" +#define NID_sect283r1 730 +#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L + +#define SN_sect409k1 "sect409k1" +#define NID_sect409k1 731 +#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L + +#define SN_sect409r1 "sect409r1" +#define NID_sect409r1 732 +#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L + +#define SN_sect571k1 "sect571k1" +#define NID_sect571k1 733 +#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L + +#define SN_sect571r1 "sect571r1" +#define NID_sect571r1 734 +#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L + +#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L + +#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1" +#define NID_wap_wsg_idm_ecid_wtls1 735 +#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L + +#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3" +#define NID_wap_wsg_idm_ecid_wtls3 736 +#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L + +#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4" +#define NID_wap_wsg_idm_ecid_wtls4 737 +#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L + +#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5" +#define NID_wap_wsg_idm_ecid_wtls5 738 +#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L + +#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6" +#define NID_wap_wsg_idm_ecid_wtls6 739 +#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L + +#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7" +#define NID_wap_wsg_idm_ecid_wtls7 740 +#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L + +#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8" +#define NID_wap_wsg_idm_ecid_wtls8 741 +#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L + +#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9" +#define NID_wap_wsg_idm_ecid_wtls9 742 +#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L + +#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10" +#define NID_wap_wsg_idm_ecid_wtls10 743 +#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L + +#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11" +#define NID_wap_wsg_idm_ecid_wtls11 744 +#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L + +#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12" +#define NID_wap_wsg_idm_ecid_wtls12 745 +#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L + +#define SN_cast5_cbc "CAST5-CBC" +#define LN_cast5_cbc "cast5-cbc" +#define NID_cast5_cbc 108 +#define OBJ_cast5_cbc OBJ_ISO_US,113533L,7L,66L,10L + +#define SN_cast5_ecb "CAST5-ECB" +#define LN_cast5_ecb "cast5-ecb" +#define NID_cast5_ecb 109 + +#define SN_cast5_cfb64 "CAST5-CFB" +#define LN_cast5_cfb64 "cast5-cfb" +#define NID_cast5_cfb64 110 + +#define SN_cast5_ofb64 "CAST5-OFB" +#define LN_cast5_ofb64 "cast5-ofb" +#define NID_cast5_ofb64 111 + +#define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" +#define NID_pbeWithMD5AndCast5_CBC 112 +#define OBJ_pbeWithMD5AndCast5_CBC OBJ_ISO_US,113533L,7L,66L,12L + +#define SN_id_PasswordBasedMAC "id-PasswordBasedMAC" +#define LN_id_PasswordBasedMAC "password based MAC" +#define NID_id_PasswordBasedMAC 782 +#define OBJ_id_PasswordBasedMAC OBJ_ISO_US,113533L,7L,66L,13L + +#define SN_id_DHBasedMac "id-DHBasedMac" +#define LN_id_DHBasedMac "Diffie-Hellman based MAC" +#define NID_id_DHBasedMac 783 +#define OBJ_id_DHBasedMac OBJ_ISO_US,113533L,7L,66L,30L + +#define SN_rsadsi "rsadsi" +#define LN_rsadsi "RSA Data Security, Inc." +#define NID_rsadsi 1 +#define OBJ_rsadsi OBJ_ISO_US,113549L + +#define SN_pkcs "pkcs" +#define LN_pkcs "RSA Data Security, Inc. PKCS" +#define NID_pkcs 2 +#define OBJ_pkcs OBJ_rsadsi,1L + +#define SN_pkcs1 "pkcs1" +#define NID_pkcs1 186 +#define OBJ_pkcs1 OBJ_pkcs,1L + +#define LN_rsaEncryption "rsaEncryption" +#define NID_rsaEncryption 6 +#define OBJ_rsaEncryption OBJ_pkcs1,1L + +#define SN_md2WithRSAEncryption "RSA-MD2" +#define LN_md2WithRSAEncryption "md2WithRSAEncryption" +#define NID_md2WithRSAEncryption 7 +#define OBJ_md2WithRSAEncryption OBJ_pkcs1,2L + +#define SN_md4WithRSAEncryption "RSA-MD4" +#define LN_md4WithRSAEncryption "md4WithRSAEncryption" +#define NID_md4WithRSAEncryption 396 +#define OBJ_md4WithRSAEncryption OBJ_pkcs1,3L + +#define SN_md5WithRSAEncryption "RSA-MD5" +#define LN_md5WithRSAEncryption "md5WithRSAEncryption" +#define NID_md5WithRSAEncryption 8 +#define OBJ_md5WithRSAEncryption OBJ_pkcs1,4L + +#define SN_sha1WithRSAEncryption "RSA-SHA1" +#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" +#define NID_sha1WithRSAEncryption 65 +#define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L + +#define SN_rsaesOaep "RSAES-OAEP" +#define LN_rsaesOaep "rsaesOaep" +#define NID_rsaesOaep 919 +#define OBJ_rsaesOaep OBJ_pkcs1,7L + +#define SN_mgf1 "MGF1" +#define LN_mgf1 "mgf1" +#define NID_mgf1 911 +#define OBJ_mgf1 OBJ_pkcs1,8L + +#define SN_pSpecified "PSPECIFIED" +#define LN_pSpecified "pSpecified" +#define NID_pSpecified 935 +#define OBJ_pSpecified OBJ_pkcs1,9L + +#define SN_rsassaPss "RSASSA-PSS" +#define LN_rsassaPss "rsassaPss" +#define NID_rsassaPss 912 +#define OBJ_rsassaPss OBJ_pkcs1,10L + +#define SN_sha256WithRSAEncryption "RSA-SHA256" +#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" +#define NID_sha256WithRSAEncryption 668 +#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L + +#define SN_sha384WithRSAEncryption "RSA-SHA384" +#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" +#define NID_sha384WithRSAEncryption 669 +#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L + +#define SN_sha512WithRSAEncryption "RSA-SHA512" +#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" +#define NID_sha512WithRSAEncryption 670 +#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L + +#define SN_sha224WithRSAEncryption "RSA-SHA224" +#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" +#define NID_sha224WithRSAEncryption 671 +#define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L + +#define SN_pkcs3 "pkcs3" +#define NID_pkcs3 27 +#define OBJ_pkcs3 OBJ_pkcs,3L + +#define LN_dhKeyAgreement "dhKeyAgreement" +#define NID_dhKeyAgreement 28 +#define OBJ_dhKeyAgreement OBJ_pkcs3,1L + +#define SN_pkcs5 "pkcs5" +#define NID_pkcs5 187 +#define OBJ_pkcs5 OBJ_pkcs,5L + +#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" +#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" +#define NID_pbeWithMD2AndDES_CBC 9 +#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs5,1L + +#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" +#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" +#define NID_pbeWithMD5AndDES_CBC 10 +#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs5,3L + +#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" +#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" +#define NID_pbeWithMD2AndRC2_CBC 168 +#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs5,4L + +#define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" +#define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" +#define NID_pbeWithMD5AndRC2_CBC 169 +#define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs5,6L + +#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" +#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" +#define NID_pbeWithSHA1AndDES_CBC 170 +#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs5,10L + +#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" +#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" +#define NID_pbeWithSHA1AndRC2_CBC 68 +#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs5,11L + +#define LN_id_pbkdf2 "PBKDF2" +#define NID_id_pbkdf2 69 +#define OBJ_id_pbkdf2 OBJ_pkcs5,12L + +#define LN_pbes2 "PBES2" +#define NID_pbes2 161 +#define OBJ_pbes2 OBJ_pkcs5,13L + +#define LN_pbmac1 "PBMAC1" +#define NID_pbmac1 162 +#define OBJ_pbmac1 OBJ_pkcs5,14L + +#define SN_pkcs7 "pkcs7" +#define NID_pkcs7 20 +#define OBJ_pkcs7 OBJ_pkcs,7L + +#define LN_pkcs7_data "pkcs7-data" +#define NID_pkcs7_data 21 +#define OBJ_pkcs7_data OBJ_pkcs7,1L + +#define LN_pkcs7_signed "pkcs7-signedData" +#define NID_pkcs7_signed 22 +#define OBJ_pkcs7_signed OBJ_pkcs7,2L + +#define LN_pkcs7_enveloped "pkcs7-envelopedData" +#define NID_pkcs7_enveloped 23 +#define OBJ_pkcs7_enveloped OBJ_pkcs7,3L + +#define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" +#define NID_pkcs7_signedAndEnveloped 24 +#define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L + +#define LN_pkcs7_digest "pkcs7-digestData" +#define NID_pkcs7_digest 25 +#define OBJ_pkcs7_digest OBJ_pkcs7,5L + +#define LN_pkcs7_encrypted "pkcs7-encryptedData" +#define NID_pkcs7_encrypted 26 +#define OBJ_pkcs7_encrypted OBJ_pkcs7,6L + +#define SN_pkcs9 "pkcs9" +#define NID_pkcs9 47 +#define OBJ_pkcs9 OBJ_pkcs,9L + +#define LN_pkcs9_emailAddress "emailAddress" +#define NID_pkcs9_emailAddress 48 +#define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L + +#define LN_pkcs9_unstructuredName "unstructuredName" +#define NID_pkcs9_unstructuredName 49 +#define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L + +#define LN_pkcs9_contentType "contentType" +#define NID_pkcs9_contentType 50 +#define OBJ_pkcs9_contentType OBJ_pkcs9,3L + +#define LN_pkcs9_messageDigest "messageDigest" +#define NID_pkcs9_messageDigest 51 +#define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L + +#define LN_pkcs9_signingTime "signingTime" +#define NID_pkcs9_signingTime 52 +#define OBJ_pkcs9_signingTime OBJ_pkcs9,5L + +#define LN_pkcs9_countersignature "countersignature" +#define NID_pkcs9_countersignature 53 +#define OBJ_pkcs9_countersignature OBJ_pkcs9,6L + +#define LN_pkcs9_challengePassword "challengePassword" +#define NID_pkcs9_challengePassword 54 +#define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L + +#define LN_pkcs9_unstructuredAddress "unstructuredAddress" +#define NID_pkcs9_unstructuredAddress 55 +#define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L + +#define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" +#define NID_pkcs9_extCertAttributes 56 +#define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L + +#define SN_ext_req "extReq" +#define LN_ext_req "Extension Request" +#define NID_ext_req 172 +#define OBJ_ext_req OBJ_pkcs9,14L + +#define SN_SMIMECapabilities "SMIME-CAPS" +#define LN_SMIMECapabilities "S/MIME Capabilities" +#define NID_SMIMECapabilities 167 +#define OBJ_SMIMECapabilities OBJ_pkcs9,15L + +#define SN_SMIME "SMIME" +#define LN_SMIME "S/MIME" +#define NID_SMIME 188 +#define OBJ_SMIME OBJ_pkcs9,16L + +#define SN_id_smime_mod "id-smime-mod" +#define NID_id_smime_mod 189 +#define OBJ_id_smime_mod OBJ_SMIME,0L + +#define SN_id_smime_ct "id-smime-ct" +#define NID_id_smime_ct 190 +#define OBJ_id_smime_ct OBJ_SMIME,1L + +#define SN_id_smime_aa "id-smime-aa" +#define NID_id_smime_aa 191 +#define OBJ_id_smime_aa OBJ_SMIME,2L + +#define SN_id_smime_alg "id-smime-alg" +#define NID_id_smime_alg 192 +#define OBJ_id_smime_alg OBJ_SMIME,3L + +#define SN_id_smime_cd "id-smime-cd" +#define NID_id_smime_cd 193 +#define OBJ_id_smime_cd OBJ_SMIME,4L + +#define SN_id_smime_spq "id-smime-spq" +#define NID_id_smime_spq 194 +#define OBJ_id_smime_spq OBJ_SMIME,5L + +#define SN_id_smime_cti "id-smime-cti" +#define NID_id_smime_cti 195 +#define OBJ_id_smime_cti OBJ_SMIME,6L + +#define SN_id_smime_mod_cms "id-smime-mod-cms" +#define NID_id_smime_mod_cms 196 +#define OBJ_id_smime_mod_cms OBJ_id_smime_mod,1L + +#define SN_id_smime_mod_ess "id-smime-mod-ess" +#define NID_id_smime_mod_ess 197 +#define OBJ_id_smime_mod_ess OBJ_id_smime_mod,2L + +#define SN_id_smime_mod_oid "id-smime-mod-oid" +#define NID_id_smime_mod_oid 198 +#define OBJ_id_smime_mod_oid OBJ_id_smime_mod,3L + +#define SN_id_smime_mod_msg_v3 "id-smime-mod-msg-v3" +#define NID_id_smime_mod_msg_v3 199 +#define OBJ_id_smime_mod_msg_v3 OBJ_id_smime_mod,4L + +#define SN_id_smime_mod_ets_eSignature_88 "id-smime-mod-ets-eSignature-88" +#define NID_id_smime_mod_ets_eSignature_88 200 +#define OBJ_id_smime_mod_ets_eSignature_88 OBJ_id_smime_mod,5L + +#define SN_id_smime_mod_ets_eSignature_97 "id-smime-mod-ets-eSignature-97" +#define NID_id_smime_mod_ets_eSignature_97 201 +#define OBJ_id_smime_mod_ets_eSignature_97 OBJ_id_smime_mod,6L + +#define SN_id_smime_mod_ets_eSigPolicy_88 "id-smime-mod-ets-eSigPolicy-88" +#define NID_id_smime_mod_ets_eSigPolicy_88 202 +#define OBJ_id_smime_mod_ets_eSigPolicy_88 OBJ_id_smime_mod,7L + +#define SN_id_smime_mod_ets_eSigPolicy_97 "id-smime-mod-ets-eSigPolicy-97" +#define NID_id_smime_mod_ets_eSigPolicy_97 203 +#define OBJ_id_smime_mod_ets_eSigPolicy_97 OBJ_id_smime_mod,8L + +#define SN_id_smime_ct_receipt "id-smime-ct-receipt" +#define NID_id_smime_ct_receipt 204 +#define OBJ_id_smime_ct_receipt OBJ_id_smime_ct,1L + +#define SN_id_smime_ct_authData "id-smime-ct-authData" +#define NID_id_smime_ct_authData 205 +#define OBJ_id_smime_ct_authData OBJ_id_smime_ct,2L + +#define SN_id_smime_ct_publishCert "id-smime-ct-publishCert" +#define NID_id_smime_ct_publishCert 206 +#define OBJ_id_smime_ct_publishCert OBJ_id_smime_ct,3L + +#define SN_id_smime_ct_TSTInfo "id-smime-ct-TSTInfo" +#define NID_id_smime_ct_TSTInfo 207 +#define OBJ_id_smime_ct_TSTInfo OBJ_id_smime_ct,4L + +#define SN_id_smime_ct_TDTInfo "id-smime-ct-TDTInfo" +#define NID_id_smime_ct_TDTInfo 208 +#define OBJ_id_smime_ct_TDTInfo OBJ_id_smime_ct,5L + +#define SN_id_smime_ct_contentInfo "id-smime-ct-contentInfo" +#define NID_id_smime_ct_contentInfo 209 +#define OBJ_id_smime_ct_contentInfo OBJ_id_smime_ct,6L + +#define SN_id_smime_ct_DVCSRequestData "id-smime-ct-DVCSRequestData" +#define NID_id_smime_ct_DVCSRequestData 210 +#define OBJ_id_smime_ct_DVCSRequestData OBJ_id_smime_ct,7L + +#define SN_id_smime_ct_DVCSResponseData "id-smime-ct-DVCSResponseData" +#define NID_id_smime_ct_DVCSResponseData 211 +#define OBJ_id_smime_ct_DVCSResponseData OBJ_id_smime_ct,8L + +#define SN_id_smime_ct_compressedData "id-smime-ct-compressedData" +#define NID_id_smime_ct_compressedData 786 +#define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L + +#define SN_id_ct_asciiTextWithCRLF "id-ct-asciiTextWithCRLF" +#define NID_id_ct_asciiTextWithCRLF 787 +#define OBJ_id_ct_asciiTextWithCRLF OBJ_id_smime_ct,27L + +#define SN_id_smime_aa_receiptRequest "id-smime-aa-receiptRequest" +#define NID_id_smime_aa_receiptRequest 212 +#define OBJ_id_smime_aa_receiptRequest OBJ_id_smime_aa,1L + +#define SN_id_smime_aa_securityLabel "id-smime-aa-securityLabel" +#define NID_id_smime_aa_securityLabel 213 +#define OBJ_id_smime_aa_securityLabel OBJ_id_smime_aa,2L + +#define SN_id_smime_aa_mlExpandHistory "id-smime-aa-mlExpandHistory" +#define NID_id_smime_aa_mlExpandHistory 214 +#define OBJ_id_smime_aa_mlExpandHistory OBJ_id_smime_aa,3L + +#define SN_id_smime_aa_contentHint "id-smime-aa-contentHint" +#define NID_id_smime_aa_contentHint 215 +#define OBJ_id_smime_aa_contentHint OBJ_id_smime_aa,4L + +#define SN_id_smime_aa_msgSigDigest "id-smime-aa-msgSigDigest" +#define NID_id_smime_aa_msgSigDigest 216 +#define OBJ_id_smime_aa_msgSigDigest OBJ_id_smime_aa,5L + +#define SN_id_smime_aa_encapContentType "id-smime-aa-encapContentType" +#define NID_id_smime_aa_encapContentType 217 +#define OBJ_id_smime_aa_encapContentType OBJ_id_smime_aa,6L + +#define SN_id_smime_aa_contentIdentifier "id-smime-aa-contentIdentifier" +#define NID_id_smime_aa_contentIdentifier 218 +#define OBJ_id_smime_aa_contentIdentifier OBJ_id_smime_aa,7L + +#define SN_id_smime_aa_macValue "id-smime-aa-macValue" +#define NID_id_smime_aa_macValue 219 +#define OBJ_id_smime_aa_macValue OBJ_id_smime_aa,8L + +#define SN_id_smime_aa_equivalentLabels "id-smime-aa-equivalentLabels" +#define NID_id_smime_aa_equivalentLabels 220 +#define OBJ_id_smime_aa_equivalentLabels OBJ_id_smime_aa,9L + +#define SN_id_smime_aa_contentReference "id-smime-aa-contentReference" +#define NID_id_smime_aa_contentReference 221 +#define OBJ_id_smime_aa_contentReference OBJ_id_smime_aa,10L + +#define SN_id_smime_aa_encrypKeyPref "id-smime-aa-encrypKeyPref" +#define NID_id_smime_aa_encrypKeyPref 222 +#define OBJ_id_smime_aa_encrypKeyPref OBJ_id_smime_aa,11L + +#define SN_id_smime_aa_signingCertificate "id-smime-aa-signingCertificate" +#define NID_id_smime_aa_signingCertificate 223 +#define OBJ_id_smime_aa_signingCertificate OBJ_id_smime_aa,12L + +#define SN_id_smime_aa_smimeEncryptCerts "id-smime-aa-smimeEncryptCerts" +#define NID_id_smime_aa_smimeEncryptCerts 224 +#define OBJ_id_smime_aa_smimeEncryptCerts OBJ_id_smime_aa,13L + +#define SN_id_smime_aa_timeStampToken "id-smime-aa-timeStampToken" +#define NID_id_smime_aa_timeStampToken 225 +#define OBJ_id_smime_aa_timeStampToken OBJ_id_smime_aa,14L + +#define SN_id_smime_aa_ets_sigPolicyId "id-smime-aa-ets-sigPolicyId" +#define NID_id_smime_aa_ets_sigPolicyId 226 +#define OBJ_id_smime_aa_ets_sigPolicyId OBJ_id_smime_aa,15L + +#define SN_id_smime_aa_ets_commitmentType "id-smime-aa-ets-commitmentType" +#define NID_id_smime_aa_ets_commitmentType 227 +#define OBJ_id_smime_aa_ets_commitmentType OBJ_id_smime_aa,16L + +#define SN_id_smime_aa_ets_signerLocation "id-smime-aa-ets-signerLocation" +#define NID_id_smime_aa_ets_signerLocation 228 +#define OBJ_id_smime_aa_ets_signerLocation OBJ_id_smime_aa,17L + +#define SN_id_smime_aa_ets_signerAttr "id-smime-aa-ets-signerAttr" +#define NID_id_smime_aa_ets_signerAttr 229 +#define OBJ_id_smime_aa_ets_signerAttr OBJ_id_smime_aa,18L + +#define SN_id_smime_aa_ets_otherSigCert "id-smime-aa-ets-otherSigCert" +#define NID_id_smime_aa_ets_otherSigCert 230 +#define OBJ_id_smime_aa_ets_otherSigCert OBJ_id_smime_aa,19L + +#define SN_id_smime_aa_ets_contentTimestamp "id-smime-aa-ets-contentTimestamp" +#define NID_id_smime_aa_ets_contentTimestamp 231 +#define OBJ_id_smime_aa_ets_contentTimestamp OBJ_id_smime_aa,20L + +#define SN_id_smime_aa_ets_CertificateRefs "id-smime-aa-ets-CertificateRefs" +#define NID_id_smime_aa_ets_CertificateRefs 232 +#define OBJ_id_smime_aa_ets_CertificateRefs OBJ_id_smime_aa,21L + +#define SN_id_smime_aa_ets_RevocationRefs "id-smime-aa-ets-RevocationRefs" +#define NID_id_smime_aa_ets_RevocationRefs 233 +#define OBJ_id_smime_aa_ets_RevocationRefs OBJ_id_smime_aa,22L + +#define SN_id_smime_aa_ets_certValues "id-smime-aa-ets-certValues" +#define NID_id_smime_aa_ets_certValues 234 +#define OBJ_id_smime_aa_ets_certValues OBJ_id_smime_aa,23L + +#define SN_id_smime_aa_ets_revocationValues "id-smime-aa-ets-revocationValues" +#define NID_id_smime_aa_ets_revocationValues 235 +#define OBJ_id_smime_aa_ets_revocationValues OBJ_id_smime_aa,24L + +#define SN_id_smime_aa_ets_escTimeStamp "id-smime-aa-ets-escTimeStamp" +#define NID_id_smime_aa_ets_escTimeStamp 236 +#define OBJ_id_smime_aa_ets_escTimeStamp OBJ_id_smime_aa,25L + +#define SN_id_smime_aa_ets_certCRLTimestamp "id-smime-aa-ets-certCRLTimestamp" +#define NID_id_smime_aa_ets_certCRLTimestamp 237 +#define OBJ_id_smime_aa_ets_certCRLTimestamp OBJ_id_smime_aa,26L + +#define SN_id_smime_aa_ets_archiveTimeStamp "id-smime-aa-ets-archiveTimeStamp" +#define NID_id_smime_aa_ets_archiveTimeStamp 238 +#define OBJ_id_smime_aa_ets_archiveTimeStamp OBJ_id_smime_aa,27L + +#define SN_id_smime_aa_signatureType "id-smime-aa-signatureType" +#define NID_id_smime_aa_signatureType 239 +#define OBJ_id_smime_aa_signatureType OBJ_id_smime_aa,28L + +#define SN_id_smime_aa_dvcs_dvc "id-smime-aa-dvcs-dvc" +#define NID_id_smime_aa_dvcs_dvc 240 +#define OBJ_id_smime_aa_dvcs_dvc OBJ_id_smime_aa,29L + +#define SN_id_smime_alg_ESDHwith3DES "id-smime-alg-ESDHwith3DES" +#define NID_id_smime_alg_ESDHwith3DES 241 +#define OBJ_id_smime_alg_ESDHwith3DES OBJ_id_smime_alg,1L + +#define SN_id_smime_alg_ESDHwithRC2 "id-smime-alg-ESDHwithRC2" +#define NID_id_smime_alg_ESDHwithRC2 242 +#define OBJ_id_smime_alg_ESDHwithRC2 OBJ_id_smime_alg,2L + +#define SN_id_smime_alg_3DESwrap "id-smime-alg-3DESwrap" +#define NID_id_smime_alg_3DESwrap 243 +#define OBJ_id_smime_alg_3DESwrap OBJ_id_smime_alg,3L + +#define SN_id_smime_alg_RC2wrap "id-smime-alg-RC2wrap" +#define NID_id_smime_alg_RC2wrap 244 +#define OBJ_id_smime_alg_RC2wrap OBJ_id_smime_alg,4L + +#define SN_id_smime_alg_ESDH "id-smime-alg-ESDH" +#define NID_id_smime_alg_ESDH 245 +#define OBJ_id_smime_alg_ESDH OBJ_id_smime_alg,5L + +#define SN_id_smime_alg_CMS3DESwrap "id-smime-alg-CMS3DESwrap" +#define NID_id_smime_alg_CMS3DESwrap 246 +#define OBJ_id_smime_alg_CMS3DESwrap OBJ_id_smime_alg,6L + +#define SN_id_smime_alg_CMSRC2wrap "id-smime-alg-CMSRC2wrap" +#define NID_id_smime_alg_CMSRC2wrap 247 +#define OBJ_id_smime_alg_CMSRC2wrap OBJ_id_smime_alg,7L + +#define SN_id_alg_PWRI_KEK "id-alg-PWRI-KEK" +#define NID_id_alg_PWRI_KEK 893 +#define OBJ_id_alg_PWRI_KEK OBJ_id_smime_alg,9L + +#define SN_id_smime_cd_ldap "id-smime-cd-ldap" +#define NID_id_smime_cd_ldap 248 +#define OBJ_id_smime_cd_ldap OBJ_id_smime_cd,1L + +#define SN_id_smime_spq_ets_sqt_uri "id-smime-spq-ets-sqt-uri" +#define NID_id_smime_spq_ets_sqt_uri 249 +#define OBJ_id_smime_spq_ets_sqt_uri OBJ_id_smime_spq,1L + +#define SN_id_smime_spq_ets_sqt_unotice "id-smime-spq-ets-sqt-unotice" +#define NID_id_smime_spq_ets_sqt_unotice 250 +#define OBJ_id_smime_spq_ets_sqt_unotice OBJ_id_smime_spq,2L + +#define SN_id_smime_cti_ets_proofOfOrigin "id-smime-cti-ets-proofOfOrigin" +#define NID_id_smime_cti_ets_proofOfOrigin 251 +#define OBJ_id_smime_cti_ets_proofOfOrigin OBJ_id_smime_cti,1L + +#define SN_id_smime_cti_ets_proofOfReceipt "id-smime-cti-ets-proofOfReceipt" +#define NID_id_smime_cti_ets_proofOfReceipt 252 +#define OBJ_id_smime_cti_ets_proofOfReceipt OBJ_id_smime_cti,2L + +#define SN_id_smime_cti_ets_proofOfDelivery "id-smime-cti-ets-proofOfDelivery" +#define NID_id_smime_cti_ets_proofOfDelivery 253 +#define OBJ_id_smime_cti_ets_proofOfDelivery OBJ_id_smime_cti,3L + +#define SN_id_smime_cti_ets_proofOfSender "id-smime-cti-ets-proofOfSender" +#define NID_id_smime_cti_ets_proofOfSender 254 +#define OBJ_id_smime_cti_ets_proofOfSender OBJ_id_smime_cti,4L + +#define SN_id_smime_cti_ets_proofOfApproval "id-smime-cti-ets-proofOfApproval" +#define NID_id_smime_cti_ets_proofOfApproval 255 +#define OBJ_id_smime_cti_ets_proofOfApproval OBJ_id_smime_cti,5L + +#define SN_id_smime_cti_ets_proofOfCreation "id-smime-cti-ets-proofOfCreation" +#define NID_id_smime_cti_ets_proofOfCreation 256 +#define OBJ_id_smime_cti_ets_proofOfCreation OBJ_id_smime_cti,6L + +#define LN_friendlyName "friendlyName" +#define NID_friendlyName 156 +#define OBJ_friendlyName OBJ_pkcs9,20L + +#define LN_localKeyID "localKeyID" +#define NID_localKeyID 157 +#define OBJ_localKeyID OBJ_pkcs9,21L + +#define SN_ms_csp_name "CSPName" +#define LN_ms_csp_name "Microsoft CSP Name" +#define NID_ms_csp_name 417 +#define OBJ_ms_csp_name 1L,3L,6L,1L,4L,1L,311L,17L,1L + +#define SN_LocalKeySet "LocalKeySet" +#define LN_LocalKeySet "Microsoft Local Key set" +#define NID_LocalKeySet 856 +#define OBJ_LocalKeySet 1L,3L,6L,1L,4L,1L,311L,17L,2L + +#define OBJ_certTypes OBJ_pkcs9,22L + +#define LN_x509Certificate "x509Certificate" +#define NID_x509Certificate 158 +#define OBJ_x509Certificate OBJ_certTypes,1L + +#define LN_sdsiCertificate "sdsiCertificate" +#define NID_sdsiCertificate 159 +#define OBJ_sdsiCertificate OBJ_certTypes,2L + +#define OBJ_crlTypes OBJ_pkcs9,23L + +#define LN_x509Crl "x509Crl" +#define NID_x509Crl 160 +#define OBJ_x509Crl OBJ_crlTypes,1L + +#define OBJ_pkcs12 OBJ_pkcs,12L + +#define OBJ_pkcs12_pbeids OBJ_pkcs12,1L + +#define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" +#define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" +#define NID_pbe_WithSHA1And128BitRC4 144 +#define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids,1L + +#define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" +#define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" +#define NID_pbe_WithSHA1And40BitRC4 145 +#define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids,2L + +#define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" +#define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" +#define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 +#define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids,3L + +#define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" +#define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" +#define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 +#define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids,4L + +#define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" +#define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" +#define NID_pbe_WithSHA1And128BitRC2_CBC 148 +#define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids,5L + +#define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" +#define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" +#define NID_pbe_WithSHA1And40BitRC2_CBC 149 +#define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids,6L + +#define OBJ_pkcs12_Version1 OBJ_pkcs12,10L + +#define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1,1L + +#define LN_keyBag "keyBag" +#define NID_keyBag 150 +#define OBJ_keyBag OBJ_pkcs12_BagIds,1L + +#define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" +#define NID_pkcs8ShroudedKeyBag 151 +#define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds,2L + +#define LN_certBag "certBag" +#define NID_certBag 152 +#define OBJ_certBag OBJ_pkcs12_BagIds,3L + +#define LN_crlBag "crlBag" +#define NID_crlBag 153 +#define OBJ_crlBag OBJ_pkcs12_BagIds,4L + +#define LN_secretBag "secretBag" +#define NID_secretBag 154 +#define OBJ_secretBag OBJ_pkcs12_BagIds,5L + +#define LN_safeContentsBag "safeContentsBag" +#define NID_safeContentsBag 155 +#define OBJ_safeContentsBag OBJ_pkcs12_BagIds,6L + +#define SN_md2 "MD2" +#define LN_md2 "md2" +#define NID_md2 3 +#define OBJ_md2 OBJ_rsadsi,2L,2L + +#define SN_md4 "MD4" +#define LN_md4 "md4" +#define NID_md4 257 +#define OBJ_md4 OBJ_rsadsi,2L,4L + +#define SN_md5 "MD5" +#define LN_md5 "md5" +#define NID_md5 4 +#define OBJ_md5 OBJ_rsadsi,2L,5L + +#define SN_md5_sha1 "MD5-SHA1" +#define LN_md5_sha1 "md5-sha1" +#define NID_md5_sha1 114 + +#define LN_hmacWithMD5 "hmacWithMD5" +#define NID_hmacWithMD5 797 +#define OBJ_hmacWithMD5 OBJ_rsadsi,2L,6L + +#define LN_hmacWithSHA1 "hmacWithSHA1" +#define NID_hmacWithSHA1 163 +#define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L + +#define LN_hmacWithSHA224 "hmacWithSHA224" +#define NID_hmacWithSHA224 798 +#define OBJ_hmacWithSHA224 OBJ_rsadsi,2L,8L + +#define LN_hmacWithSHA256 "hmacWithSHA256" +#define NID_hmacWithSHA256 799 +#define OBJ_hmacWithSHA256 OBJ_rsadsi,2L,9L + +#define LN_hmacWithSHA384 "hmacWithSHA384" +#define NID_hmacWithSHA384 800 +#define OBJ_hmacWithSHA384 OBJ_rsadsi,2L,10L + +#define LN_hmacWithSHA512 "hmacWithSHA512" +#define NID_hmacWithSHA512 801 +#define OBJ_hmacWithSHA512 OBJ_rsadsi,2L,11L + +#define SN_rc2_cbc "RC2-CBC" +#define LN_rc2_cbc "rc2-cbc" +#define NID_rc2_cbc 37 +#define OBJ_rc2_cbc OBJ_rsadsi,3L,2L + +#define SN_rc2_ecb "RC2-ECB" +#define LN_rc2_ecb "rc2-ecb" +#define NID_rc2_ecb 38 + +#define SN_rc2_cfb64 "RC2-CFB" +#define LN_rc2_cfb64 "rc2-cfb" +#define NID_rc2_cfb64 39 + +#define SN_rc2_ofb64 "RC2-OFB" +#define LN_rc2_ofb64 "rc2-ofb" +#define NID_rc2_ofb64 40 + +#define SN_rc2_40_cbc "RC2-40-CBC" +#define LN_rc2_40_cbc "rc2-40-cbc" +#define NID_rc2_40_cbc 98 + +#define SN_rc2_64_cbc "RC2-64-CBC" +#define LN_rc2_64_cbc "rc2-64-cbc" +#define NID_rc2_64_cbc 166 + +#define SN_rc4 "RC4" +#define LN_rc4 "rc4" +#define NID_rc4 5 +#define OBJ_rc4 OBJ_rsadsi,3L,4L + +#define SN_rc4_40 "RC4-40" +#define LN_rc4_40 "rc4-40" +#define NID_rc4_40 97 + +#define SN_des_ede3_cbc "DES-EDE3-CBC" +#define LN_des_ede3_cbc "des-ede3-cbc" +#define NID_des_ede3_cbc 44 +#define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L + +#define SN_rc5_cbc "RC5-CBC" +#define LN_rc5_cbc "rc5-cbc" +#define NID_rc5_cbc 120 +#define OBJ_rc5_cbc OBJ_rsadsi,3L,8L + +#define SN_rc5_ecb "RC5-ECB" +#define LN_rc5_ecb "rc5-ecb" +#define NID_rc5_ecb 121 + +#define SN_rc5_cfb64 "RC5-CFB" +#define LN_rc5_cfb64 "rc5-cfb" +#define NID_rc5_cfb64 122 + +#define SN_rc5_ofb64 "RC5-OFB" +#define LN_rc5_ofb64 "rc5-ofb" +#define NID_rc5_ofb64 123 + +#define SN_ms_ext_req "msExtReq" +#define LN_ms_ext_req "Microsoft Extension Request" +#define NID_ms_ext_req 171 +#define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L + +#define SN_ms_code_ind "msCodeInd" +#define LN_ms_code_ind "Microsoft Individual Code Signing" +#define NID_ms_code_ind 134 +#define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L + +#define SN_ms_code_com "msCodeCom" +#define LN_ms_code_com "Microsoft Commercial Code Signing" +#define NID_ms_code_com 135 +#define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L + +#define SN_ms_ctl_sign "msCTLSign" +#define LN_ms_ctl_sign "Microsoft Trust List Signing" +#define NID_ms_ctl_sign 136 +#define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L + +#define SN_ms_sgc "msSGC" +#define LN_ms_sgc "Microsoft Server Gated Crypto" +#define NID_ms_sgc 137 +#define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L + +#define SN_ms_efs "msEFS" +#define LN_ms_efs "Microsoft Encrypted File System" +#define NID_ms_efs 138 +#define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L + +#define SN_ms_smartcard_login "msSmartcardLogin" +#define LN_ms_smartcard_login "Microsoft Smartcardlogin" +#define NID_ms_smartcard_login 648 +#define OBJ_ms_smartcard_login 1L,3L,6L,1L,4L,1L,311L,20L,2L,2L + +#define SN_ms_upn "msUPN" +#define LN_ms_upn "Microsoft Universal Principal Name" +#define NID_ms_upn 649 +#define OBJ_ms_upn 1L,3L,6L,1L,4L,1L,311L,20L,2L,3L + +#define SN_idea_cbc "IDEA-CBC" +#define LN_idea_cbc "idea-cbc" +#define NID_idea_cbc 34 +#define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L + +#define SN_idea_ecb "IDEA-ECB" +#define LN_idea_ecb "idea-ecb" +#define NID_idea_ecb 36 + +#define SN_idea_cfb64 "IDEA-CFB" +#define LN_idea_cfb64 "idea-cfb" +#define NID_idea_cfb64 35 + +#define SN_idea_ofb64 "IDEA-OFB" +#define LN_idea_ofb64 "idea-ofb" +#define NID_idea_ofb64 46 + +#define SN_bf_cbc "BF-CBC" +#define LN_bf_cbc "bf-cbc" +#define NID_bf_cbc 91 +#define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L + +#define SN_bf_ecb "BF-ECB" +#define LN_bf_ecb "bf-ecb" +#define NID_bf_ecb 92 + +#define SN_bf_cfb64 "BF-CFB" +#define LN_bf_cfb64 "bf-cfb" +#define NID_bf_cfb64 93 + +#define SN_bf_ofb64 "BF-OFB" +#define LN_bf_ofb64 "bf-ofb" +#define NID_bf_ofb64 94 + +#define SN_id_pkix "PKIX" +#define NID_id_pkix 127 +#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L + +#define SN_id_pkix_mod "id-pkix-mod" +#define NID_id_pkix_mod 258 +#define OBJ_id_pkix_mod OBJ_id_pkix,0L + +#define SN_id_pe "id-pe" +#define NID_id_pe 175 +#define OBJ_id_pe OBJ_id_pkix,1L + +#define SN_id_qt "id-qt" +#define NID_id_qt 259 +#define OBJ_id_qt OBJ_id_pkix,2L + +#define SN_id_kp "id-kp" +#define NID_id_kp 128 +#define OBJ_id_kp OBJ_id_pkix,3L + +#define SN_id_it "id-it" +#define NID_id_it 260 +#define OBJ_id_it OBJ_id_pkix,4L + +#define SN_id_pkip "id-pkip" +#define NID_id_pkip 261 +#define OBJ_id_pkip OBJ_id_pkix,5L + +#define SN_id_alg "id-alg" +#define NID_id_alg 262 +#define OBJ_id_alg OBJ_id_pkix,6L + +#define SN_id_cmc "id-cmc" +#define NID_id_cmc 263 +#define OBJ_id_cmc OBJ_id_pkix,7L + +#define SN_id_on "id-on" +#define NID_id_on 264 +#define OBJ_id_on OBJ_id_pkix,8L + +#define SN_id_pda "id-pda" +#define NID_id_pda 265 +#define OBJ_id_pda OBJ_id_pkix,9L + +#define SN_id_aca "id-aca" +#define NID_id_aca 266 +#define OBJ_id_aca OBJ_id_pkix,10L + +#define SN_id_qcs "id-qcs" +#define NID_id_qcs 267 +#define OBJ_id_qcs OBJ_id_pkix,11L + +#define SN_id_cct "id-cct" +#define NID_id_cct 268 +#define OBJ_id_cct OBJ_id_pkix,12L + +#define SN_id_ppl "id-ppl" +#define NID_id_ppl 662 +#define OBJ_id_ppl OBJ_id_pkix,21L + +#define SN_id_ad "id-ad" +#define NID_id_ad 176 +#define OBJ_id_ad OBJ_id_pkix,48L + +#define SN_id_pkix1_explicit_88 "id-pkix1-explicit-88" +#define NID_id_pkix1_explicit_88 269 +#define OBJ_id_pkix1_explicit_88 OBJ_id_pkix_mod,1L + +#define SN_id_pkix1_implicit_88 "id-pkix1-implicit-88" +#define NID_id_pkix1_implicit_88 270 +#define OBJ_id_pkix1_implicit_88 OBJ_id_pkix_mod,2L + +#define SN_id_pkix1_explicit_93 "id-pkix1-explicit-93" +#define NID_id_pkix1_explicit_93 271 +#define OBJ_id_pkix1_explicit_93 OBJ_id_pkix_mod,3L + +#define SN_id_pkix1_implicit_93 "id-pkix1-implicit-93" +#define NID_id_pkix1_implicit_93 272 +#define OBJ_id_pkix1_implicit_93 OBJ_id_pkix_mod,4L + +#define SN_id_mod_crmf "id-mod-crmf" +#define NID_id_mod_crmf 273 +#define OBJ_id_mod_crmf OBJ_id_pkix_mod,5L + +#define SN_id_mod_cmc "id-mod-cmc" +#define NID_id_mod_cmc 274 +#define OBJ_id_mod_cmc OBJ_id_pkix_mod,6L + +#define SN_id_mod_kea_profile_88 "id-mod-kea-profile-88" +#define NID_id_mod_kea_profile_88 275 +#define OBJ_id_mod_kea_profile_88 OBJ_id_pkix_mod,7L + +#define SN_id_mod_kea_profile_93 "id-mod-kea-profile-93" +#define NID_id_mod_kea_profile_93 276 +#define OBJ_id_mod_kea_profile_93 OBJ_id_pkix_mod,8L + +#define SN_id_mod_cmp "id-mod-cmp" +#define NID_id_mod_cmp 277 +#define OBJ_id_mod_cmp OBJ_id_pkix_mod,9L + +#define SN_id_mod_qualified_cert_88 "id-mod-qualified-cert-88" +#define NID_id_mod_qualified_cert_88 278 +#define OBJ_id_mod_qualified_cert_88 OBJ_id_pkix_mod,10L + +#define SN_id_mod_qualified_cert_93 "id-mod-qualified-cert-93" +#define NID_id_mod_qualified_cert_93 279 +#define OBJ_id_mod_qualified_cert_93 OBJ_id_pkix_mod,11L + +#define SN_id_mod_attribute_cert "id-mod-attribute-cert" +#define NID_id_mod_attribute_cert 280 +#define OBJ_id_mod_attribute_cert OBJ_id_pkix_mod,12L + +#define SN_id_mod_timestamp_protocol "id-mod-timestamp-protocol" +#define NID_id_mod_timestamp_protocol 281 +#define OBJ_id_mod_timestamp_protocol OBJ_id_pkix_mod,13L + +#define SN_id_mod_ocsp "id-mod-ocsp" +#define NID_id_mod_ocsp 282 +#define OBJ_id_mod_ocsp OBJ_id_pkix_mod,14L + +#define SN_id_mod_dvcs "id-mod-dvcs" +#define NID_id_mod_dvcs 283 +#define OBJ_id_mod_dvcs OBJ_id_pkix_mod,15L + +#define SN_id_mod_cmp2000 "id-mod-cmp2000" +#define NID_id_mod_cmp2000 284 +#define OBJ_id_mod_cmp2000 OBJ_id_pkix_mod,16L + +#define SN_info_access "authorityInfoAccess" +#define LN_info_access "Authority Information Access" +#define NID_info_access 177 +#define OBJ_info_access OBJ_id_pe,1L + +#define SN_biometricInfo "biometricInfo" +#define LN_biometricInfo "Biometric Info" +#define NID_biometricInfo 285 +#define OBJ_biometricInfo OBJ_id_pe,2L + +#define SN_qcStatements "qcStatements" +#define NID_qcStatements 286 +#define OBJ_qcStatements OBJ_id_pe,3L + +#define SN_ac_auditEntity "ac-auditEntity" +#define NID_ac_auditEntity 287 +#define OBJ_ac_auditEntity OBJ_id_pe,4L + +#define SN_ac_targeting "ac-targeting" +#define NID_ac_targeting 288 +#define OBJ_ac_targeting OBJ_id_pe,5L + +#define SN_aaControls "aaControls" +#define NID_aaControls 289 +#define OBJ_aaControls OBJ_id_pe,6L + +#define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" +#define NID_sbgp_ipAddrBlock 290 +#define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L + +#define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" +#define NID_sbgp_autonomousSysNum 291 +#define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L + +#define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" +#define NID_sbgp_routerIdentifier 292 +#define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L + +#define SN_ac_proxying "ac-proxying" +#define NID_ac_proxying 397 +#define OBJ_ac_proxying OBJ_id_pe,10L + +#define SN_sinfo_access "subjectInfoAccess" +#define LN_sinfo_access "Subject Information Access" +#define NID_sinfo_access 398 +#define OBJ_sinfo_access OBJ_id_pe,11L + +#define SN_proxyCertInfo "proxyCertInfo" +#define LN_proxyCertInfo "Proxy Certificate Information" +#define NID_proxyCertInfo 663 +#define OBJ_proxyCertInfo OBJ_id_pe,14L + +#define SN_id_qt_cps "id-qt-cps" +#define LN_id_qt_cps "Policy Qualifier CPS" +#define NID_id_qt_cps 164 +#define OBJ_id_qt_cps OBJ_id_qt,1L + +#define SN_id_qt_unotice "id-qt-unotice" +#define LN_id_qt_unotice "Policy Qualifier User Notice" +#define NID_id_qt_unotice 165 +#define OBJ_id_qt_unotice OBJ_id_qt,2L + +#define SN_textNotice "textNotice" +#define NID_textNotice 293 +#define OBJ_textNotice OBJ_id_qt,3L + +#define SN_server_auth "serverAuth" +#define LN_server_auth "TLS Web Server Authentication" +#define NID_server_auth 129 +#define OBJ_server_auth OBJ_id_kp,1L + +#define SN_client_auth "clientAuth" +#define LN_client_auth "TLS Web Client Authentication" +#define NID_client_auth 130 +#define OBJ_client_auth OBJ_id_kp,2L + +#define SN_code_sign "codeSigning" +#define LN_code_sign "Code Signing" +#define NID_code_sign 131 +#define OBJ_code_sign OBJ_id_kp,3L + +#define SN_email_protect "emailProtection" +#define LN_email_protect "E-mail Protection" +#define NID_email_protect 132 +#define OBJ_email_protect OBJ_id_kp,4L + +#define SN_ipsecEndSystem "ipsecEndSystem" +#define LN_ipsecEndSystem "IPSec End System" +#define NID_ipsecEndSystem 294 +#define OBJ_ipsecEndSystem OBJ_id_kp,5L + +#define SN_ipsecTunnel "ipsecTunnel" +#define LN_ipsecTunnel "IPSec Tunnel" +#define NID_ipsecTunnel 295 +#define OBJ_ipsecTunnel OBJ_id_kp,6L + +#define SN_ipsecUser "ipsecUser" +#define LN_ipsecUser "IPSec User" +#define NID_ipsecUser 296 +#define OBJ_ipsecUser OBJ_id_kp,7L + +#define SN_time_stamp "timeStamping" +#define LN_time_stamp "Time Stamping" +#define NID_time_stamp 133 +#define OBJ_time_stamp OBJ_id_kp,8L + +#define SN_OCSP_sign "OCSPSigning" +#define LN_OCSP_sign "OCSP Signing" +#define NID_OCSP_sign 180 +#define OBJ_OCSP_sign OBJ_id_kp,9L + +#define SN_dvcs "DVCS" +#define LN_dvcs "dvcs" +#define NID_dvcs 297 +#define OBJ_dvcs OBJ_id_kp,10L + +#define SN_id_it_caProtEncCert "id-it-caProtEncCert" +#define NID_id_it_caProtEncCert 298 +#define OBJ_id_it_caProtEncCert OBJ_id_it,1L + +#define SN_id_it_signKeyPairTypes "id-it-signKeyPairTypes" +#define NID_id_it_signKeyPairTypes 299 +#define OBJ_id_it_signKeyPairTypes OBJ_id_it,2L + +#define SN_id_it_encKeyPairTypes "id-it-encKeyPairTypes" +#define NID_id_it_encKeyPairTypes 300 +#define OBJ_id_it_encKeyPairTypes OBJ_id_it,3L + +#define SN_id_it_preferredSymmAlg "id-it-preferredSymmAlg" +#define NID_id_it_preferredSymmAlg 301 +#define OBJ_id_it_preferredSymmAlg OBJ_id_it,4L + +#define SN_id_it_caKeyUpdateInfo "id-it-caKeyUpdateInfo" +#define NID_id_it_caKeyUpdateInfo 302 +#define OBJ_id_it_caKeyUpdateInfo OBJ_id_it,5L + +#define SN_id_it_currentCRL "id-it-currentCRL" +#define NID_id_it_currentCRL 303 +#define OBJ_id_it_currentCRL OBJ_id_it,6L + +#define SN_id_it_unsupportedOIDs "id-it-unsupportedOIDs" +#define NID_id_it_unsupportedOIDs 304 +#define OBJ_id_it_unsupportedOIDs OBJ_id_it,7L + +#define SN_id_it_subscriptionRequest "id-it-subscriptionRequest" +#define NID_id_it_subscriptionRequest 305 +#define OBJ_id_it_subscriptionRequest OBJ_id_it,8L + +#define SN_id_it_subscriptionResponse "id-it-subscriptionResponse" +#define NID_id_it_subscriptionResponse 306 +#define OBJ_id_it_subscriptionResponse OBJ_id_it,9L + +#define SN_id_it_keyPairParamReq "id-it-keyPairParamReq" +#define NID_id_it_keyPairParamReq 307 +#define OBJ_id_it_keyPairParamReq OBJ_id_it,10L + +#define SN_id_it_keyPairParamRep "id-it-keyPairParamRep" +#define NID_id_it_keyPairParamRep 308 +#define OBJ_id_it_keyPairParamRep OBJ_id_it,11L + +#define SN_id_it_revPassphrase "id-it-revPassphrase" +#define NID_id_it_revPassphrase 309 +#define OBJ_id_it_revPassphrase OBJ_id_it,12L + +#define SN_id_it_implicitConfirm "id-it-implicitConfirm" +#define NID_id_it_implicitConfirm 310 +#define OBJ_id_it_implicitConfirm OBJ_id_it,13L + +#define SN_id_it_confirmWaitTime "id-it-confirmWaitTime" +#define NID_id_it_confirmWaitTime 311 +#define OBJ_id_it_confirmWaitTime OBJ_id_it,14L + +#define SN_id_it_origPKIMessage "id-it-origPKIMessage" +#define NID_id_it_origPKIMessage 312 +#define OBJ_id_it_origPKIMessage OBJ_id_it,15L + +#define SN_id_it_suppLangTags "id-it-suppLangTags" +#define NID_id_it_suppLangTags 784 +#define OBJ_id_it_suppLangTags OBJ_id_it,16L + +#define SN_id_regCtrl "id-regCtrl" +#define NID_id_regCtrl 313 +#define OBJ_id_regCtrl OBJ_id_pkip,1L + +#define SN_id_regInfo "id-regInfo" +#define NID_id_regInfo 314 +#define OBJ_id_regInfo OBJ_id_pkip,2L + +#define SN_id_regCtrl_regToken "id-regCtrl-regToken" +#define NID_id_regCtrl_regToken 315 +#define OBJ_id_regCtrl_regToken OBJ_id_regCtrl,1L + +#define SN_id_regCtrl_authenticator "id-regCtrl-authenticator" +#define NID_id_regCtrl_authenticator 316 +#define OBJ_id_regCtrl_authenticator OBJ_id_regCtrl,2L + +#define SN_id_regCtrl_pkiPublicationInfo "id-regCtrl-pkiPublicationInfo" +#define NID_id_regCtrl_pkiPublicationInfo 317 +#define OBJ_id_regCtrl_pkiPublicationInfo OBJ_id_regCtrl,3L + +#define SN_id_regCtrl_pkiArchiveOptions "id-regCtrl-pkiArchiveOptions" +#define NID_id_regCtrl_pkiArchiveOptions 318 +#define OBJ_id_regCtrl_pkiArchiveOptions OBJ_id_regCtrl,4L + +#define SN_id_regCtrl_oldCertID "id-regCtrl-oldCertID" +#define NID_id_regCtrl_oldCertID 319 +#define OBJ_id_regCtrl_oldCertID OBJ_id_regCtrl,5L + +#define SN_id_regCtrl_protocolEncrKey "id-regCtrl-protocolEncrKey" +#define NID_id_regCtrl_protocolEncrKey 320 +#define OBJ_id_regCtrl_protocolEncrKey OBJ_id_regCtrl,6L + +#define SN_id_regInfo_utf8Pairs "id-regInfo-utf8Pairs" +#define NID_id_regInfo_utf8Pairs 321 +#define OBJ_id_regInfo_utf8Pairs OBJ_id_regInfo,1L + +#define SN_id_regInfo_certReq "id-regInfo-certReq" +#define NID_id_regInfo_certReq 322 +#define OBJ_id_regInfo_certReq OBJ_id_regInfo,2L + +#define SN_id_alg_des40 "id-alg-des40" +#define NID_id_alg_des40 323 +#define OBJ_id_alg_des40 OBJ_id_alg,1L + +#define SN_id_alg_noSignature "id-alg-noSignature" +#define NID_id_alg_noSignature 324 +#define OBJ_id_alg_noSignature OBJ_id_alg,2L + +#define SN_id_alg_dh_sig_hmac_sha1 "id-alg-dh-sig-hmac-sha1" +#define NID_id_alg_dh_sig_hmac_sha1 325 +#define OBJ_id_alg_dh_sig_hmac_sha1 OBJ_id_alg,3L + +#define SN_id_alg_dh_pop "id-alg-dh-pop" +#define NID_id_alg_dh_pop 326 +#define OBJ_id_alg_dh_pop OBJ_id_alg,4L + +#define SN_id_cmc_statusInfo "id-cmc-statusInfo" +#define NID_id_cmc_statusInfo 327 +#define OBJ_id_cmc_statusInfo OBJ_id_cmc,1L + +#define SN_id_cmc_identification "id-cmc-identification" +#define NID_id_cmc_identification 328 +#define OBJ_id_cmc_identification OBJ_id_cmc,2L + +#define SN_id_cmc_identityProof "id-cmc-identityProof" +#define NID_id_cmc_identityProof 329 +#define OBJ_id_cmc_identityProof OBJ_id_cmc,3L + +#define SN_id_cmc_dataReturn "id-cmc-dataReturn" +#define NID_id_cmc_dataReturn 330 +#define OBJ_id_cmc_dataReturn OBJ_id_cmc,4L + +#define SN_id_cmc_transactionId "id-cmc-transactionId" +#define NID_id_cmc_transactionId 331 +#define OBJ_id_cmc_transactionId OBJ_id_cmc,5L + +#define SN_id_cmc_senderNonce "id-cmc-senderNonce" +#define NID_id_cmc_senderNonce 332 +#define OBJ_id_cmc_senderNonce OBJ_id_cmc,6L + +#define SN_id_cmc_recipientNonce "id-cmc-recipientNonce" +#define NID_id_cmc_recipientNonce 333 +#define OBJ_id_cmc_recipientNonce OBJ_id_cmc,7L + +#define SN_id_cmc_addExtensions "id-cmc-addExtensions" +#define NID_id_cmc_addExtensions 334 +#define OBJ_id_cmc_addExtensions OBJ_id_cmc,8L + +#define SN_id_cmc_encryptedPOP "id-cmc-encryptedPOP" +#define NID_id_cmc_encryptedPOP 335 +#define OBJ_id_cmc_encryptedPOP OBJ_id_cmc,9L + +#define SN_id_cmc_decryptedPOP "id-cmc-decryptedPOP" +#define NID_id_cmc_decryptedPOP 336 +#define OBJ_id_cmc_decryptedPOP OBJ_id_cmc,10L + +#define SN_id_cmc_lraPOPWitness "id-cmc-lraPOPWitness" +#define NID_id_cmc_lraPOPWitness 337 +#define OBJ_id_cmc_lraPOPWitness OBJ_id_cmc,11L + +#define SN_id_cmc_getCert "id-cmc-getCert" +#define NID_id_cmc_getCert 338 +#define OBJ_id_cmc_getCert OBJ_id_cmc,15L + +#define SN_id_cmc_getCRL "id-cmc-getCRL" +#define NID_id_cmc_getCRL 339 +#define OBJ_id_cmc_getCRL OBJ_id_cmc,16L + +#define SN_id_cmc_revokeRequest "id-cmc-revokeRequest" +#define NID_id_cmc_revokeRequest 340 +#define OBJ_id_cmc_revokeRequest OBJ_id_cmc,17L + +#define SN_id_cmc_regInfo "id-cmc-regInfo" +#define NID_id_cmc_regInfo 341 +#define OBJ_id_cmc_regInfo OBJ_id_cmc,18L + +#define SN_id_cmc_responseInfo "id-cmc-responseInfo" +#define NID_id_cmc_responseInfo 342 +#define OBJ_id_cmc_responseInfo OBJ_id_cmc,19L + +#define SN_id_cmc_queryPending "id-cmc-queryPending" +#define NID_id_cmc_queryPending 343 +#define OBJ_id_cmc_queryPending OBJ_id_cmc,21L + +#define SN_id_cmc_popLinkRandom "id-cmc-popLinkRandom" +#define NID_id_cmc_popLinkRandom 344 +#define OBJ_id_cmc_popLinkRandom OBJ_id_cmc,22L + +#define SN_id_cmc_popLinkWitness "id-cmc-popLinkWitness" +#define NID_id_cmc_popLinkWitness 345 +#define OBJ_id_cmc_popLinkWitness OBJ_id_cmc,23L + +#define SN_id_cmc_confirmCertAcceptance "id-cmc-confirmCertAcceptance" +#define NID_id_cmc_confirmCertAcceptance 346 +#define OBJ_id_cmc_confirmCertAcceptance OBJ_id_cmc,24L + +#define SN_id_on_personalData "id-on-personalData" +#define NID_id_on_personalData 347 +#define OBJ_id_on_personalData OBJ_id_on,1L + +#define SN_id_on_permanentIdentifier "id-on-permanentIdentifier" +#define LN_id_on_permanentIdentifier "Permanent Identifier" +#define NID_id_on_permanentIdentifier 858 +#define OBJ_id_on_permanentIdentifier OBJ_id_on,3L + +#define SN_id_pda_dateOfBirth "id-pda-dateOfBirth" +#define NID_id_pda_dateOfBirth 348 +#define OBJ_id_pda_dateOfBirth OBJ_id_pda,1L + +#define SN_id_pda_placeOfBirth "id-pda-placeOfBirth" +#define NID_id_pda_placeOfBirth 349 +#define OBJ_id_pda_placeOfBirth OBJ_id_pda,2L + +#define SN_id_pda_gender "id-pda-gender" +#define NID_id_pda_gender 351 +#define OBJ_id_pda_gender OBJ_id_pda,3L + +#define SN_id_pda_countryOfCitizenship "id-pda-countryOfCitizenship" +#define NID_id_pda_countryOfCitizenship 352 +#define OBJ_id_pda_countryOfCitizenship OBJ_id_pda,4L + +#define SN_id_pda_countryOfResidence "id-pda-countryOfResidence" +#define NID_id_pda_countryOfResidence 353 +#define OBJ_id_pda_countryOfResidence OBJ_id_pda,5L + +#define SN_id_aca_authenticationInfo "id-aca-authenticationInfo" +#define NID_id_aca_authenticationInfo 354 +#define OBJ_id_aca_authenticationInfo OBJ_id_aca,1L + +#define SN_id_aca_accessIdentity "id-aca-accessIdentity" +#define NID_id_aca_accessIdentity 355 +#define OBJ_id_aca_accessIdentity OBJ_id_aca,2L + +#define SN_id_aca_chargingIdentity "id-aca-chargingIdentity" +#define NID_id_aca_chargingIdentity 356 +#define OBJ_id_aca_chargingIdentity OBJ_id_aca,3L + +#define SN_id_aca_group "id-aca-group" +#define NID_id_aca_group 357 +#define OBJ_id_aca_group OBJ_id_aca,4L + +#define SN_id_aca_role "id-aca-role" +#define NID_id_aca_role 358 +#define OBJ_id_aca_role OBJ_id_aca,5L + +#define SN_id_aca_encAttrs "id-aca-encAttrs" +#define NID_id_aca_encAttrs 399 +#define OBJ_id_aca_encAttrs OBJ_id_aca,6L + +#define SN_id_qcs_pkixQCSyntax_v1 "id-qcs-pkixQCSyntax-v1" +#define NID_id_qcs_pkixQCSyntax_v1 359 +#define OBJ_id_qcs_pkixQCSyntax_v1 OBJ_id_qcs,1L + +#define SN_id_cct_crs "id-cct-crs" +#define NID_id_cct_crs 360 +#define OBJ_id_cct_crs OBJ_id_cct,1L + +#define SN_id_cct_PKIData "id-cct-PKIData" +#define NID_id_cct_PKIData 361 +#define OBJ_id_cct_PKIData OBJ_id_cct,2L + +#define SN_id_cct_PKIResponse "id-cct-PKIResponse" +#define NID_id_cct_PKIResponse 362 +#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L + +#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage" +#define LN_id_ppl_anyLanguage "Any language" +#define NID_id_ppl_anyLanguage 664 +#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L + +#define SN_id_ppl_inheritAll "id-ppl-inheritAll" +#define LN_id_ppl_inheritAll "Inherit all" +#define NID_id_ppl_inheritAll 665 +#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L + +#define SN_Independent "id-ppl-independent" +#define LN_Independent "Independent" +#define NID_Independent 667 +#define OBJ_Independent OBJ_id_ppl,2L + +#define SN_ad_OCSP "OCSP" +#define LN_ad_OCSP "OCSP" +#define NID_ad_OCSP 178 +#define OBJ_ad_OCSP OBJ_id_ad,1L + +#define SN_ad_ca_issuers "caIssuers" +#define LN_ad_ca_issuers "CA Issuers" +#define NID_ad_ca_issuers 179 +#define OBJ_ad_ca_issuers OBJ_id_ad,2L + +#define SN_ad_timeStamping "ad_timestamping" +#define LN_ad_timeStamping "AD Time Stamping" +#define NID_ad_timeStamping 363 +#define OBJ_ad_timeStamping OBJ_id_ad,3L + +#define SN_ad_dvcs "AD_DVCS" +#define LN_ad_dvcs "ad dvcs" +#define NID_ad_dvcs 364 +#define OBJ_ad_dvcs OBJ_id_ad,4L + +#define SN_caRepository "caRepository" +#define LN_caRepository "CA Repository" +#define NID_caRepository 785 +#define OBJ_caRepository OBJ_id_ad,5L + +#define OBJ_id_pkix_OCSP OBJ_ad_OCSP + +#define SN_id_pkix_OCSP_basic "basicOCSPResponse" +#define LN_id_pkix_OCSP_basic "Basic OCSP Response" +#define NID_id_pkix_OCSP_basic 365 +#define OBJ_id_pkix_OCSP_basic OBJ_id_pkix_OCSP,1L + +#define SN_id_pkix_OCSP_Nonce "Nonce" +#define LN_id_pkix_OCSP_Nonce "OCSP Nonce" +#define NID_id_pkix_OCSP_Nonce 366 +#define OBJ_id_pkix_OCSP_Nonce OBJ_id_pkix_OCSP,2L + +#define SN_id_pkix_OCSP_CrlID "CrlID" +#define LN_id_pkix_OCSP_CrlID "OCSP CRL ID" +#define NID_id_pkix_OCSP_CrlID 367 +#define OBJ_id_pkix_OCSP_CrlID OBJ_id_pkix_OCSP,3L + +#define SN_id_pkix_OCSP_acceptableResponses "acceptableResponses" +#define LN_id_pkix_OCSP_acceptableResponses "Acceptable OCSP Responses" +#define NID_id_pkix_OCSP_acceptableResponses 368 +#define OBJ_id_pkix_OCSP_acceptableResponses OBJ_id_pkix_OCSP,4L + +#define SN_id_pkix_OCSP_noCheck "noCheck" +#define LN_id_pkix_OCSP_noCheck "OCSP No Check" +#define NID_id_pkix_OCSP_noCheck 369 +#define OBJ_id_pkix_OCSP_noCheck OBJ_id_pkix_OCSP,5L + +#define SN_id_pkix_OCSP_archiveCutoff "archiveCutoff" +#define LN_id_pkix_OCSP_archiveCutoff "OCSP Archive Cutoff" +#define NID_id_pkix_OCSP_archiveCutoff 370 +#define OBJ_id_pkix_OCSP_archiveCutoff OBJ_id_pkix_OCSP,6L + +#define SN_id_pkix_OCSP_serviceLocator "serviceLocator" +#define LN_id_pkix_OCSP_serviceLocator "OCSP Service Locator" +#define NID_id_pkix_OCSP_serviceLocator 371 +#define OBJ_id_pkix_OCSP_serviceLocator OBJ_id_pkix_OCSP,7L + +#define SN_id_pkix_OCSP_extendedStatus "extendedStatus" +#define LN_id_pkix_OCSP_extendedStatus "Extended OCSP Status" +#define NID_id_pkix_OCSP_extendedStatus 372 +#define OBJ_id_pkix_OCSP_extendedStatus OBJ_id_pkix_OCSP,8L + +#define SN_id_pkix_OCSP_valid "valid" +#define NID_id_pkix_OCSP_valid 373 +#define OBJ_id_pkix_OCSP_valid OBJ_id_pkix_OCSP,9L + +#define SN_id_pkix_OCSP_path "path" +#define NID_id_pkix_OCSP_path 374 +#define OBJ_id_pkix_OCSP_path OBJ_id_pkix_OCSP,10L + +#define SN_id_pkix_OCSP_trustRoot "trustRoot" +#define LN_id_pkix_OCSP_trustRoot "Trust Root" +#define NID_id_pkix_OCSP_trustRoot 375 +#define OBJ_id_pkix_OCSP_trustRoot OBJ_id_pkix_OCSP,11L + +#define SN_algorithm "algorithm" +#define LN_algorithm "algorithm" +#define NID_algorithm 376 +#define OBJ_algorithm 1L,3L,14L,3L,2L + +#define SN_md5WithRSA "RSA-NP-MD5" +#define LN_md5WithRSA "md5WithRSA" +#define NID_md5WithRSA 104 +#define OBJ_md5WithRSA OBJ_algorithm,3L + +#define SN_des_ecb "DES-ECB" +#define LN_des_ecb "des-ecb" +#define NID_des_ecb 29 +#define OBJ_des_ecb OBJ_algorithm,6L + +#define SN_des_cbc "DES-CBC" +#define LN_des_cbc "des-cbc" +#define NID_des_cbc 31 +#define OBJ_des_cbc OBJ_algorithm,7L + +#define SN_des_ofb64 "DES-OFB" +#define LN_des_ofb64 "des-ofb" +#define NID_des_ofb64 45 +#define OBJ_des_ofb64 OBJ_algorithm,8L + +#define SN_des_cfb64 "DES-CFB" +#define LN_des_cfb64 "des-cfb" +#define NID_des_cfb64 30 +#define OBJ_des_cfb64 OBJ_algorithm,9L + +#define SN_rsaSignature "rsaSignature" +#define NID_rsaSignature 377 +#define OBJ_rsaSignature OBJ_algorithm,11L + +#define SN_dsa_2 "DSA-old" +#define LN_dsa_2 "dsaEncryption-old" +#define NID_dsa_2 67 +#define OBJ_dsa_2 OBJ_algorithm,12L + +#define SN_dsaWithSHA "DSA-SHA" +#define LN_dsaWithSHA "dsaWithSHA" +#define NID_dsaWithSHA 66 +#define OBJ_dsaWithSHA OBJ_algorithm,13L + +#define SN_shaWithRSAEncryption "RSA-SHA" +#define LN_shaWithRSAEncryption "shaWithRSAEncryption" +#define NID_shaWithRSAEncryption 42 +#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L + +#define SN_des_ede_ecb "DES-EDE" +#define LN_des_ede_ecb "des-ede" +#define NID_des_ede_ecb 32 +#define OBJ_des_ede_ecb OBJ_algorithm,17L + +#define SN_des_ede3_ecb "DES-EDE3" +#define LN_des_ede3_ecb "des-ede3" +#define NID_des_ede3_ecb 33 + +#define SN_des_ede_cbc "DES-EDE-CBC" +#define LN_des_ede_cbc "des-ede-cbc" +#define NID_des_ede_cbc 43 + +#define SN_des_ede_cfb64 "DES-EDE-CFB" +#define LN_des_ede_cfb64 "des-ede-cfb" +#define NID_des_ede_cfb64 60 + +#define SN_des_ede3_cfb64 "DES-EDE3-CFB" +#define LN_des_ede3_cfb64 "des-ede3-cfb" +#define NID_des_ede3_cfb64 61 + +#define SN_des_ede_ofb64 "DES-EDE-OFB" +#define LN_des_ede_ofb64 "des-ede-ofb" +#define NID_des_ede_ofb64 62 + +#define SN_des_ede3_ofb64 "DES-EDE3-OFB" +#define LN_des_ede3_ofb64 "des-ede3-ofb" +#define NID_des_ede3_ofb64 63 + +#define SN_desx_cbc "DESX-CBC" +#define LN_desx_cbc "desx-cbc" +#define NID_desx_cbc 80 + +#define SN_sha "SHA" +#define LN_sha "sha" +#define NID_sha 41 +#define OBJ_sha OBJ_algorithm,18L + +#define SN_sha1 "SHA1" +#define LN_sha1 "sha1" +#define NID_sha1 64 +#define OBJ_sha1 OBJ_algorithm,26L + +#define SN_dsaWithSHA1_2 "DSA-SHA1-old" +#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" +#define NID_dsaWithSHA1_2 70 +#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L + +#define SN_sha1WithRSA "RSA-SHA1-2" +#define LN_sha1WithRSA "sha1WithRSA" +#define NID_sha1WithRSA 115 +#define OBJ_sha1WithRSA OBJ_algorithm,29L + +#define SN_ripemd160 "RIPEMD160" +#define LN_ripemd160 "ripemd160" +#define NID_ripemd160 117 +#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L + +#define SN_ripemd160WithRSA "RSA-RIPEMD160" +#define LN_ripemd160WithRSA "ripemd160WithRSA" +#define NID_ripemd160WithRSA 119 +#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L + +#define SN_sxnet "SXNetID" +#define LN_sxnet "Strong Extranet ID" +#define NID_sxnet 143 +#define OBJ_sxnet 1L,3L,101L,1L,4L,1L + +#define SN_X500 "X500" +#define LN_X500 "directory services (X.500)" +#define NID_X500 11 +#define OBJ_X500 2L,5L + +#define SN_X509 "X509" +#define NID_X509 12 +#define OBJ_X509 OBJ_X500,4L + +#define SN_commonName "CN" +#define LN_commonName "commonName" +#define NID_commonName 13 +#define OBJ_commonName OBJ_X509,3L + +#define SN_surname "SN" +#define LN_surname "surname" +#define NID_surname 100 +#define OBJ_surname OBJ_X509,4L + +#define LN_serialNumber "serialNumber" +#define NID_serialNumber 105 +#define OBJ_serialNumber OBJ_X509,5L + +#define SN_countryName "C" +#define LN_countryName "countryName" +#define NID_countryName 14 +#define OBJ_countryName OBJ_X509,6L + +#define SN_localityName "L" +#define LN_localityName "localityName" +#define NID_localityName 15 +#define OBJ_localityName OBJ_X509,7L + +#define SN_stateOrProvinceName "ST" +#define LN_stateOrProvinceName "stateOrProvinceName" +#define NID_stateOrProvinceName 16 +#define OBJ_stateOrProvinceName OBJ_X509,8L + +#define SN_streetAddress "street" +#define LN_streetAddress "streetAddress" +#define NID_streetAddress 660 +#define OBJ_streetAddress OBJ_X509,9L + +#define SN_organizationName "O" +#define LN_organizationName "organizationName" +#define NID_organizationName 17 +#define OBJ_organizationName OBJ_X509,10L + +#define SN_organizationalUnitName "OU" +#define LN_organizationalUnitName "organizationalUnitName" +#define NID_organizationalUnitName 18 +#define OBJ_organizationalUnitName OBJ_X509,11L + +#define SN_title "title" +#define LN_title "title" +#define NID_title 106 +#define OBJ_title OBJ_X509,12L + +#define LN_description "description" +#define NID_description 107 +#define OBJ_description OBJ_X509,13L + +#define LN_searchGuide "searchGuide" +#define NID_searchGuide 859 +#define OBJ_searchGuide OBJ_X509,14L + +#define LN_businessCategory "businessCategory" +#define NID_businessCategory 860 +#define OBJ_businessCategory OBJ_X509,15L + +#define LN_postalAddress "postalAddress" +#define NID_postalAddress 861 +#define OBJ_postalAddress OBJ_X509,16L + +#define LN_postalCode "postalCode" +#define NID_postalCode 661 +#define OBJ_postalCode OBJ_X509,17L + +#define LN_postOfficeBox "postOfficeBox" +#define NID_postOfficeBox 862 +#define OBJ_postOfficeBox OBJ_X509,18L + +#define LN_physicalDeliveryOfficeName "physicalDeliveryOfficeName" +#define NID_physicalDeliveryOfficeName 863 +#define OBJ_physicalDeliveryOfficeName OBJ_X509,19L + +#define LN_telephoneNumber "telephoneNumber" +#define NID_telephoneNumber 864 +#define OBJ_telephoneNumber OBJ_X509,20L + +#define LN_telexNumber "telexNumber" +#define NID_telexNumber 865 +#define OBJ_telexNumber OBJ_X509,21L + +#define LN_teletexTerminalIdentifier "teletexTerminalIdentifier" +#define NID_teletexTerminalIdentifier 866 +#define OBJ_teletexTerminalIdentifier OBJ_X509,22L + +#define LN_facsimileTelephoneNumber "facsimileTelephoneNumber" +#define NID_facsimileTelephoneNumber 867 +#define OBJ_facsimileTelephoneNumber OBJ_X509,23L + +#define LN_x121Address "x121Address" +#define NID_x121Address 868 +#define OBJ_x121Address OBJ_X509,24L + +#define LN_internationaliSDNNumber "internationaliSDNNumber" +#define NID_internationaliSDNNumber 869 +#define OBJ_internationaliSDNNumber OBJ_X509,25L + +#define LN_registeredAddress "registeredAddress" +#define NID_registeredAddress 870 +#define OBJ_registeredAddress OBJ_X509,26L + +#define LN_destinationIndicator "destinationIndicator" +#define NID_destinationIndicator 871 +#define OBJ_destinationIndicator OBJ_X509,27L + +#define LN_preferredDeliveryMethod "preferredDeliveryMethod" +#define NID_preferredDeliveryMethod 872 +#define OBJ_preferredDeliveryMethod OBJ_X509,28L + +#define LN_presentationAddress "presentationAddress" +#define NID_presentationAddress 873 +#define OBJ_presentationAddress OBJ_X509,29L + +#define LN_supportedApplicationContext "supportedApplicationContext" +#define NID_supportedApplicationContext 874 +#define OBJ_supportedApplicationContext OBJ_X509,30L + +#define SN_member "member" +#define NID_member 875 +#define OBJ_member OBJ_X509,31L + +#define SN_owner "owner" +#define NID_owner 876 +#define OBJ_owner OBJ_X509,32L + +#define LN_roleOccupant "roleOccupant" +#define NID_roleOccupant 877 +#define OBJ_roleOccupant OBJ_X509,33L + +#define SN_seeAlso "seeAlso" +#define NID_seeAlso 878 +#define OBJ_seeAlso OBJ_X509,34L + +#define LN_userPassword "userPassword" +#define NID_userPassword 879 +#define OBJ_userPassword OBJ_X509,35L + +#define LN_userCertificate "userCertificate" +#define NID_userCertificate 880 +#define OBJ_userCertificate OBJ_X509,36L + +#define LN_cACertificate "cACertificate" +#define NID_cACertificate 881 +#define OBJ_cACertificate OBJ_X509,37L + +#define LN_authorityRevocationList "authorityRevocationList" +#define NID_authorityRevocationList 882 +#define OBJ_authorityRevocationList OBJ_X509,38L + +#define LN_certificateRevocationList "certificateRevocationList" +#define NID_certificateRevocationList 883 +#define OBJ_certificateRevocationList OBJ_X509,39L + +#define LN_crossCertificatePair "crossCertificatePair" +#define NID_crossCertificatePair 884 +#define OBJ_crossCertificatePair OBJ_X509,40L + +#define SN_name "name" +#define LN_name "name" +#define NID_name 173 +#define OBJ_name OBJ_X509,41L + +#define SN_givenName "GN" +#define LN_givenName "givenName" +#define NID_givenName 99 +#define OBJ_givenName OBJ_X509,42L + +#define SN_initials "initials" +#define LN_initials "initials" +#define NID_initials 101 +#define OBJ_initials OBJ_X509,43L + +#define LN_generationQualifier "generationQualifier" +#define NID_generationQualifier 509 +#define OBJ_generationQualifier OBJ_X509,44L + +#define LN_x500UniqueIdentifier "x500UniqueIdentifier" +#define NID_x500UniqueIdentifier 503 +#define OBJ_x500UniqueIdentifier OBJ_X509,45L + +#define SN_dnQualifier "dnQualifier" +#define LN_dnQualifier "dnQualifier" +#define NID_dnQualifier 174 +#define OBJ_dnQualifier OBJ_X509,46L + +#define LN_enhancedSearchGuide "enhancedSearchGuide" +#define NID_enhancedSearchGuide 885 +#define OBJ_enhancedSearchGuide OBJ_X509,47L + +#define LN_protocolInformation "protocolInformation" +#define NID_protocolInformation 886 +#define OBJ_protocolInformation OBJ_X509,48L + +#define LN_distinguishedName "distinguishedName" +#define NID_distinguishedName 887 +#define OBJ_distinguishedName OBJ_X509,49L + +#define LN_uniqueMember "uniqueMember" +#define NID_uniqueMember 888 +#define OBJ_uniqueMember OBJ_X509,50L + +#define LN_houseIdentifier "houseIdentifier" +#define NID_houseIdentifier 889 +#define OBJ_houseIdentifier OBJ_X509,51L + +#define LN_supportedAlgorithms "supportedAlgorithms" +#define NID_supportedAlgorithms 890 +#define OBJ_supportedAlgorithms OBJ_X509,52L + +#define LN_deltaRevocationList "deltaRevocationList" +#define NID_deltaRevocationList 891 +#define OBJ_deltaRevocationList OBJ_X509,53L + +#define SN_dmdName "dmdName" +#define NID_dmdName 892 +#define OBJ_dmdName OBJ_X509,54L + +#define LN_pseudonym "pseudonym" +#define NID_pseudonym 510 +#define OBJ_pseudonym OBJ_X509,65L + +#define SN_role "role" +#define LN_role "role" +#define NID_role 400 +#define OBJ_role OBJ_X509,72L + +#define SN_X500algorithms "X500algorithms" +#define LN_X500algorithms "directory services - algorithms" +#define NID_X500algorithms 378 +#define OBJ_X500algorithms OBJ_X500,8L + +#define SN_rsa "RSA" +#define LN_rsa "rsa" +#define NID_rsa 19 +#define OBJ_rsa OBJ_X500algorithms,1L,1L + +#define SN_mdc2WithRSA "RSA-MDC2" +#define LN_mdc2WithRSA "mdc2WithRSA" +#define NID_mdc2WithRSA 96 +#define OBJ_mdc2WithRSA OBJ_X500algorithms,3L,100L + +#define SN_mdc2 "MDC2" +#define LN_mdc2 "mdc2" +#define NID_mdc2 95 +#define OBJ_mdc2 OBJ_X500algorithms,3L,101L + +#define SN_id_ce "id-ce" +#define NID_id_ce 81 +#define OBJ_id_ce OBJ_X500,29L + +#define SN_subject_directory_attributes "subjectDirectoryAttributes" +#define LN_subject_directory_attributes "X509v3 Subject Directory Attributes" +#define NID_subject_directory_attributes 769 +#define OBJ_subject_directory_attributes OBJ_id_ce,9L + +#define SN_subject_key_identifier "subjectKeyIdentifier" +#define LN_subject_key_identifier "X509v3 Subject Key Identifier" +#define NID_subject_key_identifier 82 +#define OBJ_subject_key_identifier OBJ_id_ce,14L + +#define SN_key_usage "keyUsage" +#define LN_key_usage "X509v3 Key Usage" +#define NID_key_usage 83 +#define OBJ_key_usage OBJ_id_ce,15L + +#define SN_private_key_usage_period "privateKeyUsagePeriod" +#define LN_private_key_usage_period "X509v3 Private Key Usage Period" +#define NID_private_key_usage_period 84 +#define OBJ_private_key_usage_period OBJ_id_ce,16L + +#define SN_subject_alt_name "subjectAltName" +#define LN_subject_alt_name "X509v3 Subject Alternative Name" +#define NID_subject_alt_name 85 +#define OBJ_subject_alt_name OBJ_id_ce,17L + +#define SN_issuer_alt_name "issuerAltName" +#define LN_issuer_alt_name "X509v3 Issuer Alternative Name" +#define NID_issuer_alt_name 86 +#define OBJ_issuer_alt_name OBJ_id_ce,18L + +#define SN_basic_constraints "basicConstraints" +#define LN_basic_constraints "X509v3 Basic Constraints" +#define NID_basic_constraints 87 +#define OBJ_basic_constraints OBJ_id_ce,19L + +#define SN_crl_number "crlNumber" +#define LN_crl_number "X509v3 CRL Number" +#define NID_crl_number 88 +#define OBJ_crl_number OBJ_id_ce,20L + +#define SN_crl_reason "CRLReason" +#define LN_crl_reason "X509v3 CRL Reason Code" +#define NID_crl_reason 141 +#define OBJ_crl_reason OBJ_id_ce,21L + +#define SN_invalidity_date "invalidityDate" +#define LN_invalidity_date "Invalidity Date" +#define NID_invalidity_date 142 +#define OBJ_invalidity_date OBJ_id_ce,24L + +#define SN_delta_crl "deltaCRL" +#define LN_delta_crl "X509v3 Delta CRL Indicator" +#define NID_delta_crl 140 +#define OBJ_delta_crl OBJ_id_ce,27L + +#define SN_issuing_distribution_point "issuingDistributionPoint" +#define LN_issuing_distribution_point "X509v3 Issuing Distrubution Point" +#define NID_issuing_distribution_point 770 +#define OBJ_issuing_distribution_point OBJ_id_ce,28L + +#define SN_certificate_issuer "certificateIssuer" +#define LN_certificate_issuer "X509v3 Certificate Issuer" +#define NID_certificate_issuer 771 +#define OBJ_certificate_issuer OBJ_id_ce,29L + +#define SN_name_constraints "nameConstraints" +#define LN_name_constraints "X509v3 Name Constraints" +#define NID_name_constraints 666 +#define OBJ_name_constraints OBJ_id_ce,30L + +#define SN_crl_distribution_points "crlDistributionPoints" +#define LN_crl_distribution_points "X509v3 CRL Distribution Points" +#define NID_crl_distribution_points 103 +#define OBJ_crl_distribution_points OBJ_id_ce,31L + +#define SN_certificate_policies "certificatePolicies" +#define LN_certificate_policies "X509v3 Certificate Policies" +#define NID_certificate_policies 89 +#define OBJ_certificate_policies OBJ_id_ce,32L + +#define SN_any_policy "anyPolicy" +#define LN_any_policy "X509v3 Any Policy" +#define NID_any_policy 746 +#define OBJ_any_policy OBJ_certificate_policies,0L + +#define SN_policy_mappings "policyMappings" +#define LN_policy_mappings "X509v3 Policy Mappings" +#define NID_policy_mappings 747 +#define OBJ_policy_mappings OBJ_id_ce,33L + +#define SN_authority_key_identifier "authorityKeyIdentifier" +#define LN_authority_key_identifier "X509v3 Authority Key Identifier" +#define NID_authority_key_identifier 90 +#define OBJ_authority_key_identifier OBJ_id_ce,35L + +#define SN_policy_constraints "policyConstraints" +#define LN_policy_constraints "X509v3 Policy Constraints" +#define NID_policy_constraints 401 +#define OBJ_policy_constraints OBJ_id_ce,36L + +#define SN_ext_key_usage "extendedKeyUsage" +#define LN_ext_key_usage "X509v3 Extended Key Usage" +#define NID_ext_key_usage 126 +#define OBJ_ext_key_usage OBJ_id_ce,37L + +#define SN_freshest_crl "freshestCRL" +#define LN_freshest_crl "X509v3 Freshest CRL" +#define NID_freshest_crl 857 +#define OBJ_freshest_crl OBJ_id_ce,46L + +#define SN_inhibit_any_policy "inhibitAnyPolicy" +#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy" +#define NID_inhibit_any_policy 748 +#define OBJ_inhibit_any_policy OBJ_id_ce,54L + +#define SN_target_information "targetInformation" +#define LN_target_information "X509v3 AC Targeting" +#define NID_target_information 402 +#define OBJ_target_information OBJ_id_ce,55L + +#define SN_no_rev_avail "noRevAvail" +#define LN_no_rev_avail "X509v3 No Revocation Available" +#define NID_no_rev_avail 403 +#define OBJ_no_rev_avail OBJ_id_ce,56L + +#define SN_anyExtendedKeyUsage "anyExtendedKeyUsage" +#define LN_anyExtendedKeyUsage "Any Extended Key Usage" +#define NID_anyExtendedKeyUsage 910 +#define OBJ_anyExtendedKeyUsage OBJ_ext_key_usage,0L + +#define SN_netscape "Netscape" +#define LN_netscape "Netscape Communications Corp." +#define NID_netscape 57 +#define OBJ_netscape 2L,16L,840L,1L,113730L + +#define SN_netscape_cert_extension "nsCertExt" +#define LN_netscape_cert_extension "Netscape Certificate Extension" +#define NID_netscape_cert_extension 58 +#define OBJ_netscape_cert_extension OBJ_netscape,1L + +#define SN_netscape_data_type "nsDataType" +#define LN_netscape_data_type "Netscape Data Type" +#define NID_netscape_data_type 59 +#define OBJ_netscape_data_type OBJ_netscape,2L + +#define SN_netscape_cert_type "nsCertType" +#define LN_netscape_cert_type "Netscape Cert Type" +#define NID_netscape_cert_type 71 +#define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L + +#define SN_netscape_base_url "nsBaseUrl" +#define LN_netscape_base_url "Netscape Base Url" +#define NID_netscape_base_url 72 +#define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L + +#define SN_netscape_revocation_url "nsRevocationUrl" +#define LN_netscape_revocation_url "Netscape Revocation Url" +#define NID_netscape_revocation_url 73 +#define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L + +#define SN_netscape_ca_revocation_url "nsCaRevocationUrl" +#define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" +#define NID_netscape_ca_revocation_url 74 +#define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L + +#define SN_netscape_renewal_url "nsRenewalUrl" +#define LN_netscape_renewal_url "Netscape Renewal Url" +#define NID_netscape_renewal_url 75 +#define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L + +#define SN_netscape_ca_policy_url "nsCaPolicyUrl" +#define LN_netscape_ca_policy_url "Netscape CA Policy Url" +#define NID_netscape_ca_policy_url 76 +#define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L + +#define SN_netscape_ssl_server_name "nsSslServerName" +#define LN_netscape_ssl_server_name "Netscape SSL Server Name" +#define NID_netscape_ssl_server_name 77 +#define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L + +#define SN_netscape_comment "nsComment" +#define LN_netscape_comment "Netscape Comment" +#define NID_netscape_comment 78 +#define OBJ_netscape_comment OBJ_netscape_cert_extension,13L + +#define SN_netscape_cert_sequence "nsCertSequence" +#define LN_netscape_cert_sequence "Netscape Certificate Sequence" +#define NID_netscape_cert_sequence 79 +#define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L + +#define SN_ns_sgc "nsSGC" +#define LN_ns_sgc "Netscape Server Gated Crypto" +#define NID_ns_sgc 139 +#define OBJ_ns_sgc OBJ_netscape,4L,1L + +#define SN_org "ORG" +#define LN_org "org" +#define NID_org 379 +#define OBJ_org OBJ_iso,3L + +#define SN_dod "DOD" +#define LN_dod "dod" +#define NID_dod 380 +#define OBJ_dod OBJ_org,6L + +#define SN_iana "IANA" +#define LN_iana "iana" +#define NID_iana 381 +#define OBJ_iana OBJ_dod,1L + +#define OBJ_internet OBJ_iana + +#define SN_Directory "directory" +#define LN_Directory "Directory" +#define NID_Directory 382 +#define OBJ_Directory OBJ_internet,1L + +#define SN_Management "mgmt" +#define LN_Management "Management" +#define NID_Management 383 +#define OBJ_Management OBJ_internet,2L + +#define SN_Experimental "experimental" +#define LN_Experimental "Experimental" +#define NID_Experimental 384 +#define OBJ_Experimental OBJ_internet,3L + +#define SN_Private "private" +#define LN_Private "Private" +#define NID_Private 385 +#define OBJ_Private OBJ_internet,4L + +#define SN_Security "security" +#define LN_Security "Security" +#define NID_Security 386 +#define OBJ_Security OBJ_internet,5L + +#define SN_SNMPv2 "snmpv2" +#define LN_SNMPv2 "SNMPv2" +#define NID_SNMPv2 387 +#define OBJ_SNMPv2 OBJ_internet,6L + +#define LN_Mail "Mail" +#define NID_Mail 388 +#define OBJ_Mail OBJ_internet,7L + +#define SN_Enterprises "enterprises" +#define LN_Enterprises "Enterprises" +#define NID_Enterprises 389 +#define OBJ_Enterprises OBJ_Private,1L + +#define SN_dcObject "dcobject" +#define LN_dcObject "dcObject" +#define NID_dcObject 390 +#define OBJ_dcObject OBJ_Enterprises,1466L,344L + +#define SN_mime_mhs "mime-mhs" +#define LN_mime_mhs "MIME MHS" +#define NID_mime_mhs 504 +#define OBJ_mime_mhs OBJ_Mail,1L + +#define SN_mime_mhs_headings "mime-mhs-headings" +#define LN_mime_mhs_headings "mime-mhs-headings" +#define NID_mime_mhs_headings 505 +#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L + +#define SN_mime_mhs_bodies "mime-mhs-bodies" +#define LN_mime_mhs_bodies "mime-mhs-bodies" +#define NID_mime_mhs_bodies 506 +#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L + +#define SN_id_hex_partial_message "id-hex-partial-message" +#define LN_id_hex_partial_message "id-hex-partial-message" +#define NID_id_hex_partial_message 507 +#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L + +#define SN_id_hex_multipart_message "id-hex-multipart-message" +#define LN_id_hex_multipart_message "id-hex-multipart-message" +#define NID_id_hex_multipart_message 508 +#define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L + +#define SN_rle_compression "RLE" +#define LN_rle_compression "run length compression" +#define NID_rle_compression 124 +#define OBJ_rle_compression 1L,1L,1L,1L,666L,1L + +#define SN_zlib_compression "ZLIB" +#define LN_zlib_compression "zlib compression" +#define NID_zlib_compression 125 +#define OBJ_zlib_compression OBJ_id_smime_alg,8L + +#define OBJ_csor 2L,16L,840L,1L,101L,3L + +#define OBJ_nistAlgorithms OBJ_csor,4L + +#define OBJ_aes OBJ_nistAlgorithms,1L + +#define SN_aes_128_ecb "AES-128-ECB" +#define LN_aes_128_ecb "aes-128-ecb" +#define NID_aes_128_ecb 418 +#define OBJ_aes_128_ecb OBJ_aes,1L + +#define SN_aes_128_cbc "AES-128-CBC" +#define LN_aes_128_cbc "aes-128-cbc" +#define NID_aes_128_cbc 419 +#define OBJ_aes_128_cbc OBJ_aes,2L + +#define SN_aes_128_ofb128 "AES-128-OFB" +#define LN_aes_128_ofb128 "aes-128-ofb" +#define NID_aes_128_ofb128 420 +#define OBJ_aes_128_ofb128 OBJ_aes,3L + +#define SN_aes_128_cfb128 "AES-128-CFB" +#define LN_aes_128_cfb128 "aes-128-cfb" +#define NID_aes_128_cfb128 421 +#define OBJ_aes_128_cfb128 OBJ_aes,4L + +#define SN_id_aes128_wrap "id-aes128-wrap" +#define NID_id_aes128_wrap 788 +#define OBJ_id_aes128_wrap OBJ_aes,5L + +#define SN_aes_128_gcm "id-aes128-GCM" +#define LN_aes_128_gcm "aes-128-gcm" +#define NID_aes_128_gcm 895 +#define OBJ_aes_128_gcm OBJ_aes,6L + +#define SN_aes_128_ccm "id-aes128-CCM" +#define LN_aes_128_ccm "aes-128-ccm" +#define NID_aes_128_ccm 896 +#define OBJ_aes_128_ccm OBJ_aes,7L + +#define SN_id_aes128_wrap_pad "id-aes128-wrap-pad" +#define NID_id_aes128_wrap_pad 897 +#define OBJ_id_aes128_wrap_pad OBJ_aes,8L + +#define SN_aes_192_ecb "AES-192-ECB" +#define LN_aes_192_ecb "aes-192-ecb" +#define NID_aes_192_ecb 422 +#define OBJ_aes_192_ecb OBJ_aes,21L + +#define SN_aes_192_cbc "AES-192-CBC" +#define LN_aes_192_cbc "aes-192-cbc" +#define NID_aes_192_cbc 423 +#define OBJ_aes_192_cbc OBJ_aes,22L + +#define SN_aes_192_ofb128 "AES-192-OFB" +#define LN_aes_192_ofb128 "aes-192-ofb" +#define NID_aes_192_ofb128 424 +#define OBJ_aes_192_ofb128 OBJ_aes,23L + +#define SN_aes_192_cfb128 "AES-192-CFB" +#define LN_aes_192_cfb128 "aes-192-cfb" +#define NID_aes_192_cfb128 425 +#define OBJ_aes_192_cfb128 OBJ_aes,24L + +#define SN_id_aes192_wrap "id-aes192-wrap" +#define NID_id_aes192_wrap 789 +#define OBJ_id_aes192_wrap OBJ_aes,25L + +#define SN_aes_192_gcm "id-aes192-GCM" +#define LN_aes_192_gcm "aes-192-gcm" +#define NID_aes_192_gcm 898 +#define OBJ_aes_192_gcm OBJ_aes,26L + +#define SN_aes_192_ccm "id-aes192-CCM" +#define LN_aes_192_ccm "aes-192-ccm" +#define NID_aes_192_ccm 899 +#define OBJ_aes_192_ccm OBJ_aes,27L + +#define SN_id_aes192_wrap_pad "id-aes192-wrap-pad" +#define NID_id_aes192_wrap_pad 900 +#define OBJ_id_aes192_wrap_pad OBJ_aes,28L + +#define SN_aes_256_ecb "AES-256-ECB" +#define LN_aes_256_ecb "aes-256-ecb" +#define NID_aes_256_ecb 426 +#define OBJ_aes_256_ecb OBJ_aes,41L + +#define SN_aes_256_cbc "AES-256-CBC" +#define LN_aes_256_cbc "aes-256-cbc" +#define NID_aes_256_cbc 427 +#define OBJ_aes_256_cbc OBJ_aes,42L + +#define SN_aes_256_ofb128 "AES-256-OFB" +#define LN_aes_256_ofb128 "aes-256-ofb" +#define NID_aes_256_ofb128 428 +#define OBJ_aes_256_ofb128 OBJ_aes,43L + +#define SN_aes_256_cfb128 "AES-256-CFB" +#define LN_aes_256_cfb128 "aes-256-cfb" +#define NID_aes_256_cfb128 429 +#define OBJ_aes_256_cfb128 OBJ_aes,44L + +#define SN_id_aes256_wrap "id-aes256-wrap" +#define NID_id_aes256_wrap 790 +#define OBJ_id_aes256_wrap OBJ_aes,45L + +#define SN_aes_256_gcm "id-aes256-GCM" +#define LN_aes_256_gcm "aes-256-gcm" +#define NID_aes_256_gcm 901 +#define OBJ_aes_256_gcm OBJ_aes,46L + +#define SN_aes_256_ccm "id-aes256-CCM" +#define LN_aes_256_ccm "aes-256-ccm" +#define NID_aes_256_ccm 902 +#define OBJ_aes_256_ccm OBJ_aes,47L + +#define SN_id_aes256_wrap_pad "id-aes256-wrap-pad" +#define NID_id_aes256_wrap_pad 903 +#define OBJ_id_aes256_wrap_pad OBJ_aes,48L + +#define SN_aes_128_cfb1 "AES-128-CFB1" +#define LN_aes_128_cfb1 "aes-128-cfb1" +#define NID_aes_128_cfb1 650 + +#define SN_aes_192_cfb1 "AES-192-CFB1" +#define LN_aes_192_cfb1 "aes-192-cfb1" +#define NID_aes_192_cfb1 651 + +#define SN_aes_256_cfb1 "AES-256-CFB1" +#define LN_aes_256_cfb1 "aes-256-cfb1" +#define NID_aes_256_cfb1 652 + +#define SN_aes_128_cfb8 "AES-128-CFB8" +#define LN_aes_128_cfb8 "aes-128-cfb8" +#define NID_aes_128_cfb8 653 + +#define SN_aes_192_cfb8 "AES-192-CFB8" +#define LN_aes_192_cfb8 "aes-192-cfb8" +#define NID_aes_192_cfb8 654 + +#define SN_aes_256_cfb8 "AES-256-CFB8" +#define LN_aes_256_cfb8 "aes-256-cfb8" +#define NID_aes_256_cfb8 655 + +#define SN_aes_128_ctr "AES-128-CTR" +#define LN_aes_128_ctr "aes-128-ctr" +#define NID_aes_128_ctr 904 + +#define SN_aes_192_ctr "AES-192-CTR" +#define LN_aes_192_ctr "aes-192-ctr" +#define NID_aes_192_ctr 905 + +#define SN_aes_256_ctr "AES-256-CTR" +#define LN_aes_256_ctr "aes-256-ctr" +#define NID_aes_256_ctr 906 + +#define SN_aes_128_xts "AES-128-XTS" +#define LN_aes_128_xts "aes-128-xts" +#define NID_aes_128_xts 913 + +#define SN_aes_256_xts "AES-256-XTS" +#define LN_aes_256_xts "aes-256-xts" +#define NID_aes_256_xts 914 + +#define SN_des_cfb1 "DES-CFB1" +#define LN_des_cfb1 "des-cfb1" +#define NID_des_cfb1 656 + +#define SN_des_cfb8 "DES-CFB8" +#define LN_des_cfb8 "des-cfb8" +#define NID_des_cfb8 657 + +#define SN_des_ede3_cfb1 "DES-EDE3-CFB1" +#define LN_des_ede3_cfb1 "des-ede3-cfb1" +#define NID_des_ede3_cfb1 658 + +#define SN_des_ede3_cfb8 "DES-EDE3-CFB8" +#define LN_des_ede3_cfb8 "des-ede3-cfb8" +#define NID_des_ede3_cfb8 659 + +#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L + +#define SN_sha256 "SHA256" +#define LN_sha256 "sha256" +#define NID_sha256 672 +#define OBJ_sha256 OBJ_nist_hashalgs,1L + +#define SN_sha384 "SHA384" +#define LN_sha384 "sha384" +#define NID_sha384 673 +#define OBJ_sha384 OBJ_nist_hashalgs,2L + +#define SN_sha512 "SHA512" +#define LN_sha512 "sha512" +#define NID_sha512 674 +#define OBJ_sha512 OBJ_nist_hashalgs,3L + +#define SN_sha224 "SHA224" +#define LN_sha224 "sha224" +#define NID_sha224 675 +#define OBJ_sha224 OBJ_nist_hashalgs,4L + +#define OBJ_dsa_with_sha2 OBJ_nistAlgorithms,3L + +#define SN_dsa_with_SHA224 "dsa_with_SHA224" +#define NID_dsa_with_SHA224 802 +#define OBJ_dsa_with_SHA224 OBJ_dsa_with_sha2,1L + +#define SN_dsa_with_SHA256 "dsa_with_SHA256" +#define NID_dsa_with_SHA256 803 +#define OBJ_dsa_with_SHA256 OBJ_dsa_with_sha2,2L + +#define SN_hold_instruction_code "holdInstructionCode" +#define LN_hold_instruction_code "Hold Instruction Code" +#define NID_hold_instruction_code 430 +#define OBJ_hold_instruction_code OBJ_id_ce,23L + +#define OBJ_holdInstruction OBJ_X9_57,2L + +#define SN_hold_instruction_none "holdInstructionNone" +#define LN_hold_instruction_none "Hold Instruction None" +#define NID_hold_instruction_none 431 +#define OBJ_hold_instruction_none OBJ_holdInstruction,1L + +#define SN_hold_instruction_call_issuer "holdInstructionCallIssuer" +#define LN_hold_instruction_call_issuer "Hold Instruction Call Issuer" +#define NID_hold_instruction_call_issuer 432 +#define OBJ_hold_instruction_call_issuer OBJ_holdInstruction,2L + +#define SN_hold_instruction_reject "holdInstructionReject" +#define LN_hold_instruction_reject "Hold Instruction Reject" +#define NID_hold_instruction_reject 433 +#define OBJ_hold_instruction_reject OBJ_holdInstruction,3L + +#define SN_data "data" +#define NID_data 434 +#define OBJ_data OBJ_itu_t,9L + +#define SN_pss "pss" +#define NID_pss 435 +#define OBJ_pss OBJ_data,2342L + +#define SN_ucl "ucl" +#define NID_ucl 436 +#define OBJ_ucl OBJ_pss,19200300L + +#define SN_pilot "pilot" +#define NID_pilot 437 +#define OBJ_pilot OBJ_ucl,100L + +#define LN_pilotAttributeType "pilotAttributeType" +#define NID_pilotAttributeType 438 +#define OBJ_pilotAttributeType OBJ_pilot,1L + +#define LN_pilotAttributeSyntax "pilotAttributeSyntax" +#define NID_pilotAttributeSyntax 439 +#define OBJ_pilotAttributeSyntax OBJ_pilot,3L + +#define LN_pilotObjectClass "pilotObjectClass" +#define NID_pilotObjectClass 440 +#define OBJ_pilotObjectClass OBJ_pilot,4L + +#define LN_pilotGroups "pilotGroups" +#define NID_pilotGroups 441 +#define OBJ_pilotGroups OBJ_pilot,10L + +#define LN_iA5StringSyntax "iA5StringSyntax" +#define NID_iA5StringSyntax 442 +#define OBJ_iA5StringSyntax OBJ_pilotAttributeSyntax,4L + +#define LN_caseIgnoreIA5StringSyntax "caseIgnoreIA5StringSyntax" +#define NID_caseIgnoreIA5StringSyntax 443 +#define OBJ_caseIgnoreIA5StringSyntax OBJ_pilotAttributeSyntax,5L + +#define LN_pilotObject "pilotObject" +#define NID_pilotObject 444 +#define OBJ_pilotObject OBJ_pilotObjectClass,3L + +#define LN_pilotPerson "pilotPerson" +#define NID_pilotPerson 445 +#define OBJ_pilotPerson OBJ_pilotObjectClass,4L + +#define SN_account "account" +#define NID_account 446 +#define OBJ_account OBJ_pilotObjectClass,5L + +#define SN_document "document" +#define NID_document 447 +#define OBJ_document OBJ_pilotObjectClass,6L + +#define SN_room "room" +#define NID_room 448 +#define OBJ_room OBJ_pilotObjectClass,7L + +#define LN_documentSeries "documentSeries" +#define NID_documentSeries 449 +#define OBJ_documentSeries OBJ_pilotObjectClass,9L + +#define SN_Domain "domain" +#define LN_Domain "Domain" +#define NID_Domain 392 +#define OBJ_Domain OBJ_pilotObjectClass,13L + +#define LN_rFC822localPart "rFC822localPart" +#define NID_rFC822localPart 450 +#define OBJ_rFC822localPart OBJ_pilotObjectClass,14L + +#define LN_dNSDomain "dNSDomain" +#define NID_dNSDomain 451 +#define OBJ_dNSDomain OBJ_pilotObjectClass,15L + +#define LN_domainRelatedObject "domainRelatedObject" +#define NID_domainRelatedObject 452 +#define OBJ_domainRelatedObject OBJ_pilotObjectClass,17L + +#define LN_friendlyCountry "friendlyCountry" +#define NID_friendlyCountry 453 +#define OBJ_friendlyCountry OBJ_pilotObjectClass,18L + +#define LN_simpleSecurityObject "simpleSecurityObject" +#define NID_simpleSecurityObject 454 +#define OBJ_simpleSecurityObject OBJ_pilotObjectClass,19L + +#define LN_pilotOrganization "pilotOrganization" +#define NID_pilotOrganization 455 +#define OBJ_pilotOrganization OBJ_pilotObjectClass,20L + +#define LN_pilotDSA "pilotDSA" +#define NID_pilotDSA 456 +#define OBJ_pilotDSA OBJ_pilotObjectClass,21L + +#define LN_qualityLabelledData "qualityLabelledData" +#define NID_qualityLabelledData 457 +#define OBJ_qualityLabelledData OBJ_pilotObjectClass,22L + +#define SN_userId "UID" +#define LN_userId "userId" +#define NID_userId 458 +#define OBJ_userId OBJ_pilotAttributeType,1L + +#define LN_textEncodedORAddress "textEncodedORAddress" +#define NID_textEncodedORAddress 459 +#define OBJ_textEncodedORAddress OBJ_pilotAttributeType,2L + +#define SN_rfc822Mailbox "mail" +#define LN_rfc822Mailbox "rfc822Mailbox" +#define NID_rfc822Mailbox 460 +#define OBJ_rfc822Mailbox OBJ_pilotAttributeType,3L + +#define SN_info "info" +#define NID_info 461 +#define OBJ_info OBJ_pilotAttributeType,4L + +#define LN_favouriteDrink "favouriteDrink" +#define NID_favouriteDrink 462 +#define OBJ_favouriteDrink OBJ_pilotAttributeType,5L + +#define LN_roomNumber "roomNumber" +#define NID_roomNumber 463 +#define OBJ_roomNumber OBJ_pilotAttributeType,6L + +#define SN_photo "photo" +#define NID_photo 464 +#define OBJ_photo OBJ_pilotAttributeType,7L + +#define LN_userClass "userClass" +#define NID_userClass 465 +#define OBJ_userClass OBJ_pilotAttributeType,8L + +#define SN_host "host" +#define NID_host 466 +#define OBJ_host OBJ_pilotAttributeType,9L + +#define SN_manager "manager" +#define NID_manager 467 +#define OBJ_manager OBJ_pilotAttributeType,10L + +#define LN_documentIdentifier "documentIdentifier" +#define NID_documentIdentifier 468 +#define OBJ_documentIdentifier OBJ_pilotAttributeType,11L + +#define LN_documentTitle "documentTitle" +#define NID_documentTitle 469 +#define OBJ_documentTitle OBJ_pilotAttributeType,12L + +#define LN_documentVersion "documentVersion" +#define NID_documentVersion 470 +#define OBJ_documentVersion OBJ_pilotAttributeType,13L + +#define LN_documentAuthor "documentAuthor" +#define NID_documentAuthor 471 +#define OBJ_documentAuthor OBJ_pilotAttributeType,14L + +#define LN_documentLocation "documentLocation" +#define NID_documentLocation 472 +#define OBJ_documentLocation OBJ_pilotAttributeType,15L + +#define LN_homeTelephoneNumber "homeTelephoneNumber" +#define NID_homeTelephoneNumber 473 +#define OBJ_homeTelephoneNumber OBJ_pilotAttributeType,20L + +#define SN_secretary "secretary" +#define NID_secretary 474 +#define OBJ_secretary OBJ_pilotAttributeType,21L + +#define LN_otherMailbox "otherMailbox" +#define NID_otherMailbox 475 +#define OBJ_otherMailbox OBJ_pilotAttributeType,22L + +#define LN_lastModifiedTime "lastModifiedTime" +#define NID_lastModifiedTime 476 +#define OBJ_lastModifiedTime OBJ_pilotAttributeType,23L + +#define LN_lastModifiedBy "lastModifiedBy" +#define NID_lastModifiedBy 477 +#define OBJ_lastModifiedBy OBJ_pilotAttributeType,24L + +#define SN_domainComponent "DC" +#define LN_domainComponent "domainComponent" +#define NID_domainComponent 391 +#define OBJ_domainComponent OBJ_pilotAttributeType,25L + +#define LN_aRecord "aRecord" +#define NID_aRecord 478 +#define OBJ_aRecord OBJ_pilotAttributeType,26L + +#define LN_pilotAttributeType27 "pilotAttributeType27" +#define NID_pilotAttributeType27 479 +#define OBJ_pilotAttributeType27 OBJ_pilotAttributeType,27L + +#define LN_mXRecord "mXRecord" +#define NID_mXRecord 480 +#define OBJ_mXRecord OBJ_pilotAttributeType,28L + +#define LN_nSRecord "nSRecord" +#define NID_nSRecord 481 +#define OBJ_nSRecord OBJ_pilotAttributeType,29L + +#define LN_sOARecord "sOARecord" +#define NID_sOARecord 482 +#define OBJ_sOARecord OBJ_pilotAttributeType,30L + +#define LN_cNAMERecord "cNAMERecord" +#define NID_cNAMERecord 483 +#define OBJ_cNAMERecord OBJ_pilotAttributeType,31L + +#define LN_associatedDomain "associatedDomain" +#define NID_associatedDomain 484 +#define OBJ_associatedDomain OBJ_pilotAttributeType,37L + +#define LN_associatedName "associatedName" +#define NID_associatedName 485 +#define OBJ_associatedName OBJ_pilotAttributeType,38L + +#define LN_homePostalAddress "homePostalAddress" +#define NID_homePostalAddress 486 +#define OBJ_homePostalAddress OBJ_pilotAttributeType,39L + +#define LN_personalTitle "personalTitle" +#define NID_personalTitle 487 +#define OBJ_personalTitle OBJ_pilotAttributeType,40L + +#define LN_mobileTelephoneNumber "mobileTelephoneNumber" +#define NID_mobileTelephoneNumber 488 +#define OBJ_mobileTelephoneNumber OBJ_pilotAttributeType,41L + +#define LN_pagerTelephoneNumber "pagerTelephoneNumber" +#define NID_pagerTelephoneNumber 489 +#define OBJ_pagerTelephoneNumber OBJ_pilotAttributeType,42L + +#define LN_friendlyCountryName "friendlyCountryName" +#define NID_friendlyCountryName 490 +#define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L + +#define LN_organizationalStatus "organizationalStatus" +#define NID_organizationalStatus 491 +#define OBJ_organizationalStatus OBJ_pilotAttributeType,45L + +#define LN_janetMailbox "janetMailbox" +#define NID_janetMailbox 492 +#define OBJ_janetMailbox OBJ_pilotAttributeType,46L + +#define LN_mailPreferenceOption "mailPreferenceOption" +#define NID_mailPreferenceOption 493 +#define OBJ_mailPreferenceOption OBJ_pilotAttributeType,47L + +#define LN_buildingName "buildingName" +#define NID_buildingName 494 +#define OBJ_buildingName OBJ_pilotAttributeType,48L + +#define LN_dSAQuality "dSAQuality" +#define NID_dSAQuality 495 +#define OBJ_dSAQuality OBJ_pilotAttributeType,49L + +#define LN_singleLevelQuality "singleLevelQuality" +#define NID_singleLevelQuality 496 +#define OBJ_singleLevelQuality OBJ_pilotAttributeType,50L + +#define LN_subtreeMinimumQuality "subtreeMinimumQuality" +#define NID_subtreeMinimumQuality 497 +#define OBJ_subtreeMinimumQuality OBJ_pilotAttributeType,51L + +#define LN_subtreeMaximumQuality "subtreeMaximumQuality" +#define NID_subtreeMaximumQuality 498 +#define OBJ_subtreeMaximumQuality OBJ_pilotAttributeType,52L + +#define LN_personalSignature "personalSignature" +#define NID_personalSignature 499 +#define OBJ_personalSignature OBJ_pilotAttributeType,53L + +#define LN_dITRedirect "dITRedirect" +#define NID_dITRedirect 500 +#define OBJ_dITRedirect OBJ_pilotAttributeType,54L + +#define SN_audio "audio" +#define NID_audio 501 +#define OBJ_audio OBJ_pilotAttributeType,55L + +#define LN_documentPublisher "documentPublisher" +#define NID_documentPublisher 502 +#define OBJ_documentPublisher OBJ_pilotAttributeType,56L + +#define SN_id_set "id-set" +#define LN_id_set "Secure Electronic Transactions" +#define NID_id_set 512 +#define OBJ_id_set OBJ_international_organizations,42L + +#define SN_set_ctype "set-ctype" +#define LN_set_ctype "content types" +#define NID_set_ctype 513 +#define OBJ_set_ctype OBJ_id_set,0L + +#define SN_set_msgExt "set-msgExt" +#define LN_set_msgExt "message extensions" +#define NID_set_msgExt 514 +#define OBJ_set_msgExt OBJ_id_set,1L + +#define SN_set_attr "set-attr" +#define NID_set_attr 515 +#define OBJ_set_attr OBJ_id_set,3L + +#define SN_set_policy "set-policy" +#define NID_set_policy 516 +#define OBJ_set_policy OBJ_id_set,5L + +#define SN_set_certExt "set-certExt" +#define LN_set_certExt "certificate extensions" +#define NID_set_certExt 517 +#define OBJ_set_certExt OBJ_id_set,7L + +#define SN_set_brand "set-brand" +#define NID_set_brand 518 +#define OBJ_set_brand OBJ_id_set,8L + +#define SN_setct_PANData "setct-PANData" +#define NID_setct_PANData 519 +#define OBJ_setct_PANData OBJ_set_ctype,0L + +#define SN_setct_PANToken "setct-PANToken" +#define NID_setct_PANToken 520 +#define OBJ_setct_PANToken OBJ_set_ctype,1L + +#define SN_setct_PANOnly "setct-PANOnly" +#define NID_setct_PANOnly 521 +#define OBJ_setct_PANOnly OBJ_set_ctype,2L + +#define SN_setct_OIData "setct-OIData" +#define NID_setct_OIData 522 +#define OBJ_setct_OIData OBJ_set_ctype,3L + +#define SN_setct_PI "setct-PI" +#define NID_setct_PI 523 +#define OBJ_setct_PI OBJ_set_ctype,4L + +#define SN_setct_PIData "setct-PIData" +#define NID_setct_PIData 524 +#define OBJ_setct_PIData OBJ_set_ctype,5L + +#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned" +#define NID_setct_PIDataUnsigned 525 +#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L + +#define SN_setct_HODInput "setct-HODInput" +#define NID_setct_HODInput 526 +#define OBJ_setct_HODInput OBJ_set_ctype,7L + +#define SN_setct_AuthResBaggage "setct-AuthResBaggage" +#define NID_setct_AuthResBaggage 527 +#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L + +#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage" +#define NID_setct_AuthRevReqBaggage 528 +#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L + +#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage" +#define NID_setct_AuthRevResBaggage 529 +#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L + +#define SN_setct_CapTokenSeq "setct-CapTokenSeq" +#define NID_setct_CapTokenSeq 530 +#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L + +#define SN_setct_PInitResData "setct-PInitResData" +#define NID_setct_PInitResData 531 +#define OBJ_setct_PInitResData OBJ_set_ctype,12L + +#define SN_setct_PI_TBS "setct-PI-TBS" +#define NID_setct_PI_TBS 532 +#define OBJ_setct_PI_TBS OBJ_set_ctype,13L + +#define SN_setct_PResData "setct-PResData" +#define NID_setct_PResData 533 +#define OBJ_setct_PResData OBJ_set_ctype,14L + +#define SN_setct_AuthReqTBS "setct-AuthReqTBS" +#define NID_setct_AuthReqTBS 534 +#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L + +#define SN_setct_AuthResTBS "setct-AuthResTBS" +#define NID_setct_AuthResTBS 535 +#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L + +#define SN_setct_AuthResTBSX "setct-AuthResTBSX" +#define NID_setct_AuthResTBSX 536 +#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L + +#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS" +#define NID_setct_AuthTokenTBS 537 +#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L + +#define SN_setct_CapTokenData "setct-CapTokenData" +#define NID_setct_CapTokenData 538 +#define OBJ_setct_CapTokenData OBJ_set_ctype,20L + +#define SN_setct_CapTokenTBS "setct-CapTokenTBS" +#define NID_setct_CapTokenTBS 539 +#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L + +#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg" +#define NID_setct_AcqCardCodeMsg 540 +#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L + +#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS" +#define NID_setct_AuthRevReqTBS 541 +#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L + +#define SN_setct_AuthRevResData "setct-AuthRevResData" +#define NID_setct_AuthRevResData 542 +#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L + +#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS" +#define NID_setct_AuthRevResTBS 543 +#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L + +#define SN_setct_CapReqTBS "setct-CapReqTBS" +#define NID_setct_CapReqTBS 544 +#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L + +#define SN_setct_CapReqTBSX "setct-CapReqTBSX" +#define NID_setct_CapReqTBSX 545 +#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L + +#define SN_setct_CapResData "setct-CapResData" +#define NID_setct_CapResData 546 +#define OBJ_setct_CapResData OBJ_set_ctype,28L + +#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS" +#define NID_setct_CapRevReqTBS 547 +#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L + +#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX" +#define NID_setct_CapRevReqTBSX 548 +#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L + +#define SN_setct_CapRevResData "setct-CapRevResData" +#define NID_setct_CapRevResData 549 +#define OBJ_setct_CapRevResData OBJ_set_ctype,31L + +#define SN_setct_CredReqTBS "setct-CredReqTBS" +#define NID_setct_CredReqTBS 550 +#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L + +#define SN_setct_CredReqTBSX "setct-CredReqTBSX" +#define NID_setct_CredReqTBSX 551 +#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L + +#define SN_setct_CredResData "setct-CredResData" +#define NID_setct_CredResData 552 +#define OBJ_setct_CredResData OBJ_set_ctype,34L + +#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS" +#define NID_setct_CredRevReqTBS 553 +#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L + +#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX" +#define NID_setct_CredRevReqTBSX 554 +#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L + +#define SN_setct_CredRevResData "setct-CredRevResData" +#define NID_setct_CredRevResData 555 +#define OBJ_setct_CredRevResData OBJ_set_ctype,37L + +#define SN_setct_PCertReqData "setct-PCertReqData" +#define NID_setct_PCertReqData 556 +#define OBJ_setct_PCertReqData OBJ_set_ctype,38L + +#define SN_setct_PCertResTBS "setct-PCertResTBS" +#define NID_setct_PCertResTBS 557 +#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L + +#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData" +#define NID_setct_BatchAdminReqData 558 +#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L + +#define SN_setct_BatchAdminResData "setct-BatchAdminResData" +#define NID_setct_BatchAdminResData 559 +#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L + +#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS" +#define NID_setct_CardCInitResTBS 560 +#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L + +#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS" +#define NID_setct_MeAqCInitResTBS 561 +#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L + +#define SN_setct_RegFormResTBS "setct-RegFormResTBS" +#define NID_setct_RegFormResTBS 562 +#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L + +#define SN_setct_CertReqData "setct-CertReqData" +#define NID_setct_CertReqData 563 +#define OBJ_setct_CertReqData OBJ_set_ctype,45L + +#define SN_setct_CertReqTBS "setct-CertReqTBS" +#define NID_setct_CertReqTBS 564 +#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L + +#define SN_setct_CertResData "setct-CertResData" +#define NID_setct_CertResData 565 +#define OBJ_setct_CertResData OBJ_set_ctype,47L + +#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS" +#define NID_setct_CertInqReqTBS 566 +#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L + +#define SN_setct_ErrorTBS "setct-ErrorTBS" +#define NID_setct_ErrorTBS 567 +#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L + +#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE" +#define NID_setct_PIDualSignedTBE 568 +#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L + +#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE" +#define NID_setct_PIUnsignedTBE 569 +#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L + +#define SN_setct_AuthReqTBE "setct-AuthReqTBE" +#define NID_setct_AuthReqTBE 570 +#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L + +#define SN_setct_AuthResTBE "setct-AuthResTBE" +#define NID_setct_AuthResTBE 571 +#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L + +#define SN_setct_AuthResTBEX "setct-AuthResTBEX" +#define NID_setct_AuthResTBEX 572 +#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L + +#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE" +#define NID_setct_AuthTokenTBE 573 +#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L + +#define SN_setct_CapTokenTBE "setct-CapTokenTBE" +#define NID_setct_CapTokenTBE 574 +#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L + +#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX" +#define NID_setct_CapTokenTBEX 575 +#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L + +#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE" +#define NID_setct_AcqCardCodeMsgTBE 576 +#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L + +#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE" +#define NID_setct_AuthRevReqTBE 577 +#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L + +#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE" +#define NID_setct_AuthRevResTBE 578 +#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L + +#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB" +#define NID_setct_AuthRevResTBEB 579 +#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L + +#define SN_setct_CapReqTBE "setct-CapReqTBE" +#define NID_setct_CapReqTBE 580 +#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L + +#define SN_setct_CapReqTBEX "setct-CapReqTBEX" +#define NID_setct_CapReqTBEX 581 +#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L + +#define SN_setct_CapResTBE "setct-CapResTBE" +#define NID_setct_CapResTBE 582 +#define OBJ_setct_CapResTBE OBJ_set_ctype,64L + +#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE" +#define NID_setct_CapRevReqTBE 583 +#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L + +#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX" +#define NID_setct_CapRevReqTBEX 584 +#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L + +#define SN_setct_CapRevResTBE "setct-CapRevResTBE" +#define NID_setct_CapRevResTBE 585 +#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L + +#define SN_setct_CredReqTBE "setct-CredReqTBE" +#define NID_setct_CredReqTBE 586 +#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L + +#define SN_setct_CredReqTBEX "setct-CredReqTBEX" +#define NID_setct_CredReqTBEX 587 +#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L + +#define SN_setct_CredResTBE "setct-CredResTBE" +#define NID_setct_CredResTBE 588 +#define OBJ_setct_CredResTBE OBJ_set_ctype,70L + +#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE" +#define NID_setct_CredRevReqTBE 589 +#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L + +#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX" +#define NID_setct_CredRevReqTBEX 590 +#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L + +#define SN_setct_CredRevResTBE "setct-CredRevResTBE" +#define NID_setct_CredRevResTBE 591 +#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L + +#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE" +#define NID_setct_BatchAdminReqTBE 592 +#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L + +#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE" +#define NID_setct_BatchAdminResTBE 593 +#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L + +#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE" +#define NID_setct_RegFormReqTBE 594 +#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L + +#define SN_setct_CertReqTBE "setct-CertReqTBE" +#define NID_setct_CertReqTBE 595 +#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L + +#define SN_setct_CertReqTBEX "setct-CertReqTBEX" +#define NID_setct_CertReqTBEX 596 +#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L + +#define SN_setct_CertResTBE "setct-CertResTBE" +#define NID_setct_CertResTBE 597 +#define OBJ_setct_CertResTBE OBJ_set_ctype,79L + +#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS" +#define NID_setct_CRLNotificationTBS 598 +#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L + +#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS" +#define NID_setct_CRLNotificationResTBS 599 +#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L + +#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS" +#define NID_setct_BCIDistributionTBS 600 +#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L + +#define SN_setext_genCrypt "setext-genCrypt" +#define LN_setext_genCrypt "generic cryptogram" +#define NID_setext_genCrypt 601 +#define OBJ_setext_genCrypt OBJ_set_msgExt,1L + +#define SN_setext_miAuth "setext-miAuth" +#define LN_setext_miAuth "merchant initiated auth" +#define NID_setext_miAuth 602 +#define OBJ_setext_miAuth OBJ_set_msgExt,3L + +#define SN_setext_pinSecure "setext-pinSecure" +#define NID_setext_pinSecure 603 +#define OBJ_setext_pinSecure OBJ_set_msgExt,4L + +#define SN_setext_pinAny "setext-pinAny" +#define NID_setext_pinAny 604 +#define OBJ_setext_pinAny OBJ_set_msgExt,5L + +#define SN_setext_track2 "setext-track2" +#define NID_setext_track2 605 +#define OBJ_setext_track2 OBJ_set_msgExt,7L + +#define SN_setext_cv "setext-cv" +#define LN_setext_cv "additional verification" +#define NID_setext_cv 606 +#define OBJ_setext_cv OBJ_set_msgExt,8L + +#define SN_set_policy_root "set-policy-root" +#define NID_set_policy_root 607 +#define OBJ_set_policy_root OBJ_set_policy,0L + +#define SN_setCext_hashedRoot "setCext-hashedRoot" +#define NID_setCext_hashedRoot 608 +#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L + +#define SN_setCext_certType "setCext-certType" +#define NID_setCext_certType 609 +#define OBJ_setCext_certType OBJ_set_certExt,1L + +#define SN_setCext_merchData "setCext-merchData" +#define NID_setCext_merchData 610 +#define OBJ_setCext_merchData OBJ_set_certExt,2L + +#define SN_setCext_cCertRequired "setCext-cCertRequired" +#define NID_setCext_cCertRequired 611 +#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L + +#define SN_setCext_tunneling "setCext-tunneling" +#define NID_setCext_tunneling 612 +#define OBJ_setCext_tunneling OBJ_set_certExt,4L + +#define SN_setCext_setExt "setCext-setExt" +#define NID_setCext_setExt 613 +#define OBJ_setCext_setExt OBJ_set_certExt,5L + +#define SN_setCext_setQualf "setCext-setQualf" +#define NID_setCext_setQualf 614 +#define OBJ_setCext_setQualf OBJ_set_certExt,6L + +#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities" +#define NID_setCext_PGWYcapabilities 615 +#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L + +#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier" +#define NID_setCext_TokenIdentifier 616 +#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L + +#define SN_setCext_Track2Data "setCext-Track2Data" +#define NID_setCext_Track2Data 617 +#define OBJ_setCext_Track2Data OBJ_set_certExt,9L + +#define SN_setCext_TokenType "setCext-TokenType" +#define NID_setCext_TokenType 618 +#define OBJ_setCext_TokenType OBJ_set_certExt,10L + +#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities" +#define NID_setCext_IssuerCapabilities 619 +#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L + +#define SN_setAttr_Cert "setAttr-Cert" +#define NID_setAttr_Cert 620 +#define OBJ_setAttr_Cert OBJ_set_attr,0L + +#define SN_setAttr_PGWYcap "setAttr-PGWYcap" +#define LN_setAttr_PGWYcap "payment gateway capabilities" +#define NID_setAttr_PGWYcap 621 +#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L + +#define SN_setAttr_TokenType "setAttr-TokenType" +#define NID_setAttr_TokenType 622 +#define OBJ_setAttr_TokenType OBJ_set_attr,2L + +#define SN_setAttr_IssCap "setAttr-IssCap" +#define LN_setAttr_IssCap "issuer capabilities" +#define NID_setAttr_IssCap 623 +#define OBJ_setAttr_IssCap OBJ_set_attr,3L + +#define SN_set_rootKeyThumb "set-rootKeyThumb" +#define NID_set_rootKeyThumb 624 +#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L + +#define SN_set_addPolicy "set-addPolicy" +#define NID_set_addPolicy 625 +#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L + +#define SN_setAttr_Token_EMV "setAttr-Token-EMV" +#define NID_setAttr_Token_EMV 626 +#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L + +#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime" +#define NID_setAttr_Token_B0Prime 627 +#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L + +#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM" +#define NID_setAttr_IssCap_CVM 628 +#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L + +#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2" +#define NID_setAttr_IssCap_T2 629 +#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L + +#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig" +#define NID_setAttr_IssCap_Sig 630 +#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L + +#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm" +#define LN_setAttr_GenCryptgrm "generate cryptogram" +#define NID_setAttr_GenCryptgrm 631 +#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L + +#define SN_setAttr_T2Enc "setAttr-T2Enc" +#define LN_setAttr_T2Enc "encrypted track 2" +#define NID_setAttr_T2Enc 632 +#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L + +#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt" +#define LN_setAttr_T2cleartxt "cleartext track 2" +#define NID_setAttr_T2cleartxt 633 +#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L + +#define SN_setAttr_TokICCsig "setAttr-TokICCsig" +#define LN_setAttr_TokICCsig "ICC or token signature" +#define NID_setAttr_TokICCsig 634 +#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L + +#define SN_setAttr_SecDevSig "setAttr-SecDevSig" +#define LN_setAttr_SecDevSig "secure device signature" +#define NID_setAttr_SecDevSig 635 +#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L + +#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA" +#define NID_set_brand_IATA_ATA 636 +#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L + +#define SN_set_brand_Diners "set-brand-Diners" +#define NID_set_brand_Diners 637 +#define OBJ_set_brand_Diners OBJ_set_brand,30L + +#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress" +#define NID_set_brand_AmericanExpress 638 +#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L + +#define SN_set_brand_JCB "set-brand-JCB" +#define NID_set_brand_JCB 639 +#define OBJ_set_brand_JCB OBJ_set_brand,35L + +#define SN_set_brand_Visa "set-brand-Visa" +#define NID_set_brand_Visa 640 +#define OBJ_set_brand_Visa OBJ_set_brand,4L + +#define SN_set_brand_MasterCard "set-brand-MasterCard" +#define NID_set_brand_MasterCard 641 +#define OBJ_set_brand_MasterCard OBJ_set_brand,5L + +#define SN_set_brand_Novus "set-brand-Novus" +#define NID_set_brand_Novus 642 +#define OBJ_set_brand_Novus OBJ_set_brand,6011L + +#define SN_des_cdmf "DES-CDMF" +#define LN_des_cdmf "des-cdmf" +#define NID_des_cdmf 643 +#define OBJ_des_cdmf OBJ_rsadsi,3L,10L + +#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET" +#define NID_rsaOAEPEncryptionSET 644 +#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L + +#define SN_ipsec3 "Oakley-EC2N-3" +#define LN_ipsec3 "ipsec3" +#define NID_ipsec3 749 + +#define SN_ipsec4 "Oakley-EC2N-4" +#define LN_ipsec4 "ipsec4" +#define NID_ipsec4 750 + +#define SN_whirlpool "whirlpool" +#define NID_whirlpool 804 +#define OBJ_whirlpool OBJ_iso,0L,10118L,3L,0L,55L + +#define SN_cryptopro "cryptopro" +#define NID_cryptopro 805 +#define OBJ_cryptopro OBJ_member_body,643L,2L,2L + +#define SN_cryptocom "cryptocom" +#define NID_cryptocom 806 +#define OBJ_cryptocom OBJ_member_body,643L,2L,9L + +#define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" +#define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" +#define NID_id_GostR3411_94_with_GostR3410_2001 807 +#define OBJ_id_GostR3411_94_with_GostR3410_2001 OBJ_cryptopro,3L + +#define SN_id_GostR3411_94_with_GostR3410_94 "id-GostR3411-94-with-GostR3410-94" +#define LN_id_GostR3411_94_with_GostR3410_94 "GOST R 34.11-94 with GOST R 34.10-94" +#define NID_id_GostR3411_94_with_GostR3410_94 808 +#define OBJ_id_GostR3411_94_with_GostR3410_94 OBJ_cryptopro,4L + +#define SN_id_GostR3411_94 "md_gost94" +#define LN_id_GostR3411_94 "GOST R 34.11-94" +#define NID_id_GostR3411_94 809 +#define OBJ_id_GostR3411_94 OBJ_cryptopro,9L + +#define SN_id_HMACGostR3411_94 "id-HMACGostR3411-94" +#define LN_id_HMACGostR3411_94 "HMAC GOST 34.11-94" +#define NID_id_HMACGostR3411_94 810 +#define OBJ_id_HMACGostR3411_94 OBJ_cryptopro,10L + +#define SN_id_GostR3410_2001 "gost2001" +#define LN_id_GostR3410_2001 "GOST R 34.10-2001" +#define NID_id_GostR3410_2001 811 +#define OBJ_id_GostR3410_2001 OBJ_cryptopro,19L + +#define SN_id_GostR3410_94 "gost94" +#define LN_id_GostR3410_94 "GOST R 34.10-94" +#define NID_id_GostR3410_94 812 +#define OBJ_id_GostR3410_94 OBJ_cryptopro,20L + +#define SN_id_Gost28147_89 "gost89" +#define LN_id_Gost28147_89 "GOST 28147-89" +#define NID_id_Gost28147_89 813 +#define OBJ_id_Gost28147_89 OBJ_cryptopro,21L + +#define SN_gost89_cnt "gost89-cnt" +#define NID_gost89_cnt 814 + +#define SN_id_Gost28147_89_MAC "gost-mac" +#define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" +#define NID_id_Gost28147_89_MAC 815 +#define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L + +#define SN_id_GostR3411_94_prf "prf-gostr3411-94" +#define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" +#define NID_id_GostR3411_94_prf 816 +#define OBJ_id_GostR3411_94_prf OBJ_cryptopro,23L + +#define SN_id_GostR3410_2001DH "id-GostR3410-2001DH" +#define LN_id_GostR3410_2001DH "GOST R 34.10-2001 DH" +#define NID_id_GostR3410_2001DH 817 +#define OBJ_id_GostR3410_2001DH OBJ_cryptopro,98L + +#define SN_id_GostR3410_94DH "id-GostR3410-94DH" +#define LN_id_GostR3410_94DH "GOST R 34.10-94 DH" +#define NID_id_GostR3410_94DH 818 +#define OBJ_id_GostR3410_94DH OBJ_cryptopro,99L + +#define SN_id_Gost28147_89_CryptoPro_KeyMeshing "id-Gost28147-89-CryptoPro-KeyMeshing" +#define NID_id_Gost28147_89_CryptoPro_KeyMeshing 819 +#define OBJ_id_Gost28147_89_CryptoPro_KeyMeshing OBJ_cryptopro,14L,1L + +#define SN_id_Gost28147_89_None_KeyMeshing "id-Gost28147-89-None-KeyMeshing" +#define NID_id_Gost28147_89_None_KeyMeshing 820 +#define OBJ_id_Gost28147_89_None_KeyMeshing OBJ_cryptopro,14L,0L + +#define SN_id_GostR3411_94_TestParamSet "id-GostR3411-94-TestParamSet" +#define NID_id_GostR3411_94_TestParamSet 821 +#define OBJ_id_GostR3411_94_TestParamSet OBJ_cryptopro,30L,0L + +#define SN_id_GostR3411_94_CryptoProParamSet "id-GostR3411-94-CryptoProParamSet" +#define NID_id_GostR3411_94_CryptoProParamSet 822 +#define OBJ_id_GostR3411_94_CryptoProParamSet OBJ_cryptopro,30L,1L + +#define SN_id_Gost28147_89_TestParamSet "id-Gost28147-89-TestParamSet" +#define NID_id_Gost28147_89_TestParamSet 823 +#define OBJ_id_Gost28147_89_TestParamSet OBJ_cryptopro,31L,0L + +#define SN_id_Gost28147_89_CryptoPro_A_ParamSet "id-Gost28147-89-CryptoPro-A-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_A_ParamSet 824 +#define OBJ_id_Gost28147_89_CryptoPro_A_ParamSet OBJ_cryptopro,31L,1L + +#define SN_id_Gost28147_89_CryptoPro_B_ParamSet "id-Gost28147-89-CryptoPro-B-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_B_ParamSet 825 +#define OBJ_id_Gost28147_89_CryptoPro_B_ParamSet OBJ_cryptopro,31L,2L + +#define SN_id_Gost28147_89_CryptoPro_C_ParamSet "id-Gost28147-89-CryptoPro-C-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_C_ParamSet 826 +#define OBJ_id_Gost28147_89_CryptoPro_C_ParamSet OBJ_cryptopro,31L,3L + +#define SN_id_Gost28147_89_CryptoPro_D_ParamSet "id-Gost28147-89-CryptoPro-D-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_D_ParamSet 827 +#define OBJ_id_Gost28147_89_CryptoPro_D_ParamSet OBJ_cryptopro,31L,4L + +#define SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet 828 +#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet OBJ_cryptopro,31L,5L + +#define SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet 829 +#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet OBJ_cryptopro,31L,6L + +#define SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet "id-Gost28147-89-CryptoPro-RIC-1-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet 830 +#define OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet OBJ_cryptopro,31L,7L + +#define SN_id_GostR3410_94_TestParamSet "id-GostR3410-94-TestParamSet" +#define NID_id_GostR3410_94_TestParamSet 831 +#define OBJ_id_GostR3410_94_TestParamSet OBJ_cryptopro,32L,0L + +#define SN_id_GostR3410_94_CryptoPro_A_ParamSet "id-GostR3410-94-CryptoPro-A-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_A_ParamSet 832 +#define OBJ_id_GostR3410_94_CryptoPro_A_ParamSet OBJ_cryptopro,32L,2L + +#define SN_id_GostR3410_94_CryptoPro_B_ParamSet "id-GostR3410-94-CryptoPro-B-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_B_ParamSet 833 +#define OBJ_id_GostR3410_94_CryptoPro_B_ParamSet OBJ_cryptopro,32L,3L + +#define SN_id_GostR3410_94_CryptoPro_C_ParamSet "id-GostR3410-94-CryptoPro-C-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_C_ParamSet 834 +#define OBJ_id_GostR3410_94_CryptoPro_C_ParamSet OBJ_cryptopro,32L,4L + +#define SN_id_GostR3410_94_CryptoPro_D_ParamSet "id-GostR3410-94-CryptoPro-D-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_D_ParamSet 835 +#define OBJ_id_GostR3410_94_CryptoPro_D_ParamSet OBJ_cryptopro,32L,5L + +#define SN_id_GostR3410_94_CryptoPro_XchA_ParamSet "id-GostR3410-94-CryptoPro-XchA-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_XchA_ParamSet 836 +#define OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet OBJ_cryptopro,33L,1L + +#define SN_id_GostR3410_94_CryptoPro_XchB_ParamSet "id-GostR3410-94-CryptoPro-XchB-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_XchB_ParamSet 837 +#define OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet OBJ_cryptopro,33L,2L + +#define SN_id_GostR3410_94_CryptoPro_XchC_ParamSet "id-GostR3410-94-CryptoPro-XchC-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_XchC_ParamSet 838 +#define OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet OBJ_cryptopro,33L,3L + +#define SN_id_GostR3410_2001_TestParamSet "id-GostR3410-2001-TestParamSet" +#define NID_id_GostR3410_2001_TestParamSet 839 +#define OBJ_id_GostR3410_2001_TestParamSet OBJ_cryptopro,35L,0L + +#define SN_id_GostR3410_2001_CryptoPro_A_ParamSet "id-GostR3410-2001-CryptoPro-A-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_A_ParamSet 840 +#define OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet OBJ_cryptopro,35L,1L + +#define SN_id_GostR3410_2001_CryptoPro_B_ParamSet "id-GostR3410-2001-CryptoPro-B-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_B_ParamSet 841 +#define OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet OBJ_cryptopro,35L,2L + +#define SN_id_GostR3410_2001_CryptoPro_C_ParamSet "id-GostR3410-2001-CryptoPro-C-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_C_ParamSet 842 +#define OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet OBJ_cryptopro,35L,3L + +#define SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet "id-GostR3410-2001-CryptoPro-XchA-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet 843 +#define OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet OBJ_cryptopro,36L,0L + +#define SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet "id-GostR3410-2001-CryptoPro-XchB-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet 844 +#define OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet OBJ_cryptopro,36L,1L + +#define SN_id_GostR3410_94_a "id-GostR3410-94-a" +#define NID_id_GostR3410_94_a 845 +#define OBJ_id_GostR3410_94_a OBJ_id_GostR3410_94,1L + +#define SN_id_GostR3410_94_aBis "id-GostR3410-94-aBis" +#define NID_id_GostR3410_94_aBis 846 +#define OBJ_id_GostR3410_94_aBis OBJ_id_GostR3410_94,2L + +#define SN_id_GostR3410_94_b "id-GostR3410-94-b" +#define NID_id_GostR3410_94_b 847 +#define OBJ_id_GostR3410_94_b OBJ_id_GostR3410_94,3L + +#define SN_id_GostR3410_94_bBis "id-GostR3410-94-bBis" +#define NID_id_GostR3410_94_bBis 848 +#define OBJ_id_GostR3410_94_bBis OBJ_id_GostR3410_94,4L + +#define SN_id_Gost28147_89_cc "id-Gost28147-89-cc" +#define LN_id_Gost28147_89_cc "GOST 28147-89 Cryptocom ParamSet" +#define NID_id_Gost28147_89_cc 849 +#define OBJ_id_Gost28147_89_cc OBJ_cryptocom,1L,6L,1L + +#define SN_id_GostR3410_94_cc "gost94cc" +#define LN_id_GostR3410_94_cc "GOST 34.10-94 Cryptocom" +#define NID_id_GostR3410_94_cc 850 +#define OBJ_id_GostR3410_94_cc OBJ_cryptocom,1L,5L,3L + +#define SN_id_GostR3410_2001_cc "gost2001cc" +#define LN_id_GostR3410_2001_cc "GOST 34.10-2001 Cryptocom" +#define NID_id_GostR3410_2001_cc 851 +#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L + +#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc" +#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" +#define NID_id_GostR3411_94_with_GostR3410_94_cc 852 +#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L + +#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc" +#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" +#define NID_id_GostR3411_94_with_GostR3410_2001_cc 853 +#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L + +#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc" +#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom" +#define NID_id_GostR3410_2001_ParamSet_cc 854 +#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L + +#define SN_camellia_128_cbc "CAMELLIA-128-CBC" +#define LN_camellia_128_cbc "camellia-128-cbc" +#define NID_camellia_128_cbc 751 +#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L + +#define SN_camellia_192_cbc "CAMELLIA-192-CBC" +#define LN_camellia_192_cbc "camellia-192-cbc" +#define NID_camellia_192_cbc 752 +#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L + +#define SN_camellia_256_cbc "CAMELLIA-256-CBC" +#define LN_camellia_256_cbc "camellia-256-cbc" +#define NID_camellia_256_cbc 753 +#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L + +#define SN_id_camellia128_wrap "id-camellia128-wrap" +#define NID_id_camellia128_wrap 907 +#define OBJ_id_camellia128_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,2L + +#define SN_id_camellia192_wrap "id-camellia192-wrap" +#define NID_id_camellia192_wrap 908 +#define OBJ_id_camellia192_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,3L + +#define SN_id_camellia256_wrap "id-camellia256-wrap" +#define NID_id_camellia256_wrap 909 +#define OBJ_id_camellia256_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,4L + +#define OBJ_ntt_ds 0L,3L,4401L,5L + +#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L + +#define SN_camellia_128_ecb "CAMELLIA-128-ECB" +#define LN_camellia_128_ecb "camellia-128-ecb" +#define NID_camellia_128_ecb 754 +#define OBJ_camellia_128_ecb OBJ_camellia,1L + +#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB" +#define LN_camellia_128_ofb128 "camellia-128-ofb" +#define NID_camellia_128_ofb128 766 +#define OBJ_camellia_128_ofb128 OBJ_camellia,3L + +#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB" +#define LN_camellia_128_cfb128 "camellia-128-cfb" +#define NID_camellia_128_cfb128 757 +#define OBJ_camellia_128_cfb128 OBJ_camellia,4L + +#define SN_camellia_192_ecb "CAMELLIA-192-ECB" +#define LN_camellia_192_ecb "camellia-192-ecb" +#define NID_camellia_192_ecb 755 +#define OBJ_camellia_192_ecb OBJ_camellia,21L + +#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB" +#define LN_camellia_192_ofb128 "camellia-192-ofb" +#define NID_camellia_192_ofb128 767 +#define OBJ_camellia_192_ofb128 OBJ_camellia,23L + +#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB" +#define LN_camellia_192_cfb128 "camellia-192-cfb" +#define NID_camellia_192_cfb128 758 +#define OBJ_camellia_192_cfb128 OBJ_camellia,24L + +#define SN_camellia_256_ecb "CAMELLIA-256-ECB" +#define LN_camellia_256_ecb "camellia-256-ecb" +#define NID_camellia_256_ecb 756 +#define OBJ_camellia_256_ecb OBJ_camellia,41L + +#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB" +#define LN_camellia_256_ofb128 "camellia-256-ofb" +#define NID_camellia_256_ofb128 768 +#define OBJ_camellia_256_ofb128 OBJ_camellia,43L + +#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB" +#define LN_camellia_256_cfb128 "camellia-256-cfb" +#define NID_camellia_256_cfb128 759 +#define OBJ_camellia_256_cfb128 OBJ_camellia,44L + +#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" +#define LN_camellia_128_cfb1 "camellia-128-cfb1" +#define NID_camellia_128_cfb1 760 + +#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1" +#define LN_camellia_192_cfb1 "camellia-192-cfb1" +#define NID_camellia_192_cfb1 761 + +#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1" +#define LN_camellia_256_cfb1 "camellia-256-cfb1" +#define NID_camellia_256_cfb1 762 + +#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8" +#define LN_camellia_128_cfb8 "camellia-128-cfb8" +#define NID_camellia_128_cfb8 763 + +#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8" +#define LN_camellia_192_cfb8 "camellia-192-cfb8" +#define NID_camellia_192_cfb8 764 + +#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8" +#define LN_camellia_256_cfb8 "camellia-256-cfb8" +#define NID_camellia_256_cfb8 765 + +#define SN_kisa "KISA" +#define LN_kisa "kisa" +#define NID_kisa 773 +#define OBJ_kisa OBJ_member_body,410L,200004L + +#define SN_seed_ecb "SEED-ECB" +#define LN_seed_ecb "seed-ecb" +#define NID_seed_ecb 776 +#define OBJ_seed_ecb OBJ_kisa,1L,3L + +#define SN_seed_cbc "SEED-CBC" +#define LN_seed_cbc "seed-cbc" +#define NID_seed_cbc 777 +#define OBJ_seed_cbc OBJ_kisa,1L,4L + +#define SN_seed_cfb128 "SEED-CFB" +#define LN_seed_cfb128 "seed-cfb" +#define NID_seed_cfb128 779 +#define OBJ_seed_cfb128 OBJ_kisa,1L,5L + +#define SN_seed_ofb128 "SEED-OFB" +#define LN_seed_ofb128 "seed-ofb" +#define NID_seed_ofb128 778 +#define OBJ_seed_ofb128 OBJ_kisa,1L,6L + +#define SN_hmac "HMAC" +#define LN_hmac "hmac" +#define NID_hmac 855 + +#define SN_cmac "CMAC" +#define LN_cmac "cmac" +#define NID_cmac 894 + +#define SN_rc4_hmac_md5 "RC4-HMAC-MD5" +#define LN_rc4_hmac_md5 "rc4-hmac-md5" +#define NID_rc4_hmac_md5 915 + +#define SN_aes_128_cbc_hmac_sha1 "AES-128-CBC-HMAC-SHA1" +#define LN_aes_128_cbc_hmac_sha1 "aes-128-cbc-hmac-sha1" +#define NID_aes_128_cbc_hmac_sha1 916 + +#define SN_aes_192_cbc_hmac_sha1 "AES-192-CBC-HMAC-SHA1" +#define LN_aes_192_cbc_hmac_sha1 "aes-192-cbc-hmac-sha1" +#define NID_aes_192_cbc_hmac_sha1 917 + +#define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" +#define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" +#define NID_aes_256_cbc_hmac_sha1 918 + +#define SN_aes_128_cbc_hmac_sha256 "AES-128-CBC-HMAC-SHA256" +#define LN_aes_128_cbc_hmac_sha256 "aes-128-cbc-hmac-sha256" +#define NID_aes_128_cbc_hmac_sha256 948 + +#define SN_aes_192_cbc_hmac_sha256 "AES-192-CBC-HMAC-SHA256" +#define LN_aes_192_cbc_hmac_sha256 "aes-192-cbc-hmac-sha256" +#define NID_aes_192_cbc_hmac_sha256 949 + +#define SN_aes_256_cbc_hmac_sha256 "AES-256-CBC-HMAC-SHA256" +#define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" +#define NID_aes_256_cbc_hmac_sha256 950 + +#define SN_dhpublicnumber "dhpublicnumber" +#define LN_dhpublicnumber "X9.42 DH" +#define NID_dhpublicnumber 920 +#define OBJ_dhpublicnumber OBJ_ISO_US,10046L,2L,1L + +#define SN_brainpoolP160r1 "brainpoolP160r1" +#define NID_brainpoolP160r1 921 +#define OBJ_brainpoolP160r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L + +#define SN_brainpoolP160t1 "brainpoolP160t1" +#define NID_brainpoolP160t1 922 +#define OBJ_brainpoolP160t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L + +#define SN_brainpoolP192r1 "brainpoolP192r1" +#define NID_brainpoolP192r1 923 +#define OBJ_brainpoolP192r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L + +#define SN_brainpoolP192t1 "brainpoolP192t1" +#define NID_brainpoolP192t1 924 +#define OBJ_brainpoolP192t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L + +#define SN_brainpoolP224r1 "brainpoolP224r1" +#define NID_brainpoolP224r1 925 +#define OBJ_brainpoolP224r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L + +#define SN_brainpoolP224t1 "brainpoolP224t1" +#define NID_brainpoolP224t1 926 +#define OBJ_brainpoolP224t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L + +#define SN_brainpoolP256r1 "brainpoolP256r1" +#define NID_brainpoolP256r1 927 +#define OBJ_brainpoolP256r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L + +#define SN_brainpoolP256t1 "brainpoolP256t1" +#define NID_brainpoolP256t1 928 +#define OBJ_brainpoolP256t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L + +#define SN_brainpoolP320r1 "brainpoolP320r1" +#define NID_brainpoolP320r1 929 +#define OBJ_brainpoolP320r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L + +#define SN_brainpoolP320t1 "brainpoolP320t1" +#define NID_brainpoolP320t1 930 +#define OBJ_brainpoolP320t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L + +#define SN_brainpoolP384r1 "brainpoolP384r1" +#define NID_brainpoolP384r1 931 +#define OBJ_brainpoolP384r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L + +#define SN_brainpoolP384t1 "brainpoolP384t1" +#define NID_brainpoolP384t1 932 +#define OBJ_brainpoolP384t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L + +#define SN_brainpoolP512r1 "brainpoolP512r1" +#define NID_brainpoolP512r1 933 +#define OBJ_brainpoolP512r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L + +#define SN_brainpoolP512t1 "brainpoolP512t1" +#define NID_brainpoolP512t1 934 +#define OBJ_brainpoolP512t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L + +#define OBJ_x9_63_scheme 1L,3L,133L,16L,840L,63L,0L + +#define OBJ_secg_scheme OBJ_certicom_arc,1L + +#define SN_dhSinglePass_stdDH_sha1kdf_scheme "dhSinglePass-stdDH-sha1kdf-scheme" +#define NID_dhSinglePass_stdDH_sha1kdf_scheme 936 +#define OBJ_dhSinglePass_stdDH_sha1kdf_scheme OBJ_x9_63_scheme,2L + +#define SN_dhSinglePass_stdDH_sha224kdf_scheme "dhSinglePass-stdDH-sha224kdf-scheme" +#define NID_dhSinglePass_stdDH_sha224kdf_scheme 937 +#define OBJ_dhSinglePass_stdDH_sha224kdf_scheme OBJ_secg_scheme,11L,0L + +#define SN_dhSinglePass_stdDH_sha256kdf_scheme "dhSinglePass-stdDH-sha256kdf-scheme" +#define NID_dhSinglePass_stdDH_sha256kdf_scheme 938 +#define OBJ_dhSinglePass_stdDH_sha256kdf_scheme OBJ_secg_scheme,11L,1L + +#define SN_dhSinglePass_stdDH_sha384kdf_scheme "dhSinglePass-stdDH-sha384kdf-scheme" +#define NID_dhSinglePass_stdDH_sha384kdf_scheme 939 +#define OBJ_dhSinglePass_stdDH_sha384kdf_scheme OBJ_secg_scheme,11L,2L + +#define SN_dhSinglePass_stdDH_sha512kdf_scheme "dhSinglePass-stdDH-sha512kdf-scheme" +#define NID_dhSinglePass_stdDH_sha512kdf_scheme 940 +#define OBJ_dhSinglePass_stdDH_sha512kdf_scheme OBJ_secg_scheme,11L,3L + +#define SN_dhSinglePass_cofactorDH_sha1kdf_scheme "dhSinglePass-cofactorDH-sha1kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha1kdf_scheme 941 +#define OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme OBJ_x9_63_scheme,3L + +#define SN_dhSinglePass_cofactorDH_sha224kdf_scheme "dhSinglePass-cofactorDH-sha224kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha224kdf_scheme 942 +#define OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme OBJ_secg_scheme,14L,0L + +#define SN_dhSinglePass_cofactorDH_sha256kdf_scheme "dhSinglePass-cofactorDH-sha256kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha256kdf_scheme 943 +#define OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme OBJ_secg_scheme,14L,1L + +#define SN_dhSinglePass_cofactorDH_sha384kdf_scheme "dhSinglePass-cofactorDH-sha384kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha384kdf_scheme 944 +#define OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme OBJ_secg_scheme,14L,2L + +#define SN_dhSinglePass_cofactorDH_sha512kdf_scheme "dhSinglePass-cofactorDH-sha512kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha512kdf_scheme 945 +#define OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme OBJ_secg_scheme,14L,3L + +#define SN_dh_std_kdf "dh-std-kdf" +#define NID_dh_std_kdf 946 + +#define SN_dh_cofactor_kdf "dh-cofactor-kdf" +#define NID_dh_cofactor_kdf 947 + +#define SN_ct_precert_scts "ct_precert_scts" +#define LN_ct_precert_scts "CT Precertificate SCTs" +#define NID_ct_precert_scts 951 +#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L + +#define SN_ct_precert_poison "ct_precert_poison" +#define LN_ct_precert_poison "CT Precertificate Poison" +#define NID_ct_precert_poison 952 +#define OBJ_ct_precert_poison 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L + +#define SN_ct_precert_signer "ct_precert_signer" +#define LN_ct_precert_signer "CT Precertificate Signer" +#define NID_ct_precert_signer 953 +#define OBJ_ct_precert_signer 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L + +#define SN_ct_cert_scts "ct_cert_scts" +#define LN_ct_cert_scts "CT Certificate SCTs" +#define NID_ct_cert_scts 954 +#define OBJ_ct_cert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L + +#define SN_jurisdictionLocalityName "jurisdictionL" +#define LN_jurisdictionLocalityName "jurisdictionLocalityName" +#define NID_jurisdictionLocalityName 955 +#define OBJ_jurisdictionLocalityName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,1L + +#define SN_jurisdictionStateOrProvinceName "jurisdictionST" +#define LN_jurisdictionStateOrProvinceName "jurisdictionStateOrProvinceName" +#define NID_jurisdictionStateOrProvinceName 956 +#define OBJ_jurisdictionStateOrProvinceName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,2L + +#define SN_jurisdictionCountryName "jurisdictionC" +#define LN_jurisdictionCountryName "jurisdictionCountryName" +#define NID_jurisdictionCountryName 957 +#define OBJ_jurisdictionCountryName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,3L diff --git a/External/include64/openssl/objects.h b/External/include64/openssl/objects.h new file mode 100644 index 00000000..b8dafa89 --- /dev/null +++ b/External/include64/openssl/objects.h @@ -0,0 +1,1143 @@ +/* crypto/objects/objects.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_OBJECTS_H +# define HEADER_OBJECTS_H + +# define USE_OBJ_MAC + +# ifdef USE_OBJ_MAC +# include +# else +# define SN_undef "UNDEF" +# define LN_undef "undefined" +# define NID_undef 0 +# define OBJ_undef 0L + +# define SN_Algorithm "Algorithm" +# define LN_algorithm "algorithm" +# define NID_algorithm 38 +# define OBJ_algorithm 1L,3L,14L,3L,2L + +# define LN_rsadsi "rsadsi" +# define NID_rsadsi 1 +# define OBJ_rsadsi 1L,2L,840L,113549L + +# define LN_pkcs "pkcs" +# define NID_pkcs 2 +# define OBJ_pkcs OBJ_rsadsi,1L + +# define SN_md2 "MD2" +# define LN_md2 "md2" +# define NID_md2 3 +# define OBJ_md2 OBJ_rsadsi,2L,2L + +# define SN_md5 "MD5" +# define LN_md5 "md5" +# define NID_md5 4 +# define OBJ_md5 OBJ_rsadsi,2L,5L + +# define SN_rc4 "RC4" +# define LN_rc4 "rc4" +# define NID_rc4 5 +# define OBJ_rc4 OBJ_rsadsi,3L,4L + +# define LN_rsaEncryption "rsaEncryption" +# define NID_rsaEncryption 6 +# define OBJ_rsaEncryption OBJ_pkcs,1L,1L + +# define SN_md2WithRSAEncryption "RSA-MD2" +# define LN_md2WithRSAEncryption "md2WithRSAEncryption" +# define NID_md2WithRSAEncryption 7 +# define OBJ_md2WithRSAEncryption OBJ_pkcs,1L,2L + +# define SN_md5WithRSAEncryption "RSA-MD5" +# define LN_md5WithRSAEncryption "md5WithRSAEncryption" +# define NID_md5WithRSAEncryption 8 +# define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L + +# define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" +# define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" +# define NID_pbeWithMD2AndDES_CBC 9 +# define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L + +# define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" +# define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" +# define NID_pbeWithMD5AndDES_CBC 10 +# define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L + +# define LN_X500 "X500" +# define NID_X500 11 +# define OBJ_X500 2L,5L + +# define LN_X509 "X509" +# define NID_X509 12 +# define OBJ_X509 OBJ_X500,4L + +# define SN_commonName "CN" +# define LN_commonName "commonName" +# define NID_commonName 13 +# define OBJ_commonName OBJ_X509,3L + +# define SN_countryName "C" +# define LN_countryName "countryName" +# define NID_countryName 14 +# define OBJ_countryName OBJ_X509,6L + +# define SN_localityName "L" +# define LN_localityName "localityName" +# define NID_localityName 15 +# define OBJ_localityName OBJ_X509,7L + +/* Postal Address? PA */ + +/* should be "ST" (rfc1327) but MS uses 'S' */ +# define SN_stateOrProvinceName "ST" +# define LN_stateOrProvinceName "stateOrProvinceName" +# define NID_stateOrProvinceName 16 +# define OBJ_stateOrProvinceName OBJ_X509,8L + +# define SN_organizationName "O" +# define LN_organizationName "organizationName" +# define NID_organizationName 17 +# define OBJ_organizationName OBJ_X509,10L + +# define SN_organizationalUnitName "OU" +# define LN_organizationalUnitName "organizationalUnitName" +# define NID_organizationalUnitName 18 +# define OBJ_organizationalUnitName OBJ_X509,11L + +# define SN_rsa "RSA" +# define LN_rsa "rsa" +# define NID_rsa 19 +# define OBJ_rsa OBJ_X500,8L,1L,1L + +# define LN_pkcs7 "pkcs7" +# define NID_pkcs7 20 +# define OBJ_pkcs7 OBJ_pkcs,7L + +# define LN_pkcs7_data "pkcs7-data" +# define NID_pkcs7_data 21 +# define OBJ_pkcs7_data OBJ_pkcs7,1L + +# define LN_pkcs7_signed "pkcs7-signedData" +# define NID_pkcs7_signed 22 +# define OBJ_pkcs7_signed OBJ_pkcs7,2L + +# define LN_pkcs7_enveloped "pkcs7-envelopedData" +# define NID_pkcs7_enveloped 23 +# define OBJ_pkcs7_enveloped OBJ_pkcs7,3L + +# define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" +# define NID_pkcs7_signedAndEnveloped 24 +# define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L + +# define LN_pkcs7_digest "pkcs7-digestData" +# define NID_pkcs7_digest 25 +# define OBJ_pkcs7_digest OBJ_pkcs7,5L + +# define LN_pkcs7_encrypted "pkcs7-encryptedData" +# define NID_pkcs7_encrypted 26 +# define OBJ_pkcs7_encrypted OBJ_pkcs7,6L + +# define LN_pkcs3 "pkcs3" +# define NID_pkcs3 27 +# define OBJ_pkcs3 OBJ_pkcs,3L + +# define LN_dhKeyAgreement "dhKeyAgreement" +# define NID_dhKeyAgreement 28 +# define OBJ_dhKeyAgreement OBJ_pkcs3,1L + +# define SN_des_ecb "DES-ECB" +# define LN_des_ecb "des-ecb" +# define NID_des_ecb 29 +# define OBJ_des_ecb OBJ_algorithm,6L + +# define SN_des_cfb64 "DES-CFB" +# define LN_des_cfb64 "des-cfb" +# define NID_des_cfb64 30 +/* IV + num */ +# define OBJ_des_cfb64 OBJ_algorithm,9L + +# define SN_des_cbc "DES-CBC" +# define LN_des_cbc "des-cbc" +# define NID_des_cbc 31 +/* IV */ +# define OBJ_des_cbc OBJ_algorithm,7L + +# define SN_des_ede "DES-EDE" +# define LN_des_ede "des-ede" +# define NID_des_ede 32 +/* ?? */ +# define OBJ_des_ede OBJ_algorithm,17L + +# define SN_des_ede3 "DES-EDE3" +# define LN_des_ede3 "des-ede3" +# define NID_des_ede3 33 + +# define SN_idea_cbc "IDEA-CBC" +# define LN_idea_cbc "idea-cbc" +# define NID_idea_cbc 34 +# define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L + +# define SN_idea_cfb64 "IDEA-CFB" +# define LN_idea_cfb64 "idea-cfb" +# define NID_idea_cfb64 35 + +# define SN_idea_ecb "IDEA-ECB" +# define LN_idea_ecb "idea-ecb" +# define NID_idea_ecb 36 + +# define SN_rc2_cbc "RC2-CBC" +# define LN_rc2_cbc "rc2-cbc" +# define NID_rc2_cbc 37 +# define OBJ_rc2_cbc OBJ_rsadsi,3L,2L + +# define SN_rc2_ecb "RC2-ECB" +# define LN_rc2_ecb "rc2-ecb" +# define NID_rc2_ecb 38 + +# define SN_rc2_cfb64 "RC2-CFB" +# define LN_rc2_cfb64 "rc2-cfb" +# define NID_rc2_cfb64 39 + +# define SN_rc2_ofb64 "RC2-OFB" +# define LN_rc2_ofb64 "rc2-ofb" +# define NID_rc2_ofb64 40 + +# define SN_sha "SHA" +# define LN_sha "sha" +# define NID_sha 41 +# define OBJ_sha OBJ_algorithm,18L + +# define SN_shaWithRSAEncryption "RSA-SHA" +# define LN_shaWithRSAEncryption "shaWithRSAEncryption" +# define NID_shaWithRSAEncryption 42 +# define OBJ_shaWithRSAEncryption OBJ_algorithm,15L + +# define SN_des_ede_cbc "DES-EDE-CBC" +# define LN_des_ede_cbc "des-ede-cbc" +# define NID_des_ede_cbc 43 + +# define SN_des_ede3_cbc "DES-EDE3-CBC" +# define LN_des_ede3_cbc "des-ede3-cbc" +# define NID_des_ede3_cbc 44 +# define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L + +# define SN_des_ofb64 "DES-OFB" +# define LN_des_ofb64 "des-ofb" +# define NID_des_ofb64 45 +# define OBJ_des_ofb64 OBJ_algorithm,8L + +# define SN_idea_ofb64 "IDEA-OFB" +# define LN_idea_ofb64 "idea-ofb" +# define NID_idea_ofb64 46 + +# define LN_pkcs9 "pkcs9" +# define NID_pkcs9 47 +# define OBJ_pkcs9 OBJ_pkcs,9L + +# define SN_pkcs9_emailAddress "Email" +# define LN_pkcs9_emailAddress "emailAddress" +# define NID_pkcs9_emailAddress 48 +# define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L + +# define LN_pkcs9_unstructuredName "unstructuredName" +# define NID_pkcs9_unstructuredName 49 +# define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L + +# define LN_pkcs9_contentType "contentType" +# define NID_pkcs9_contentType 50 +# define OBJ_pkcs9_contentType OBJ_pkcs9,3L + +# define LN_pkcs9_messageDigest "messageDigest" +# define NID_pkcs9_messageDigest 51 +# define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L + +# define LN_pkcs9_signingTime "signingTime" +# define NID_pkcs9_signingTime 52 +# define OBJ_pkcs9_signingTime OBJ_pkcs9,5L + +# define LN_pkcs9_countersignature "countersignature" +# define NID_pkcs9_countersignature 53 +# define OBJ_pkcs9_countersignature OBJ_pkcs9,6L + +# define LN_pkcs9_challengePassword "challengePassword" +# define NID_pkcs9_challengePassword 54 +# define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L + +# define LN_pkcs9_unstructuredAddress "unstructuredAddress" +# define NID_pkcs9_unstructuredAddress 55 +# define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L + +# define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" +# define NID_pkcs9_extCertAttributes 56 +# define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L + +# define SN_netscape "Netscape" +# define LN_netscape "Netscape Communications Corp." +# define NID_netscape 57 +# define OBJ_netscape 2L,16L,840L,1L,113730L + +# define SN_netscape_cert_extension "nsCertExt" +# define LN_netscape_cert_extension "Netscape Certificate Extension" +# define NID_netscape_cert_extension 58 +# define OBJ_netscape_cert_extension OBJ_netscape,1L + +# define SN_netscape_data_type "nsDataType" +# define LN_netscape_data_type "Netscape Data Type" +# define NID_netscape_data_type 59 +# define OBJ_netscape_data_type OBJ_netscape,2L + +# define SN_des_ede_cfb64 "DES-EDE-CFB" +# define LN_des_ede_cfb64 "des-ede-cfb" +# define NID_des_ede_cfb64 60 + +# define SN_des_ede3_cfb64 "DES-EDE3-CFB" +# define LN_des_ede3_cfb64 "des-ede3-cfb" +# define NID_des_ede3_cfb64 61 + +# define SN_des_ede_ofb64 "DES-EDE-OFB" +# define LN_des_ede_ofb64 "des-ede-ofb" +# define NID_des_ede_ofb64 62 + +# define SN_des_ede3_ofb64 "DES-EDE3-OFB" +# define LN_des_ede3_ofb64 "des-ede3-ofb" +# define NID_des_ede3_ofb64 63 + +/* I'm not sure about the object ID */ +# define SN_sha1 "SHA1" +# define LN_sha1 "sha1" +# define NID_sha1 64 +# define OBJ_sha1 OBJ_algorithm,26L +/* 28 Jun 1996 - eay */ +/* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */ + +# define SN_sha1WithRSAEncryption "RSA-SHA1" +# define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" +# define NID_sha1WithRSAEncryption 65 +# define OBJ_sha1WithRSAEncryption OBJ_pkcs,1L,5L + +# define SN_dsaWithSHA "DSA-SHA" +# define LN_dsaWithSHA "dsaWithSHA" +# define NID_dsaWithSHA 66 +# define OBJ_dsaWithSHA OBJ_algorithm,13L + +# define SN_dsa_2 "DSA-old" +# define LN_dsa_2 "dsaEncryption-old" +# define NID_dsa_2 67 +# define OBJ_dsa_2 OBJ_algorithm,12L + +/* proposed by microsoft to RSA */ +# define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" +# define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" +# define NID_pbeWithSHA1AndRC2_CBC 68 +# define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L + +/* + * proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now defined + * explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something completely + * different. + */ +# define LN_id_pbkdf2 "PBKDF2" +# define NID_id_pbkdf2 69 +# define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L + +# define SN_dsaWithSHA1_2 "DSA-SHA1-old" +# define LN_dsaWithSHA1_2 "dsaWithSHA1-old" +# define NID_dsaWithSHA1_2 70 +/* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */ +# define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L + +# define SN_netscape_cert_type "nsCertType" +# define LN_netscape_cert_type "Netscape Cert Type" +# define NID_netscape_cert_type 71 +# define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L + +# define SN_netscape_base_url "nsBaseUrl" +# define LN_netscape_base_url "Netscape Base Url" +# define NID_netscape_base_url 72 +# define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L + +# define SN_netscape_revocation_url "nsRevocationUrl" +# define LN_netscape_revocation_url "Netscape Revocation Url" +# define NID_netscape_revocation_url 73 +# define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L + +# define SN_netscape_ca_revocation_url "nsCaRevocationUrl" +# define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" +# define NID_netscape_ca_revocation_url 74 +# define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L + +# define SN_netscape_renewal_url "nsRenewalUrl" +# define LN_netscape_renewal_url "Netscape Renewal Url" +# define NID_netscape_renewal_url 75 +# define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L + +# define SN_netscape_ca_policy_url "nsCaPolicyUrl" +# define LN_netscape_ca_policy_url "Netscape CA Policy Url" +# define NID_netscape_ca_policy_url 76 +# define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L + +# define SN_netscape_ssl_server_name "nsSslServerName" +# define LN_netscape_ssl_server_name "Netscape SSL Server Name" +# define NID_netscape_ssl_server_name 77 +# define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L + +# define SN_netscape_comment "nsComment" +# define LN_netscape_comment "Netscape Comment" +# define NID_netscape_comment 78 +# define OBJ_netscape_comment OBJ_netscape_cert_extension,13L + +# define SN_netscape_cert_sequence "nsCertSequence" +# define LN_netscape_cert_sequence "Netscape Certificate Sequence" +# define NID_netscape_cert_sequence 79 +# define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L + +# define SN_desx_cbc "DESX-CBC" +# define LN_desx_cbc "desx-cbc" +# define NID_desx_cbc 80 + +# define SN_id_ce "id-ce" +# define NID_id_ce 81 +# define OBJ_id_ce 2L,5L,29L + +# define SN_subject_key_identifier "subjectKeyIdentifier" +# define LN_subject_key_identifier "X509v3 Subject Key Identifier" +# define NID_subject_key_identifier 82 +# define OBJ_subject_key_identifier OBJ_id_ce,14L + +# define SN_key_usage "keyUsage" +# define LN_key_usage "X509v3 Key Usage" +# define NID_key_usage 83 +# define OBJ_key_usage OBJ_id_ce,15L + +# define SN_private_key_usage_period "privateKeyUsagePeriod" +# define LN_private_key_usage_period "X509v3 Private Key Usage Period" +# define NID_private_key_usage_period 84 +# define OBJ_private_key_usage_period OBJ_id_ce,16L + +# define SN_subject_alt_name "subjectAltName" +# define LN_subject_alt_name "X509v3 Subject Alternative Name" +# define NID_subject_alt_name 85 +# define OBJ_subject_alt_name OBJ_id_ce,17L + +# define SN_issuer_alt_name "issuerAltName" +# define LN_issuer_alt_name "X509v3 Issuer Alternative Name" +# define NID_issuer_alt_name 86 +# define OBJ_issuer_alt_name OBJ_id_ce,18L + +# define SN_basic_constraints "basicConstraints" +# define LN_basic_constraints "X509v3 Basic Constraints" +# define NID_basic_constraints 87 +# define OBJ_basic_constraints OBJ_id_ce,19L + +# define SN_crl_number "crlNumber" +# define LN_crl_number "X509v3 CRL Number" +# define NID_crl_number 88 +# define OBJ_crl_number OBJ_id_ce,20L + +# define SN_certificate_policies "certificatePolicies" +# define LN_certificate_policies "X509v3 Certificate Policies" +# define NID_certificate_policies 89 +# define OBJ_certificate_policies OBJ_id_ce,32L + +# define SN_authority_key_identifier "authorityKeyIdentifier" +# define LN_authority_key_identifier "X509v3 Authority Key Identifier" +# define NID_authority_key_identifier 90 +# define OBJ_authority_key_identifier OBJ_id_ce,35L + +# define SN_bf_cbc "BF-CBC" +# define LN_bf_cbc "bf-cbc" +# define NID_bf_cbc 91 +# define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L + +# define SN_bf_ecb "BF-ECB" +# define LN_bf_ecb "bf-ecb" +# define NID_bf_ecb 92 + +# define SN_bf_cfb64 "BF-CFB" +# define LN_bf_cfb64 "bf-cfb" +# define NID_bf_cfb64 93 + +# define SN_bf_ofb64 "BF-OFB" +# define LN_bf_ofb64 "bf-ofb" +# define NID_bf_ofb64 94 + +# define SN_mdc2 "MDC2" +# define LN_mdc2 "mdc2" +# define NID_mdc2 95 +# define OBJ_mdc2 2L,5L,8L,3L,101L +/* An alternative? 1L,3L,14L,3L,2L,19L */ + +# define SN_mdc2WithRSA "RSA-MDC2" +# define LN_mdc2WithRSA "mdc2withRSA" +# define NID_mdc2WithRSA 96 +# define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L + +# define SN_rc4_40 "RC4-40" +# define LN_rc4_40 "rc4-40" +# define NID_rc4_40 97 + +# define SN_rc2_40_cbc "RC2-40-CBC" +# define LN_rc2_40_cbc "rc2-40-cbc" +# define NID_rc2_40_cbc 98 + +# define SN_givenName "G" +# define LN_givenName "givenName" +# define NID_givenName 99 +# define OBJ_givenName OBJ_X509,42L + +# define SN_surname "S" +# define LN_surname "surname" +# define NID_surname 100 +# define OBJ_surname OBJ_X509,4L + +# define SN_initials "I" +# define LN_initials "initials" +# define NID_initials 101 +# define OBJ_initials OBJ_X509,43L + +# define SN_uniqueIdentifier "UID" +# define LN_uniqueIdentifier "uniqueIdentifier" +# define NID_uniqueIdentifier 102 +# define OBJ_uniqueIdentifier OBJ_X509,45L + +# define SN_crl_distribution_points "crlDistributionPoints" +# define LN_crl_distribution_points "X509v3 CRL Distribution Points" +# define NID_crl_distribution_points 103 +# define OBJ_crl_distribution_points OBJ_id_ce,31L + +# define SN_md5WithRSA "RSA-NP-MD5" +# define LN_md5WithRSA "md5WithRSA" +# define NID_md5WithRSA 104 +# define OBJ_md5WithRSA OBJ_algorithm,3L + +# define SN_serialNumber "SN" +# define LN_serialNumber "serialNumber" +# define NID_serialNumber 105 +# define OBJ_serialNumber OBJ_X509,5L + +# define SN_title "T" +# define LN_title "title" +# define NID_title 106 +# define OBJ_title OBJ_X509,12L + +# define SN_description "D" +# define LN_description "description" +# define NID_description 107 +# define OBJ_description OBJ_X509,13L + +/* CAST5 is CAST-128, I'm just sticking with the documentation */ +# define SN_cast5_cbc "CAST5-CBC" +# define LN_cast5_cbc "cast5-cbc" +# define NID_cast5_cbc 108 +# define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L + +# define SN_cast5_ecb "CAST5-ECB" +# define LN_cast5_ecb "cast5-ecb" +# define NID_cast5_ecb 109 + +# define SN_cast5_cfb64 "CAST5-CFB" +# define LN_cast5_cfb64 "cast5-cfb" +# define NID_cast5_cfb64 110 + +# define SN_cast5_ofb64 "CAST5-OFB" +# define LN_cast5_ofb64 "cast5-ofb" +# define NID_cast5_ofb64 111 + +# define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" +# define NID_pbeWithMD5AndCast5_CBC 112 +# define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L + +/*- + * This is one sun will soon be using :-( + * id-dsa-with-sha1 ID ::= { + * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } + */ +# define SN_dsaWithSHA1 "DSA-SHA1" +# define LN_dsaWithSHA1 "dsaWithSHA1" +# define NID_dsaWithSHA1 113 +# define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L + +# define NID_md5_sha1 114 +# define SN_md5_sha1 "MD5-SHA1" +# define LN_md5_sha1 "md5-sha1" + +# define SN_sha1WithRSA "RSA-SHA1-2" +# define LN_sha1WithRSA "sha1WithRSA" +# define NID_sha1WithRSA 115 +# define OBJ_sha1WithRSA OBJ_algorithm,29L + +# define SN_dsa "DSA" +# define LN_dsa "dsaEncryption" +# define NID_dsa 116 +# define OBJ_dsa 1L,2L,840L,10040L,4L,1L + +# define SN_ripemd160 "RIPEMD160" +# define LN_ripemd160 "ripemd160" +# define NID_ripemd160 117 +# define OBJ_ripemd160 1L,3L,36L,3L,2L,1L + +/* + * The name should actually be rsaSignatureWithripemd160, but I'm going to + * continue using the convention I'm using with the other ciphers + */ +# define SN_ripemd160WithRSA "RSA-RIPEMD160" +# define LN_ripemd160WithRSA "ripemd160WithRSA" +# define NID_ripemd160WithRSA 119 +# define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L + +/*- + * Taken from rfc2040 + * RC5_CBC_Parameters ::= SEQUENCE { + * version INTEGER (v1_0(16)), + * rounds INTEGER (8..127), + * blockSizeInBits INTEGER (64, 128), + * iv OCTET STRING OPTIONAL + * } + */ +# define SN_rc5_cbc "RC5-CBC" +# define LN_rc5_cbc "rc5-cbc" +# define NID_rc5_cbc 120 +# define OBJ_rc5_cbc OBJ_rsadsi,3L,8L + +# define SN_rc5_ecb "RC5-ECB" +# define LN_rc5_ecb "rc5-ecb" +# define NID_rc5_ecb 121 + +# define SN_rc5_cfb64 "RC5-CFB" +# define LN_rc5_cfb64 "rc5-cfb" +# define NID_rc5_cfb64 122 + +# define SN_rc5_ofb64 "RC5-OFB" +# define LN_rc5_ofb64 "rc5-ofb" +# define NID_rc5_ofb64 123 + +# define SN_rle_compression "RLE" +# define LN_rle_compression "run length compression" +# define NID_rle_compression 124 +# define OBJ_rle_compression 1L,1L,1L,1L,666L,1L + +# define SN_zlib_compression "ZLIB" +# define LN_zlib_compression "zlib compression" +# define NID_zlib_compression 125 +# define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L + +# define SN_ext_key_usage "extendedKeyUsage" +# define LN_ext_key_usage "X509v3 Extended Key Usage" +# define NID_ext_key_usage 126 +# define OBJ_ext_key_usage OBJ_id_ce,37 + +# define SN_id_pkix "PKIX" +# define NID_id_pkix 127 +# define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L + +# define SN_id_kp "id-kp" +# define NID_id_kp 128 +# define OBJ_id_kp OBJ_id_pkix,3L + +/* PKIX extended key usage OIDs */ + +# define SN_server_auth "serverAuth" +# define LN_server_auth "TLS Web Server Authentication" +# define NID_server_auth 129 +# define OBJ_server_auth OBJ_id_kp,1L + +# define SN_client_auth "clientAuth" +# define LN_client_auth "TLS Web Client Authentication" +# define NID_client_auth 130 +# define OBJ_client_auth OBJ_id_kp,2L + +# define SN_code_sign "codeSigning" +# define LN_code_sign "Code Signing" +# define NID_code_sign 131 +# define OBJ_code_sign OBJ_id_kp,3L + +# define SN_email_protect "emailProtection" +# define LN_email_protect "E-mail Protection" +# define NID_email_protect 132 +# define OBJ_email_protect OBJ_id_kp,4L + +# define SN_time_stamp "timeStamping" +# define LN_time_stamp "Time Stamping" +# define NID_time_stamp 133 +# define OBJ_time_stamp OBJ_id_kp,8L + +/* Additional extended key usage OIDs: Microsoft */ + +# define SN_ms_code_ind "msCodeInd" +# define LN_ms_code_ind "Microsoft Individual Code Signing" +# define NID_ms_code_ind 134 +# define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L + +# define SN_ms_code_com "msCodeCom" +# define LN_ms_code_com "Microsoft Commercial Code Signing" +# define NID_ms_code_com 135 +# define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L + +# define SN_ms_ctl_sign "msCTLSign" +# define LN_ms_ctl_sign "Microsoft Trust List Signing" +# define NID_ms_ctl_sign 136 +# define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L + +# define SN_ms_sgc "msSGC" +# define LN_ms_sgc "Microsoft Server Gated Crypto" +# define NID_ms_sgc 137 +# define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L + +# define SN_ms_efs "msEFS" +# define LN_ms_efs "Microsoft Encrypted File System" +# define NID_ms_efs 138 +# define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L + +/* Additional usage: Netscape */ + +# define SN_ns_sgc "nsSGC" +# define LN_ns_sgc "Netscape Server Gated Crypto" +# define NID_ns_sgc 139 +# define OBJ_ns_sgc OBJ_netscape,4L,1L + +# define SN_delta_crl "deltaCRL" +# define LN_delta_crl "X509v3 Delta CRL Indicator" +# define NID_delta_crl 140 +# define OBJ_delta_crl OBJ_id_ce,27L + +# define SN_crl_reason "CRLReason" +# define LN_crl_reason "CRL Reason Code" +# define NID_crl_reason 141 +# define OBJ_crl_reason OBJ_id_ce,21L + +# define SN_invalidity_date "invalidityDate" +# define LN_invalidity_date "Invalidity Date" +# define NID_invalidity_date 142 +# define OBJ_invalidity_date OBJ_id_ce,24L + +# define SN_sxnet "SXNetID" +# define LN_sxnet "Strong Extranet ID" +# define NID_sxnet 143 +# define OBJ_sxnet 1L,3L,101L,1L,4L,1L + +/* PKCS12 and related OBJECT IDENTIFIERS */ + +# define OBJ_pkcs12 OBJ_pkcs,12L +# define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 + +# define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" +# define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" +# define NID_pbe_WithSHA1And128BitRC4 144 +# define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L + +# define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" +# define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" +# define NID_pbe_WithSHA1And40BitRC4 145 +# define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L + +# define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" +# define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" +# define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 +# define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L + +# define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" +# define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" +# define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 +# define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L + +# define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" +# define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" +# define NID_pbe_WithSHA1And128BitRC2_CBC 148 +# define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L + +# define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" +# define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" +# define NID_pbe_WithSHA1And40BitRC2_CBC 149 +# define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L + +# define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L + +# define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L + +# define LN_keyBag "keyBag" +# define NID_keyBag 150 +# define OBJ_keyBag OBJ_pkcs12_BagIds, 1L + +# define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" +# define NID_pkcs8ShroudedKeyBag 151 +# define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L + +# define LN_certBag "certBag" +# define NID_certBag 152 +# define OBJ_certBag OBJ_pkcs12_BagIds, 3L + +# define LN_crlBag "crlBag" +# define NID_crlBag 153 +# define OBJ_crlBag OBJ_pkcs12_BagIds, 4L + +# define LN_secretBag "secretBag" +# define NID_secretBag 154 +# define OBJ_secretBag OBJ_pkcs12_BagIds, 5L + +# define LN_safeContentsBag "safeContentsBag" +# define NID_safeContentsBag 155 +# define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L + +# define LN_friendlyName "friendlyName" +# define NID_friendlyName 156 +# define OBJ_friendlyName OBJ_pkcs9, 20L + +# define LN_localKeyID "localKeyID" +# define NID_localKeyID 157 +# define OBJ_localKeyID OBJ_pkcs9, 21L + +# define OBJ_certTypes OBJ_pkcs9, 22L + +# define LN_x509Certificate "x509Certificate" +# define NID_x509Certificate 158 +# define OBJ_x509Certificate OBJ_certTypes, 1L + +# define LN_sdsiCertificate "sdsiCertificate" +# define NID_sdsiCertificate 159 +# define OBJ_sdsiCertificate OBJ_certTypes, 2L + +# define OBJ_crlTypes OBJ_pkcs9, 23L + +# define LN_x509Crl "x509Crl" +# define NID_x509Crl 160 +# define OBJ_x509Crl OBJ_crlTypes, 1L + +/* PKCS#5 v2 OIDs */ + +# define LN_pbes2 "PBES2" +# define NID_pbes2 161 +# define OBJ_pbes2 OBJ_pkcs,5L,13L + +# define LN_pbmac1 "PBMAC1" +# define NID_pbmac1 162 +# define OBJ_pbmac1 OBJ_pkcs,5L,14L + +# define LN_hmacWithSHA1 "hmacWithSHA1" +# define NID_hmacWithSHA1 163 +# define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L + +/* Policy Qualifier Ids */ + +# define LN_id_qt_cps "Policy Qualifier CPS" +# define SN_id_qt_cps "id-qt-cps" +# define NID_id_qt_cps 164 +# define OBJ_id_qt_cps OBJ_id_pkix,2L,1L + +# define LN_id_qt_unotice "Policy Qualifier User Notice" +# define SN_id_qt_unotice "id-qt-unotice" +# define NID_id_qt_unotice 165 +# define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L + +# define SN_rc2_64_cbc "RC2-64-CBC" +# define LN_rc2_64_cbc "rc2-64-cbc" +# define NID_rc2_64_cbc 166 + +# define SN_SMIMECapabilities "SMIME-CAPS" +# define LN_SMIMECapabilities "S/MIME Capabilities" +# define NID_SMIMECapabilities 167 +# define OBJ_SMIMECapabilities OBJ_pkcs9,15L + +# define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" +# define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" +# define NID_pbeWithMD2AndRC2_CBC 168 +# define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L + +# define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" +# define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" +# define NID_pbeWithMD5AndRC2_CBC 169 +# define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L + +# define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" +# define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" +# define NID_pbeWithSHA1AndDES_CBC 170 +# define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L + +/* Extension request OIDs */ + +# define LN_ms_ext_req "Microsoft Extension Request" +# define SN_ms_ext_req "msExtReq" +# define NID_ms_ext_req 171 +# define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L + +# define LN_ext_req "Extension Request" +# define SN_ext_req "extReq" +# define NID_ext_req 172 +# define OBJ_ext_req OBJ_pkcs9,14L + +# define SN_name "name" +# define LN_name "name" +# define NID_name 173 +# define OBJ_name OBJ_X509,41L + +# define SN_dnQualifier "dnQualifier" +# define LN_dnQualifier "dnQualifier" +# define NID_dnQualifier 174 +# define OBJ_dnQualifier OBJ_X509,46L + +# define SN_id_pe "id-pe" +# define NID_id_pe 175 +# define OBJ_id_pe OBJ_id_pkix,1L + +# define SN_id_ad "id-ad" +# define NID_id_ad 176 +# define OBJ_id_ad OBJ_id_pkix,48L + +# define SN_info_access "authorityInfoAccess" +# define LN_info_access "Authority Information Access" +# define NID_info_access 177 +# define OBJ_info_access OBJ_id_pe,1L + +# define SN_ad_OCSP "OCSP" +# define LN_ad_OCSP "OCSP" +# define NID_ad_OCSP 178 +# define OBJ_ad_OCSP OBJ_id_ad,1L + +# define SN_ad_ca_issuers "caIssuers" +# define LN_ad_ca_issuers "CA Issuers" +# define NID_ad_ca_issuers 179 +# define OBJ_ad_ca_issuers OBJ_id_ad,2L + +# define SN_OCSP_sign "OCSPSigning" +# define LN_OCSP_sign "OCSP Signing" +# define NID_OCSP_sign 180 +# define OBJ_OCSP_sign OBJ_id_kp,9L +# endif /* USE_OBJ_MAC */ + +# include +# include + +# define OBJ_NAME_TYPE_UNDEF 0x00 +# define OBJ_NAME_TYPE_MD_METH 0x01 +# define OBJ_NAME_TYPE_CIPHER_METH 0x02 +# define OBJ_NAME_TYPE_PKEY_METH 0x03 +# define OBJ_NAME_TYPE_COMP_METH 0x04 +# define OBJ_NAME_TYPE_NUM 0x05 + +# define OBJ_NAME_ALIAS 0x8000 + +# define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 +# define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct obj_name_st { + int type; + int alias; + const char *name; + const char *data; +} OBJ_NAME; + +# define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) + +int OBJ_NAME_init(void); +int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), + int (*cmp_func) (const char *, const char *), + void (*free_func) (const char *, int, const char *)); +const char *OBJ_NAME_get(const char *name, int type); +int OBJ_NAME_add(const char *name, int type, const char *data); +int OBJ_NAME_remove(const char *name, int type); +void OBJ_NAME_cleanup(int type); /* -1 for everything */ +void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), + void *arg); +void OBJ_NAME_do_all_sorted(int type, + void (*fn) (const OBJ_NAME *, void *arg), + void *arg); + +ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); +ASN1_OBJECT *OBJ_nid2obj(int n); +const char *OBJ_nid2ln(int n); +const char *OBJ_nid2sn(int n); +int OBJ_obj2nid(const ASN1_OBJECT *o); +ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); +int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); +int OBJ_txt2nid(const char *s); +int OBJ_ln2nid(const char *s); +int OBJ_sn2nid(const char *s); +int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); +const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, + int (*cmp) (const void *, const void *)); +const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, + int size, + int (*cmp) (const void *, const void *), + int flags); + +# define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ + static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ + static int nm##_cmp(type1 const *, type2 const *); \ + scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) + +# define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ + _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) +# define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ + type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) + +/*- + * Unsolved problem: if a type is actually a pointer type, like + * nid_triple is, then its impossible to get a const where you need + * it. Consider: + * + * typedef int nid_triple[3]; + * const void *a_; + * const nid_triple const *a = a_; + * + * The assignement discards a const because what you really want is: + * + * const int const * const *a = a_; + * + * But if you do that, you lose the fact that a is an array of 3 ints, + * which breaks comparison functions. + * + * Thus we end up having to cast, sadly, or unpack the + * declarations. Or, as I finally did in this case, delcare nid_triple + * to be a struct, which it should have been in the first place. + * + * Ben, August 2008. + * + * Also, strictly speaking not all types need be const, but handling + * the non-constness means a lot of complication, and in practice + * comparison routines do always not touch their arguments. + */ + +# define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ + static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ + { \ + type1 const *a = a_; \ + type2 const *b = b_; \ + return nm##_cmp(a,b); \ + } \ + static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ + { \ + return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ + nm##_cmp_BSEARCH_CMP_FN); \ + } \ + extern void dummy_prototype(void) + +# define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ + static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ + { \ + type1 const *a = a_; \ + type2 const *b = b_; \ + return nm##_cmp(a,b); \ + } \ + type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ + { \ + return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ + nm##_cmp_BSEARCH_CMP_FN); \ + } \ + extern void dummy_prototype(void) + +# define OBJ_bsearch(type1,key,type2,base,num,cmp) \ + ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ + num,sizeof(type2), \ + ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ + (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ + cmp##_BSEARCH_CMP_FN))) + +# define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ + ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ + num,sizeof(type2), \ + ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ + (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ + cmp##_BSEARCH_CMP_FN)),flags) + +int OBJ_new_nid(int num); +int OBJ_add_object(const ASN1_OBJECT *obj); +int OBJ_create(const char *oid, const char *sn, const char *ln); +void OBJ_cleanup(void); +int OBJ_create_objects(BIO *in); + +int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); +int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); +int OBJ_add_sigid(int signid, int dig_id, int pkey_id); +void OBJ_sigid_free(void); + +extern int obj_cleanup_defer; +void check_defer(int nid); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_OBJ_strings(void); + +/* Error codes for the OBJ functions. */ + +/* Function codes. */ +# define OBJ_F_OBJ_ADD_OBJECT 105 +# define OBJ_F_OBJ_CREATE 100 +# define OBJ_F_OBJ_DUP 101 +# define OBJ_F_OBJ_NAME_NEW_INDEX 106 +# define OBJ_F_OBJ_NID2LN 102 +# define OBJ_F_OBJ_NID2OBJ 103 +# define OBJ_F_OBJ_NID2SN 104 + +/* Reason codes. */ +# define OBJ_R_MALLOC_FAILURE 100 +# define OBJ_R_UNKNOWN_NID 101 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/ocsp.h b/External/include64/openssl/ocsp.h new file mode 100644 index 00000000..ca2ee76d --- /dev/null +++ b/External/include64/openssl/ocsp.h @@ -0,0 +1,637 @@ +/* ocsp.h */ +/* + * Written by Tom Titchener for the OpenSSL + * project. + */ + +/* + * History: This file was transfered to Richard Levitte from CertCo by Kathy + * Weinhold in mid-spring 2000 to be included in OpenSSL or released as a + * patch kit. + */ + +/* ==================================================================== + * Copyright (c) 1998-2000 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_OCSP_H +# define HEADER_OCSP_H + +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Various flags and values */ + +# define OCSP_DEFAULT_NONCE_LENGTH 16 + +# define OCSP_NOCERTS 0x1 +# define OCSP_NOINTERN 0x2 +# define OCSP_NOSIGS 0x4 +# define OCSP_NOCHAIN 0x8 +# define OCSP_NOVERIFY 0x10 +# define OCSP_NOEXPLICIT 0x20 +# define OCSP_NOCASIGN 0x40 +# define OCSP_NODELEGATED 0x80 +# define OCSP_NOCHECKS 0x100 +# define OCSP_TRUSTOTHER 0x200 +# define OCSP_RESPID_KEY 0x400 +# define OCSP_NOTIME 0x800 + +/*- CertID ::= SEQUENCE { + * hashAlgorithm AlgorithmIdentifier, + * issuerNameHash OCTET STRING, -- Hash of Issuer's DN + * issuerKeyHash OCTET STRING, -- Hash of Issuers public key (excluding the tag & length fields) + * serialNumber CertificateSerialNumber } + */ +typedef struct ocsp_cert_id_st { + X509_ALGOR *hashAlgorithm; + ASN1_OCTET_STRING *issuerNameHash; + ASN1_OCTET_STRING *issuerKeyHash; + ASN1_INTEGER *serialNumber; +} OCSP_CERTID; + +DECLARE_STACK_OF(OCSP_CERTID) + +/*- Request ::= SEQUENCE { + * reqCert CertID, + * singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL } + */ +typedef struct ocsp_one_request_st { + OCSP_CERTID *reqCert; + STACK_OF(X509_EXTENSION) *singleRequestExtensions; +} OCSP_ONEREQ; + +DECLARE_STACK_OF(OCSP_ONEREQ) +DECLARE_ASN1_SET_OF(OCSP_ONEREQ) + +/*- TBSRequest ::= SEQUENCE { + * version [0] EXPLICIT Version DEFAULT v1, + * requestorName [1] EXPLICIT GeneralName OPTIONAL, + * requestList SEQUENCE OF Request, + * requestExtensions [2] EXPLICIT Extensions OPTIONAL } + */ +typedef struct ocsp_req_info_st { + ASN1_INTEGER *version; + GENERAL_NAME *requestorName; + STACK_OF(OCSP_ONEREQ) *requestList; + STACK_OF(X509_EXTENSION) *requestExtensions; +} OCSP_REQINFO; + +/*- Signature ::= SEQUENCE { + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING, + * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } + */ +typedef struct ocsp_signature_st { + X509_ALGOR *signatureAlgorithm; + ASN1_BIT_STRING *signature; + STACK_OF(X509) *certs; +} OCSP_SIGNATURE; + +/*- OCSPRequest ::= SEQUENCE { + * tbsRequest TBSRequest, + * optionalSignature [0] EXPLICIT Signature OPTIONAL } + */ +typedef struct ocsp_request_st { + OCSP_REQINFO *tbsRequest; + OCSP_SIGNATURE *optionalSignature; /* OPTIONAL */ +} OCSP_REQUEST; + +/*- OCSPResponseStatus ::= ENUMERATED { + * successful (0), --Response has valid confirmations + * malformedRequest (1), --Illegal confirmation request + * internalError (2), --Internal error in issuer + * tryLater (3), --Try again later + * --(4) is not used + * sigRequired (5), --Must sign the request + * unauthorized (6) --Request unauthorized + * } + */ +# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 +# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 +# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 +# define OCSP_RESPONSE_STATUS_TRYLATER 3 +# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 +# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 + +/*- ResponseBytes ::= SEQUENCE { + * responseType OBJECT IDENTIFIER, + * response OCTET STRING } + */ +typedef struct ocsp_resp_bytes_st { + ASN1_OBJECT *responseType; + ASN1_OCTET_STRING *response; +} OCSP_RESPBYTES; + +/*- OCSPResponse ::= SEQUENCE { + * responseStatus OCSPResponseStatus, + * responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } + */ +struct ocsp_response_st { + ASN1_ENUMERATED *responseStatus; + OCSP_RESPBYTES *responseBytes; +}; + +/*- ResponderID ::= CHOICE { + * byName [1] Name, + * byKey [2] KeyHash } + */ +# define V_OCSP_RESPID_NAME 0 +# define V_OCSP_RESPID_KEY 1 +struct ocsp_responder_id_st { + int type; + union { + X509_NAME *byName; + ASN1_OCTET_STRING *byKey; + } value; +}; + +DECLARE_STACK_OF(OCSP_RESPID) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) + +/*- KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key + * --(excluding the tag and length fields) + */ + +/*- RevokedInfo ::= SEQUENCE { + * revocationTime GeneralizedTime, + * revocationReason [0] EXPLICIT CRLReason OPTIONAL } + */ +typedef struct ocsp_revoked_info_st { + ASN1_GENERALIZEDTIME *revocationTime; + ASN1_ENUMERATED *revocationReason; +} OCSP_REVOKEDINFO; + +/*- CertStatus ::= CHOICE { + * good [0] IMPLICIT NULL, + * revoked [1] IMPLICIT RevokedInfo, + * unknown [2] IMPLICIT UnknownInfo } + */ +# define V_OCSP_CERTSTATUS_GOOD 0 +# define V_OCSP_CERTSTATUS_REVOKED 1 +# define V_OCSP_CERTSTATUS_UNKNOWN 2 +typedef struct ocsp_cert_status_st { + int type; + union { + ASN1_NULL *good; + OCSP_REVOKEDINFO *revoked; + ASN1_NULL *unknown; + } value; +} OCSP_CERTSTATUS; + +/*- SingleResponse ::= SEQUENCE { + * certID CertID, + * certStatus CertStatus, + * thisUpdate GeneralizedTime, + * nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, + * singleExtensions [1] EXPLICIT Extensions OPTIONAL } + */ +typedef struct ocsp_single_response_st { + OCSP_CERTID *certId; + OCSP_CERTSTATUS *certStatus; + ASN1_GENERALIZEDTIME *thisUpdate; + ASN1_GENERALIZEDTIME *nextUpdate; + STACK_OF(X509_EXTENSION) *singleExtensions; +} OCSP_SINGLERESP; + +DECLARE_STACK_OF(OCSP_SINGLERESP) +DECLARE_ASN1_SET_OF(OCSP_SINGLERESP) + +/*- ResponseData ::= SEQUENCE { + * version [0] EXPLICIT Version DEFAULT v1, + * responderID ResponderID, + * producedAt GeneralizedTime, + * responses SEQUENCE OF SingleResponse, + * responseExtensions [1] EXPLICIT Extensions OPTIONAL } + */ +typedef struct ocsp_response_data_st { + ASN1_INTEGER *version; + OCSP_RESPID *responderId; + ASN1_GENERALIZEDTIME *producedAt; + STACK_OF(OCSP_SINGLERESP) *responses; + STACK_OF(X509_EXTENSION) *responseExtensions; +} OCSP_RESPDATA; + +/*- BasicOCSPResponse ::= SEQUENCE { + * tbsResponseData ResponseData, + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING, + * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } + */ + /* + * Note 1: The value for "signature" is specified in the OCSP rfc2560 as + * follows: "The value for the signature SHALL be computed on the hash of + * the DER encoding ResponseData." This means that you must hash the + * DER-encoded tbsResponseData, and then run it through a crypto-signing + * function, which will (at least w/RSA) do a hash-'n'-private-encrypt + * operation. This seems a bit odd, but that's the spec. Also note that + * the data structures do not leave anywhere to independently specify the + * algorithm used for the initial hash. So, we look at the + * signature-specification algorithm, and try to do something intelligent. + * -- Kathy Weinhold, CertCo + */ + /* + * Note 2: It seems that the mentioned passage from RFC 2560 (section + * 4.2.1) is open for interpretation. I've done tests against another + * responder, and found that it doesn't do the double hashing that the RFC + * seems to say one should. Therefore, all relevant functions take a flag + * saying which variant should be used. -- Richard Levitte, OpenSSL team + * and CeloCom + */ +typedef struct ocsp_basic_response_st { + OCSP_RESPDATA *tbsResponseData; + X509_ALGOR *signatureAlgorithm; + ASN1_BIT_STRING *signature; + STACK_OF(X509) *certs; +} OCSP_BASICRESP; + +/*- + * CRLReason ::= ENUMERATED { + * unspecified (0), + * keyCompromise (1), + * cACompromise (2), + * affiliationChanged (3), + * superseded (4), + * cessationOfOperation (5), + * certificateHold (6), + * removeFromCRL (8) } + */ +# define OCSP_REVOKED_STATUS_NOSTATUS -1 +# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 +# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 +# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 +# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 +# define OCSP_REVOKED_STATUS_SUPERSEDED 4 +# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 +# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 +# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 + +/*- + * CrlID ::= SEQUENCE { + * crlUrl [0] EXPLICIT IA5String OPTIONAL, + * crlNum [1] EXPLICIT INTEGER OPTIONAL, + * crlTime [2] EXPLICIT GeneralizedTime OPTIONAL } + */ +typedef struct ocsp_crl_id_st { + ASN1_IA5STRING *crlUrl; + ASN1_INTEGER *crlNum; + ASN1_GENERALIZEDTIME *crlTime; +} OCSP_CRLID; + +/*- + * ServiceLocator ::= SEQUENCE { + * issuer Name, + * locator AuthorityInfoAccessSyntax OPTIONAL } + */ +typedef struct ocsp_service_locator_st { + X509_NAME *issuer; + STACK_OF(ACCESS_DESCRIPTION) *locator; +} OCSP_SERVICELOC; + +# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" +# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" + +# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) + +# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) + +# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ + (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,bp,(char **)x,cb,NULL) + +# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\ + (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,bp,(char **)x,cb,NULL) + +# define PEM_write_bio_OCSP_REQUEST(bp,o) \ + PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ + bp,(char *)o, NULL,NULL,0,NULL,NULL) + +# define PEM_write_bio_OCSP_RESPONSE(bp,o) \ + PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ + bp,(char *)o, NULL,NULL,0,NULL,NULL) + +# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) + +# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) + +# define OCSP_REQUEST_sign(o,pkey,md) \ + ASN1_item_sign(ASN1_ITEM_rptr(OCSP_REQINFO),\ + o->optionalSignature->signatureAlgorithm,NULL,\ + o->optionalSignature->signature,o->tbsRequest,pkey,md) + +# define OCSP_BASICRESP_sign(o,pkey,md,d) \ + ASN1_item_sign(ASN1_ITEM_rptr(OCSP_RESPDATA),o->signatureAlgorithm,NULL,\ + o->signature,o->tbsResponseData,pkey,md) + +# define OCSP_REQUEST_verify(a,r) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_REQINFO),\ + a->optionalSignature->signatureAlgorithm,\ + a->optionalSignature->signature,a->tbsRequest,r) + +# define OCSP_BASICRESP_verify(a,r,d) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_RESPDATA),\ + a->signatureAlgorithm,a->signature,a->tbsResponseData,r) + +# define ASN1_BIT_STRING_digest(data,type,md,len) \ + ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) + +# define OCSP_CERTSTATUS_dup(cs)\ + (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\ + (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs)) + +OCSP_CERTID *OCSP_CERTID_dup(OCSP_CERTID *id); + +OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); +OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req, + int maxline); +int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx); +int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx); +OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline); +void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx); +void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len); +int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, + ASN1_VALUE *val); +int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval, + const ASN1_ITEM *it); +BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx); +int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, + ASN1_VALUE *val); +int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); +int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); +int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, + const char *name, const char *value); + +OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer); + +OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, + X509_NAME *issuerName, + ASN1_BIT_STRING *issuerKey, + ASN1_INTEGER *serialNumber); + +OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); + +int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); +int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); +int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); +int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); + +int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm); +int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); + +int OCSP_request_sign(OCSP_REQUEST *req, + X509 *signer, + EVP_PKEY *key, + const EVP_MD *dgst, + STACK_OF(X509) *certs, unsigned long flags); + +int OCSP_response_status(OCSP_RESPONSE *resp); +OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); + +int OCSP_resp_count(OCSP_BASICRESP *bs); +OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); +int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); +int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, + ASN1_GENERALIZEDTIME **revtime, + ASN1_GENERALIZEDTIME **thisupd, + ASN1_GENERALIZEDTIME **nextupd); +int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, + int *reason, + ASN1_GENERALIZEDTIME **revtime, + ASN1_GENERALIZEDTIME **thisupd, + ASN1_GENERALIZEDTIME **nextupd); +int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, + ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec); + +int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, + X509_STORE *store, unsigned long flags); + +int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, + int *pssl); + +int OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b); +int OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b); + +int OCSP_request_onereq_count(OCSP_REQUEST *req); +OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); +OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); +int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, + ASN1_OCTET_STRING **pikeyHash, + ASN1_INTEGER **pserial, OCSP_CERTID *cid); +int OCSP_request_is_signed(OCSP_REQUEST *req); +OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); +OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, + OCSP_CERTID *cid, + int status, int reason, + ASN1_TIME *revtime, + ASN1_TIME *thisupd, + ASN1_TIME *nextupd); +int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); +int OCSP_basic_sign(OCSP_BASICRESP *brsp, + X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, + STACK_OF(X509) *certs, unsigned long flags); + +X509_EXTENSION *OCSP_crlID_new(char *url, long *n, char *tim); + +X509_EXTENSION *OCSP_accept_responses_new(char **oids); + +X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); + +X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, char **urls); + +int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); +int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); +int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, ASN1_OBJECT *obj, + int lastpos); +int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); +X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); +X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); +void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, + int *idx); +int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, + unsigned long flags); +int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); + +int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); +int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); +int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, ASN1_OBJECT *obj, int lastpos); +int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); +X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); +X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); +void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); +int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, + unsigned long flags); +int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); + +int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); +int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); +int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, ASN1_OBJECT *obj, + int lastpos); +int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, + int lastpos); +X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); +X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); +void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, + int *idx); +int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, + int crit, unsigned long flags); +int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); + +int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); +int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); +int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, ASN1_OBJECT *obj, + int lastpos); +int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, + int lastpos); +X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); +X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); +void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, + int *idx); +int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, + int crit, unsigned long flags); +int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); + +DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) +DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) +DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) +DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) +DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) +DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) +DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) +DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) +DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) +DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) +DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) + +const char *OCSP_response_status_str(long s); +const char *OCSP_cert_status_str(long s); +const char *OCSP_crl_reason_str(long s); + +int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags); +int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags); + +int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, + X509_STORE *st, unsigned long flags); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_OCSP_strings(void); + +/* Error codes for the OCSP functions. */ + +/* Function codes. */ +# define OCSP_F_ASN1_STRING_ENCODE 100 +# define OCSP_F_D2I_OCSP_NONCE 102 +# define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 +# define OCSP_F_OCSP_BASIC_SIGN 104 +# define OCSP_F_OCSP_BASIC_VERIFY 105 +# define OCSP_F_OCSP_CERT_ID_NEW 101 +# define OCSP_F_OCSP_CHECK_DELEGATED 106 +# define OCSP_F_OCSP_CHECK_IDS 107 +# define OCSP_F_OCSP_CHECK_ISSUER 108 +# define OCSP_F_OCSP_CHECK_VALIDITY 115 +# define OCSP_F_OCSP_MATCH_ISSUERID 109 +# define OCSP_F_OCSP_PARSE_URL 114 +# define OCSP_F_OCSP_REQUEST_SIGN 110 +# define OCSP_F_OCSP_REQUEST_VERIFY 116 +# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 +# define OCSP_F_OCSP_SENDREQ_BIO 112 +# define OCSP_F_OCSP_SENDREQ_NBIO 117 +# define OCSP_F_PARSE_HTTP_LINE1 118 +# define OCSP_F_REQUEST_VERIFY 113 + +/* Reason codes. */ +# define OCSP_R_BAD_DATA 100 +# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 +# define OCSP_R_DIGEST_ERR 102 +# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 +# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 +# define OCSP_R_ERROR_PARSING_URL 121 +# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 +# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 +# define OCSP_R_NOT_BASIC_RESPONSE 104 +# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 +# define OCSP_R_NO_CONTENT 106 +# define OCSP_R_NO_PUBLIC_KEY 107 +# define OCSP_R_NO_RESPONSE_DATA 108 +# define OCSP_R_NO_REVOKED_TIME 109 +# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 +# define OCSP_R_REQUEST_NOT_SIGNED 128 +# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 +# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 +# define OCSP_R_SERVER_READ_ERROR 113 +# define OCSP_R_SERVER_RESPONSE_ERROR 114 +# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 +# define OCSP_R_SERVER_WRITE_ERROR 116 +# define OCSP_R_SIGNATURE_FAILURE 117 +# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 +# define OCSP_R_STATUS_EXPIRED 125 +# define OCSP_R_STATUS_NOT_YET_VALID 126 +# define OCSP_R_STATUS_TOO_OLD 127 +# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 +# define OCSP_R_UNKNOWN_NID 120 +# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/opensslconf.h b/External/include64/openssl/opensslconf.h new file mode 100644 index 00000000..2ddb0e36 --- /dev/null +++ b/External/include64/openssl/opensslconf.h @@ -0,0 +1,271 @@ +/* opensslconf.h */ +/* WARNING: Generated automatically from opensslconf.h.in by Configure. */ + +#ifdef __cplusplus +extern "C" { +#endif +/* OpenSSL was configured with the following options: */ +#ifndef OPENSSL_SYSNAME_WIN64A +# define OPENSSL_SYSNAME_WIN64A +#endif +#ifndef OPENSSL_DOING_MAKEDEPEND + + +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_GMP +# define OPENSSL_NO_GMP +#endif +#ifndef OPENSSL_NO_JPAKE +# define OPENSSL_NO_JPAKE +#endif +#ifndef OPENSSL_NO_KRB5 +# define OPENSSL_NO_KRB5 +#endif +#ifndef OPENSSL_NO_LIBUNBOUND +# define OPENSSL_NO_LIBUNBOUND +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_NO_RFC3779 +# define OPENSSL_NO_RFC3779 +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL2 +# define OPENSSL_NO_SSL2 +#endif +#ifndef OPENSSL_NO_STORE +# define OPENSSL_NO_STORE +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif + +#endif /* OPENSSL_DOING_MAKEDEPEND */ + +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif + +/* The OPENSSL_NO_* macros are also defined as NO_* if the application + asks for it. This is a transient feature that is provided for those + who haven't had the time to do the appropriate changes in their + applications. */ +#ifdef OPENSSL_ALGORITHM_DEFINES +# if defined(OPENSSL_NO_EC_NISTP_64_GCC_128) && !defined(NO_EC_NISTP_64_GCC_128) +# define NO_EC_NISTP_64_GCC_128 +# endif +# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP) +# define NO_GMP +# endif +# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE) +# define NO_JPAKE +# endif +# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5) +# define NO_KRB5 +# endif +# if defined(OPENSSL_NO_LIBUNBOUND) && !defined(NO_LIBUNBOUND) +# define NO_LIBUNBOUND +# endif +# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2) +# define NO_MD2 +# endif +# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5) +# define NO_RC5 +# endif +# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779) +# define NO_RFC3779 +# endif +# if defined(OPENSSL_NO_SCTP) && !defined(NO_SCTP) +# define NO_SCTP +# endif +# if defined(OPENSSL_NO_SSL_TRACE) && !defined(NO_SSL_TRACE) +# define NO_SSL_TRACE +# endif +# if defined(OPENSSL_NO_SSL2) && !defined(NO_SSL2) +# define NO_SSL2 +# endif +# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE) +# define NO_STORE +# endif +# if defined(OPENSSL_NO_UNIT_TEST) && !defined(NO_UNIT_TEST) +# define NO_UNIT_TEST +# endif +# if defined(OPENSSL_NO_WEAK_SSL_CIPHERS) && !defined(NO_WEAK_SSL_CIPHERS) +# define NO_WEAK_SSL_CIPHERS +# endif +#endif + +#define OPENSSL_CPUID_OBJ + +/* crypto/opensslconf.h.in */ + +/* Generate 80386 code? */ +#undef I386_ONLY + +#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ +#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) +#define ENGINESDIR "/usr/local/ssl/lib/engines" +#define OPENSSLDIR "/usr/local/ssl" +#endif +#endif + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION +#define OPENSSL_EXPORT_VAR_AS_FUNCTION + +#if defined(HEADER_IDEA_H) && !defined(IDEA_INT) +#define IDEA_INT unsigned int +#endif + +#if defined(HEADER_MD2_H) && !defined(MD2_INT) +#define MD2_INT unsigned int +#endif + +#if defined(HEADER_RC2_H) && !defined(RC2_INT) +/* I need to put in a mod for the alpha - eay */ +#define RC2_INT unsigned int +#endif + +#if defined(HEADER_RC4_H) +#if !defined(RC4_INT) +/* using int types make the structure larger but make the code faster + * on most boxes I have tested - up to %20 faster. */ +/* + * I don't know what does "most" mean, but declaring "int" is a must on: + * - Intel P6 because partial register stalls are very expensive; + * - elder Alpha because it lacks byte load/store instructions; + */ +#define RC4_INT unsigned int +#endif +#if !defined(RC4_CHUNK) +/* + * This enables code handling data aligned at natural CPU word + * boundary. See crypto/rc4/rc4_enc.c for further details. + */ +#define RC4_CHUNK unsigned long long +#endif +#endif + +#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG) +/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a + * %20 speed up (longs are 8 bytes, int's are 4). */ +#ifndef DES_LONG +#define DES_LONG unsigned int +#endif +#endif + +#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) +#define CONFIG_HEADER_BN_H +#undef BN_LLONG + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#define SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT +#endif + +#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H) +#define CONFIG_HEADER_RC4_LOCL_H +/* if this is defined data[i] is used instead of *data, this is a %20 + * speedup on x86 */ +#undef RC4_INDEX +#endif + +#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H) +#define CONFIG_HEADER_BF_LOCL_H +#undef BF_PTR +#endif /* HEADER_BF_LOCL_H */ + +#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H) +#define CONFIG_HEADER_DES_LOCL_H +#ifndef DES_DEFAULT_OPTIONS +/* the following is tweaked from a config script, that is why it is a + * protected undef/define */ +#ifndef DES_PTR +#undef DES_PTR +#endif + +/* This helps C compiler generate the correct code for multiple functional + * units. It reduces register dependancies at the expense of 2 more + * registers */ +#ifndef DES_RISC1 +#undef DES_RISC1 +#endif + +#ifndef DES_RISC2 +#undef DES_RISC2 +#endif + +#if defined(DES_RISC1) && defined(DES_RISC2) +#error YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! +#endif + +/* Unroll the inner loop, this sometimes helps, sometimes hinders. + * Very mucy CPU dependant */ +#ifndef DES_UNROLL +#undef DES_UNROLL +#endif + +/* These default values were supplied by + * Peter Gutman + * They are only used if nothing else has been defined */ +#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL) +/* Special defines which change the way the code is built depending on the + CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find + even newer MIPS CPU's, but at the moment one size fits all for + optimization options. Older Sparc's work better with only UNROLL, but + there's no way to tell at compile time what it is you're running on */ + +#if defined( __sun ) || defined ( sun ) /* Newer Sparc's */ +# define DES_PTR +# define DES_RISC1 +# define DES_UNROLL +#elif defined( __ultrix ) /* Older MIPS */ +# define DES_PTR +# define DES_RISC2 +# define DES_UNROLL +#elif defined( __osf1__ ) /* Alpha */ +# define DES_PTR +# define DES_RISC2 +#elif defined ( _AIX ) /* RS6000 */ + /* Unknown */ +#elif defined( __hpux ) /* HP-PA */ + /* Unknown */ +#elif defined( __aux ) /* 68K */ + /* Unknown */ +#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */ +# define DES_UNROLL +#elif defined( __sgi ) /* Newer MIPS */ +# define DES_PTR +# define DES_RISC2 +# define DES_UNROLL +#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */ +# define DES_PTR +# define DES_RISC1 +# define DES_UNROLL +#endif /* Systems-specific speed defines */ +#endif + +#endif /* DES_DEFAULT_OPTIONS */ +#endif /* HEADER_DES_LOCL_H */ +#ifdef __cplusplus +} +#endif diff --git a/External/include64/openssl/opensslv.h b/External/include64/openssl/opensslv.h new file mode 100644 index 00000000..13fe4402 --- /dev/null +++ b/External/include64/openssl/opensslv.h @@ -0,0 +1,97 @@ +#ifndef HEADER_OPENSSLV_H +# define HEADER_OPENSSLV_H + +#ifdef __cplusplus +extern "C" { +#endif + +/*- + * Numeric release version identifier: + * MNNFFPPS: major minor fix patch status + * The status nibble has one of the values 0 for development, 1 to e for betas + * 1 to 14, and f for release. The patch level is exactly that. + * For example: + * 0.9.3-dev 0x00903000 + * 0.9.3-beta1 0x00903001 + * 0.9.3-beta2-dev 0x00903002 + * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) + * 0.9.3 0x0090300f + * 0.9.3a 0x0090301f + * 0.9.4 0x0090400f + * 1.2.3z 0x102031af + * + * For continuity reasons (because 0.9.5 is already out, and is coded + * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level + * part is slightly different, by setting the highest bit. This means + * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start + * with 0x0090600S... + * + * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) + * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for + * major minor fix final patch/beta) + */ +# define OPENSSL_VERSION_NUMBER 0x1000208fL +# ifdef OPENSSL_FIPS +# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2h-fips 3 May 2016" +# else +# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2h 3 May 2016" +# endif +# define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT + +/*- + * The macros below are to be used for shared library (.so, .dll, ...) + * versioning. That kind of versioning works a bit differently between + * operating systems. The most usual scheme is to set a major and a minor + * number, and have the runtime loader check that the major number is equal + * to what it was at application link time, while the minor number has to + * be greater or equal to what it was at application link time. With this + * scheme, the version number is usually part of the file name, like this: + * + * libcrypto.so.0.9 + * + * Some unixen also make a softlink with the major verson number only: + * + * libcrypto.so.0 + * + * On Tru64 and IRIX 6.x it works a little bit differently. There, the + * shared library version is stored in the file, and is actually a series + * of versions, separated by colons. The rightmost version present in the + * library when linking an application is stored in the application to be + * matched at run time. When the application is run, a check is done to + * see if the library version stored in the application matches any of the + * versions in the version string of the library itself. + * This version string can be constructed in any way, depending on what + * kind of matching is desired. However, to implement the same scheme as + * the one used in the other unixen, all compatible versions, from lowest + * to highest, should be part of the string. Consecutive builds would + * give the following versions strings: + * + * 3.0 + * 3.0:3.1 + * 3.0:3.1:3.2 + * 4.0 + * 4.0:4.1 + * + * Notice how version 4 is completely incompatible with version, and + * therefore give the breach you can see. + * + * There may be other schemes as well that I haven't yet discovered. + * + * So, here's the way it works here: first of all, the library version + * number doesn't need at all to match the overall OpenSSL version. + * However, it's nice and more understandable if it actually does. + * The current library version is stored in the macro SHLIB_VERSION_NUMBER, + * which is just a piece of text in the format "M.m.e" (Major, minor, edit). + * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, + * we need to keep a history of version numbers, which is done in the + * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and + * should only keep the versions that are binary compatible with the current. + */ +# define SHLIB_VERSION_HISTORY "" +# define SHLIB_VERSION_NUMBER "1.0.0" + + +#ifdef __cplusplus +} +#endif +#endif /* HEADER_OPENSSLV_H */ diff --git a/External/include64/openssl/ossl_typ.h b/External/include64/openssl/ossl_typ.h new file mode 100644 index 00000000..9144ea2c --- /dev/null +++ b/External/include64/openssl/ossl_typ.h @@ -0,0 +1,211 @@ +/* ==================================================================== + * Copyright (c) 1998-2001 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_OPENSSL_TYPES_H +# define HEADER_OPENSSL_TYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +# ifdef NO_ASN1_TYPEDEFS +# define ASN1_INTEGER ASN1_STRING +# define ASN1_ENUMERATED ASN1_STRING +# define ASN1_BIT_STRING ASN1_STRING +# define ASN1_OCTET_STRING ASN1_STRING +# define ASN1_PRINTABLESTRING ASN1_STRING +# define ASN1_T61STRING ASN1_STRING +# define ASN1_IA5STRING ASN1_STRING +# define ASN1_UTCTIME ASN1_STRING +# define ASN1_GENERALIZEDTIME ASN1_STRING +# define ASN1_TIME ASN1_STRING +# define ASN1_GENERALSTRING ASN1_STRING +# define ASN1_UNIVERSALSTRING ASN1_STRING +# define ASN1_BMPSTRING ASN1_STRING +# define ASN1_VISIBLESTRING ASN1_STRING +# define ASN1_UTF8STRING ASN1_STRING +# define ASN1_BOOLEAN int +# define ASN1_NULL int +# else +typedef struct asn1_string_st ASN1_INTEGER; +typedef struct asn1_string_st ASN1_ENUMERATED; +typedef struct asn1_string_st ASN1_BIT_STRING; +typedef struct asn1_string_st ASN1_OCTET_STRING; +typedef struct asn1_string_st ASN1_PRINTABLESTRING; +typedef struct asn1_string_st ASN1_T61STRING; +typedef struct asn1_string_st ASN1_IA5STRING; +typedef struct asn1_string_st ASN1_GENERALSTRING; +typedef struct asn1_string_st ASN1_UNIVERSALSTRING; +typedef struct asn1_string_st ASN1_BMPSTRING; +typedef struct asn1_string_st ASN1_UTCTIME; +typedef struct asn1_string_st ASN1_TIME; +typedef struct asn1_string_st ASN1_GENERALIZEDTIME; +typedef struct asn1_string_st ASN1_VISIBLESTRING; +typedef struct asn1_string_st ASN1_UTF8STRING; +typedef struct asn1_string_st ASN1_STRING; +typedef int ASN1_BOOLEAN; +typedef int ASN1_NULL; +# endif + +typedef struct asn1_object_st ASN1_OBJECT; + +typedef struct ASN1_ITEM_st ASN1_ITEM; +typedef struct asn1_pctx_st ASN1_PCTX; + +# ifdef OPENSSL_SYS_WIN32 +# undef X509_NAME +# undef X509_EXTENSIONS +# undef X509_CERT_PAIR +# undef PKCS7_ISSUER_AND_SERIAL +# undef OCSP_REQUEST +# undef OCSP_RESPONSE +# endif + +# ifdef BIGNUM +# undef BIGNUM +# endif +typedef struct bignum_st BIGNUM; +typedef struct bignum_ctx BN_CTX; +typedef struct bn_blinding_st BN_BLINDING; +typedef struct bn_mont_ctx_st BN_MONT_CTX; +typedef struct bn_recp_ctx_st BN_RECP_CTX; +typedef struct bn_gencb_st BN_GENCB; + +typedef struct buf_mem_st BUF_MEM; + +typedef struct evp_cipher_st EVP_CIPHER; +typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; +typedef struct env_md_st EVP_MD; +typedef struct env_md_ctx_st EVP_MD_CTX; +typedef struct evp_pkey_st EVP_PKEY; + +typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; + +typedef struct evp_pkey_method_st EVP_PKEY_METHOD; +typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; + +typedef struct dh_st DH; +typedef struct dh_method DH_METHOD; + +typedef struct dsa_st DSA; +typedef struct dsa_method DSA_METHOD; + +typedef struct rsa_st RSA; +typedef struct rsa_meth_st RSA_METHOD; + +typedef struct rand_meth_st RAND_METHOD; + +typedef struct ecdh_method ECDH_METHOD; +typedef struct ecdsa_method ECDSA_METHOD; + +typedef struct x509_st X509; +typedef struct X509_algor_st X509_ALGOR; +typedef struct X509_crl_st X509_CRL; +typedef struct x509_crl_method_st X509_CRL_METHOD; +typedef struct x509_revoked_st X509_REVOKED; +typedef struct X509_name_st X509_NAME; +typedef struct X509_pubkey_st X509_PUBKEY; +typedef struct x509_store_st X509_STORE; +typedef struct x509_store_ctx_st X509_STORE_CTX; + +typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; + +typedef struct v3_ext_ctx X509V3_CTX; +typedef struct conf_st CONF; + +typedef struct store_st STORE; +typedef struct store_method_st STORE_METHOD; + +typedef struct ui_st UI; +typedef struct ui_method_st UI_METHOD; + +typedef struct st_ERR_FNS ERR_FNS; + +typedef struct engine_st ENGINE; +typedef struct ssl_st SSL; +typedef struct ssl_ctx_st SSL_CTX; + +typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; +typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; +typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; +typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; + +typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; +typedef struct DIST_POINT_st DIST_POINT; +typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; +typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; + + /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */ +# define DECLARE_PKCS12_STACK_OF(type)/* Nothing */ +# define IMPLEMENT_PKCS12_STACK_OF(type)/* Nothing */ + +typedef struct crypto_ex_data_st CRYPTO_EX_DATA; +/* Callback types for crypto.h */ +typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, + void *from_d, int idx, long argl, void *argp); + +typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; +typedef struct ocsp_response_st OCSP_RESPONSE; +typedef struct ocsp_responder_id_st OCSP_RESPID; + +#ifdef __cplusplus +} +#endif +#endif /* def HEADER_OPENSSL_TYPES_H */ diff --git a/External/include64/openssl/pem.h b/External/include64/openssl/pem.h new file mode 100644 index 00000000..d3b23fc9 --- /dev/null +++ b/External/include64/openssl/pem.h @@ -0,0 +1,615 @@ +/* crypto/pem/pem.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_PEM_H +# define HEADER_PEM_H + +# include +# ifndef OPENSSL_NO_BIO +# include +# endif +# ifndef OPENSSL_NO_STACK +# include +# endif +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define PEM_BUFSIZE 1024 + +# define PEM_OBJ_UNDEF 0 +# define PEM_OBJ_X509 1 +# define PEM_OBJ_X509_REQ 2 +# define PEM_OBJ_CRL 3 +# define PEM_OBJ_SSL_SESSION 4 +# define PEM_OBJ_PRIV_KEY 10 +# define PEM_OBJ_PRIV_RSA 11 +# define PEM_OBJ_PRIV_DSA 12 +# define PEM_OBJ_PRIV_DH 13 +# define PEM_OBJ_PUB_RSA 14 +# define PEM_OBJ_PUB_DSA 15 +# define PEM_OBJ_PUB_DH 16 +# define PEM_OBJ_DHPARAMS 17 +# define PEM_OBJ_DSAPARAMS 18 +# define PEM_OBJ_PRIV_RSA_PUBLIC 19 +# define PEM_OBJ_PRIV_ECDSA 20 +# define PEM_OBJ_PUB_ECDSA 21 +# define PEM_OBJ_ECPARAMETERS 22 + +# define PEM_ERROR 30 +# define PEM_DEK_DES_CBC 40 +# define PEM_DEK_IDEA_CBC 45 +# define PEM_DEK_DES_EDE 50 +# define PEM_DEK_DES_ECB 60 +# define PEM_DEK_RSA 70 +# define PEM_DEK_RSA_MD2 80 +# define PEM_DEK_RSA_MD5 90 + +# define PEM_MD_MD2 NID_md2 +# define PEM_MD_MD5 NID_md5 +# define PEM_MD_SHA NID_sha +# define PEM_MD_MD2_RSA NID_md2WithRSAEncryption +# define PEM_MD_MD5_RSA NID_md5WithRSAEncryption +# define PEM_MD_SHA_RSA NID_sha1WithRSAEncryption + +# define PEM_STRING_X509_OLD "X509 CERTIFICATE" +# define PEM_STRING_X509 "CERTIFICATE" +# define PEM_STRING_X509_PAIR "CERTIFICATE PAIR" +# define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" +# define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" +# define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" +# define PEM_STRING_X509_CRL "X509 CRL" +# define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" +# define PEM_STRING_PUBLIC "PUBLIC KEY" +# define PEM_STRING_RSA "RSA PRIVATE KEY" +# define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" +# define PEM_STRING_DSA "DSA PRIVATE KEY" +# define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" +# define PEM_STRING_PKCS7 "PKCS7" +# define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" +# define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" +# define PEM_STRING_PKCS8INF "PRIVATE KEY" +# define PEM_STRING_DHPARAMS "DH PARAMETERS" +# define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS" +# define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" +# define PEM_STRING_DSAPARAMS "DSA PARAMETERS" +# define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" +# define PEM_STRING_ECPARAMETERS "EC PARAMETERS" +# define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" +# define PEM_STRING_PARAMETERS "PARAMETERS" +# define PEM_STRING_CMS "CMS" + + /* + * Note that this structure is initialised by PEM_SealInit and cleaned up + * by PEM_SealFinal (at least for now) + */ +typedef struct PEM_Encode_Seal_st { + EVP_ENCODE_CTX encode; + EVP_MD_CTX md; + EVP_CIPHER_CTX cipher; +} PEM_ENCODE_SEAL_CTX; + +/* enc_type is one off */ +# define PEM_TYPE_ENCRYPTED 10 +# define PEM_TYPE_MIC_ONLY 20 +# define PEM_TYPE_MIC_CLEAR 30 +# define PEM_TYPE_CLEAR 40 + +typedef struct pem_recip_st { + char *name; + X509_NAME *dn; + int cipher; + int key_enc; + /* char iv[8]; unused and wrong size */ +} PEM_USER; + +typedef struct pem_ctx_st { + int type; /* what type of object */ + struct { + int version; + int mode; + } proc_type; + + char *domain; + + struct { + int cipher; + /*- + unused, and wrong size + unsigned char iv[8]; */ + } DEK_info; + + PEM_USER *originator; + + int num_recipient; + PEM_USER **recipient; +/*- + XXX(ben): don#t think this is used! + STACK *x509_chain; / * certificate chain */ + EVP_MD *md; /* signature type */ + + int md_enc; /* is the md encrypted or not? */ + int md_len; /* length of md_data */ + char *md_data; /* message digest, could be pkey encrypted */ + + EVP_CIPHER *dec; /* date encryption cipher */ + int key_len; /* key length */ + unsigned char *key; /* key */ + /*- + unused, and wrong size + unsigned char iv[8]; */ + + int data_enc; /* is the data encrypted */ + int data_len; + unsigned char *data; +} PEM_CTX; + +/* + * These macros make the PEM_read/PEM_write functions easier to maintain and + * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or + * IMPLEMENT_PEM_rw_cb(...) + */ + +# ifdef OPENSSL_NO_FP_API + +# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ +# else + +# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ +type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ +{ \ +return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \ +} + +# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, type *x) \ +{ \ +return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, const type *x) \ +{ \ +return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, \ + void *u) \ + { \ + return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ + } + +# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, \ + void *u) \ + { \ + return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ + } + +# endif + +# define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ +type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\ +{ \ +return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str,bp,(void **)x,cb,u); \ +} + +# define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, type *x) \ +{ \ +return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, const type *x) \ +{ \ +return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ + { \ + return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u); \ + } + +# define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ + { \ + return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); \ + } + +# define IMPLEMENT_PEM_write(name, type, str, asn1) \ + IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ + IMPLEMENT_PEM_write_fp(name, type, str, asn1) + +# define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) + +# define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) + +# define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) + +# define IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ + IMPLEMENT_PEM_read_fp(name, type, str, asn1) + +# define IMPLEMENT_PEM_rw(name, type, str, asn1) \ + IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_write(name, type, str, asn1) + +# define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ + IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_write_const(name, type, str, asn1) + +# define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ + IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb(name, type, str, asn1) + +/* These are the same except they are for the declarations */ + +# if defined(OPENSSL_NO_FP_API) + +# define DECLARE_PEM_read_fp(name, type) /**/ +# define DECLARE_PEM_write_fp(name, type) /**/ +# define DECLARE_PEM_write_cb_fp(name, type) /**/ +# else + +# define DECLARE_PEM_read_fp(name, type) \ + type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u); + +# define DECLARE_PEM_write_fp(name, type) \ + int PEM_write_##name(FILE *fp, type *x); + +# define DECLARE_PEM_write_fp_const(name, type) \ + int PEM_write_##name(FILE *fp, const type *x); + +# define DECLARE_PEM_write_cb_fp(name, type) \ + int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u); + +# endif + +# ifndef OPENSSL_NO_BIO +# define DECLARE_PEM_read_bio(name, type) \ + type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u); + +# define DECLARE_PEM_write_bio(name, type) \ + int PEM_write_bio_##name(BIO *bp, type *x); + +# define DECLARE_PEM_write_bio_const(name, type) \ + int PEM_write_bio_##name(BIO *bp, const type *x); + +# define DECLARE_PEM_write_cb_bio(name, type) \ + int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u); + +# else + +# define DECLARE_PEM_read_bio(name, type) /**/ +# define DECLARE_PEM_write_bio(name, type) /**/ +# define DECLARE_PEM_write_bio_const(name, type) /**/ +# define DECLARE_PEM_write_cb_bio(name, type) /**/ +# endif +# define DECLARE_PEM_write(name, type) \ + DECLARE_PEM_write_bio(name, type) \ + DECLARE_PEM_write_fp(name, type) +# define DECLARE_PEM_write_const(name, type) \ + DECLARE_PEM_write_bio_const(name, type) \ + DECLARE_PEM_write_fp_const(name, type) +# define DECLARE_PEM_write_cb(name, type) \ + DECLARE_PEM_write_cb_bio(name, type) \ + DECLARE_PEM_write_cb_fp(name, type) +# define DECLARE_PEM_read(name, type) \ + DECLARE_PEM_read_bio(name, type) \ + DECLARE_PEM_read_fp(name, type) +# define DECLARE_PEM_rw(name, type) \ + DECLARE_PEM_read(name, type) \ + DECLARE_PEM_write(name, type) +# define DECLARE_PEM_rw_const(name, type) \ + DECLARE_PEM_read(name, type) \ + DECLARE_PEM_write_const(name, type) +# define DECLARE_PEM_rw_cb(name, type) \ + DECLARE_PEM_read(name, type) \ + DECLARE_PEM_write_cb(name, type) +# if 1 +/* "userdata": new with OpenSSL 0.9.4 */ +typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); +# else +/* OpenSSL 0.9.3, 0.9.3a */ +typedef int pem_password_cb (char *buf, int size, int rwflag); +# endif + +int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); +int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, + pem_password_cb *callback, void *u); + +# ifndef OPENSSL_NO_BIO +int PEM_read_bio(BIO *bp, char **name, char **header, + unsigned char **data, long *len); +int PEM_write_bio(BIO *bp, const char *name, const char *hdr, + const unsigned char *data, long len); +int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, + const char *name, BIO *bp, pem_password_cb *cb, + void *u); +void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, + pem_password_cb *cb, void *u); +int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, + const EVP_CIPHER *enc, unsigned char *kstr, int klen, + pem_password_cb *cb, void *u); + +STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, + pem_password_cb *cb, void *u); +int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, + unsigned char *kstr, int klen, + pem_password_cb *cd, void *u); +# endif + +int PEM_read(FILE *fp, char **name, char **header, + unsigned char **data, long *len); +int PEM_write(FILE *fp, const char *name, const char *hdr, + const unsigned char *data, long len); +void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, + pem_password_cb *cb, void *u); +int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, + void *x, const EVP_CIPHER *enc, unsigned char *kstr, + int klen, pem_password_cb *callback, void *u); +STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, + pem_password_cb *cb, void *u); + +int PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, + EVP_MD *md_type, unsigned char **ek, int *ekl, + unsigned char *iv, EVP_PKEY **pubk, int npubk); +void PEM_SealUpdate(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *out, int *outl, + unsigned char *in, int inl); +int PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl, + unsigned char *out, int *outl, EVP_PKEY *priv); + +void PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); +void PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); +int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, + unsigned int *siglen, EVP_PKEY *pkey); + +int PEM_def_callback(char *buf, int num, int w, void *key); +void PEM_proc_type(char *buf, int type); +void PEM_dek_info(char *buf, const char *type, int len, char *str); + +# include + +DECLARE_PEM_rw(X509, X509) +DECLARE_PEM_rw(X509_AUX, X509) +DECLARE_PEM_rw(X509_CERT_PAIR, X509_CERT_PAIR) +DECLARE_PEM_rw(X509_REQ, X509_REQ) +DECLARE_PEM_write(X509_REQ_NEW, X509_REQ) +DECLARE_PEM_rw(X509_CRL, X509_CRL) +DECLARE_PEM_rw(PKCS7, PKCS7) +DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) +DECLARE_PEM_rw(PKCS8, X509_SIG) +DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) +# ifndef OPENSSL_NO_RSA +DECLARE_PEM_rw_cb(RSAPrivateKey, RSA) +DECLARE_PEM_rw_const(RSAPublicKey, RSA) +DECLARE_PEM_rw(RSA_PUBKEY, RSA) +# endif +# ifndef OPENSSL_NO_DSA +DECLARE_PEM_rw_cb(DSAPrivateKey, DSA) +DECLARE_PEM_rw(DSA_PUBKEY, DSA) +DECLARE_PEM_rw_const(DSAparams, DSA) +# endif +# ifndef OPENSSL_NO_EC +DECLARE_PEM_rw_const(ECPKParameters, EC_GROUP) +DECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY) +DECLARE_PEM_rw(EC_PUBKEY, EC_KEY) +# endif +# ifndef OPENSSL_NO_DH +DECLARE_PEM_rw_const(DHparams, DH) +DECLARE_PEM_write_const(DHxparams, DH) +# endif +DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) +DECLARE_PEM_rw(PUBKEY, EVP_PKEY) + +int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, + char *, int, pem_password_cb *, void *); +int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, + void *u); + +int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); + +EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, + void *u); + +int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, pem_password_cb *cd, + void *u); + +EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); +int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); + +EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); +EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); +EVP_PKEY *b2i_PrivateKey_bio(BIO *in); +EVP_PKEY *b2i_PublicKey_bio(BIO *in); +int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk); +int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); +# ifndef OPENSSL_NO_RC4 +EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); +int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, + pem_password_cb *cb, void *u); +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_PEM_strings(void); + +/* Error codes for the PEM functions. */ + +/* Function codes. */ +# define PEM_F_B2I_DSS 127 +# define PEM_F_B2I_PVK_BIO 128 +# define PEM_F_B2I_RSA 129 +# define PEM_F_CHECK_BITLEN_DSA 130 +# define PEM_F_CHECK_BITLEN_RSA 131 +# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 +# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 +# define PEM_F_DO_B2I 132 +# define PEM_F_DO_B2I_BIO 133 +# define PEM_F_DO_BLOB_HEADER 134 +# define PEM_F_DO_PK8PKEY 126 +# define PEM_F_DO_PK8PKEY_FP 125 +# define PEM_F_DO_PVK_BODY 135 +# define PEM_F_DO_PVK_HEADER 136 +# define PEM_F_I2B_PVK 137 +# define PEM_F_I2B_PVK_BIO 138 +# define PEM_F_LOAD_IV 101 +# define PEM_F_PEM_ASN1_READ 102 +# define PEM_F_PEM_ASN1_READ_BIO 103 +# define PEM_F_PEM_ASN1_WRITE 104 +# define PEM_F_PEM_ASN1_WRITE_BIO 105 +# define PEM_F_PEM_DEF_CALLBACK 100 +# define PEM_F_PEM_DO_HEADER 106 +# define PEM_F_PEM_F_PEM_WRITE_PKCS8PRIVATEKEY 118 +# define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 +# define PEM_F_PEM_PK8PKEY 119 +# define PEM_F_PEM_READ 108 +# define PEM_F_PEM_READ_BIO 109 +# define PEM_F_PEM_READ_BIO_DHPARAMS 141 +# define PEM_F_PEM_READ_BIO_PARAMETERS 140 +# define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 +# define PEM_F_PEM_READ_DHPARAMS 142 +# define PEM_F_PEM_READ_PRIVATEKEY 124 +# define PEM_F_PEM_SEALFINAL 110 +# define PEM_F_PEM_SEALINIT 111 +# define PEM_F_PEM_SIGNFINAL 112 +# define PEM_F_PEM_WRITE 113 +# define PEM_F_PEM_WRITE_BIO 114 +# define PEM_F_PEM_WRITE_PRIVATEKEY 139 +# define PEM_F_PEM_X509_INFO_READ 115 +# define PEM_F_PEM_X509_INFO_READ_BIO 116 +# define PEM_F_PEM_X509_INFO_WRITE_BIO 117 + +/* Reason codes. */ +# define PEM_R_BAD_BASE64_DECODE 100 +# define PEM_R_BAD_DECRYPT 101 +# define PEM_R_BAD_END_LINE 102 +# define PEM_R_BAD_IV_CHARS 103 +# define PEM_R_BAD_MAGIC_NUMBER 116 +# define PEM_R_BAD_PASSWORD_READ 104 +# define PEM_R_BAD_VERSION_NUMBER 117 +# define PEM_R_BIO_WRITE_FAILURE 118 +# define PEM_R_CIPHER_IS_NULL 127 +# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 +# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 +# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 +# define PEM_R_INCONSISTENT_HEADER 121 +# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 +# define PEM_R_KEYBLOB_TOO_SHORT 123 +# define PEM_R_NOT_DEK_INFO 105 +# define PEM_R_NOT_ENCRYPTED 106 +# define PEM_R_NOT_PROC_TYPE 107 +# define PEM_R_NO_START_LINE 108 +# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 +# define PEM_R_PUBLIC_KEY_NO_RSA 110 +# define PEM_R_PVK_DATA_TOO_SHORT 124 +# define PEM_R_PVK_TOO_SHORT 125 +# define PEM_R_READ_KEY 111 +# define PEM_R_SHORT_HEADER 112 +# define PEM_R_UNSUPPORTED_CIPHER 113 +# define PEM_R_UNSUPPORTED_ENCRYPTION 114 +# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/pem2.h b/External/include64/openssl/pem2.h new file mode 100644 index 00000000..84897d5e --- /dev/null +++ b/External/include64/openssl/pem2.h @@ -0,0 +1,70 @@ +/* ==================================================================== + * Copyright (c) 1999 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +/* + * This header only exists to break a circular dependency between pem and err + * Ben 30 Jan 1999. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef HEADER_PEM_H +void ERR_load_PEM_strings(void); +#endif + +#ifdef __cplusplus +} +#endif diff --git a/External/include64/openssl/pkcs12.h b/External/include64/openssl/pkcs12.h new file mode 100644 index 00000000..a39adf5e --- /dev/null +++ b/External/include64/openssl/pkcs12.h @@ -0,0 +1,342 @@ +/* pkcs12.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project + * 1999. + */ +/* ==================================================================== + * Copyright (c) 1999 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_PKCS12_H +# define HEADER_PKCS12_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define PKCS12_KEY_ID 1 +# define PKCS12_IV_ID 2 +# define PKCS12_MAC_ID 3 + +/* Default iteration count */ +# ifndef PKCS12_DEFAULT_ITER +# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER +# endif + +# define PKCS12_MAC_KEY_LENGTH 20 + +# define PKCS12_SALT_LEN 8 + +/* Uncomment out next line for unicode password and names, otherwise ASCII */ + +/* + * #define PBE_UNICODE + */ + +# ifdef PBE_UNICODE +# define PKCS12_key_gen PKCS12_key_gen_uni +# define PKCS12_add_friendlyname PKCS12_add_friendlyname_uni +# else +# define PKCS12_key_gen PKCS12_key_gen_asc +# define PKCS12_add_friendlyname PKCS12_add_friendlyname_asc +# endif + +/* MS key usage constants */ + +# define KEY_EX 0x10 +# define KEY_SIG 0x80 + +typedef struct { + X509_SIG *dinfo; + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *iter; /* defaults to 1 */ +} PKCS12_MAC_DATA; + +typedef struct { + ASN1_INTEGER *version; + PKCS12_MAC_DATA *mac; + PKCS7 *authsafes; +} PKCS12; + +typedef struct { + ASN1_OBJECT *type; + union { + struct pkcs12_bag_st *bag; /* secret, crl and certbag */ + struct pkcs8_priv_key_info_st *keybag; /* keybag */ + X509_SIG *shkeybag; /* shrouded key bag */ + STACK_OF(PKCS12_SAFEBAG) *safes; + ASN1_TYPE *other; + } value; + STACK_OF(X509_ATTRIBUTE) *attrib; +} PKCS12_SAFEBAG; + +DECLARE_STACK_OF(PKCS12_SAFEBAG) +DECLARE_ASN1_SET_OF(PKCS12_SAFEBAG) +DECLARE_PKCS12_STACK_OF(PKCS12_SAFEBAG) + +typedef struct pkcs12_bag_st { + ASN1_OBJECT *type; + union { + ASN1_OCTET_STRING *x509cert; + ASN1_OCTET_STRING *x509crl; + ASN1_OCTET_STRING *octet; + ASN1_IA5STRING *sdsicert; + ASN1_TYPE *other; /* Secret or other bag */ + } value; +} PKCS12_BAGS; + +# define PKCS12_ERROR 0 +# define PKCS12_OK 1 + +/* Compatibility macros */ + +# define M_PKCS12_x5092certbag PKCS12_x5092certbag +# define M_PKCS12_x509crl2certbag PKCS12_x509crl2certbag + +# define M_PKCS12_certbag2x509 PKCS12_certbag2x509 +# define M_PKCS12_certbag2x509crl PKCS12_certbag2x509crl + +# define M_PKCS12_unpack_p7data PKCS12_unpack_p7data +# define M_PKCS12_pack_authsafes PKCS12_pack_authsafes +# define M_PKCS12_unpack_authsafes PKCS12_unpack_authsafes +# define M_PKCS12_unpack_p7encdata PKCS12_unpack_p7encdata + +# define M_PKCS12_decrypt_skey PKCS12_decrypt_skey +# define M_PKCS8_decrypt PKCS8_decrypt + +# define M_PKCS12_bag_type(bg) OBJ_obj2nid((bg)->type) +# define M_PKCS12_cert_bag_type(bg) OBJ_obj2nid((bg)->value.bag->type) +# define M_PKCS12_crl_bag_type M_PKCS12_cert_bag_type + +# define PKCS12_get_attr(bag, attr_nid) \ + PKCS12_get_attr_gen(bag->attrib, attr_nid) + +# define PKCS8_get_attr(p8, attr_nid) \ + PKCS12_get_attr_gen(p8->attributes, attr_nid) + +# define PKCS12_mac_present(p12) ((p12)->mac ? 1 : 0) + +PKCS12_SAFEBAG *PKCS12_x5092certbag(X509 *x509); +PKCS12_SAFEBAG *PKCS12_x509crl2certbag(X509_CRL *crl); +X509 *PKCS12_certbag2x509(PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_certbag2x509crl(PKCS12_SAFEBAG *bag); + +PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, + int nid1, int nid2); +PKCS12_SAFEBAG *PKCS12_MAKE_KEYBAG(PKCS8_PRIV_KEY_INFO *p8); +PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(X509_SIG *p8, const char *pass, + int passlen); +PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(PKCS12_SAFEBAG *bag, + const char *pass, int passlen); +X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, + const char *pass, int passlen, unsigned char *salt, + int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); +PKCS12_SAFEBAG *PKCS12_MAKE_SHKEYBAG(int pbe_nid, const char *pass, + int passlen, unsigned char *salt, + int saltlen, int iter, + PKCS8_PRIV_KEY_INFO *p8); +PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); +STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); +PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + STACK_OF(PKCS12_SAFEBAG) *bags); +STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, + int passlen); + +int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); +STACK_OF(PKCS7) *PKCS12_unpack_authsafes(PKCS12 *p12); + +int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, + int namelen); +int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, + int namelen); +int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, + int namelen); +int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, + const unsigned char *name, int namelen); +int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); +ASN1_TYPE *PKCS12_get_attr_gen(STACK_OF(X509_ATTRIBUTE) *attrs, int attr_nid); +char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); +unsigned char *PKCS12_pbe_crypt(X509_ALGOR *algor, const char *pass, + int passlen, unsigned char *in, int inlen, + unsigned char **data, int *datalen, + int en_de); +void *PKCS12_item_decrypt_d2i(X509_ALGOR *algor, const ASN1_ITEM *it, + const char *pass, int passlen, + ASN1_OCTET_STRING *oct, int zbuf); +ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, + const ASN1_ITEM *it, + const char *pass, int passlen, + void *obj, int zbuf); +PKCS12 *PKCS12_init(int mode); +int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); +int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); +int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md_type, int en_de); +int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, + unsigned char *mac, unsigned int *maclen); +int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); +int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type); +int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, + int saltlen, const EVP_MD *md_type); +unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, + unsigned char **uni, int *unilen); +char *OPENSSL_uni2asc(unsigned char *uni, int unilen); + +DECLARE_ASN1_FUNCTIONS(PKCS12) +DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) +DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) +DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) + +DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) +DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) + +void PKCS12_PBE_add(void); +int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, + STACK_OF(X509) **ca); +PKCS12 *PKCS12_create(char *pass, char *name, EVP_PKEY *pkey, X509 *cert, + STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, + int mac_iter, int keytype); + +PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); +PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, + EVP_PKEY *key, int key_usage, int iter, + int key_nid, char *pass); +int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, + int safe_nid, int iter, char *pass); +PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); + +int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); +int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); +PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); +PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); +int PKCS12_newpass(PKCS12 *p12, char *oldpass, char *newpass); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_PKCS12_strings(void); + +/* Error codes for the PKCS12 functions. */ + +/* Function codes. */ +# define PKCS12_F_PARSE_BAG 129 +# define PKCS12_F_PARSE_BAGS 103 +# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME 100 +# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_ASC 127 +# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_UNI 102 +# define PKCS12_F_PKCS12_ADD_LOCALKEYID 104 +# define PKCS12_F_PKCS12_CREATE 105 +# define PKCS12_F_PKCS12_GEN_MAC 107 +# define PKCS12_F_PKCS12_INIT 109 +# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 +# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 +# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 +# define PKCS12_F_PKCS12_KEY_GEN_ASC 110 +# define PKCS12_F_PKCS12_KEY_GEN_UNI 111 +# define PKCS12_F_PKCS12_MAKE_KEYBAG 112 +# define PKCS12_F_PKCS12_MAKE_SHKEYBAG 113 +# define PKCS12_F_PKCS12_NEWPASS 128 +# define PKCS12_F_PKCS12_PACK_P7DATA 114 +# define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 +# define PKCS12_F_PKCS12_PARSE 118 +# define PKCS12_F_PKCS12_PBE_CRYPT 119 +# define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 +# define PKCS12_F_PKCS12_SETUP_MAC 122 +# define PKCS12_F_PKCS12_SET_MAC 123 +# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 +# define PKCS12_F_PKCS12_UNPACK_P7DATA 131 +# define PKCS12_F_PKCS12_VERIFY_MAC 126 +# define PKCS12_F_PKCS8_ADD_KEYUSAGE 124 +# define PKCS12_F_PKCS8_ENCRYPT 125 + +/* Reason codes. */ +# define PKCS12_R_CANT_PACK_STRUCTURE 100 +# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 +# define PKCS12_R_DECODE_ERROR 101 +# define PKCS12_R_ENCODE_ERROR 102 +# define PKCS12_R_ENCRYPT_ERROR 103 +# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 +# define PKCS12_R_INVALID_NULL_ARGUMENT 104 +# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 +# define PKCS12_R_IV_GEN_ERROR 106 +# define PKCS12_R_KEY_GEN_ERROR 107 +# define PKCS12_R_MAC_ABSENT 108 +# define PKCS12_R_MAC_GENERATION_ERROR 109 +# define PKCS12_R_MAC_SETUP_ERROR 110 +# define PKCS12_R_MAC_STRING_SET_ERROR 111 +# define PKCS12_R_MAC_VERIFY_ERROR 112 +# define PKCS12_R_MAC_VERIFY_FAILURE 113 +# define PKCS12_R_PARSE_ERROR 114 +# define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 +# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 +# define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 +# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 +# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/pkcs7.h b/External/include64/openssl/pkcs7.h new file mode 100644 index 00000000..b51b3863 --- /dev/null +++ b/External/include64/openssl/pkcs7.h @@ -0,0 +1,481 @@ +/* crypto/pkcs7/pkcs7.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_PKCS7_H +# define HEADER_PKCS7_H + +# include +# include +# include + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_SYS_WIN32 +/* Under Win32 thes are defined in wincrypt.h */ +# undef PKCS7_ISSUER_AND_SERIAL +# undef PKCS7_SIGNER_INFO +# endif + +/*- +Encryption_ID DES-CBC +Digest_ID MD5 +Digest_Encryption_ID rsaEncryption +Key_Encryption_ID rsaEncryption +*/ + +typedef struct pkcs7_issuer_and_serial_st { + X509_NAME *issuer; + ASN1_INTEGER *serial; +} PKCS7_ISSUER_AND_SERIAL; + +typedef struct pkcs7_signer_info_st { + ASN1_INTEGER *version; /* version 1 */ + PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; + X509_ALGOR *digest_alg; + STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ + X509_ALGOR *digest_enc_alg; + ASN1_OCTET_STRING *enc_digest; + STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ + /* The private key to sign with */ + EVP_PKEY *pkey; +} PKCS7_SIGNER_INFO; + +DECLARE_STACK_OF(PKCS7_SIGNER_INFO) +DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) + +typedef struct pkcs7_recip_info_st { + ASN1_INTEGER *version; /* version 0 */ + PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; + X509_ALGOR *key_enc_algor; + ASN1_OCTET_STRING *enc_key; + X509 *cert; /* get the pub-key from this */ +} PKCS7_RECIP_INFO; + +DECLARE_STACK_OF(PKCS7_RECIP_INFO) +DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) + +typedef struct pkcs7_signed_st { + ASN1_INTEGER *version; /* version 1 */ + STACK_OF(X509_ALGOR) *md_algs; /* md used */ + STACK_OF(X509) *cert; /* [ 0 ] */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(PKCS7_SIGNER_INFO) *signer_info; + struct pkcs7_st *contents; +} PKCS7_SIGNED; +/* + * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about + * merging the two + */ + +typedef struct pkcs7_enc_content_st { + ASN1_OBJECT *content_type; + X509_ALGOR *algorithm; + ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ + const EVP_CIPHER *cipher; +} PKCS7_ENC_CONTENT; + +typedef struct pkcs7_enveloped_st { + ASN1_INTEGER *version; /* version 0 */ + STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; + PKCS7_ENC_CONTENT *enc_data; +} PKCS7_ENVELOPE; + +typedef struct pkcs7_signedandenveloped_st { + ASN1_INTEGER *version; /* version 1 */ + STACK_OF(X509_ALGOR) *md_algs; /* md used */ + STACK_OF(X509) *cert; /* [ 0 ] */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(PKCS7_SIGNER_INFO) *signer_info; + PKCS7_ENC_CONTENT *enc_data; + STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; +} PKCS7_SIGN_ENVELOPE; + +typedef struct pkcs7_digest_st { + ASN1_INTEGER *version; /* version 0 */ + X509_ALGOR *md; /* md used */ + struct pkcs7_st *contents; + ASN1_OCTET_STRING *digest; +} PKCS7_DIGEST; + +typedef struct pkcs7_encrypted_st { + ASN1_INTEGER *version; /* version 0 */ + PKCS7_ENC_CONTENT *enc_data; +} PKCS7_ENCRYPT; + +typedef struct pkcs7_st { + /* + * The following is non NULL if it contains ASN1 encoding of this + * structure + */ + unsigned char *asn1; + long length; +# define PKCS7_S_HEADER 0 +# define PKCS7_S_BODY 1 +# define PKCS7_S_TAIL 2 + int state; /* used during processing */ + int detached; + ASN1_OBJECT *type; + /* content as defined by the type */ + /* + * all encryption/message digests are applied to the 'contents', leaving + * out the 'type' field. + */ + union { + char *ptr; + /* NID_pkcs7_data */ + ASN1_OCTET_STRING *data; + /* NID_pkcs7_signed */ + PKCS7_SIGNED *sign; + /* NID_pkcs7_enveloped */ + PKCS7_ENVELOPE *enveloped; + /* NID_pkcs7_signedAndEnveloped */ + PKCS7_SIGN_ENVELOPE *signed_and_enveloped; + /* NID_pkcs7_digest */ + PKCS7_DIGEST *digest; + /* NID_pkcs7_encrypted */ + PKCS7_ENCRYPT *encrypted; + /* Anything else */ + ASN1_TYPE *other; + } d; +} PKCS7; + +DECLARE_STACK_OF(PKCS7) +DECLARE_ASN1_SET_OF(PKCS7) +DECLARE_PKCS12_STACK_OF(PKCS7) + +# define PKCS7_OP_SET_DETACHED_SIGNATURE 1 +# define PKCS7_OP_GET_DETACHED_SIGNATURE 2 + +# define PKCS7_get_signed_attributes(si) ((si)->auth_attr) +# define PKCS7_get_attributes(si) ((si)->unauth_attr) + +# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) +# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) +# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) +# define PKCS7_type_is_signedAndEnveloped(a) \ + (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) +# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) +# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) + +# define PKCS7_set_detached(p,v) \ + PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) +# define PKCS7_get_detached(p) \ + PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) + +# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) + +/* S/MIME related flags */ + +# define PKCS7_TEXT 0x1 +# define PKCS7_NOCERTS 0x2 +# define PKCS7_NOSIGS 0x4 +# define PKCS7_NOCHAIN 0x8 +# define PKCS7_NOINTERN 0x10 +# define PKCS7_NOVERIFY 0x20 +# define PKCS7_DETACHED 0x40 +# define PKCS7_BINARY 0x80 +# define PKCS7_NOATTR 0x100 +# define PKCS7_NOSMIMECAP 0x200 +# define PKCS7_NOOLDMIMETYPE 0x400 +# define PKCS7_CRLFEOL 0x800 +# define PKCS7_STREAM 0x1000 +# define PKCS7_NOCRL 0x2000 +# define PKCS7_PARTIAL 0x4000 +# define PKCS7_REUSE_DIGEST 0x8000 + +/* Flags: for compatibility with older code */ + +# define SMIME_TEXT PKCS7_TEXT +# define SMIME_NOCERTS PKCS7_NOCERTS +# define SMIME_NOSIGS PKCS7_NOSIGS +# define SMIME_NOCHAIN PKCS7_NOCHAIN +# define SMIME_NOINTERN PKCS7_NOINTERN +# define SMIME_NOVERIFY PKCS7_NOVERIFY +# define SMIME_DETACHED PKCS7_DETACHED +# define SMIME_BINARY PKCS7_BINARY +# define SMIME_NOATTR PKCS7_NOATTR + +DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) + +int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, + const EVP_MD *type, unsigned char *md, + unsigned int *len); +# ifndef OPENSSL_NO_FP_API +PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); +int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); +# endif +PKCS7 *PKCS7_dup(PKCS7 *p7); +PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); +int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); +int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); +int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); + +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) +DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) +DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) +DECLARE_ASN1_FUNCTIONS(PKCS7) + +DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) +DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) + +DECLARE_ASN1_NDEF_FUNCTION(PKCS7) +DECLARE_ASN1_PRINT_FUNCTION(PKCS7) + +long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); + +int PKCS7_set_type(PKCS7 *p7, int type); +int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); +int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); +int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, + const EVP_MD *dgst); +int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); +int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); +int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_content_new(PKCS7 *p7, int nid); +int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, + BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); +int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, + X509 *x509); + +BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); +int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); +BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); + +PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, + EVP_PKEY *pkey, const EVP_MD *dgst); +X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); +int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); +STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); + +PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); +void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, + X509_ALGOR **pdig, X509_ALGOR **psig); +void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); +int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); +int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); +int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); +int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); + +PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); +ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); +int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, + void *data); +int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, + void *value); +ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); +ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); +int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, + STACK_OF(X509_ATTRIBUTE) *sk); +int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, + STACK_OF(X509_ATTRIBUTE) *sk); + +PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, + BIO *data, int flags); + +PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, + X509 *signcert, EVP_PKEY *pkey, + const EVP_MD *md, int flags); + +int PKCS7_final(PKCS7 *p7, BIO *data, int flags); +int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, + BIO *indata, BIO *out, int flags); +STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, + int flags); +PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, + int flags); +int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, + int flags); + +int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, + STACK_OF(X509_ALGOR) *cap); +STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); +int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); + +int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); +int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); +int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, + const unsigned char *md, int mdlen); + +int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); +PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); + +BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_PKCS7_strings(void); + +/* Error codes for the PKCS7 functions. */ + +/* Function codes. */ +# define PKCS7_F_B64_READ_PKCS7 120 +# define PKCS7_F_B64_WRITE_PKCS7 121 +# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 +# define PKCS7_F_I2D_PKCS7_BIO_STREAM 140 +# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 +# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 +# define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 +# define PKCS7_F_PKCS7_ADD_CRL 101 +# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 +# define PKCS7_F_PKCS7_ADD_SIGNATURE 131 +# define PKCS7_F_PKCS7_ADD_SIGNER 103 +# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 +# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 +# define PKCS7_F_PKCS7_CTRL 104 +# define PKCS7_F_PKCS7_DATADECODE 112 +# define PKCS7_F_PKCS7_DATAFINAL 128 +# define PKCS7_F_PKCS7_DATAINIT 105 +# define PKCS7_F_PKCS7_DATASIGN 106 +# define PKCS7_F_PKCS7_DATAVERIFY 107 +# define PKCS7_F_PKCS7_DECRYPT 114 +# define PKCS7_F_PKCS7_DECRYPT_RINFO 133 +# define PKCS7_F_PKCS7_ENCODE_RINFO 132 +# define PKCS7_F_PKCS7_ENCRYPT 115 +# define PKCS7_F_PKCS7_FINAL 134 +# define PKCS7_F_PKCS7_FIND_DIGEST 127 +# define PKCS7_F_PKCS7_GET0_SIGNERS 124 +# define PKCS7_F_PKCS7_RECIP_INFO_SET 130 +# define PKCS7_F_PKCS7_SET_CIPHER 108 +# define PKCS7_F_PKCS7_SET_CONTENT 109 +# define PKCS7_F_PKCS7_SET_DIGEST 126 +# define PKCS7_F_PKCS7_SET_TYPE 110 +# define PKCS7_F_PKCS7_SIGN 116 +# define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 +# define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 +# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 +# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 +# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 +# define PKCS7_F_PKCS7_VERIFY 117 +# define PKCS7_F_SMIME_READ_PKCS7 122 +# define PKCS7_F_SMIME_TEXT 123 + +/* Reason codes. */ +# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 +# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 +# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 +# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 +# define PKCS7_R_CTRL_ERROR 152 +# define PKCS7_R_DECODE_ERROR 130 +# define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH 100 +# define PKCS7_R_DECRYPT_ERROR 119 +# define PKCS7_R_DIGEST_FAILURE 101 +# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 +# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 +# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 +# define PKCS7_R_ERROR_SETTING_CIPHER 121 +# define PKCS7_R_INVALID_MIME_TYPE 131 +# define PKCS7_R_INVALID_NULL_POINTER 143 +# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 +# define PKCS7_R_MIME_NO_CONTENT_TYPE 132 +# define PKCS7_R_MIME_PARSE_ERROR 133 +# define PKCS7_R_MIME_SIG_PARSE_ERROR 134 +# define PKCS7_R_MISSING_CERIPEND_INFO 103 +# define PKCS7_R_NO_CONTENT 122 +# define PKCS7_R_NO_CONTENT_TYPE 135 +# define PKCS7_R_NO_DEFAULT_DIGEST 151 +# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 +# define PKCS7_R_NO_MULTIPART_BODY_FAILURE 136 +# define PKCS7_R_NO_MULTIPART_BOUNDARY 137 +# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 +# define PKCS7_R_NO_RECIPIENT_MATCHES_KEY 146 +# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 +# define PKCS7_R_NO_SIGNERS 142 +# define PKCS7_R_NO_SIG_CONTENT_TYPE 138 +# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 +# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 +# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 +# define PKCS7_R_PKCS7_DATAFINAL 126 +# define PKCS7_R_PKCS7_DATAFINAL_ERROR 125 +# define PKCS7_R_PKCS7_DATASIGN 145 +# define PKCS7_R_PKCS7_PARSE_ERROR 139 +# define PKCS7_R_PKCS7_SIG_PARSE_ERROR 140 +# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 +# define PKCS7_R_SIGNATURE_FAILURE 105 +# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 +# define PKCS7_R_SIGNING_CTRL_FAILURE 147 +# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 +# define PKCS7_R_SIG_INVALID_MIME_TYPE 141 +# define PKCS7_R_SMIME_TEXT_ERROR 129 +# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 +# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 +# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 +# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 +# define PKCS7_R_UNKNOWN_OPERATION 110 +# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 +# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 +# define PKCS7_R_WRONG_CONTENT_TYPE 113 +# define PKCS7_R_WRONG_PKCS7_TYPE 114 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/pqueue.h b/External/include64/openssl/pqueue.h new file mode 100644 index 00000000..d40d9c7d --- /dev/null +++ b/External/include64/openssl/pqueue.h @@ -0,0 +1,99 @@ +/* crypto/pqueue/pqueue.h */ +/* + * DTLS implementation written by Nagendra Modadugu + * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. + */ +/* ==================================================================== + * Copyright (c) 1999-2005 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_PQUEUE_H +# define HEADER_PQUEUE_H + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif +typedef struct _pqueue *pqueue; + +typedef struct _pitem { + unsigned char priority[8]; /* 64-bit value in big-endian encoding */ + void *data; + struct _pitem *next; +} pitem; + +typedef struct _pitem *piterator; + +pitem *pitem_new(unsigned char *prio64be, void *data); +void pitem_free(pitem *item); + +pqueue pqueue_new(void); +void pqueue_free(pqueue pq); + +pitem *pqueue_insert(pqueue pq, pitem *item); +pitem *pqueue_peek(pqueue pq); +pitem *pqueue_pop(pqueue pq); +pitem *pqueue_find(pqueue pq, unsigned char *prio64be); +pitem *pqueue_iterator(pqueue pq); +pitem *pqueue_next(piterator *iter); + +void pqueue_print(pqueue pq); +int pqueue_size(pqueue pq); + +#ifdef __cplusplus +} +#endif +#endif /* ! HEADER_PQUEUE_H */ diff --git a/External/include64/openssl/rand.h b/External/include64/openssl/rand.h new file mode 100644 index 00000000..2553afda --- /dev/null +++ b/External/include64/openssl/rand.h @@ -0,0 +1,150 @@ +/* crypto/rand/rand.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_RAND_H +# define HEADER_RAND_H + +# include +# include +# include + +# if defined(OPENSSL_SYS_WINDOWS) +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# if defined(OPENSSL_FIPS) +# define FIPS_RAND_SIZE_T size_t +# endif + +/* Already defined in ossl_typ.h */ +/* typedef struct rand_meth_st RAND_METHOD; */ + +struct rand_meth_st { + void (*seed) (const void *buf, int num); + int (*bytes) (unsigned char *buf, int num); + void (*cleanup) (void); + void (*add) (const void *buf, int num, double entropy); + int (*pseudorand) (unsigned char *buf, int num); + int (*status) (void); +}; + +# ifdef BN_DEBUG +extern int rand_predictable; +# endif + +int RAND_set_rand_method(const RAND_METHOD *meth); +const RAND_METHOD *RAND_get_rand_method(void); +# ifndef OPENSSL_NO_ENGINE +int RAND_set_rand_engine(ENGINE *engine); +# endif +RAND_METHOD *RAND_SSLeay(void); +void RAND_cleanup(void); +int RAND_bytes(unsigned char *buf, int num); +int RAND_pseudo_bytes(unsigned char *buf, int num); +void RAND_seed(const void *buf, int num); +void RAND_add(const void *buf, int num, double entropy); +int RAND_load_file(const char *file, long max_bytes); +int RAND_write_file(const char *file); +const char *RAND_file_name(char *file, size_t num); +int RAND_status(void); +int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); +int RAND_egd(const char *path); +int RAND_egd_bytes(const char *path, int bytes); +int RAND_poll(void); + +# if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) + +void RAND_screen(void); +int RAND_event(UINT, WPARAM, LPARAM); + +# endif + +# ifdef OPENSSL_FIPS +void RAND_set_fips_drbg_type(int type, int flags); +int RAND_init_fips(void); +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_RAND_strings(void); + +/* Error codes for the RAND functions. */ + +/* Function codes. */ +# define RAND_F_RAND_GET_RAND_METHOD 101 +# define RAND_F_RAND_INIT_FIPS 102 +# define RAND_F_SSLEAY_RAND_BYTES 100 + +/* Reason codes. */ +# define RAND_R_DUAL_EC_DRBG_DISABLED 104 +# define RAND_R_ERROR_INITIALISING_DRBG 102 +# define RAND_R_ERROR_INSTANTIATING_DRBG 103 +# define RAND_R_NO_FIPS_RANDOM_METHOD_SET 101 +# define RAND_R_PRNG_NOT_SEEDED 100 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/rc2.h b/External/include64/openssl/rc2.h new file mode 100644 index 00000000..29d02d73 --- /dev/null +++ b/External/include64/openssl/rc2.h @@ -0,0 +1,103 @@ +/* crypto/rc2/rc2.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_RC2_H +# define HEADER_RC2_H + +# include /* OPENSSL_NO_RC2, RC2_INT */ +# ifdef OPENSSL_NO_RC2 +# error RC2 is disabled. +# endif + +# define RC2_ENCRYPT 1 +# define RC2_DECRYPT 0 + +# define RC2_BLOCK 8 +# define RC2_KEY_LENGTH 16 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct rc2_key_st { + RC2_INT data[64]; +} RC2_KEY; + +# ifdef OPENSSL_FIPS +void private_RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, + int bits); +# endif +void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits); +void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out, + RC2_KEY *key, int enc); +void RC2_encrypt(unsigned long *data, RC2_KEY *key); +void RC2_decrypt(unsigned long *data, RC2_KEY *key); +void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, + RC2_KEY *ks, unsigned char *iv, int enc); +void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, RC2_KEY *schedule, unsigned char *ivec, + int *num, int enc); +void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, RC2_KEY *schedule, unsigned char *ivec, + int *num); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/rc4.h b/External/include64/openssl/rc4.h new file mode 100644 index 00000000..39162b16 --- /dev/null +++ b/External/include64/openssl/rc4.h @@ -0,0 +1,88 @@ +/* crypto/rc4/rc4.h */ +/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_RC4_H +# define HEADER_RC4_H + +# include /* OPENSSL_NO_RC4, RC4_INT */ +# ifdef OPENSSL_NO_RC4 +# error RC4 is disabled. +# endif + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct rc4_key_st { + RC4_INT x, y; + RC4_INT data[256]; +} RC4_KEY; + +const char *RC4_options(void); +void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); +void private_RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); +void RC4(RC4_KEY *key, size_t len, const unsigned char *indata, + unsigned char *outdata); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/ripemd.h b/External/include64/openssl/ripemd.h new file mode 100644 index 00000000..b88ef25e --- /dev/null +++ b/External/include64/openssl/ripemd.h @@ -0,0 +1,105 @@ +/* crypto/ripemd/ripemd.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_RIPEMD_H +# define HEADER_RIPEMD_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_NO_RIPEMD +# error RIPEMD is disabled. +# endif + +# if defined(__LP32__) +# define RIPEMD160_LONG unsigned long +# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) +# define RIPEMD160_LONG unsigned long +# define RIPEMD160_LONG_LOG2 3 +# else +# define RIPEMD160_LONG unsigned int +# endif + +# define RIPEMD160_CBLOCK 64 +# define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) +# define RIPEMD160_DIGEST_LENGTH 20 + +typedef struct RIPEMD160state_st { + RIPEMD160_LONG A, B, C, D, E; + RIPEMD160_LONG Nl, Nh; + RIPEMD160_LONG data[RIPEMD160_LBLOCK]; + unsigned int num; +} RIPEMD160_CTX; + +# ifdef OPENSSL_FIPS +int private_RIPEMD160_Init(RIPEMD160_CTX *c); +# endif +int RIPEMD160_Init(RIPEMD160_CTX *c); +int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len); +int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); +unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned char *md); +void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/rsa.h b/External/include64/openssl/rsa.h new file mode 100644 index 00000000..d2ee3740 --- /dev/null +++ b/External/include64/openssl/rsa.h @@ -0,0 +1,664 @@ +/* crypto/rsa/rsa.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_RSA_H +# define HEADER_RSA_H + +# include + +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif + +# ifdef OPENSSL_NO_RSA +# error RSA is disabled. +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Declared already in ossl_typ.h */ +/* typedef struct rsa_st RSA; */ +/* typedef struct rsa_meth_st RSA_METHOD; */ + +struct rsa_meth_st { + const char *name; + int (*rsa_pub_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); + int (*rsa_pub_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); + int (*rsa_priv_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); + int (*rsa_priv_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); + /* Can be null */ + int (*rsa_mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); + /* Can be null */ + int (*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); + /* called at new */ + int (*init) (RSA *rsa); + /* called at free */ + int (*finish) (RSA *rsa); + /* RSA_METHOD_FLAG_* things */ + int flags; + /* may be needed! */ + char *app_data; + /* + * New sign and verify functions: some libraries don't allow arbitrary + * data to be signed/verified: this allows them to be used. Note: for + * this to work the RSA_public_decrypt() and RSA_private_encrypt() should + * *NOT* be used RSA_sign(), RSA_verify() should be used instead. Note: + * for backwards compatibility this functionality is only enabled if the + * RSA_FLAG_SIGN_VER option is set in 'flags'. + */ + int (*rsa_sign) (int type, + const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + const RSA *rsa); + int (*rsa_verify) (int dtype, const unsigned char *m, + unsigned int m_length, const unsigned char *sigbuf, + unsigned int siglen, const RSA *rsa); + /* + * If this callback is NULL, the builtin software RSA key-gen will be + * used. This is for behavioural compatibility whilst the code gets + * rewired, but one day it would be nice to assume there are no such + * things as "builtin software" implementations. + */ + int (*rsa_keygen) (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); +}; + +struct rsa_st { + /* + * The first parameter is used to pickup errors where this is passed + * instead of aEVP_PKEY, it is set to 0 + */ + int pad; + long version; + const RSA_METHOD *meth; + /* functional reference if 'meth' is ENGINE-provided */ + ENGINE *engine; + BIGNUM *n; + BIGNUM *e; + BIGNUM *d; + BIGNUM *p; + BIGNUM *q; + BIGNUM *dmp1; + BIGNUM *dmq1; + BIGNUM *iqmp; + /* be careful using this if the RSA structure is shared */ + CRYPTO_EX_DATA ex_data; + int references; + int flags; + /* Used to cache montgomery values */ + BN_MONT_CTX *_method_mod_n; + BN_MONT_CTX *_method_mod_p; + BN_MONT_CTX *_method_mod_q; + /* + * all BIGNUM values are actually in the following data, if it is not + * NULL + */ + char *bignum_data; + BN_BLINDING *blinding; + BN_BLINDING *mt_blinding; +}; + +# ifndef OPENSSL_RSA_MAX_MODULUS_BITS +# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 +# endif + +# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS +# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 +# endif +# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS + +/* exponent limit enforced for "large" modulus only */ +# define OPENSSL_RSA_MAX_PUBEXP_BITS 64 +# endif + +# define RSA_3 0x3L +# define RSA_F4 0x10001L + +# define RSA_METHOD_FLAG_NO_CHECK 0x0001/* don't check pub/private + * match */ + +# define RSA_FLAG_CACHE_PUBLIC 0x0002 +# define RSA_FLAG_CACHE_PRIVATE 0x0004 +# define RSA_FLAG_BLINDING 0x0008 +# define RSA_FLAG_THREAD_SAFE 0x0010 +/* + * This flag means the private key operations will be handled by rsa_mod_exp + * and that they do not depend on the private key components being present: + * for example a key stored in external hardware. Without this flag + * bn_mod_exp gets called when private key components are absent. + */ +# define RSA_FLAG_EXT_PKEY 0x0020 + +/* + * This flag in the RSA_METHOD enables the new rsa_sign, rsa_verify + * functions. + */ +# define RSA_FLAG_SIGN_VER 0x0040 + +/* + * new with 0.9.6j and 0.9.7b; the built-in + * RSA implementation now uses blinding by + * default (ignoring RSA_FLAG_BLINDING), + * but other engines might not need it + */ +# define RSA_FLAG_NO_BLINDING 0x0080 +/* + * new with 0.9.8f; the built-in RSA + * implementation now uses constant time + * operations by default in private key operations, + * e.g., constant time modular exponentiation, + * modular inverse without leaking branches, + * division without leaking branches. This + * flag disables these constant time + * operations and results in faster RSA + * private key operations. + */ +# define RSA_FLAG_NO_CONSTTIME 0x0100 +# ifdef OPENSSL_USE_DEPRECATED +/* deprecated name for the flag*/ +/* + * new with 0.9.7h; the built-in RSA + * implementation now uses constant time + * modular exponentiation for secret exponents + * by default. This flag causes the + * faster variable sliding window method to + * be used for all exponents. + */ +# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME +# endif + +# define EVP_PKEY_CTX_set_rsa_padding(ctx, pad) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, EVP_PKEY_CTRL_RSA_PADDING, \ + pad, NULL) + +# define EVP_PKEY_CTX_get_rsa_padding(ctx, ppad) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, \ + EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) + +# define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ + (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ + EVP_PKEY_CTRL_RSA_PSS_SALTLEN, \ + len, NULL) + +# define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ + (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ + EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, \ + 0, plen) + +# define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) + +# define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) + +# define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ + EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ + EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_get_rsa_oaep_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_OAEP_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, l, llen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_OAEP_LABEL, llen, (void *)l) + +# define EVP_PKEY_CTX_get0_rsa_oaep_label(ctx, l) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL, 0, (void *)l) + +# define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2) + +# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5) + +# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) + +# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10) + +# define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12) + +# define RSA_PKCS1_PADDING 1 +# define RSA_SSLV23_PADDING 2 +# define RSA_NO_PADDING 3 +# define RSA_PKCS1_OAEP_PADDING 4 +# define RSA_X931_PADDING 5 +/* EVP_PKEY_ only */ +# define RSA_PKCS1_PSS_PADDING 6 + +# define RSA_PKCS1_PADDING_SIZE 11 + +# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) +# define RSA_get_app_data(s) RSA_get_ex_data(s,0) + +RSA *RSA_new(void); +RSA *RSA_new_method(ENGINE *engine); +int RSA_size(const RSA *rsa); + +/* Deprecated version */ +# ifndef OPENSSL_NO_DEPRECATED +RSA *RSA_generate_key(int bits, unsigned long e, void + (*callback) (int, int, void *), void *cb_arg); +# endif /* !defined(OPENSSL_NO_DEPRECATED) */ + +/* New version */ +int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); + +int RSA_check_key(const RSA *); + /* next 4 return -1 on error */ +int RSA_public_encrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_private_encrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_public_decrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_private_decrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +void RSA_free(RSA *r); +/* "up" the RSA object's reference count */ +int RSA_up_ref(RSA *r); + +int RSA_flags(const RSA *r); + +void RSA_set_default_method(const RSA_METHOD *meth); +const RSA_METHOD *RSA_get_default_method(void); +const RSA_METHOD *RSA_get_method(const RSA *rsa); +int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); + +/* This function needs the memory locking malloc callbacks to be installed */ +int RSA_memory_lock(RSA *r); + +/* these are the actual SSLeay RSA functions */ +const RSA_METHOD *RSA_PKCS1_SSLeay(void); + +const RSA_METHOD *RSA_null_method(void); + +DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) +DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) + +typedef struct rsa_pss_params_st { + X509_ALGOR *hashAlgorithm; + X509_ALGOR *maskGenAlgorithm; + ASN1_INTEGER *saltLength; + ASN1_INTEGER *trailerField; +} RSA_PSS_PARAMS; + +DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) + +typedef struct rsa_oaep_params_st { + X509_ALGOR *hashFunc; + X509_ALGOR *maskGenFunc; + X509_ALGOR *pSourceFunc; +} RSA_OAEP_PARAMS; + +DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) + +# ifndef OPENSSL_NO_FP_API +int RSA_print_fp(FILE *fp, const RSA *r, int offset); +# endif + +# ifndef OPENSSL_NO_BIO +int RSA_print(BIO *bp, const RSA *r, int offset); +# endif + +# ifndef OPENSSL_NO_RC4 +int i2d_RSA_NET(const RSA *a, unsigned char **pp, + int (*cb) (char *buf, int len, const char *prompt, + int verify), int sgckey); +RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, + int (*cb) (char *buf, int len, const char *prompt, + int verify), int sgckey); + +int i2d_Netscape_RSA(const RSA *a, unsigned char **pp, + int (*cb) (char *buf, int len, const char *prompt, + int verify)); +RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, + int (*cb) (char *buf, int len, const char *prompt, + int verify)); +# endif + +/* + * The following 2 functions sign and verify a X509_SIG ASN1 object inside + * PKCS#1 padded RSA encryption + */ +int RSA_sign(int type, const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, RSA *rsa); +int RSA_verify(int type, const unsigned char *m, unsigned int m_length, + const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); + +/* + * The following 2 function sign and verify a ASN1_OCTET_STRING object inside + * PKCS#1 padded RSA encryption + */ +int RSA_sign_ASN1_OCTET_STRING(int type, + const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + RSA *rsa); +int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, + unsigned int m_length, unsigned char *sigbuf, + unsigned int siglen, RSA *rsa); + +int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); +void RSA_blinding_off(RSA *rsa); +BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); + +int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, + const unsigned char *f, int fl, + int rsa_len); +int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, + const unsigned char *f, int fl, + int rsa_len); +int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, + long seedlen, const EVP_MD *dgst); +int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, + const unsigned char *f, int fl, + const unsigned char *p, int pl); +int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len, + const unsigned char *p, int pl); +int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + const unsigned char *param, int plen, + const EVP_MD *md, const EVP_MD *mgf1md); +int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + int num, const unsigned char *param, + int plen, const EVP_MD *md, + const EVP_MD *mgf1md); +int RSA_padding_add_SSLv23(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_SSLv23(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, + int fl); +int RSA_padding_check_none(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, + int fl); +int RSA_padding_check_X931(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_X931_hash_id(int nid); + +int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, + const EVP_MD *Hash, const unsigned char *EM, + int sLen); +int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, + const unsigned char *mHash, const EVP_MD *Hash, + int sLen); + +int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, + const EVP_MD *Hash, const EVP_MD *mgf1Hash, + const unsigned char *EM, int sLen); + +int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, + const unsigned char *mHash, + const EVP_MD *Hash, const EVP_MD *mgf1Hash, + int sLen); + +int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int RSA_set_ex_data(RSA *r, int idx, void *arg); +void *RSA_get_ex_data(const RSA *r, int idx); + +RSA *RSAPublicKey_dup(RSA *rsa); +RSA *RSAPrivateKey_dup(RSA *rsa); + +/* + * If this flag is set the RSA method is FIPS compliant and can be used in + * FIPS mode. This is set in the validated module method. If an application + * sets this flag in its own methods it is its responsibility to ensure the + * result is compliant. + */ + +# define RSA_FLAG_FIPS_METHOD 0x0400 + +/* + * If this flag is set the operations normally disabled in FIPS mode are + * permitted it is then the applications responsibility to ensure that the + * usage is compliant. + */ + +# define RSA_FLAG_NON_FIPS_ALLOW 0x0400 +/* + * Application has decided PRNG is good enough to generate a key: don't + * check. + */ +# define RSA_FLAG_CHECKED 0x0800 + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_RSA_strings(void); + +/* Error codes for the RSA functions. */ + +/* Function codes. */ +# define RSA_F_CHECK_PADDING_MD 140 +# define RSA_F_DO_RSA_PRINT 146 +# define RSA_F_INT_RSA_VERIFY 145 +# define RSA_F_MEMORY_LOCK 100 +# define RSA_F_OLD_RSA_PRIV_DECODE 147 +# define RSA_F_PKEY_RSA_CTRL 143 +# define RSA_F_PKEY_RSA_CTRL_STR 144 +# define RSA_F_PKEY_RSA_SIGN 142 +# define RSA_F_PKEY_RSA_VERIFY 154 +# define RSA_F_PKEY_RSA_VERIFYRECOVER 141 +# define RSA_F_RSA_ALGOR_TO_MD 157 +# define RSA_F_RSA_BUILTIN_KEYGEN 129 +# define RSA_F_RSA_CHECK_KEY 123 +# define RSA_F_RSA_CMS_DECRYPT 158 +# define RSA_F_RSA_EAY_PRIVATE_DECRYPT 101 +# define RSA_F_RSA_EAY_PRIVATE_ENCRYPT 102 +# define RSA_F_RSA_EAY_PUBLIC_DECRYPT 103 +# define RSA_F_RSA_EAY_PUBLIC_ENCRYPT 104 +# define RSA_F_RSA_GENERATE_KEY 105 +# define RSA_F_RSA_GENERATE_KEY_EX 155 +# define RSA_F_RSA_ITEM_VERIFY 156 +# define RSA_F_RSA_MEMORY_LOCK 130 +# define RSA_F_RSA_MGF1_TO_MD 159 +# define RSA_F_RSA_NEW_METHOD 106 +# define RSA_F_RSA_NULL 124 +# define RSA_F_RSA_NULL_MOD_EXP 131 +# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 +# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 +# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 +# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 +# define RSA_F_RSA_PADDING_ADD_NONE 107 +# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 +# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 160 +# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 +# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 148 +# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 +# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 +# define RSA_F_RSA_PADDING_ADD_SSLV23 110 +# define RSA_F_RSA_PADDING_ADD_X931 127 +# define RSA_F_RSA_PADDING_CHECK_NONE 111 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 161 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 +# define RSA_F_RSA_PADDING_CHECK_SSLV23 114 +# define RSA_F_RSA_PADDING_CHECK_X931 128 +# define RSA_F_RSA_PRINT 115 +# define RSA_F_RSA_PRINT_FP 116 +# define RSA_F_RSA_PRIVATE_DECRYPT 150 +# define RSA_F_RSA_PRIVATE_ENCRYPT 151 +# define RSA_F_RSA_PRIV_DECODE 137 +# define RSA_F_RSA_PRIV_ENCODE 138 +# define RSA_F_RSA_PSS_TO_CTX 162 +# define RSA_F_RSA_PUBLIC_DECRYPT 152 +# define RSA_F_RSA_PUBLIC_ENCRYPT 153 +# define RSA_F_RSA_PUB_DECODE 139 +# define RSA_F_RSA_SETUP_BLINDING 136 +# define RSA_F_RSA_SIGN 117 +# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 +# define RSA_F_RSA_VERIFY 119 +# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 +# define RSA_F_RSA_VERIFY_PKCS1_PSS 126 +# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 149 + +/* Reason codes. */ +# define RSA_R_ALGORITHM_MISMATCH 100 +# define RSA_R_BAD_E_VALUE 101 +# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 +# define RSA_R_BAD_PAD_BYTE_COUNT 103 +# define RSA_R_BAD_SIGNATURE 104 +# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 +# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 +# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 +# define RSA_R_DATA_TOO_LARGE 109 +# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 +# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 +# define RSA_R_DATA_TOO_SMALL 111 +# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 +# define RSA_R_DIGEST_DOES_NOT_MATCH 166 +# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 +# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 +# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 +# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 +# define RSA_R_FIRST_OCTET_INVALID 133 +# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 +# define RSA_R_INVALID_DIGEST 160 +# define RSA_R_INVALID_DIGEST_LENGTH 143 +# define RSA_R_INVALID_HEADER 137 +# define RSA_R_INVALID_KEYBITS 145 +# define RSA_R_INVALID_LABEL 161 +# define RSA_R_INVALID_MESSAGE_LENGTH 131 +# define RSA_R_INVALID_MGF1_MD 156 +# define RSA_R_INVALID_OAEP_PARAMETERS 162 +# define RSA_R_INVALID_PADDING 138 +# define RSA_R_INVALID_PADDING_MODE 141 +# define RSA_R_INVALID_PSS_PARAMETERS 149 +# define RSA_R_INVALID_PSS_SALTLEN 146 +# define RSA_R_INVALID_SALT_LENGTH 150 +# define RSA_R_INVALID_TRAILER 139 +# define RSA_R_INVALID_X931_DIGEST 142 +# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 +# define RSA_R_KEY_SIZE_TOO_SMALL 120 +# define RSA_R_LAST_OCTET_INVALID 134 +# define RSA_R_MODULUS_TOO_LARGE 105 +# define RSA_R_NON_FIPS_RSA_METHOD 157 +# define RSA_R_NO_PUBLIC_EXPONENT 140 +# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 +# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 +# define RSA_R_OAEP_DECODING_ERROR 121 +# define RSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE 158 +# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 +# define RSA_R_PADDING_CHECK_FAILED 114 +# define RSA_R_PKCS_DECODING_ERROR 159 +# define RSA_R_P_NOT_PRIME 128 +# define RSA_R_Q_NOT_PRIME 129 +# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 +# define RSA_R_SLEN_CHECK_FAILED 136 +# define RSA_R_SLEN_RECOVERY_FAILED 135 +# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 +# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 +# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 +# define RSA_R_UNKNOWN_DIGEST 163 +# define RSA_R_UNKNOWN_MASK_DIGEST 151 +# define RSA_R_UNKNOWN_PADDING_TYPE 118 +# define RSA_R_UNKNOWN_PSS_DIGEST 152 +# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 164 +# define RSA_R_UNSUPPORTED_LABEL_SOURCE 165 +# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 +# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 +# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 +# define RSA_R_VALUE_MISSING 147 +# define RSA_R_WRONG_SIGNATURE_LENGTH 119 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/safestack.h b/External/include64/openssl/safestack.h new file mode 100644 index 00000000..1d4f87ea --- /dev/null +++ b/External/include64/openssl/safestack.h @@ -0,0 +1,2672 @@ +/* ==================================================================== + * Copyright (c) 1999 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_SAFESTACK_H +# define HEADER_SAFESTACK_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef CHECKED_PTR_OF +# define CHECKED_PTR_OF(type, p) \ + ((void*) (1 ? p : (type*)0)) +# endif + +/* + * In C++ we get problems because an explicit cast is needed from (void *) we + * use CHECKED_STACK_OF to ensure the correct type is passed in the macros + * below. + */ + +# define CHECKED_STACK_OF(type, p) \ + ((_STACK*) (1 ? p : (STACK_OF(type)*)0)) + +# define CHECKED_SK_COPY_FUNC(type, p) \ + ((void *(*)(void *)) ((1 ? p : (type *(*)(const type *))0))) + +# define CHECKED_SK_FREE_FUNC(type, p) \ + ((void (*)(void *)) ((1 ? p : (void (*)(type *))0))) + +# define CHECKED_SK_CMP_FUNC(type, p) \ + ((int (*)(const void *, const void *)) \ + ((1 ? p : (int (*)(const type * const *, const type * const *))0))) + +# define STACK_OF(type) struct stack_st_##type +# define PREDECLARE_STACK_OF(type) STACK_OF(type); + +# define DECLARE_STACK_OF(type) \ +STACK_OF(type) \ + { \ + _STACK stack; \ + }; +# define DECLARE_SPECIAL_STACK_OF(type, type2) \ +STACK_OF(type) \ + { \ + _STACK stack; \ + }; + +/* nada (obsolete in new safestack approach)*/ +# define IMPLEMENT_STACK_OF(type) + +/*- + * Strings are special: normally an lhash entry will point to a single + * (somewhat) mutable object. In the case of strings: + * + * a) Instead of a single char, there is an array of chars, NUL-terminated. + * b) The string may have be immutable. + * + * So, they need their own declarations. Especially important for + * type-checking tools, such as Deputy. + * + * In practice, however, it appears to be hard to have a const + * string. For now, I'm settling for dealing with the fact it is a + * string at all. + */ +typedef char *OPENSSL_STRING; + +typedef const char *OPENSSL_CSTRING; + +/* + * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but + * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned + * above, instead of a single char each entry is a NUL-terminated array of + * chars. So, we have to implement STRING specially for STACK_OF. This is + * dealt with in the autogenerated macros below. + */ + +DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char) + +/* + * Similarly, we sometimes use a block of characters, NOT nul-terminated. + * These should also be distinguished from "normal" stacks. + */ +typedef void *OPENSSL_BLOCK; +DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) + +/* + * SKM_sk_... stack macros are internal to safestack.h: never use them + * directly, use sk__... instead + */ +# define SKM_sk_new(type, cmp) \ + ((STACK_OF(type) *)sk_new(CHECKED_SK_CMP_FUNC(type, cmp))) +# define SKM_sk_new_null(type) \ + ((STACK_OF(type) *)sk_new_null()) +# define SKM_sk_free(type, st) \ + sk_free(CHECKED_STACK_OF(type, st)) +# define SKM_sk_num(type, st) \ + sk_num(CHECKED_STACK_OF(type, st)) +# define SKM_sk_value(type, st,i) \ + ((type *)sk_value(CHECKED_STACK_OF(type, st), i)) +# define SKM_sk_set(type, st,i,val) \ + sk_set(CHECKED_STACK_OF(type, st), i, CHECKED_PTR_OF(type, val)) +# define SKM_sk_zero(type, st) \ + sk_zero(CHECKED_STACK_OF(type, st)) +# define SKM_sk_push(type, st, val) \ + sk_push(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) +# define SKM_sk_unshift(type, st, val) \ + sk_unshift(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) +# define SKM_sk_find(type, st, val) \ + sk_find(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) +# define SKM_sk_find_ex(type, st, val) \ + sk_find_ex(CHECKED_STACK_OF(type, st), \ + CHECKED_PTR_OF(type, val)) +# define SKM_sk_delete(type, st, i) \ + (type *)sk_delete(CHECKED_STACK_OF(type, st), i) +# define SKM_sk_delete_ptr(type, st, ptr) \ + (type *)sk_delete_ptr(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, ptr)) +# define SKM_sk_insert(type, st,val, i) \ + sk_insert(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val), i) +# define SKM_sk_set_cmp_func(type, st, cmp) \ + ((int (*)(const type * const *,const type * const *)) \ + sk_set_cmp_func(CHECKED_STACK_OF(type, st), CHECKED_SK_CMP_FUNC(type, cmp))) +# define SKM_sk_dup(type, st) \ + (STACK_OF(type) *)sk_dup(CHECKED_STACK_OF(type, st)) +# define SKM_sk_pop_free(type, st, free_func) \ + sk_pop_free(CHECKED_STACK_OF(type, st), CHECKED_SK_FREE_FUNC(type, free_func)) +# define SKM_sk_deep_copy(type, st, copy_func, free_func) \ + (STACK_OF(type) *)sk_deep_copy(CHECKED_STACK_OF(type, st), CHECKED_SK_COPY_FUNC(type, copy_func), CHECKED_SK_FREE_FUNC(type, free_func)) +# define SKM_sk_shift(type, st) \ + (type *)sk_shift(CHECKED_STACK_OF(type, st)) +# define SKM_sk_pop(type, st) \ + (type *)sk_pop(CHECKED_STACK_OF(type, st)) +# define SKM_sk_sort(type, st) \ + sk_sort(CHECKED_STACK_OF(type, st)) +# define SKM_sk_is_sorted(type, st) \ + sk_is_sorted(CHECKED_STACK_OF(type, st)) +# define SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + (STACK_OF(type) *)d2i_ASN1_SET( \ + (STACK_OF(OPENSSL_BLOCK) **)CHECKED_PTR_OF(STACK_OF(type)*, st), \ + pp, length, \ + CHECKED_D2I_OF(type, d2i_func), \ + CHECKED_SK_FREE_FUNC(type, free_func), \ + ex_tag, ex_class) +# define SKM_ASN1_SET_OF_i2d(type, st, pp, i2d_func, ex_tag, ex_class, is_set) \ + i2d_ASN1_SET((STACK_OF(OPENSSL_BLOCK) *)CHECKED_STACK_OF(type, st), pp, \ + CHECKED_I2D_OF(type, i2d_func), \ + ex_tag, ex_class, is_set) +# define SKM_ASN1_seq_pack(type, st, i2d_func, buf, len) \ + ASN1_seq_pack(CHECKED_PTR_OF(STACK_OF(type), st), \ + CHECKED_I2D_OF(type, i2d_func), buf, len) +# define SKM_ASN1_seq_unpack(type, buf, len, d2i_func, free_func) \ + (STACK_OF(type) *)ASN1_seq_unpack(buf, len, CHECKED_D2I_OF(type, d2i_func), CHECKED_SK_FREE_FUNC(type, free_func)) +# define SKM_PKCS12_decrypt_d2i(type, algor, d2i_func, free_func, pass, passlen, oct, seq) \ + (STACK_OF(type) *)PKCS12_decrypt_d2i(algor, \ + CHECKED_D2I_OF(type, d2i_func), \ + CHECKED_SK_FREE_FUNC(type, free_func), \ + pass, passlen, oct, seq) +/* + * This block of defines is updated by util/mkstack.pl, please do not touch! + */ +# define sk_ACCESS_DESCRIPTION_new(cmp) SKM_sk_new(ACCESS_DESCRIPTION, (cmp)) +# define sk_ACCESS_DESCRIPTION_new_null() SKM_sk_new_null(ACCESS_DESCRIPTION) +# define sk_ACCESS_DESCRIPTION_free(st) SKM_sk_free(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_num(st) SKM_sk_num(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_value(st, i) SKM_sk_value(ACCESS_DESCRIPTION, (st), (i)) +# define sk_ACCESS_DESCRIPTION_set(st, i, val) SKM_sk_set(ACCESS_DESCRIPTION, (st), (i), (val)) +# define sk_ACCESS_DESCRIPTION_zero(st) SKM_sk_zero(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_push(st, val) SKM_sk_push(ACCESS_DESCRIPTION, (st), (val)) +# define sk_ACCESS_DESCRIPTION_unshift(st, val) SKM_sk_unshift(ACCESS_DESCRIPTION, (st), (val)) +# define sk_ACCESS_DESCRIPTION_find(st, val) SKM_sk_find(ACCESS_DESCRIPTION, (st), (val)) +# define sk_ACCESS_DESCRIPTION_find_ex(st, val) SKM_sk_find_ex(ACCESS_DESCRIPTION, (st), (val)) +# define sk_ACCESS_DESCRIPTION_delete(st, i) SKM_sk_delete(ACCESS_DESCRIPTION, (st), (i)) +# define sk_ACCESS_DESCRIPTION_delete_ptr(st, ptr) SKM_sk_delete_ptr(ACCESS_DESCRIPTION, (st), (ptr)) +# define sk_ACCESS_DESCRIPTION_insert(st, val, i) SKM_sk_insert(ACCESS_DESCRIPTION, (st), (val), (i)) +# define sk_ACCESS_DESCRIPTION_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ACCESS_DESCRIPTION, (st), (cmp)) +# define sk_ACCESS_DESCRIPTION_dup(st) SKM_sk_dup(ACCESS_DESCRIPTION, st) +# define sk_ACCESS_DESCRIPTION_pop_free(st, free_func) SKM_sk_pop_free(ACCESS_DESCRIPTION, (st), (free_func)) +# define sk_ACCESS_DESCRIPTION_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ACCESS_DESCRIPTION, (st), (copy_func), (free_func)) +# define sk_ACCESS_DESCRIPTION_shift(st) SKM_sk_shift(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_pop(st) SKM_sk_pop(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_sort(st) SKM_sk_sort(ACCESS_DESCRIPTION, (st)) +# define sk_ACCESS_DESCRIPTION_is_sorted(st) SKM_sk_is_sorted(ACCESS_DESCRIPTION, (st)) +# define sk_ASIdOrRange_new(cmp) SKM_sk_new(ASIdOrRange, (cmp)) +# define sk_ASIdOrRange_new_null() SKM_sk_new_null(ASIdOrRange) +# define sk_ASIdOrRange_free(st) SKM_sk_free(ASIdOrRange, (st)) +# define sk_ASIdOrRange_num(st) SKM_sk_num(ASIdOrRange, (st)) +# define sk_ASIdOrRange_value(st, i) SKM_sk_value(ASIdOrRange, (st), (i)) +# define sk_ASIdOrRange_set(st, i, val) SKM_sk_set(ASIdOrRange, (st), (i), (val)) +# define sk_ASIdOrRange_zero(st) SKM_sk_zero(ASIdOrRange, (st)) +# define sk_ASIdOrRange_push(st, val) SKM_sk_push(ASIdOrRange, (st), (val)) +# define sk_ASIdOrRange_unshift(st, val) SKM_sk_unshift(ASIdOrRange, (st), (val)) +# define sk_ASIdOrRange_find(st, val) SKM_sk_find(ASIdOrRange, (st), (val)) +# define sk_ASIdOrRange_find_ex(st, val) SKM_sk_find_ex(ASIdOrRange, (st), (val)) +# define sk_ASIdOrRange_delete(st, i) SKM_sk_delete(ASIdOrRange, (st), (i)) +# define sk_ASIdOrRange_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASIdOrRange, (st), (ptr)) +# define sk_ASIdOrRange_insert(st, val, i) SKM_sk_insert(ASIdOrRange, (st), (val), (i)) +# define sk_ASIdOrRange_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASIdOrRange, (st), (cmp)) +# define sk_ASIdOrRange_dup(st) SKM_sk_dup(ASIdOrRange, st) +# define sk_ASIdOrRange_pop_free(st, free_func) SKM_sk_pop_free(ASIdOrRange, (st), (free_func)) +# define sk_ASIdOrRange_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASIdOrRange, (st), (copy_func), (free_func)) +# define sk_ASIdOrRange_shift(st) SKM_sk_shift(ASIdOrRange, (st)) +# define sk_ASIdOrRange_pop(st) SKM_sk_pop(ASIdOrRange, (st)) +# define sk_ASIdOrRange_sort(st) SKM_sk_sort(ASIdOrRange, (st)) +# define sk_ASIdOrRange_is_sorted(st) SKM_sk_is_sorted(ASIdOrRange, (st)) +# define sk_ASN1_GENERALSTRING_new(cmp) SKM_sk_new(ASN1_GENERALSTRING, (cmp)) +# define sk_ASN1_GENERALSTRING_new_null() SKM_sk_new_null(ASN1_GENERALSTRING) +# define sk_ASN1_GENERALSTRING_free(st) SKM_sk_free(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_num(st) SKM_sk_num(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_value(st, i) SKM_sk_value(ASN1_GENERALSTRING, (st), (i)) +# define sk_ASN1_GENERALSTRING_set(st, i, val) SKM_sk_set(ASN1_GENERALSTRING, (st), (i), (val)) +# define sk_ASN1_GENERALSTRING_zero(st) SKM_sk_zero(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_push(st, val) SKM_sk_push(ASN1_GENERALSTRING, (st), (val)) +# define sk_ASN1_GENERALSTRING_unshift(st, val) SKM_sk_unshift(ASN1_GENERALSTRING, (st), (val)) +# define sk_ASN1_GENERALSTRING_find(st, val) SKM_sk_find(ASN1_GENERALSTRING, (st), (val)) +# define sk_ASN1_GENERALSTRING_find_ex(st, val) SKM_sk_find_ex(ASN1_GENERALSTRING, (st), (val)) +# define sk_ASN1_GENERALSTRING_delete(st, i) SKM_sk_delete(ASN1_GENERALSTRING, (st), (i)) +# define sk_ASN1_GENERALSTRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_GENERALSTRING, (st), (ptr)) +# define sk_ASN1_GENERALSTRING_insert(st, val, i) SKM_sk_insert(ASN1_GENERALSTRING, (st), (val), (i)) +# define sk_ASN1_GENERALSTRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_GENERALSTRING, (st), (cmp)) +# define sk_ASN1_GENERALSTRING_dup(st) SKM_sk_dup(ASN1_GENERALSTRING, st) +# define sk_ASN1_GENERALSTRING_pop_free(st, free_func) SKM_sk_pop_free(ASN1_GENERALSTRING, (st), (free_func)) +# define sk_ASN1_GENERALSTRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_GENERALSTRING, (st), (copy_func), (free_func)) +# define sk_ASN1_GENERALSTRING_shift(st) SKM_sk_shift(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_pop(st) SKM_sk_pop(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_sort(st) SKM_sk_sort(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_GENERALSTRING_is_sorted(st) SKM_sk_is_sorted(ASN1_GENERALSTRING, (st)) +# define sk_ASN1_INTEGER_new(cmp) SKM_sk_new(ASN1_INTEGER, (cmp)) +# define sk_ASN1_INTEGER_new_null() SKM_sk_new_null(ASN1_INTEGER) +# define sk_ASN1_INTEGER_free(st) SKM_sk_free(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_num(st) SKM_sk_num(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_value(st, i) SKM_sk_value(ASN1_INTEGER, (st), (i)) +# define sk_ASN1_INTEGER_set(st, i, val) SKM_sk_set(ASN1_INTEGER, (st), (i), (val)) +# define sk_ASN1_INTEGER_zero(st) SKM_sk_zero(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_push(st, val) SKM_sk_push(ASN1_INTEGER, (st), (val)) +# define sk_ASN1_INTEGER_unshift(st, val) SKM_sk_unshift(ASN1_INTEGER, (st), (val)) +# define sk_ASN1_INTEGER_find(st, val) SKM_sk_find(ASN1_INTEGER, (st), (val)) +# define sk_ASN1_INTEGER_find_ex(st, val) SKM_sk_find_ex(ASN1_INTEGER, (st), (val)) +# define sk_ASN1_INTEGER_delete(st, i) SKM_sk_delete(ASN1_INTEGER, (st), (i)) +# define sk_ASN1_INTEGER_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_INTEGER, (st), (ptr)) +# define sk_ASN1_INTEGER_insert(st, val, i) SKM_sk_insert(ASN1_INTEGER, (st), (val), (i)) +# define sk_ASN1_INTEGER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_INTEGER, (st), (cmp)) +# define sk_ASN1_INTEGER_dup(st) SKM_sk_dup(ASN1_INTEGER, st) +# define sk_ASN1_INTEGER_pop_free(st, free_func) SKM_sk_pop_free(ASN1_INTEGER, (st), (free_func)) +# define sk_ASN1_INTEGER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_INTEGER, (st), (copy_func), (free_func)) +# define sk_ASN1_INTEGER_shift(st) SKM_sk_shift(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_pop(st) SKM_sk_pop(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_sort(st) SKM_sk_sort(ASN1_INTEGER, (st)) +# define sk_ASN1_INTEGER_is_sorted(st) SKM_sk_is_sorted(ASN1_INTEGER, (st)) +# define sk_ASN1_OBJECT_new(cmp) SKM_sk_new(ASN1_OBJECT, (cmp)) +# define sk_ASN1_OBJECT_new_null() SKM_sk_new_null(ASN1_OBJECT) +# define sk_ASN1_OBJECT_free(st) SKM_sk_free(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_num(st) SKM_sk_num(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_value(st, i) SKM_sk_value(ASN1_OBJECT, (st), (i)) +# define sk_ASN1_OBJECT_set(st, i, val) SKM_sk_set(ASN1_OBJECT, (st), (i), (val)) +# define sk_ASN1_OBJECT_zero(st) SKM_sk_zero(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_push(st, val) SKM_sk_push(ASN1_OBJECT, (st), (val)) +# define sk_ASN1_OBJECT_unshift(st, val) SKM_sk_unshift(ASN1_OBJECT, (st), (val)) +# define sk_ASN1_OBJECT_find(st, val) SKM_sk_find(ASN1_OBJECT, (st), (val)) +# define sk_ASN1_OBJECT_find_ex(st, val) SKM_sk_find_ex(ASN1_OBJECT, (st), (val)) +# define sk_ASN1_OBJECT_delete(st, i) SKM_sk_delete(ASN1_OBJECT, (st), (i)) +# define sk_ASN1_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_OBJECT, (st), (ptr)) +# define sk_ASN1_OBJECT_insert(st, val, i) SKM_sk_insert(ASN1_OBJECT, (st), (val), (i)) +# define sk_ASN1_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_OBJECT, (st), (cmp)) +# define sk_ASN1_OBJECT_dup(st) SKM_sk_dup(ASN1_OBJECT, st) +# define sk_ASN1_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(ASN1_OBJECT, (st), (free_func)) +# define sk_ASN1_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_OBJECT, (st), (copy_func), (free_func)) +# define sk_ASN1_OBJECT_shift(st) SKM_sk_shift(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_pop(st) SKM_sk_pop(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_sort(st) SKM_sk_sort(ASN1_OBJECT, (st)) +# define sk_ASN1_OBJECT_is_sorted(st) SKM_sk_is_sorted(ASN1_OBJECT, (st)) +# define sk_ASN1_STRING_TABLE_new(cmp) SKM_sk_new(ASN1_STRING_TABLE, (cmp)) +# define sk_ASN1_STRING_TABLE_new_null() SKM_sk_new_null(ASN1_STRING_TABLE) +# define sk_ASN1_STRING_TABLE_free(st) SKM_sk_free(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_num(st) SKM_sk_num(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_value(st, i) SKM_sk_value(ASN1_STRING_TABLE, (st), (i)) +# define sk_ASN1_STRING_TABLE_set(st, i, val) SKM_sk_set(ASN1_STRING_TABLE, (st), (i), (val)) +# define sk_ASN1_STRING_TABLE_zero(st) SKM_sk_zero(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_push(st, val) SKM_sk_push(ASN1_STRING_TABLE, (st), (val)) +# define sk_ASN1_STRING_TABLE_unshift(st, val) SKM_sk_unshift(ASN1_STRING_TABLE, (st), (val)) +# define sk_ASN1_STRING_TABLE_find(st, val) SKM_sk_find(ASN1_STRING_TABLE, (st), (val)) +# define sk_ASN1_STRING_TABLE_find_ex(st, val) SKM_sk_find_ex(ASN1_STRING_TABLE, (st), (val)) +# define sk_ASN1_STRING_TABLE_delete(st, i) SKM_sk_delete(ASN1_STRING_TABLE, (st), (i)) +# define sk_ASN1_STRING_TABLE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_STRING_TABLE, (st), (ptr)) +# define sk_ASN1_STRING_TABLE_insert(st, val, i) SKM_sk_insert(ASN1_STRING_TABLE, (st), (val), (i)) +# define sk_ASN1_STRING_TABLE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_STRING_TABLE, (st), (cmp)) +# define sk_ASN1_STRING_TABLE_dup(st) SKM_sk_dup(ASN1_STRING_TABLE, st) +# define sk_ASN1_STRING_TABLE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_STRING_TABLE, (st), (free_func)) +# define sk_ASN1_STRING_TABLE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_STRING_TABLE, (st), (copy_func), (free_func)) +# define sk_ASN1_STRING_TABLE_shift(st) SKM_sk_shift(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_pop(st) SKM_sk_pop(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_sort(st) SKM_sk_sort(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_STRING_TABLE_is_sorted(st) SKM_sk_is_sorted(ASN1_STRING_TABLE, (st)) +# define sk_ASN1_TYPE_new(cmp) SKM_sk_new(ASN1_TYPE, (cmp)) +# define sk_ASN1_TYPE_new_null() SKM_sk_new_null(ASN1_TYPE) +# define sk_ASN1_TYPE_free(st) SKM_sk_free(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_num(st) SKM_sk_num(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_value(st, i) SKM_sk_value(ASN1_TYPE, (st), (i)) +# define sk_ASN1_TYPE_set(st, i, val) SKM_sk_set(ASN1_TYPE, (st), (i), (val)) +# define sk_ASN1_TYPE_zero(st) SKM_sk_zero(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_push(st, val) SKM_sk_push(ASN1_TYPE, (st), (val)) +# define sk_ASN1_TYPE_unshift(st, val) SKM_sk_unshift(ASN1_TYPE, (st), (val)) +# define sk_ASN1_TYPE_find(st, val) SKM_sk_find(ASN1_TYPE, (st), (val)) +# define sk_ASN1_TYPE_find_ex(st, val) SKM_sk_find_ex(ASN1_TYPE, (st), (val)) +# define sk_ASN1_TYPE_delete(st, i) SKM_sk_delete(ASN1_TYPE, (st), (i)) +# define sk_ASN1_TYPE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_TYPE, (st), (ptr)) +# define sk_ASN1_TYPE_insert(st, val, i) SKM_sk_insert(ASN1_TYPE, (st), (val), (i)) +# define sk_ASN1_TYPE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_TYPE, (st), (cmp)) +# define sk_ASN1_TYPE_dup(st) SKM_sk_dup(ASN1_TYPE, st) +# define sk_ASN1_TYPE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_TYPE, (st), (free_func)) +# define sk_ASN1_TYPE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_TYPE, (st), (copy_func), (free_func)) +# define sk_ASN1_TYPE_shift(st) SKM_sk_shift(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_pop(st) SKM_sk_pop(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_sort(st) SKM_sk_sort(ASN1_TYPE, (st)) +# define sk_ASN1_TYPE_is_sorted(st) SKM_sk_is_sorted(ASN1_TYPE, (st)) +# define sk_ASN1_UTF8STRING_new(cmp) SKM_sk_new(ASN1_UTF8STRING, (cmp)) +# define sk_ASN1_UTF8STRING_new_null() SKM_sk_new_null(ASN1_UTF8STRING) +# define sk_ASN1_UTF8STRING_free(st) SKM_sk_free(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_num(st) SKM_sk_num(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_value(st, i) SKM_sk_value(ASN1_UTF8STRING, (st), (i)) +# define sk_ASN1_UTF8STRING_set(st, i, val) SKM_sk_set(ASN1_UTF8STRING, (st), (i), (val)) +# define sk_ASN1_UTF8STRING_zero(st) SKM_sk_zero(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_push(st, val) SKM_sk_push(ASN1_UTF8STRING, (st), (val)) +# define sk_ASN1_UTF8STRING_unshift(st, val) SKM_sk_unshift(ASN1_UTF8STRING, (st), (val)) +# define sk_ASN1_UTF8STRING_find(st, val) SKM_sk_find(ASN1_UTF8STRING, (st), (val)) +# define sk_ASN1_UTF8STRING_find_ex(st, val) SKM_sk_find_ex(ASN1_UTF8STRING, (st), (val)) +# define sk_ASN1_UTF8STRING_delete(st, i) SKM_sk_delete(ASN1_UTF8STRING, (st), (i)) +# define sk_ASN1_UTF8STRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_UTF8STRING, (st), (ptr)) +# define sk_ASN1_UTF8STRING_insert(st, val, i) SKM_sk_insert(ASN1_UTF8STRING, (st), (val), (i)) +# define sk_ASN1_UTF8STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_UTF8STRING, (st), (cmp)) +# define sk_ASN1_UTF8STRING_dup(st) SKM_sk_dup(ASN1_UTF8STRING, st) +# define sk_ASN1_UTF8STRING_pop_free(st, free_func) SKM_sk_pop_free(ASN1_UTF8STRING, (st), (free_func)) +# define sk_ASN1_UTF8STRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_UTF8STRING, (st), (copy_func), (free_func)) +# define sk_ASN1_UTF8STRING_shift(st) SKM_sk_shift(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_pop(st) SKM_sk_pop(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_sort(st) SKM_sk_sort(ASN1_UTF8STRING, (st)) +# define sk_ASN1_UTF8STRING_is_sorted(st) SKM_sk_is_sorted(ASN1_UTF8STRING, (st)) +# define sk_ASN1_VALUE_new(cmp) SKM_sk_new(ASN1_VALUE, (cmp)) +# define sk_ASN1_VALUE_new_null() SKM_sk_new_null(ASN1_VALUE) +# define sk_ASN1_VALUE_free(st) SKM_sk_free(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_num(st) SKM_sk_num(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_value(st, i) SKM_sk_value(ASN1_VALUE, (st), (i)) +# define sk_ASN1_VALUE_set(st, i, val) SKM_sk_set(ASN1_VALUE, (st), (i), (val)) +# define sk_ASN1_VALUE_zero(st) SKM_sk_zero(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_push(st, val) SKM_sk_push(ASN1_VALUE, (st), (val)) +# define sk_ASN1_VALUE_unshift(st, val) SKM_sk_unshift(ASN1_VALUE, (st), (val)) +# define sk_ASN1_VALUE_find(st, val) SKM_sk_find(ASN1_VALUE, (st), (val)) +# define sk_ASN1_VALUE_find_ex(st, val) SKM_sk_find_ex(ASN1_VALUE, (st), (val)) +# define sk_ASN1_VALUE_delete(st, i) SKM_sk_delete(ASN1_VALUE, (st), (i)) +# define sk_ASN1_VALUE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_VALUE, (st), (ptr)) +# define sk_ASN1_VALUE_insert(st, val, i) SKM_sk_insert(ASN1_VALUE, (st), (val), (i)) +# define sk_ASN1_VALUE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_VALUE, (st), (cmp)) +# define sk_ASN1_VALUE_dup(st) SKM_sk_dup(ASN1_VALUE, st) +# define sk_ASN1_VALUE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_VALUE, (st), (free_func)) +# define sk_ASN1_VALUE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_VALUE, (st), (copy_func), (free_func)) +# define sk_ASN1_VALUE_shift(st) SKM_sk_shift(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_pop(st) SKM_sk_pop(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_sort(st) SKM_sk_sort(ASN1_VALUE, (st)) +# define sk_ASN1_VALUE_is_sorted(st) SKM_sk_is_sorted(ASN1_VALUE, (st)) +# define sk_BIO_new(cmp) SKM_sk_new(BIO, (cmp)) +# define sk_BIO_new_null() SKM_sk_new_null(BIO) +# define sk_BIO_free(st) SKM_sk_free(BIO, (st)) +# define sk_BIO_num(st) SKM_sk_num(BIO, (st)) +# define sk_BIO_value(st, i) SKM_sk_value(BIO, (st), (i)) +# define sk_BIO_set(st, i, val) SKM_sk_set(BIO, (st), (i), (val)) +# define sk_BIO_zero(st) SKM_sk_zero(BIO, (st)) +# define sk_BIO_push(st, val) SKM_sk_push(BIO, (st), (val)) +# define sk_BIO_unshift(st, val) SKM_sk_unshift(BIO, (st), (val)) +# define sk_BIO_find(st, val) SKM_sk_find(BIO, (st), (val)) +# define sk_BIO_find_ex(st, val) SKM_sk_find_ex(BIO, (st), (val)) +# define sk_BIO_delete(st, i) SKM_sk_delete(BIO, (st), (i)) +# define sk_BIO_delete_ptr(st, ptr) SKM_sk_delete_ptr(BIO, (st), (ptr)) +# define sk_BIO_insert(st, val, i) SKM_sk_insert(BIO, (st), (val), (i)) +# define sk_BIO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BIO, (st), (cmp)) +# define sk_BIO_dup(st) SKM_sk_dup(BIO, st) +# define sk_BIO_pop_free(st, free_func) SKM_sk_pop_free(BIO, (st), (free_func)) +# define sk_BIO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BIO, (st), (copy_func), (free_func)) +# define sk_BIO_shift(st) SKM_sk_shift(BIO, (st)) +# define sk_BIO_pop(st) SKM_sk_pop(BIO, (st)) +# define sk_BIO_sort(st) SKM_sk_sort(BIO, (st)) +# define sk_BIO_is_sorted(st) SKM_sk_is_sorted(BIO, (st)) +# define sk_BY_DIR_ENTRY_new(cmp) SKM_sk_new(BY_DIR_ENTRY, (cmp)) +# define sk_BY_DIR_ENTRY_new_null() SKM_sk_new_null(BY_DIR_ENTRY) +# define sk_BY_DIR_ENTRY_free(st) SKM_sk_free(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_num(st) SKM_sk_num(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_value(st, i) SKM_sk_value(BY_DIR_ENTRY, (st), (i)) +# define sk_BY_DIR_ENTRY_set(st, i, val) SKM_sk_set(BY_DIR_ENTRY, (st), (i), (val)) +# define sk_BY_DIR_ENTRY_zero(st) SKM_sk_zero(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_push(st, val) SKM_sk_push(BY_DIR_ENTRY, (st), (val)) +# define sk_BY_DIR_ENTRY_unshift(st, val) SKM_sk_unshift(BY_DIR_ENTRY, (st), (val)) +# define sk_BY_DIR_ENTRY_find(st, val) SKM_sk_find(BY_DIR_ENTRY, (st), (val)) +# define sk_BY_DIR_ENTRY_find_ex(st, val) SKM_sk_find_ex(BY_DIR_ENTRY, (st), (val)) +# define sk_BY_DIR_ENTRY_delete(st, i) SKM_sk_delete(BY_DIR_ENTRY, (st), (i)) +# define sk_BY_DIR_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(BY_DIR_ENTRY, (st), (ptr)) +# define sk_BY_DIR_ENTRY_insert(st, val, i) SKM_sk_insert(BY_DIR_ENTRY, (st), (val), (i)) +# define sk_BY_DIR_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BY_DIR_ENTRY, (st), (cmp)) +# define sk_BY_DIR_ENTRY_dup(st) SKM_sk_dup(BY_DIR_ENTRY, st) +# define sk_BY_DIR_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(BY_DIR_ENTRY, (st), (free_func)) +# define sk_BY_DIR_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BY_DIR_ENTRY, (st), (copy_func), (free_func)) +# define sk_BY_DIR_ENTRY_shift(st) SKM_sk_shift(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_pop(st) SKM_sk_pop(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_sort(st) SKM_sk_sort(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_ENTRY_is_sorted(st) SKM_sk_is_sorted(BY_DIR_ENTRY, (st)) +# define sk_BY_DIR_HASH_new(cmp) SKM_sk_new(BY_DIR_HASH, (cmp)) +# define sk_BY_DIR_HASH_new_null() SKM_sk_new_null(BY_DIR_HASH) +# define sk_BY_DIR_HASH_free(st) SKM_sk_free(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_num(st) SKM_sk_num(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_value(st, i) SKM_sk_value(BY_DIR_HASH, (st), (i)) +# define sk_BY_DIR_HASH_set(st, i, val) SKM_sk_set(BY_DIR_HASH, (st), (i), (val)) +# define sk_BY_DIR_HASH_zero(st) SKM_sk_zero(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_push(st, val) SKM_sk_push(BY_DIR_HASH, (st), (val)) +# define sk_BY_DIR_HASH_unshift(st, val) SKM_sk_unshift(BY_DIR_HASH, (st), (val)) +# define sk_BY_DIR_HASH_find(st, val) SKM_sk_find(BY_DIR_HASH, (st), (val)) +# define sk_BY_DIR_HASH_find_ex(st, val) SKM_sk_find_ex(BY_DIR_HASH, (st), (val)) +# define sk_BY_DIR_HASH_delete(st, i) SKM_sk_delete(BY_DIR_HASH, (st), (i)) +# define sk_BY_DIR_HASH_delete_ptr(st, ptr) SKM_sk_delete_ptr(BY_DIR_HASH, (st), (ptr)) +# define sk_BY_DIR_HASH_insert(st, val, i) SKM_sk_insert(BY_DIR_HASH, (st), (val), (i)) +# define sk_BY_DIR_HASH_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BY_DIR_HASH, (st), (cmp)) +# define sk_BY_DIR_HASH_dup(st) SKM_sk_dup(BY_DIR_HASH, st) +# define sk_BY_DIR_HASH_pop_free(st, free_func) SKM_sk_pop_free(BY_DIR_HASH, (st), (free_func)) +# define sk_BY_DIR_HASH_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BY_DIR_HASH, (st), (copy_func), (free_func)) +# define sk_BY_DIR_HASH_shift(st) SKM_sk_shift(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_pop(st) SKM_sk_pop(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_sort(st) SKM_sk_sort(BY_DIR_HASH, (st)) +# define sk_BY_DIR_HASH_is_sorted(st) SKM_sk_is_sorted(BY_DIR_HASH, (st)) +# define sk_CMS_CertificateChoices_new(cmp) SKM_sk_new(CMS_CertificateChoices, (cmp)) +# define sk_CMS_CertificateChoices_new_null() SKM_sk_new_null(CMS_CertificateChoices) +# define sk_CMS_CertificateChoices_free(st) SKM_sk_free(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_num(st) SKM_sk_num(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_value(st, i) SKM_sk_value(CMS_CertificateChoices, (st), (i)) +# define sk_CMS_CertificateChoices_set(st, i, val) SKM_sk_set(CMS_CertificateChoices, (st), (i), (val)) +# define sk_CMS_CertificateChoices_zero(st) SKM_sk_zero(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_push(st, val) SKM_sk_push(CMS_CertificateChoices, (st), (val)) +# define sk_CMS_CertificateChoices_unshift(st, val) SKM_sk_unshift(CMS_CertificateChoices, (st), (val)) +# define sk_CMS_CertificateChoices_find(st, val) SKM_sk_find(CMS_CertificateChoices, (st), (val)) +# define sk_CMS_CertificateChoices_find_ex(st, val) SKM_sk_find_ex(CMS_CertificateChoices, (st), (val)) +# define sk_CMS_CertificateChoices_delete(st, i) SKM_sk_delete(CMS_CertificateChoices, (st), (i)) +# define sk_CMS_CertificateChoices_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_CertificateChoices, (st), (ptr)) +# define sk_CMS_CertificateChoices_insert(st, val, i) SKM_sk_insert(CMS_CertificateChoices, (st), (val), (i)) +# define sk_CMS_CertificateChoices_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_CertificateChoices, (st), (cmp)) +# define sk_CMS_CertificateChoices_dup(st) SKM_sk_dup(CMS_CertificateChoices, st) +# define sk_CMS_CertificateChoices_pop_free(st, free_func) SKM_sk_pop_free(CMS_CertificateChoices, (st), (free_func)) +# define sk_CMS_CertificateChoices_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_CertificateChoices, (st), (copy_func), (free_func)) +# define sk_CMS_CertificateChoices_shift(st) SKM_sk_shift(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_pop(st) SKM_sk_pop(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_sort(st) SKM_sk_sort(CMS_CertificateChoices, (st)) +# define sk_CMS_CertificateChoices_is_sorted(st) SKM_sk_is_sorted(CMS_CertificateChoices, (st)) +# define sk_CMS_RecipientEncryptedKey_new(cmp) SKM_sk_new(CMS_RecipientEncryptedKey, (cmp)) +# define sk_CMS_RecipientEncryptedKey_new_null() SKM_sk_new_null(CMS_RecipientEncryptedKey) +# define sk_CMS_RecipientEncryptedKey_free(st) SKM_sk_free(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_num(st) SKM_sk_num(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_value(st, i) SKM_sk_value(CMS_RecipientEncryptedKey, (st), (i)) +# define sk_CMS_RecipientEncryptedKey_set(st, i, val) SKM_sk_set(CMS_RecipientEncryptedKey, (st), (i), (val)) +# define sk_CMS_RecipientEncryptedKey_zero(st) SKM_sk_zero(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_push(st, val) SKM_sk_push(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_unshift(st, val) SKM_sk_unshift(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_find(st, val) SKM_sk_find(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_find_ex(st, val) SKM_sk_find_ex(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_delete(st, i) SKM_sk_delete(CMS_RecipientEncryptedKey, (st), (i)) +# define sk_CMS_RecipientEncryptedKey_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RecipientEncryptedKey, (st), (ptr)) +# define sk_CMS_RecipientEncryptedKey_insert(st, val, i) SKM_sk_insert(CMS_RecipientEncryptedKey, (st), (val), (i)) +# define sk_CMS_RecipientEncryptedKey_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RecipientEncryptedKey, (st), (cmp)) +# define sk_CMS_RecipientEncryptedKey_dup(st) SKM_sk_dup(CMS_RecipientEncryptedKey, st) +# define sk_CMS_RecipientEncryptedKey_pop_free(st, free_func) SKM_sk_pop_free(CMS_RecipientEncryptedKey, (st), (free_func)) +# define sk_CMS_RecipientEncryptedKey_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RecipientEncryptedKey, (st), (copy_func), (free_func)) +# define sk_CMS_RecipientEncryptedKey_shift(st) SKM_sk_shift(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_pop(st) SKM_sk_pop(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_sort(st) SKM_sk_sort(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_is_sorted(st) SKM_sk_is_sorted(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientInfo_new(cmp) SKM_sk_new(CMS_RecipientInfo, (cmp)) +# define sk_CMS_RecipientInfo_new_null() SKM_sk_new_null(CMS_RecipientInfo) +# define sk_CMS_RecipientInfo_free(st) SKM_sk_free(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_num(st) SKM_sk_num(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_value(st, i) SKM_sk_value(CMS_RecipientInfo, (st), (i)) +# define sk_CMS_RecipientInfo_set(st, i, val) SKM_sk_set(CMS_RecipientInfo, (st), (i), (val)) +# define sk_CMS_RecipientInfo_zero(st) SKM_sk_zero(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_push(st, val) SKM_sk_push(CMS_RecipientInfo, (st), (val)) +# define sk_CMS_RecipientInfo_unshift(st, val) SKM_sk_unshift(CMS_RecipientInfo, (st), (val)) +# define sk_CMS_RecipientInfo_find(st, val) SKM_sk_find(CMS_RecipientInfo, (st), (val)) +# define sk_CMS_RecipientInfo_find_ex(st, val) SKM_sk_find_ex(CMS_RecipientInfo, (st), (val)) +# define sk_CMS_RecipientInfo_delete(st, i) SKM_sk_delete(CMS_RecipientInfo, (st), (i)) +# define sk_CMS_RecipientInfo_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RecipientInfo, (st), (ptr)) +# define sk_CMS_RecipientInfo_insert(st, val, i) SKM_sk_insert(CMS_RecipientInfo, (st), (val), (i)) +# define sk_CMS_RecipientInfo_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RecipientInfo, (st), (cmp)) +# define sk_CMS_RecipientInfo_dup(st) SKM_sk_dup(CMS_RecipientInfo, st) +# define sk_CMS_RecipientInfo_pop_free(st, free_func) SKM_sk_pop_free(CMS_RecipientInfo, (st), (free_func)) +# define sk_CMS_RecipientInfo_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RecipientInfo, (st), (copy_func), (free_func)) +# define sk_CMS_RecipientInfo_shift(st) SKM_sk_shift(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_pop(st) SKM_sk_pop(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_sort(st) SKM_sk_sort(CMS_RecipientInfo, (st)) +# define sk_CMS_RecipientInfo_is_sorted(st) SKM_sk_is_sorted(CMS_RecipientInfo, (st)) +# define sk_CMS_RevocationInfoChoice_new(cmp) SKM_sk_new(CMS_RevocationInfoChoice, (cmp)) +# define sk_CMS_RevocationInfoChoice_new_null() SKM_sk_new_null(CMS_RevocationInfoChoice) +# define sk_CMS_RevocationInfoChoice_free(st) SKM_sk_free(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_num(st) SKM_sk_num(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_value(st, i) SKM_sk_value(CMS_RevocationInfoChoice, (st), (i)) +# define sk_CMS_RevocationInfoChoice_set(st, i, val) SKM_sk_set(CMS_RevocationInfoChoice, (st), (i), (val)) +# define sk_CMS_RevocationInfoChoice_zero(st) SKM_sk_zero(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_push(st, val) SKM_sk_push(CMS_RevocationInfoChoice, (st), (val)) +# define sk_CMS_RevocationInfoChoice_unshift(st, val) SKM_sk_unshift(CMS_RevocationInfoChoice, (st), (val)) +# define sk_CMS_RevocationInfoChoice_find(st, val) SKM_sk_find(CMS_RevocationInfoChoice, (st), (val)) +# define sk_CMS_RevocationInfoChoice_find_ex(st, val) SKM_sk_find_ex(CMS_RevocationInfoChoice, (st), (val)) +# define sk_CMS_RevocationInfoChoice_delete(st, i) SKM_sk_delete(CMS_RevocationInfoChoice, (st), (i)) +# define sk_CMS_RevocationInfoChoice_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RevocationInfoChoice, (st), (ptr)) +# define sk_CMS_RevocationInfoChoice_insert(st, val, i) SKM_sk_insert(CMS_RevocationInfoChoice, (st), (val), (i)) +# define sk_CMS_RevocationInfoChoice_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RevocationInfoChoice, (st), (cmp)) +# define sk_CMS_RevocationInfoChoice_dup(st) SKM_sk_dup(CMS_RevocationInfoChoice, st) +# define sk_CMS_RevocationInfoChoice_pop_free(st, free_func) SKM_sk_pop_free(CMS_RevocationInfoChoice, (st), (free_func)) +# define sk_CMS_RevocationInfoChoice_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RevocationInfoChoice, (st), (copy_func), (free_func)) +# define sk_CMS_RevocationInfoChoice_shift(st) SKM_sk_shift(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_pop(st) SKM_sk_pop(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_sort(st) SKM_sk_sort(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_RevocationInfoChoice_is_sorted(st) SKM_sk_is_sorted(CMS_RevocationInfoChoice, (st)) +# define sk_CMS_SignerInfo_new(cmp) SKM_sk_new(CMS_SignerInfo, (cmp)) +# define sk_CMS_SignerInfo_new_null() SKM_sk_new_null(CMS_SignerInfo) +# define sk_CMS_SignerInfo_free(st) SKM_sk_free(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_num(st) SKM_sk_num(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_value(st, i) SKM_sk_value(CMS_SignerInfo, (st), (i)) +# define sk_CMS_SignerInfo_set(st, i, val) SKM_sk_set(CMS_SignerInfo, (st), (i), (val)) +# define sk_CMS_SignerInfo_zero(st) SKM_sk_zero(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_push(st, val) SKM_sk_push(CMS_SignerInfo, (st), (val)) +# define sk_CMS_SignerInfo_unshift(st, val) SKM_sk_unshift(CMS_SignerInfo, (st), (val)) +# define sk_CMS_SignerInfo_find(st, val) SKM_sk_find(CMS_SignerInfo, (st), (val)) +# define sk_CMS_SignerInfo_find_ex(st, val) SKM_sk_find_ex(CMS_SignerInfo, (st), (val)) +# define sk_CMS_SignerInfo_delete(st, i) SKM_sk_delete(CMS_SignerInfo, (st), (i)) +# define sk_CMS_SignerInfo_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_SignerInfo, (st), (ptr)) +# define sk_CMS_SignerInfo_insert(st, val, i) SKM_sk_insert(CMS_SignerInfo, (st), (val), (i)) +# define sk_CMS_SignerInfo_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_SignerInfo, (st), (cmp)) +# define sk_CMS_SignerInfo_dup(st) SKM_sk_dup(CMS_SignerInfo, st) +# define sk_CMS_SignerInfo_pop_free(st, free_func) SKM_sk_pop_free(CMS_SignerInfo, (st), (free_func)) +# define sk_CMS_SignerInfo_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_SignerInfo, (st), (copy_func), (free_func)) +# define sk_CMS_SignerInfo_shift(st) SKM_sk_shift(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_pop(st) SKM_sk_pop(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_sort(st) SKM_sk_sort(CMS_SignerInfo, (st)) +# define sk_CMS_SignerInfo_is_sorted(st) SKM_sk_is_sorted(CMS_SignerInfo, (st)) +# define sk_CONF_IMODULE_new(cmp) SKM_sk_new(CONF_IMODULE, (cmp)) +# define sk_CONF_IMODULE_new_null() SKM_sk_new_null(CONF_IMODULE) +# define sk_CONF_IMODULE_free(st) SKM_sk_free(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_num(st) SKM_sk_num(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_value(st, i) SKM_sk_value(CONF_IMODULE, (st), (i)) +# define sk_CONF_IMODULE_set(st, i, val) SKM_sk_set(CONF_IMODULE, (st), (i), (val)) +# define sk_CONF_IMODULE_zero(st) SKM_sk_zero(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_push(st, val) SKM_sk_push(CONF_IMODULE, (st), (val)) +# define sk_CONF_IMODULE_unshift(st, val) SKM_sk_unshift(CONF_IMODULE, (st), (val)) +# define sk_CONF_IMODULE_find(st, val) SKM_sk_find(CONF_IMODULE, (st), (val)) +# define sk_CONF_IMODULE_find_ex(st, val) SKM_sk_find_ex(CONF_IMODULE, (st), (val)) +# define sk_CONF_IMODULE_delete(st, i) SKM_sk_delete(CONF_IMODULE, (st), (i)) +# define sk_CONF_IMODULE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_IMODULE, (st), (ptr)) +# define sk_CONF_IMODULE_insert(st, val, i) SKM_sk_insert(CONF_IMODULE, (st), (val), (i)) +# define sk_CONF_IMODULE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_IMODULE, (st), (cmp)) +# define sk_CONF_IMODULE_dup(st) SKM_sk_dup(CONF_IMODULE, st) +# define sk_CONF_IMODULE_pop_free(st, free_func) SKM_sk_pop_free(CONF_IMODULE, (st), (free_func)) +# define sk_CONF_IMODULE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_IMODULE, (st), (copy_func), (free_func)) +# define sk_CONF_IMODULE_shift(st) SKM_sk_shift(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_pop(st) SKM_sk_pop(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_sort(st) SKM_sk_sort(CONF_IMODULE, (st)) +# define sk_CONF_IMODULE_is_sorted(st) SKM_sk_is_sorted(CONF_IMODULE, (st)) +# define sk_CONF_MODULE_new(cmp) SKM_sk_new(CONF_MODULE, (cmp)) +# define sk_CONF_MODULE_new_null() SKM_sk_new_null(CONF_MODULE) +# define sk_CONF_MODULE_free(st) SKM_sk_free(CONF_MODULE, (st)) +# define sk_CONF_MODULE_num(st) SKM_sk_num(CONF_MODULE, (st)) +# define sk_CONF_MODULE_value(st, i) SKM_sk_value(CONF_MODULE, (st), (i)) +# define sk_CONF_MODULE_set(st, i, val) SKM_sk_set(CONF_MODULE, (st), (i), (val)) +# define sk_CONF_MODULE_zero(st) SKM_sk_zero(CONF_MODULE, (st)) +# define sk_CONF_MODULE_push(st, val) SKM_sk_push(CONF_MODULE, (st), (val)) +# define sk_CONF_MODULE_unshift(st, val) SKM_sk_unshift(CONF_MODULE, (st), (val)) +# define sk_CONF_MODULE_find(st, val) SKM_sk_find(CONF_MODULE, (st), (val)) +# define sk_CONF_MODULE_find_ex(st, val) SKM_sk_find_ex(CONF_MODULE, (st), (val)) +# define sk_CONF_MODULE_delete(st, i) SKM_sk_delete(CONF_MODULE, (st), (i)) +# define sk_CONF_MODULE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_MODULE, (st), (ptr)) +# define sk_CONF_MODULE_insert(st, val, i) SKM_sk_insert(CONF_MODULE, (st), (val), (i)) +# define sk_CONF_MODULE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_MODULE, (st), (cmp)) +# define sk_CONF_MODULE_dup(st) SKM_sk_dup(CONF_MODULE, st) +# define sk_CONF_MODULE_pop_free(st, free_func) SKM_sk_pop_free(CONF_MODULE, (st), (free_func)) +# define sk_CONF_MODULE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_MODULE, (st), (copy_func), (free_func)) +# define sk_CONF_MODULE_shift(st) SKM_sk_shift(CONF_MODULE, (st)) +# define sk_CONF_MODULE_pop(st) SKM_sk_pop(CONF_MODULE, (st)) +# define sk_CONF_MODULE_sort(st) SKM_sk_sort(CONF_MODULE, (st)) +# define sk_CONF_MODULE_is_sorted(st) SKM_sk_is_sorted(CONF_MODULE, (st)) +# define sk_CONF_VALUE_new(cmp) SKM_sk_new(CONF_VALUE, (cmp)) +# define sk_CONF_VALUE_new_null() SKM_sk_new_null(CONF_VALUE) +# define sk_CONF_VALUE_free(st) SKM_sk_free(CONF_VALUE, (st)) +# define sk_CONF_VALUE_num(st) SKM_sk_num(CONF_VALUE, (st)) +# define sk_CONF_VALUE_value(st, i) SKM_sk_value(CONF_VALUE, (st), (i)) +# define sk_CONF_VALUE_set(st, i, val) SKM_sk_set(CONF_VALUE, (st), (i), (val)) +# define sk_CONF_VALUE_zero(st) SKM_sk_zero(CONF_VALUE, (st)) +# define sk_CONF_VALUE_push(st, val) SKM_sk_push(CONF_VALUE, (st), (val)) +# define sk_CONF_VALUE_unshift(st, val) SKM_sk_unshift(CONF_VALUE, (st), (val)) +# define sk_CONF_VALUE_find(st, val) SKM_sk_find(CONF_VALUE, (st), (val)) +# define sk_CONF_VALUE_find_ex(st, val) SKM_sk_find_ex(CONF_VALUE, (st), (val)) +# define sk_CONF_VALUE_delete(st, i) SKM_sk_delete(CONF_VALUE, (st), (i)) +# define sk_CONF_VALUE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_VALUE, (st), (ptr)) +# define sk_CONF_VALUE_insert(st, val, i) SKM_sk_insert(CONF_VALUE, (st), (val), (i)) +# define sk_CONF_VALUE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_VALUE, (st), (cmp)) +# define sk_CONF_VALUE_dup(st) SKM_sk_dup(CONF_VALUE, st) +# define sk_CONF_VALUE_pop_free(st, free_func) SKM_sk_pop_free(CONF_VALUE, (st), (free_func)) +# define sk_CONF_VALUE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_VALUE, (st), (copy_func), (free_func)) +# define sk_CONF_VALUE_shift(st) SKM_sk_shift(CONF_VALUE, (st)) +# define sk_CONF_VALUE_pop(st) SKM_sk_pop(CONF_VALUE, (st)) +# define sk_CONF_VALUE_sort(st) SKM_sk_sort(CONF_VALUE, (st)) +# define sk_CONF_VALUE_is_sorted(st) SKM_sk_is_sorted(CONF_VALUE, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_new(cmp) SKM_sk_new(CRYPTO_EX_DATA_FUNCS, (cmp)) +# define sk_CRYPTO_EX_DATA_FUNCS_new_null() SKM_sk_new_null(CRYPTO_EX_DATA_FUNCS) +# define sk_CRYPTO_EX_DATA_FUNCS_free(st) SKM_sk_free(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_num(st) SKM_sk_num(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_value(st, i) SKM_sk_value(CRYPTO_EX_DATA_FUNCS, (st), (i)) +# define sk_CRYPTO_EX_DATA_FUNCS_set(st, i, val) SKM_sk_set(CRYPTO_EX_DATA_FUNCS, (st), (i), (val)) +# define sk_CRYPTO_EX_DATA_FUNCS_zero(st) SKM_sk_zero(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_push(st, val) SKM_sk_push(CRYPTO_EX_DATA_FUNCS, (st), (val)) +# define sk_CRYPTO_EX_DATA_FUNCS_unshift(st, val) SKM_sk_unshift(CRYPTO_EX_DATA_FUNCS, (st), (val)) +# define sk_CRYPTO_EX_DATA_FUNCS_find(st, val) SKM_sk_find(CRYPTO_EX_DATA_FUNCS, (st), (val)) +# define sk_CRYPTO_EX_DATA_FUNCS_find_ex(st, val) SKM_sk_find_ex(CRYPTO_EX_DATA_FUNCS, (st), (val)) +# define sk_CRYPTO_EX_DATA_FUNCS_delete(st, i) SKM_sk_delete(CRYPTO_EX_DATA_FUNCS, (st), (i)) +# define sk_CRYPTO_EX_DATA_FUNCS_delete_ptr(st, ptr) SKM_sk_delete_ptr(CRYPTO_EX_DATA_FUNCS, (st), (ptr)) +# define sk_CRYPTO_EX_DATA_FUNCS_insert(st, val, i) SKM_sk_insert(CRYPTO_EX_DATA_FUNCS, (st), (val), (i)) +# define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CRYPTO_EX_DATA_FUNCS, (st), (cmp)) +# define sk_CRYPTO_EX_DATA_FUNCS_dup(st) SKM_sk_dup(CRYPTO_EX_DATA_FUNCS, st) +# define sk_CRYPTO_EX_DATA_FUNCS_pop_free(st, free_func) SKM_sk_pop_free(CRYPTO_EX_DATA_FUNCS, (st), (free_func)) +# define sk_CRYPTO_EX_DATA_FUNCS_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CRYPTO_EX_DATA_FUNCS, (st), (copy_func), (free_func)) +# define sk_CRYPTO_EX_DATA_FUNCS_shift(st) SKM_sk_shift(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_pop(st) SKM_sk_pop(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_sort(st) SKM_sk_sort(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_EX_DATA_FUNCS_is_sorted(st) SKM_sk_is_sorted(CRYPTO_EX_DATA_FUNCS, (st)) +# define sk_CRYPTO_dynlock_new(cmp) SKM_sk_new(CRYPTO_dynlock, (cmp)) +# define sk_CRYPTO_dynlock_new_null() SKM_sk_new_null(CRYPTO_dynlock) +# define sk_CRYPTO_dynlock_free(st) SKM_sk_free(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_num(st) SKM_sk_num(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_value(st, i) SKM_sk_value(CRYPTO_dynlock, (st), (i)) +# define sk_CRYPTO_dynlock_set(st, i, val) SKM_sk_set(CRYPTO_dynlock, (st), (i), (val)) +# define sk_CRYPTO_dynlock_zero(st) SKM_sk_zero(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_push(st, val) SKM_sk_push(CRYPTO_dynlock, (st), (val)) +# define sk_CRYPTO_dynlock_unshift(st, val) SKM_sk_unshift(CRYPTO_dynlock, (st), (val)) +# define sk_CRYPTO_dynlock_find(st, val) SKM_sk_find(CRYPTO_dynlock, (st), (val)) +# define sk_CRYPTO_dynlock_find_ex(st, val) SKM_sk_find_ex(CRYPTO_dynlock, (st), (val)) +# define sk_CRYPTO_dynlock_delete(st, i) SKM_sk_delete(CRYPTO_dynlock, (st), (i)) +# define sk_CRYPTO_dynlock_delete_ptr(st, ptr) SKM_sk_delete_ptr(CRYPTO_dynlock, (st), (ptr)) +# define sk_CRYPTO_dynlock_insert(st, val, i) SKM_sk_insert(CRYPTO_dynlock, (st), (val), (i)) +# define sk_CRYPTO_dynlock_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CRYPTO_dynlock, (st), (cmp)) +# define sk_CRYPTO_dynlock_dup(st) SKM_sk_dup(CRYPTO_dynlock, st) +# define sk_CRYPTO_dynlock_pop_free(st, free_func) SKM_sk_pop_free(CRYPTO_dynlock, (st), (free_func)) +# define sk_CRYPTO_dynlock_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CRYPTO_dynlock, (st), (copy_func), (free_func)) +# define sk_CRYPTO_dynlock_shift(st) SKM_sk_shift(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_pop(st) SKM_sk_pop(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_sort(st) SKM_sk_sort(CRYPTO_dynlock, (st)) +# define sk_CRYPTO_dynlock_is_sorted(st) SKM_sk_is_sorted(CRYPTO_dynlock, (st)) +# define sk_DIST_POINT_new(cmp) SKM_sk_new(DIST_POINT, (cmp)) +# define sk_DIST_POINT_new_null() SKM_sk_new_null(DIST_POINT) +# define sk_DIST_POINT_free(st) SKM_sk_free(DIST_POINT, (st)) +# define sk_DIST_POINT_num(st) SKM_sk_num(DIST_POINT, (st)) +# define sk_DIST_POINT_value(st, i) SKM_sk_value(DIST_POINT, (st), (i)) +# define sk_DIST_POINT_set(st, i, val) SKM_sk_set(DIST_POINT, (st), (i), (val)) +# define sk_DIST_POINT_zero(st) SKM_sk_zero(DIST_POINT, (st)) +# define sk_DIST_POINT_push(st, val) SKM_sk_push(DIST_POINT, (st), (val)) +# define sk_DIST_POINT_unshift(st, val) SKM_sk_unshift(DIST_POINT, (st), (val)) +# define sk_DIST_POINT_find(st, val) SKM_sk_find(DIST_POINT, (st), (val)) +# define sk_DIST_POINT_find_ex(st, val) SKM_sk_find_ex(DIST_POINT, (st), (val)) +# define sk_DIST_POINT_delete(st, i) SKM_sk_delete(DIST_POINT, (st), (i)) +# define sk_DIST_POINT_delete_ptr(st, ptr) SKM_sk_delete_ptr(DIST_POINT, (st), (ptr)) +# define sk_DIST_POINT_insert(st, val, i) SKM_sk_insert(DIST_POINT, (st), (val), (i)) +# define sk_DIST_POINT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(DIST_POINT, (st), (cmp)) +# define sk_DIST_POINT_dup(st) SKM_sk_dup(DIST_POINT, st) +# define sk_DIST_POINT_pop_free(st, free_func) SKM_sk_pop_free(DIST_POINT, (st), (free_func)) +# define sk_DIST_POINT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(DIST_POINT, (st), (copy_func), (free_func)) +# define sk_DIST_POINT_shift(st) SKM_sk_shift(DIST_POINT, (st)) +# define sk_DIST_POINT_pop(st) SKM_sk_pop(DIST_POINT, (st)) +# define sk_DIST_POINT_sort(st) SKM_sk_sort(DIST_POINT, (st)) +# define sk_DIST_POINT_is_sorted(st) SKM_sk_is_sorted(DIST_POINT, (st)) +# define sk_ENGINE_new(cmp) SKM_sk_new(ENGINE, (cmp)) +# define sk_ENGINE_new_null() SKM_sk_new_null(ENGINE) +# define sk_ENGINE_free(st) SKM_sk_free(ENGINE, (st)) +# define sk_ENGINE_num(st) SKM_sk_num(ENGINE, (st)) +# define sk_ENGINE_value(st, i) SKM_sk_value(ENGINE, (st), (i)) +# define sk_ENGINE_set(st, i, val) SKM_sk_set(ENGINE, (st), (i), (val)) +# define sk_ENGINE_zero(st) SKM_sk_zero(ENGINE, (st)) +# define sk_ENGINE_push(st, val) SKM_sk_push(ENGINE, (st), (val)) +# define sk_ENGINE_unshift(st, val) SKM_sk_unshift(ENGINE, (st), (val)) +# define sk_ENGINE_find(st, val) SKM_sk_find(ENGINE, (st), (val)) +# define sk_ENGINE_find_ex(st, val) SKM_sk_find_ex(ENGINE, (st), (val)) +# define sk_ENGINE_delete(st, i) SKM_sk_delete(ENGINE, (st), (i)) +# define sk_ENGINE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ENGINE, (st), (ptr)) +# define sk_ENGINE_insert(st, val, i) SKM_sk_insert(ENGINE, (st), (val), (i)) +# define sk_ENGINE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ENGINE, (st), (cmp)) +# define sk_ENGINE_dup(st) SKM_sk_dup(ENGINE, st) +# define sk_ENGINE_pop_free(st, free_func) SKM_sk_pop_free(ENGINE, (st), (free_func)) +# define sk_ENGINE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ENGINE, (st), (copy_func), (free_func)) +# define sk_ENGINE_shift(st) SKM_sk_shift(ENGINE, (st)) +# define sk_ENGINE_pop(st) SKM_sk_pop(ENGINE, (st)) +# define sk_ENGINE_sort(st) SKM_sk_sort(ENGINE, (st)) +# define sk_ENGINE_is_sorted(st) SKM_sk_is_sorted(ENGINE, (st)) +# define sk_ENGINE_CLEANUP_ITEM_new(cmp) SKM_sk_new(ENGINE_CLEANUP_ITEM, (cmp)) +# define sk_ENGINE_CLEANUP_ITEM_new_null() SKM_sk_new_null(ENGINE_CLEANUP_ITEM) +# define sk_ENGINE_CLEANUP_ITEM_free(st) SKM_sk_free(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_num(st) SKM_sk_num(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_value(st, i) SKM_sk_value(ENGINE_CLEANUP_ITEM, (st), (i)) +# define sk_ENGINE_CLEANUP_ITEM_set(st, i, val) SKM_sk_set(ENGINE_CLEANUP_ITEM, (st), (i), (val)) +# define sk_ENGINE_CLEANUP_ITEM_zero(st) SKM_sk_zero(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_push(st, val) SKM_sk_push(ENGINE_CLEANUP_ITEM, (st), (val)) +# define sk_ENGINE_CLEANUP_ITEM_unshift(st, val) SKM_sk_unshift(ENGINE_CLEANUP_ITEM, (st), (val)) +# define sk_ENGINE_CLEANUP_ITEM_find(st, val) SKM_sk_find(ENGINE_CLEANUP_ITEM, (st), (val)) +# define sk_ENGINE_CLEANUP_ITEM_find_ex(st, val) SKM_sk_find_ex(ENGINE_CLEANUP_ITEM, (st), (val)) +# define sk_ENGINE_CLEANUP_ITEM_delete(st, i) SKM_sk_delete(ENGINE_CLEANUP_ITEM, (st), (i)) +# define sk_ENGINE_CLEANUP_ITEM_delete_ptr(st, ptr) SKM_sk_delete_ptr(ENGINE_CLEANUP_ITEM, (st), (ptr)) +# define sk_ENGINE_CLEANUP_ITEM_insert(st, val, i) SKM_sk_insert(ENGINE_CLEANUP_ITEM, (st), (val), (i)) +# define sk_ENGINE_CLEANUP_ITEM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ENGINE_CLEANUP_ITEM, (st), (cmp)) +# define sk_ENGINE_CLEANUP_ITEM_dup(st) SKM_sk_dup(ENGINE_CLEANUP_ITEM, st) +# define sk_ENGINE_CLEANUP_ITEM_pop_free(st, free_func) SKM_sk_pop_free(ENGINE_CLEANUP_ITEM, (st), (free_func)) +# define sk_ENGINE_CLEANUP_ITEM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ENGINE_CLEANUP_ITEM, (st), (copy_func), (free_func)) +# define sk_ENGINE_CLEANUP_ITEM_shift(st) SKM_sk_shift(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_pop(st) SKM_sk_pop(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_sort(st) SKM_sk_sort(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ENGINE_CLEANUP_ITEM_is_sorted(st) SKM_sk_is_sorted(ENGINE_CLEANUP_ITEM, (st)) +# define sk_ESS_CERT_ID_new(cmp) SKM_sk_new(ESS_CERT_ID, (cmp)) +# define sk_ESS_CERT_ID_new_null() SKM_sk_new_null(ESS_CERT_ID) +# define sk_ESS_CERT_ID_free(st) SKM_sk_free(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_num(st) SKM_sk_num(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_value(st, i) SKM_sk_value(ESS_CERT_ID, (st), (i)) +# define sk_ESS_CERT_ID_set(st, i, val) SKM_sk_set(ESS_CERT_ID, (st), (i), (val)) +# define sk_ESS_CERT_ID_zero(st) SKM_sk_zero(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_push(st, val) SKM_sk_push(ESS_CERT_ID, (st), (val)) +# define sk_ESS_CERT_ID_unshift(st, val) SKM_sk_unshift(ESS_CERT_ID, (st), (val)) +# define sk_ESS_CERT_ID_find(st, val) SKM_sk_find(ESS_CERT_ID, (st), (val)) +# define sk_ESS_CERT_ID_find_ex(st, val) SKM_sk_find_ex(ESS_CERT_ID, (st), (val)) +# define sk_ESS_CERT_ID_delete(st, i) SKM_sk_delete(ESS_CERT_ID, (st), (i)) +# define sk_ESS_CERT_ID_delete_ptr(st, ptr) SKM_sk_delete_ptr(ESS_CERT_ID, (st), (ptr)) +# define sk_ESS_CERT_ID_insert(st, val, i) SKM_sk_insert(ESS_CERT_ID, (st), (val), (i)) +# define sk_ESS_CERT_ID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ESS_CERT_ID, (st), (cmp)) +# define sk_ESS_CERT_ID_dup(st) SKM_sk_dup(ESS_CERT_ID, st) +# define sk_ESS_CERT_ID_pop_free(st, free_func) SKM_sk_pop_free(ESS_CERT_ID, (st), (free_func)) +# define sk_ESS_CERT_ID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ESS_CERT_ID, (st), (copy_func), (free_func)) +# define sk_ESS_CERT_ID_shift(st) SKM_sk_shift(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_pop(st) SKM_sk_pop(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_sort(st) SKM_sk_sort(ESS_CERT_ID, (st)) +# define sk_ESS_CERT_ID_is_sorted(st) SKM_sk_is_sorted(ESS_CERT_ID, (st)) +# define sk_EVP_MD_new(cmp) SKM_sk_new(EVP_MD, (cmp)) +# define sk_EVP_MD_new_null() SKM_sk_new_null(EVP_MD) +# define sk_EVP_MD_free(st) SKM_sk_free(EVP_MD, (st)) +# define sk_EVP_MD_num(st) SKM_sk_num(EVP_MD, (st)) +# define sk_EVP_MD_value(st, i) SKM_sk_value(EVP_MD, (st), (i)) +# define sk_EVP_MD_set(st, i, val) SKM_sk_set(EVP_MD, (st), (i), (val)) +# define sk_EVP_MD_zero(st) SKM_sk_zero(EVP_MD, (st)) +# define sk_EVP_MD_push(st, val) SKM_sk_push(EVP_MD, (st), (val)) +# define sk_EVP_MD_unshift(st, val) SKM_sk_unshift(EVP_MD, (st), (val)) +# define sk_EVP_MD_find(st, val) SKM_sk_find(EVP_MD, (st), (val)) +# define sk_EVP_MD_find_ex(st, val) SKM_sk_find_ex(EVP_MD, (st), (val)) +# define sk_EVP_MD_delete(st, i) SKM_sk_delete(EVP_MD, (st), (i)) +# define sk_EVP_MD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_MD, (st), (ptr)) +# define sk_EVP_MD_insert(st, val, i) SKM_sk_insert(EVP_MD, (st), (val), (i)) +# define sk_EVP_MD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_MD, (st), (cmp)) +# define sk_EVP_MD_dup(st) SKM_sk_dup(EVP_MD, st) +# define sk_EVP_MD_pop_free(st, free_func) SKM_sk_pop_free(EVP_MD, (st), (free_func)) +# define sk_EVP_MD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_MD, (st), (copy_func), (free_func)) +# define sk_EVP_MD_shift(st) SKM_sk_shift(EVP_MD, (st)) +# define sk_EVP_MD_pop(st) SKM_sk_pop(EVP_MD, (st)) +# define sk_EVP_MD_sort(st) SKM_sk_sort(EVP_MD, (st)) +# define sk_EVP_MD_is_sorted(st) SKM_sk_is_sorted(EVP_MD, (st)) +# define sk_EVP_PBE_CTL_new(cmp) SKM_sk_new(EVP_PBE_CTL, (cmp)) +# define sk_EVP_PBE_CTL_new_null() SKM_sk_new_null(EVP_PBE_CTL) +# define sk_EVP_PBE_CTL_free(st) SKM_sk_free(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_num(st) SKM_sk_num(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_value(st, i) SKM_sk_value(EVP_PBE_CTL, (st), (i)) +# define sk_EVP_PBE_CTL_set(st, i, val) SKM_sk_set(EVP_PBE_CTL, (st), (i), (val)) +# define sk_EVP_PBE_CTL_zero(st) SKM_sk_zero(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_push(st, val) SKM_sk_push(EVP_PBE_CTL, (st), (val)) +# define sk_EVP_PBE_CTL_unshift(st, val) SKM_sk_unshift(EVP_PBE_CTL, (st), (val)) +# define sk_EVP_PBE_CTL_find(st, val) SKM_sk_find(EVP_PBE_CTL, (st), (val)) +# define sk_EVP_PBE_CTL_find_ex(st, val) SKM_sk_find_ex(EVP_PBE_CTL, (st), (val)) +# define sk_EVP_PBE_CTL_delete(st, i) SKM_sk_delete(EVP_PBE_CTL, (st), (i)) +# define sk_EVP_PBE_CTL_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PBE_CTL, (st), (ptr)) +# define sk_EVP_PBE_CTL_insert(st, val, i) SKM_sk_insert(EVP_PBE_CTL, (st), (val), (i)) +# define sk_EVP_PBE_CTL_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PBE_CTL, (st), (cmp)) +# define sk_EVP_PBE_CTL_dup(st) SKM_sk_dup(EVP_PBE_CTL, st) +# define sk_EVP_PBE_CTL_pop_free(st, free_func) SKM_sk_pop_free(EVP_PBE_CTL, (st), (free_func)) +# define sk_EVP_PBE_CTL_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PBE_CTL, (st), (copy_func), (free_func)) +# define sk_EVP_PBE_CTL_shift(st) SKM_sk_shift(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_pop(st) SKM_sk_pop(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_sort(st) SKM_sk_sort(EVP_PBE_CTL, (st)) +# define sk_EVP_PBE_CTL_is_sorted(st) SKM_sk_is_sorted(EVP_PBE_CTL, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_new(cmp) SKM_sk_new(EVP_PKEY_ASN1_METHOD, (cmp)) +# define sk_EVP_PKEY_ASN1_METHOD_new_null() SKM_sk_new_null(EVP_PKEY_ASN1_METHOD) +# define sk_EVP_PKEY_ASN1_METHOD_free(st) SKM_sk_free(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_num(st) SKM_sk_num(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_value(st, i) SKM_sk_value(EVP_PKEY_ASN1_METHOD, (st), (i)) +# define sk_EVP_PKEY_ASN1_METHOD_set(st, i, val) SKM_sk_set(EVP_PKEY_ASN1_METHOD, (st), (i), (val)) +# define sk_EVP_PKEY_ASN1_METHOD_zero(st) SKM_sk_zero(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_push(st, val) SKM_sk_push(EVP_PKEY_ASN1_METHOD, (st), (val)) +# define sk_EVP_PKEY_ASN1_METHOD_unshift(st, val) SKM_sk_unshift(EVP_PKEY_ASN1_METHOD, (st), (val)) +# define sk_EVP_PKEY_ASN1_METHOD_find(st, val) SKM_sk_find(EVP_PKEY_ASN1_METHOD, (st), (val)) +# define sk_EVP_PKEY_ASN1_METHOD_find_ex(st, val) SKM_sk_find_ex(EVP_PKEY_ASN1_METHOD, (st), (val)) +# define sk_EVP_PKEY_ASN1_METHOD_delete(st, i) SKM_sk_delete(EVP_PKEY_ASN1_METHOD, (st), (i)) +# define sk_EVP_PKEY_ASN1_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PKEY_ASN1_METHOD, (st), (ptr)) +# define sk_EVP_PKEY_ASN1_METHOD_insert(st, val, i) SKM_sk_insert(EVP_PKEY_ASN1_METHOD, (st), (val), (i)) +# define sk_EVP_PKEY_ASN1_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PKEY_ASN1_METHOD, (st), (cmp)) +# define sk_EVP_PKEY_ASN1_METHOD_dup(st) SKM_sk_dup(EVP_PKEY_ASN1_METHOD, st) +# define sk_EVP_PKEY_ASN1_METHOD_pop_free(st, free_func) SKM_sk_pop_free(EVP_PKEY_ASN1_METHOD, (st), (free_func)) +# define sk_EVP_PKEY_ASN1_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PKEY_ASN1_METHOD, (st), (copy_func), (free_func)) +# define sk_EVP_PKEY_ASN1_METHOD_shift(st) SKM_sk_shift(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_pop(st) SKM_sk_pop(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_sort(st) SKM_sk_sort(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_ASN1_METHOD_is_sorted(st) SKM_sk_is_sorted(EVP_PKEY_ASN1_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_new(cmp) SKM_sk_new(EVP_PKEY_METHOD, (cmp)) +# define sk_EVP_PKEY_METHOD_new_null() SKM_sk_new_null(EVP_PKEY_METHOD) +# define sk_EVP_PKEY_METHOD_free(st) SKM_sk_free(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_num(st) SKM_sk_num(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_value(st, i) SKM_sk_value(EVP_PKEY_METHOD, (st), (i)) +# define sk_EVP_PKEY_METHOD_set(st, i, val) SKM_sk_set(EVP_PKEY_METHOD, (st), (i), (val)) +# define sk_EVP_PKEY_METHOD_zero(st) SKM_sk_zero(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_push(st, val) SKM_sk_push(EVP_PKEY_METHOD, (st), (val)) +# define sk_EVP_PKEY_METHOD_unshift(st, val) SKM_sk_unshift(EVP_PKEY_METHOD, (st), (val)) +# define sk_EVP_PKEY_METHOD_find(st, val) SKM_sk_find(EVP_PKEY_METHOD, (st), (val)) +# define sk_EVP_PKEY_METHOD_find_ex(st, val) SKM_sk_find_ex(EVP_PKEY_METHOD, (st), (val)) +# define sk_EVP_PKEY_METHOD_delete(st, i) SKM_sk_delete(EVP_PKEY_METHOD, (st), (i)) +# define sk_EVP_PKEY_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PKEY_METHOD, (st), (ptr)) +# define sk_EVP_PKEY_METHOD_insert(st, val, i) SKM_sk_insert(EVP_PKEY_METHOD, (st), (val), (i)) +# define sk_EVP_PKEY_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PKEY_METHOD, (st), (cmp)) +# define sk_EVP_PKEY_METHOD_dup(st) SKM_sk_dup(EVP_PKEY_METHOD, st) +# define sk_EVP_PKEY_METHOD_pop_free(st, free_func) SKM_sk_pop_free(EVP_PKEY_METHOD, (st), (free_func)) +# define sk_EVP_PKEY_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PKEY_METHOD, (st), (copy_func), (free_func)) +# define sk_EVP_PKEY_METHOD_shift(st) SKM_sk_shift(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_pop(st) SKM_sk_pop(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_sort(st) SKM_sk_sort(EVP_PKEY_METHOD, (st)) +# define sk_EVP_PKEY_METHOD_is_sorted(st) SKM_sk_is_sorted(EVP_PKEY_METHOD, (st)) +# define sk_GENERAL_NAME_new(cmp) SKM_sk_new(GENERAL_NAME, (cmp)) +# define sk_GENERAL_NAME_new_null() SKM_sk_new_null(GENERAL_NAME) +# define sk_GENERAL_NAME_free(st) SKM_sk_free(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_num(st) SKM_sk_num(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_value(st, i) SKM_sk_value(GENERAL_NAME, (st), (i)) +# define sk_GENERAL_NAME_set(st, i, val) SKM_sk_set(GENERAL_NAME, (st), (i), (val)) +# define sk_GENERAL_NAME_zero(st) SKM_sk_zero(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_push(st, val) SKM_sk_push(GENERAL_NAME, (st), (val)) +# define sk_GENERAL_NAME_unshift(st, val) SKM_sk_unshift(GENERAL_NAME, (st), (val)) +# define sk_GENERAL_NAME_find(st, val) SKM_sk_find(GENERAL_NAME, (st), (val)) +# define sk_GENERAL_NAME_find_ex(st, val) SKM_sk_find_ex(GENERAL_NAME, (st), (val)) +# define sk_GENERAL_NAME_delete(st, i) SKM_sk_delete(GENERAL_NAME, (st), (i)) +# define sk_GENERAL_NAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_NAME, (st), (ptr)) +# define sk_GENERAL_NAME_insert(st, val, i) SKM_sk_insert(GENERAL_NAME, (st), (val), (i)) +# define sk_GENERAL_NAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_NAME, (st), (cmp)) +# define sk_GENERAL_NAME_dup(st) SKM_sk_dup(GENERAL_NAME, st) +# define sk_GENERAL_NAME_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_NAME, (st), (free_func)) +# define sk_GENERAL_NAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_NAME, (st), (copy_func), (free_func)) +# define sk_GENERAL_NAME_shift(st) SKM_sk_shift(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_pop(st) SKM_sk_pop(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_sort(st) SKM_sk_sort(GENERAL_NAME, (st)) +# define sk_GENERAL_NAME_is_sorted(st) SKM_sk_is_sorted(GENERAL_NAME, (st)) +# define sk_GENERAL_NAMES_new(cmp) SKM_sk_new(GENERAL_NAMES, (cmp)) +# define sk_GENERAL_NAMES_new_null() SKM_sk_new_null(GENERAL_NAMES) +# define sk_GENERAL_NAMES_free(st) SKM_sk_free(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_num(st) SKM_sk_num(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_value(st, i) SKM_sk_value(GENERAL_NAMES, (st), (i)) +# define sk_GENERAL_NAMES_set(st, i, val) SKM_sk_set(GENERAL_NAMES, (st), (i), (val)) +# define sk_GENERAL_NAMES_zero(st) SKM_sk_zero(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_push(st, val) SKM_sk_push(GENERAL_NAMES, (st), (val)) +# define sk_GENERAL_NAMES_unshift(st, val) SKM_sk_unshift(GENERAL_NAMES, (st), (val)) +# define sk_GENERAL_NAMES_find(st, val) SKM_sk_find(GENERAL_NAMES, (st), (val)) +# define sk_GENERAL_NAMES_find_ex(st, val) SKM_sk_find_ex(GENERAL_NAMES, (st), (val)) +# define sk_GENERAL_NAMES_delete(st, i) SKM_sk_delete(GENERAL_NAMES, (st), (i)) +# define sk_GENERAL_NAMES_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_NAMES, (st), (ptr)) +# define sk_GENERAL_NAMES_insert(st, val, i) SKM_sk_insert(GENERAL_NAMES, (st), (val), (i)) +# define sk_GENERAL_NAMES_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_NAMES, (st), (cmp)) +# define sk_GENERAL_NAMES_dup(st) SKM_sk_dup(GENERAL_NAMES, st) +# define sk_GENERAL_NAMES_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_NAMES, (st), (free_func)) +# define sk_GENERAL_NAMES_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_NAMES, (st), (copy_func), (free_func)) +# define sk_GENERAL_NAMES_shift(st) SKM_sk_shift(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_pop(st) SKM_sk_pop(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_sort(st) SKM_sk_sort(GENERAL_NAMES, (st)) +# define sk_GENERAL_NAMES_is_sorted(st) SKM_sk_is_sorted(GENERAL_NAMES, (st)) +# define sk_GENERAL_SUBTREE_new(cmp) SKM_sk_new(GENERAL_SUBTREE, (cmp)) +# define sk_GENERAL_SUBTREE_new_null() SKM_sk_new_null(GENERAL_SUBTREE) +# define sk_GENERAL_SUBTREE_free(st) SKM_sk_free(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_num(st) SKM_sk_num(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_value(st, i) SKM_sk_value(GENERAL_SUBTREE, (st), (i)) +# define sk_GENERAL_SUBTREE_set(st, i, val) SKM_sk_set(GENERAL_SUBTREE, (st), (i), (val)) +# define sk_GENERAL_SUBTREE_zero(st) SKM_sk_zero(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_push(st, val) SKM_sk_push(GENERAL_SUBTREE, (st), (val)) +# define sk_GENERAL_SUBTREE_unshift(st, val) SKM_sk_unshift(GENERAL_SUBTREE, (st), (val)) +# define sk_GENERAL_SUBTREE_find(st, val) SKM_sk_find(GENERAL_SUBTREE, (st), (val)) +# define sk_GENERAL_SUBTREE_find_ex(st, val) SKM_sk_find_ex(GENERAL_SUBTREE, (st), (val)) +# define sk_GENERAL_SUBTREE_delete(st, i) SKM_sk_delete(GENERAL_SUBTREE, (st), (i)) +# define sk_GENERAL_SUBTREE_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_SUBTREE, (st), (ptr)) +# define sk_GENERAL_SUBTREE_insert(st, val, i) SKM_sk_insert(GENERAL_SUBTREE, (st), (val), (i)) +# define sk_GENERAL_SUBTREE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_SUBTREE, (st), (cmp)) +# define sk_GENERAL_SUBTREE_dup(st) SKM_sk_dup(GENERAL_SUBTREE, st) +# define sk_GENERAL_SUBTREE_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_SUBTREE, (st), (free_func)) +# define sk_GENERAL_SUBTREE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_SUBTREE, (st), (copy_func), (free_func)) +# define sk_GENERAL_SUBTREE_shift(st) SKM_sk_shift(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_pop(st) SKM_sk_pop(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_sort(st) SKM_sk_sort(GENERAL_SUBTREE, (st)) +# define sk_GENERAL_SUBTREE_is_sorted(st) SKM_sk_is_sorted(GENERAL_SUBTREE, (st)) +# define sk_IPAddressFamily_new(cmp) SKM_sk_new(IPAddressFamily, (cmp)) +# define sk_IPAddressFamily_new_null() SKM_sk_new_null(IPAddressFamily) +# define sk_IPAddressFamily_free(st) SKM_sk_free(IPAddressFamily, (st)) +# define sk_IPAddressFamily_num(st) SKM_sk_num(IPAddressFamily, (st)) +# define sk_IPAddressFamily_value(st, i) SKM_sk_value(IPAddressFamily, (st), (i)) +# define sk_IPAddressFamily_set(st, i, val) SKM_sk_set(IPAddressFamily, (st), (i), (val)) +# define sk_IPAddressFamily_zero(st) SKM_sk_zero(IPAddressFamily, (st)) +# define sk_IPAddressFamily_push(st, val) SKM_sk_push(IPAddressFamily, (st), (val)) +# define sk_IPAddressFamily_unshift(st, val) SKM_sk_unshift(IPAddressFamily, (st), (val)) +# define sk_IPAddressFamily_find(st, val) SKM_sk_find(IPAddressFamily, (st), (val)) +# define sk_IPAddressFamily_find_ex(st, val) SKM_sk_find_ex(IPAddressFamily, (st), (val)) +# define sk_IPAddressFamily_delete(st, i) SKM_sk_delete(IPAddressFamily, (st), (i)) +# define sk_IPAddressFamily_delete_ptr(st, ptr) SKM_sk_delete_ptr(IPAddressFamily, (st), (ptr)) +# define sk_IPAddressFamily_insert(st, val, i) SKM_sk_insert(IPAddressFamily, (st), (val), (i)) +# define sk_IPAddressFamily_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(IPAddressFamily, (st), (cmp)) +# define sk_IPAddressFamily_dup(st) SKM_sk_dup(IPAddressFamily, st) +# define sk_IPAddressFamily_pop_free(st, free_func) SKM_sk_pop_free(IPAddressFamily, (st), (free_func)) +# define sk_IPAddressFamily_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(IPAddressFamily, (st), (copy_func), (free_func)) +# define sk_IPAddressFamily_shift(st) SKM_sk_shift(IPAddressFamily, (st)) +# define sk_IPAddressFamily_pop(st) SKM_sk_pop(IPAddressFamily, (st)) +# define sk_IPAddressFamily_sort(st) SKM_sk_sort(IPAddressFamily, (st)) +# define sk_IPAddressFamily_is_sorted(st) SKM_sk_is_sorted(IPAddressFamily, (st)) +# define sk_IPAddressOrRange_new(cmp) SKM_sk_new(IPAddressOrRange, (cmp)) +# define sk_IPAddressOrRange_new_null() SKM_sk_new_null(IPAddressOrRange) +# define sk_IPAddressOrRange_free(st) SKM_sk_free(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_num(st) SKM_sk_num(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_value(st, i) SKM_sk_value(IPAddressOrRange, (st), (i)) +# define sk_IPAddressOrRange_set(st, i, val) SKM_sk_set(IPAddressOrRange, (st), (i), (val)) +# define sk_IPAddressOrRange_zero(st) SKM_sk_zero(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_push(st, val) SKM_sk_push(IPAddressOrRange, (st), (val)) +# define sk_IPAddressOrRange_unshift(st, val) SKM_sk_unshift(IPAddressOrRange, (st), (val)) +# define sk_IPAddressOrRange_find(st, val) SKM_sk_find(IPAddressOrRange, (st), (val)) +# define sk_IPAddressOrRange_find_ex(st, val) SKM_sk_find_ex(IPAddressOrRange, (st), (val)) +# define sk_IPAddressOrRange_delete(st, i) SKM_sk_delete(IPAddressOrRange, (st), (i)) +# define sk_IPAddressOrRange_delete_ptr(st, ptr) SKM_sk_delete_ptr(IPAddressOrRange, (st), (ptr)) +# define sk_IPAddressOrRange_insert(st, val, i) SKM_sk_insert(IPAddressOrRange, (st), (val), (i)) +# define sk_IPAddressOrRange_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(IPAddressOrRange, (st), (cmp)) +# define sk_IPAddressOrRange_dup(st) SKM_sk_dup(IPAddressOrRange, st) +# define sk_IPAddressOrRange_pop_free(st, free_func) SKM_sk_pop_free(IPAddressOrRange, (st), (free_func)) +# define sk_IPAddressOrRange_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(IPAddressOrRange, (st), (copy_func), (free_func)) +# define sk_IPAddressOrRange_shift(st) SKM_sk_shift(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_pop(st) SKM_sk_pop(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_sort(st) SKM_sk_sort(IPAddressOrRange, (st)) +# define sk_IPAddressOrRange_is_sorted(st) SKM_sk_is_sorted(IPAddressOrRange, (st)) +# define sk_KRB5_APREQBODY_new(cmp) SKM_sk_new(KRB5_APREQBODY, (cmp)) +# define sk_KRB5_APREQBODY_new_null() SKM_sk_new_null(KRB5_APREQBODY) +# define sk_KRB5_APREQBODY_free(st) SKM_sk_free(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_num(st) SKM_sk_num(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_value(st, i) SKM_sk_value(KRB5_APREQBODY, (st), (i)) +# define sk_KRB5_APREQBODY_set(st, i, val) SKM_sk_set(KRB5_APREQBODY, (st), (i), (val)) +# define sk_KRB5_APREQBODY_zero(st) SKM_sk_zero(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_push(st, val) SKM_sk_push(KRB5_APREQBODY, (st), (val)) +# define sk_KRB5_APREQBODY_unshift(st, val) SKM_sk_unshift(KRB5_APREQBODY, (st), (val)) +# define sk_KRB5_APREQBODY_find(st, val) SKM_sk_find(KRB5_APREQBODY, (st), (val)) +# define sk_KRB5_APREQBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_APREQBODY, (st), (val)) +# define sk_KRB5_APREQBODY_delete(st, i) SKM_sk_delete(KRB5_APREQBODY, (st), (i)) +# define sk_KRB5_APREQBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_APREQBODY, (st), (ptr)) +# define sk_KRB5_APREQBODY_insert(st, val, i) SKM_sk_insert(KRB5_APREQBODY, (st), (val), (i)) +# define sk_KRB5_APREQBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_APREQBODY, (st), (cmp)) +# define sk_KRB5_APREQBODY_dup(st) SKM_sk_dup(KRB5_APREQBODY, st) +# define sk_KRB5_APREQBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_APREQBODY, (st), (free_func)) +# define sk_KRB5_APREQBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_APREQBODY, (st), (copy_func), (free_func)) +# define sk_KRB5_APREQBODY_shift(st) SKM_sk_shift(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_pop(st) SKM_sk_pop(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_sort(st) SKM_sk_sort(KRB5_APREQBODY, (st)) +# define sk_KRB5_APREQBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_APREQBODY, (st)) +# define sk_KRB5_AUTHDATA_new(cmp) SKM_sk_new(KRB5_AUTHDATA, (cmp)) +# define sk_KRB5_AUTHDATA_new_null() SKM_sk_new_null(KRB5_AUTHDATA) +# define sk_KRB5_AUTHDATA_free(st) SKM_sk_free(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_num(st) SKM_sk_num(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_value(st, i) SKM_sk_value(KRB5_AUTHDATA, (st), (i)) +# define sk_KRB5_AUTHDATA_set(st, i, val) SKM_sk_set(KRB5_AUTHDATA, (st), (i), (val)) +# define sk_KRB5_AUTHDATA_zero(st) SKM_sk_zero(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_push(st, val) SKM_sk_push(KRB5_AUTHDATA, (st), (val)) +# define sk_KRB5_AUTHDATA_unshift(st, val) SKM_sk_unshift(KRB5_AUTHDATA, (st), (val)) +# define sk_KRB5_AUTHDATA_find(st, val) SKM_sk_find(KRB5_AUTHDATA, (st), (val)) +# define sk_KRB5_AUTHDATA_find_ex(st, val) SKM_sk_find_ex(KRB5_AUTHDATA, (st), (val)) +# define sk_KRB5_AUTHDATA_delete(st, i) SKM_sk_delete(KRB5_AUTHDATA, (st), (i)) +# define sk_KRB5_AUTHDATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_AUTHDATA, (st), (ptr)) +# define sk_KRB5_AUTHDATA_insert(st, val, i) SKM_sk_insert(KRB5_AUTHDATA, (st), (val), (i)) +# define sk_KRB5_AUTHDATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_AUTHDATA, (st), (cmp)) +# define sk_KRB5_AUTHDATA_dup(st) SKM_sk_dup(KRB5_AUTHDATA, st) +# define sk_KRB5_AUTHDATA_pop_free(st, free_func) SKM_sk_pop_free(KRB5_AUTHDATA, (st), (free_func)) +# define sk_KRB5_AUTHDATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_AUTHDATA, (st), (copy_func), (free_func)) +# define sk_KRB5_AUTHDATA_shift(st) SKM_sk_shift(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_pop(st) SKM_sk_pop(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_sort(st) SKM_sk_sort(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHDATA, (st)) +# define sk_KRB5_AUTHENTBODY_new(cmp) SKM_sk_new(KRB5_AUTHENTBODY, (cmp)) +# define sk_KRB5_AUTHENTBODY_new_null() SKM_sk_new_null(KRB5_AUTHENTBODY) +# define sk_KRB5_AUTHENTBODY_free(st) SKM_sk_free(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_num(st) SKM_sk_num(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_value(st, i) SKM_sk_value(KRB5_AUTHENTBODY, (st), (i)) +# define sk_KRB5_AUTHENTBODY_set(st, i, val) SKM_sk_set(KRB5_AUTHENTBODY, (st), (i), (val)) +# define sk_KRB5_AUTHENTBODY_zero(st) SKM_sk_zero(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_push(st, val) SKM_sk_push(KRB5_AUTHENTBODY, (st), (val)) +# define sk_KRB5_AUTHENTBODY_unshift(st, val) SKM_sk_unshift(KRB5_AUTHENTBODY, (st), (val)) +# define sk_KRB5_AUTHENTBODY_find(st, val) SKM_sk_find(KRB5_AUTHENTBODY, (st), (val)) +# define sk_KRB5_AUTHENTBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_AUTHENTBODY, (st), (val)) +# define sk_KRB5_AUTHENTBODY_delete(st, i) SKM_sk_delete(KRB5_AUTHENTBODY, (st), (i)) +# define sk_KRB5_AUTHENTBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_AUTHENTBODY, (st), (ptr)) +# define sk_KRB5_AUTHENTBODY_insert(st, val, i) SKM_sk_insert(KRB5_AUTHENTBODY, (st), (val), (i)) +# define sk_KRB5_AUTHENTBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_AUTHENTBODY, (st), (cmp)) +# define sk_KRB5_AUTHENTBODY_dup(st) SKM_sk_dup(KRB5_AUTHENTBODY, st) +# define sk_KRB5_AUTHENTBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_AUTHENTBODY, (st), (free_func)) +# define sk_KRB5_AUTHENTBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_AUTHENTBODY, (st), (copy_func), (free_func)) +# define sk_KRB5_AUTHENTBODY_shift(st) SKM_sk_shift(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_pop(st) SKM_sk_pop(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_sort(st) SKM_sk_sort(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_AUTHENTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHENTBODY, (st)) +# define sk_KRB5_CHECKSUM_new(cmp) SKM_sk_new(KRB5_CHECKSUM, (cmp)) +# define sk_KRB5_CHECKSUM_new_null() SKM_sk_new_null(KRB5_CHECKSUM) +# define sk_KRB5_CHECKSUM_free(st) SKM_sk_free(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_num(st) SKM_sk_num(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_value(st, i) SKM_sk_value(KRB5_CHECKSUM, (st), (i)) +# define sk_KRB5_CHECKSUM_set(st, i, val) SKM_sk_set(KRB5_CHECKSUM, (st), (i), (val)) +# define sk_KRB5_CHECKSUM_zero(st) SKM_sk_zero(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_push(st, val) SKM_sk_push(KRB5_CHECKSUM, (st), (val)) +# define sk_KRB5_CHECKSUM_unshift(st, val) SKM_sk_unshift(KRB5_CHECKSUM, (st), (val)) +# define sk_KRB5_CHECKSUM_find(st, val) SKM_sk_find(KRB5_CHECKSUM, (st), (val)) +# define sk_KRB5_CHECKSUM_find_ex(st, val) SKM_sk_find_ex(KRB5_CHECKSUM, (st), (val)) +# define sk_KRB5_CHECKSUM_delete(st, i) SKM_sk_delete(KRB5_CHECKSUM, (st), (i)) +# define sk_KRB5_CHECKSUM_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_CHECKSUM, (st), (ptr)) +# define sk_KRB5_CHECKSUM_insert(st, val, i) SKM_sk_insert(KRB5_CHECKSUM, (st), (val), (i)) +# define sk_KRB5_CHECKSUM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_CHECKSUM, (st), (cmp)) +# define sk_KRB5_CHECKSUM_dup(st) SKM_sk_dup(KRB5_CHECKSUM, st) +# define sk_KRB5_CHECKSUM_pop_free(st, free_func) SKM_sk_pop_free(KRB5_CHECKSUM, (st), (free_func)) +# define sk_KRB5_CHECKSUM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_CHECKSUM, (st), (copy_func), (free_func)) +# define sk_KRB5_CHECKSUM_shift(st) SKM_sk_shift(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_pop(st) SKM_sk_pop(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_sort(st) SKM_sk_sort(KRB5_CHECKSUM, (st)) +# define sk_KRB5_CHECKSUM_is_sorted(st) SKM_sk_is_sorted(KRB5_CHECKSUM, (st)) +# define sk_KRB5_ENCDATA_new(cmp) SKM_sk_new(KRB5_ENCDATA, (cmp)) +# define sk_KRB5_ENCDATA_new_null() SKM_sk_new_null(KRB5_ENCDATA) +# define sk_KRB5_ENCDATA_free(st) SKM_sk_free(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_num(st) SKM_sk_num(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_value(st, i) SKM_sk_value(KRB5_ENCDATA, (st), (i)) +# define sk_KRB5_ENCDATA_set(st, i, val) SKM_sk_set(KRB5_ENCDATA, (st), (i), (val)) +# define sk_KRB5_ENCDATA_zero(st) SKM_sk_zero(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_push(st, val) SKM_sk_push(KRB5_ENCDATA, (st), (val)) +# define sk_KRB5_ENCDATA_unshift(st, val) SKM_sk_unshift(KRB5_ENCDATA, (st), (val)) +# define sk_KRB5_ENCDATA_find(st, val) SKM_sk_find(KRB5_ENCDATA, (st), (val)) +# define sk_KRB5_ENCDATA_find_ex(st, val) SKM_sk_find_ex(KRB5_ENCDATA, (st), (val)) +# define sk_KRB5_ENCDATA_delete(st, i) SKM_sk_delete(KRB5_ENCDATA, (st), (i)) +# define sk_KRB5_ENCDATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_ENCDATA, (st), (ptr)) +# define sk_KRB5_ENCDATA_insert(st, val, i) SKM_sk_insert(KRB5_ENCDATA, (st), (val), (i)) +# define sk_KRB5_ENCDATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_ENCDATA, (st), (cmp)) +# define sk_KRB5_ENCDATA_dup(st) SKM_sk_dup(KRB5_ENCDATA, st) +# define sk_KRB5_ENCDATA_pop_free(st, free_func) SKM_sk_pop_free(KRB5_ENCDATA, (st), (free_func)) +# define sk_KRB5_ENCDATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_ENCDATA, (st), (copy_func), (free_func)) +# define sk_KRB5_ENCDATA_shift(st) SKM_sk_shift(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_pop(st) SKM_sk_pop(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_sort(st) SKM_sk_sort(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCDATA, (st)) +# define sk_KRB5_ENCKEY_new(cmp) SKM_sk_new(KRB5_ENCKEY, (cmp)) +# define sk_KRB5_ENCKEY_new_null() SKM_sk_new_null(KRB5_ENCKEY) +# define sk_KRB5_ENCKEY_free(st) SKM_sk_free(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_num(st) SKM_sk_num(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_value(st, i) SKM_sk_value(KRB5_ENCKEY, (st), (i)) +# define sk_KRB5_ENCKEY_set(st, i, val) SKM_sk_set(KRB5_ENCKEY, (st), (i), (val)) +# define sk_KRB5_ENCKEY_zero(st) SKM_sk_zero(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_push(st, val) SKM_sk_push(KRB5_ENCKEY, (st), (val)) +# define sk_KRB5_ENCKEY_unshift(st, val) SKM_sk_unshift(KRB5_ENCKEY, (st), (val)) +# define sk_KRB5_ENCKEY_find(st, val) SKM_sk_find(KRB5_ENCKEY, (st), (val)) +# define sk_KRB5_ENCKEY_find_ex(st, val) SKM_sk_find_ex(KRB5_ENCKEY, (st), (val)) +# define sk_KRB5_ENCKEY_delete(st, i) SKM_sk_delete(KRB5_ENCKEY, (st), (i)) +# define sk_KRB5_ENCKEY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_ENCKEY, (st), (ptr)) +# define sk_KRB5_ENCKEY_insert(st, val, i) SKM_sk_insert(KRB5_ENCKEY, (st), (val), (i)) +# define sk_KRB5_ENCKEY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_ENCKEY, (st), (cmp)) +# define sk_KRB5_ENCKEY_dup(st) SKM_sk_dup(KRB5_ENCKEY, st) +# define sk_KRB5_ENCKEY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_ENCKEY, (st), (free_func)) +# define sk_KRB5_ENCKEY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_ENCKEY, (st), (copy_func), (free_func)) +# define sk_KRB5_ENCKEY_shift(st) SKM_sk_shift(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_pop(st) SKM_sk_pop(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_sort(st) SKM_sk_sort(KRB5_ENCKEY, (st)) +# define sk_KRB5_ENCKEY_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCKEY, (st)) +# define sk_KRB5_PRINCNAME_new(cmp) SKM_sk_new(KRB5_PRINCNAME, (cmp)) +# define sk_KRB5_PRINCNAME_new_null() SKM_sk_new_null(KRB5_PRINCNAME) +# define sk_KRB5_PRINCNAME_free(st) SKM_sk_free(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_num(st) SKM_sk_num(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_value(st, i) SKM_sk_value(KRB5_PRINCNAME, (st), (i)) +# define sk_KRB5_PRINCNAME_set(st, i, val) SKM_sk_set(KRB5_PRINCNAME, (st), (i), (val)) +# define sk_KRB5_PRINCNAME_zero(st) SKM_sk_zero(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_push(st, val) SKM_sk_push(KRB5_PRINCNAME, (st), (val)) +# define sk_KRB5_PRINCNAME_unshift(st, val) SKM_sk_unshift(KRB5_PRINCNAME, (st), (val)) +# define sk_KRB5_PRINCNAME_find(st, val) SKM_sk_find(KRB5_PRINCNAME, (st), (val)) +# define sk_KRB5_PRINCNAME_find_ex(st, val) SKM_sk_find_ex(KRB5_PRINCNAME, (st), (val)) +# define sk_KRB5_PRINCNAME_delete(st, i) SKM_sk_delete(KRB5_PRINCNAME, (st), (i)) +# define sk_KRB5_PRINCNAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_PRINCNAME, (st), (ptr)) +# define sk_KRB5_PRINCNAME_insert(st, val, i) SKM_sk_insert(KRB5_PRINCNAME, (st), (val), (i)) +# define sk_KRB5_PRINCNAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_PRINCNAME, (st), (cmp)) +# define sk_KRB5_PRINCNAME_dup(st) SKM_sk_dup(KRB5_PRINCNAME, st) +# define sk_KRB5_PRINCNAME_pop_free(st, free_func) SKM_sk_pop_free(KRB5_PRINCNAME, (st), (free_func)) +# define sk_KRB5_PRINCNAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_PRINCNAME, (st), (copy_func), (free_func)) +# define sk_KRB5_PRINCNAME_shift(st) SKM_sk_shift(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_pop(st) SKM_sk_pop(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_sort(st) SKM_sk_sort(KRB5_PRINCNAME, (st)) +# define sk_KRB5_PRINCNAME_is_sorted(st) SKM_sk_is_sorted(KRB5_PRINCNAME, (st)) +# define sk_KRB5_TKTBODY_new(cmp) SKM_sk_new(KRB5_TKTBODY, (cmp)) +# define sk_KRB5_TKTBODY_new_null() SKM_sk_new_null(KRB5_TKTBODY) +# define sk_KRB5_TKTBODY_free(st) SKM_sk_free(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_num(st) SKM_sk_num(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_value(st, i) SKM_sk_value(KRB5_TKTBODY, (st), (i)) +# define sk_KRB5_TKTBODY_set(st, i, val) SKM_sk_set(KRB5_TKTBODY, (st), (i), (val)) +# define sk_KRB5_TKTBODY_zero(st) SKM_sk_zero(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_push(st, val) SKM_sk_push(KRB5_TKTBODY, (st), (val)) +# define sk_KRB5_TKTBODY_unshift(st, val) SKM_sk_unshift(KRB5_TKTBODY, (st), (val)) +# define sk_KRB5_TKTBODY_find(st, val) SKM_sk_find(KRB5_TKTBODY, (st), (val)) +# define sk_KRB5_TKTBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_TKTBODY, (st), (val)) +# define sk_KRB5_TKTBODY_delete(st, i) SKM_sk_delete(KRB5_TKTBODY, (st), (i)) +# define sk_KRB5_TKTBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_TKTBODY, (st), (ptr)) +# define sk_KRB5_TKTBODY_insert(st, val, i) SKM_sk_insert(KRB5_TKTBODY, (st), (val), (i)) +# define sk_KRB5_TKTBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_TKTBODY, (st), (cmp)) +# define sk_KRB5_TKTBODY_dup(st) SKM_sk_dup(KRB5_TKTBODY, st) +# define sk_KRB5_TKTBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_TKTBODY, (st), (free_func)) +# define sk_KRB5_TKTBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_TKTBODY, (st), (copy_func), (free_func)) +# define sk_KRB5_TKTBODY_shift(st) SKM_sk_shift(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_pop(st) SKM_sk_pop(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_sort(st) SKM_sk_sort(KRB5_TKTBODY, (st)) +# define sk_KRB5_TKTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_TKTBODY, (st)) +# define sk_MEM_OBJECT_DATA_new(cmp) SKM_sk_new(MEM_OBJECT_DATA, (cmp)) +# define sk_MEM_OBJECT_DATA_new_null() SKM_sk_new_null(MEM_OBJECT_DATA) +# define sk_MEM_OBJECT_DATA_free(st) SKM_sk_free(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_num(st) SKM_sk_num(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_value(st, i) SKM_sk_value(MEM_OBJECT_DATA, (st), (i)) +# define sk_MEM_OBJECT_DATA_set(st, i, val) SKM_sk_set(MEM_OBJECT_DATA, (st), (i), (val)) +# define sk_MEM_OBJECT_DATA_zero(st) SKM_sk_zero(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_push(st, val) SKM_sk_push(MEM_OBJECT_DATA, (st), (val)) +# define sk_MEM_OBJECT_DATA_unshift(st, val) SKM_sk_unshift(MEM_OBJECT_DATA, (st), (val)) +# define sk_MEM_OBJECT_DATA_find(st, val) SKM_sk_find(MEM_OBJECT_DATA, (st), (val)) +# define sk_MEM_OBJECT_DATA_find_ex(st, val) SKM_sk_find_ex(MEM_OBJECT_DATA, (st), (val)) +# define sk_MEM_OBJECT_DATA_delete(st, i) SKM_sk_delete(MEM_OBJECT_DATA, (st), (i)) +# define sk_MEM_OBJECT_DATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(MEM_OBJECT_DATA, (st), (ptr)) +# define sk_MEM_OBJECT_DATA_insert(st, val, i) SKM_sk_insert(MEM_OBJECT_DATA, (st), (val), (i)) +# define sk_MEM_OBJECT_DATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MEM_OBJECT_DATA, (st), (cmp)) +# define sk_MEM_OBJECT_DATA_dup(st) SKM_sk_dup(MEM_OBJECT_DATA, st) +# define sk_MEM_OBJECT_DATA_pop_free(st, free_func) SKM_sk_pop_free(MEM_OBJECT_DATA, (st), (free_func)) +# define sk_MEM_OBJECT_DATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MEM_OBJECT_DATA, (st), (copy_func), (free_func)) +# define sk_MEM_OBJECT_DATA_shift(st) SKM_sk_shift(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_pop(st) SKM_sk_pop(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_sort(st) SKM_sk_sort(MEM_OBJECT_DATA, (st)) +# define sk_MEM_OBJECT_DATA_is_sorted(st) SKM_sk_is_sorted(MEM_OBJECT_DATA, (st)) +# define sk_MIME_HEADER_new(cmp) SKM_sk_new(MIME_HEADER, (cmp)) +# define sk_MIME_HEADER_new_null() SKM_sk_new_null(MIME_HEADER) +# define sk_MIME_HEADER_free(st) SKM_sk_free(MIME_HEADER, (st)) +# define sk_MIME_HEADER_num(st) SKM_sk_num(MIME_HEADER, (st)) +# define sk_MIME_HEADER_value(st, i) SKM_sk_value(MIME_HEADER, (st), (i)) +# define sk_MIME_HEADER_set(st, i, val) SKM_sk_set(MIME_HEADER, (st), (i), (val)) +# define sk_MIME_HEADER_zero(st) SKM_sk_zero(MIME_HEADER, (st)) +# define sk_MIME_HEADER_push(st, val) SKM_sk_push(MIME_HEADER, (st), (val)) +# define sk_MIME_HEADER_unshift(st, val) SKM_sk_unshift(MIME_HEADER, (st), (val)) +# define sk_MIME_HEADER_find(st, val) SKM_sk_find(MIME_HEADER, (st), (val)) +# define sk_MIME_HEADER_find_ex(st, val) SKM_sk_find_ex(MIME_HEADER, (st), (val)) +# define sk_MIME_HEADER_delete(st, i) SKM_sk_delete(MIME_HEADER, (st), (i)) +# define sk_MIME_HEADER_delete_ptr(st, ptr) SKM_sk_delete_ptr(MIME_HEADER, (st), (ptr)) +# define sk_MIME_HEADER_insert(st, val, i) SKM_sk_insert(MIME_HEADER, (st), (val), (i)) +# define sk_MIME_HEADER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MIME_HEADER, (st), (cmp)) +# define sk_MIME_HEADER_dup(st) SKM_sk_dup(MIME_HEADER, st) +# define sk_MIME_HEADER_pop_free(st, free_func) SKM_sk_pop_free(MIME_HEADER, (st), (free_func)) +# define sk_MIME_HEADER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MIME_HEADER, (st), (copy_func), (free_func)) +# define sk_MIME_HEADER_shift(st) SKM_sk_shift(MIME_HEADER, (st)) +# define sk_MIME_HEADER_pop(st) SKM_sk_pop(MIME_HEADER, (st)) +# define sk_MIME_HEADER_sort(st) SKM_sk_sort(MIME_HEADER, (st)) +# define sk_MIME_HEADER_is_sorted(st) SKM_sk_is_sorted(MIME_HEADER, (st)) +# define sk_MIME_PARAM_new(cmp) SKM_sk_new(MIME_PARAM, (cmp)) +# define sk_MIME_PARAM_new_null() SKM_sk_new_null(MIME_PARAM) +# define sk_MIME_PARAM_free(st) SKM_sk_free(MIME_PARAM, (st)) +# define sk_MIME_PARAM_num(st) SKM_sk_num(MIME_PARAM, (st)) +# define sk_MIME_PARAM_value(st, i) SKM_sk_value(MIME_PARAM, (st), (i)) +# define sk_MIME_PARAM_set(st, i, val) SKM_sk_set(MIME_PARAM, (st), (i), (val)) +# define sk_MIME_PARAM_zero(st) SKM_sk_zero(MIME_PARAM, (st)) +# define sk_MIME_PARAM_push(st, val) SKM_sk_push(MIME_PARAM, (st), (val)) +# define sk_MIME_PARAM_unshift(st, val) SKM_sk_unshift(MIME_PARAM, (st), (val)) +# define sk_MIME_PARAM_find(st, val) SKM_sk_find(MIME_PARAM, (st), (val)) +# define sk_MIME_PARAM_find_ex(st, val) SKM_sk_find_ex(MIME_PARAM, (st), (val)) +# define sk_MIME_PARAM_delete(st, i) SKM_sk_delete(MIME_PARAM, (st), (i)) +# define sk_MIME_PARAM_delete_ptr(st, ptr) SKM_sk_delete_ptr(MIME_PARAM, (st), (ptr)) +# define sk_MIME_PARAM_insert(st, val, i) SKM_sk_insert(MIME_PARAM, (st), (val), (i)) +# define sk_MIME_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MIME_PARAM, (st), (cmp)) +# define sk_MIME_PARAM_dup(st) SKM_sk_dup(MIME_PARAM, st) +# define sk_MIME_PARAM_pop_free(st, free_func) SKM_sk_pop_free(MIME_PARAM, (st), (free_func)) +# define sk_MIME_PARAM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MIME_PARAM, (st), (copy_func), (free_func)) +# define sk_MIME_PARAM_shift(st) SKM_sk_shift(MIME_PARAM, (st)) +# define sk_MIME_PARAM_pop(st) SKM_sk_pop(MIME_PARAM, (st)) +# define sk_MIME_PARAM_sort(st) SKM_sk_sort(MIME_PARAM, (st)) +# define sk_MIME_PARAM_is_sorted(st) SKM_sk_is_sorted(MIME_PARAM, (st)) +# define sk_NAME_FUNCS_new(cmp) SKM_sk_new(NAME_FUNCS, (cmp)) +# define sk_NAME_FUNCS_new_null() SKM_sk_new_null(NAME_FUNCS) +# define sk_NAME_FUNCS_free(st) SKM_sk_free(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_num(st) SKM_sk_num(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_value(st, i) SKM_sk_value(NAME_FUNCS, (st), (i)) +# define sk_NAME_FUNCS_set(st, i, val) SKM_sk_set(NAME_FUNCS, (st), (i), (val)) +# define sk_NAME_FUNCS_zero(st) SKM_sk_zero(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_push(st, val) SKM_sk_push(NAME_FUNCS, (st), (val)) +# define sk_NAME_FUNCS_unshift(st, val) SKM_sk_unshift(NAME_FUNCS, (st), (val)) +# define sk_NAME_FUNCS_find(st, val) SKM_sk_find(NAME_FUNCS, (st), (val)) +# define sk_NAME_FUNCS_find_ex(st, val) SKM_sk_find_ex(NAME_FUNCS, (st), (val)) +# define sk_NAME_FUNCS_delete(st, i) SKM_sk_delete(NAME_FUNCS, (st), (i)) +# define sk_NAME_FUNCS_delete_ptr(st, ptr) SKM_sk_delete_ptr(NAME_FUNCS, (st), (ptr)) +# define sk_NAME_FUNCS_insert(st, val, i) SKM_sk_insert(NAME_FUNCS, (st), (val), (i)) +# define sk_NAME_FUNCS_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(NAME_FUNCS, (st), (cmp)) +# define sk_NAME_FUNCS_dup(st) SKM_sk_dup(NAME_FUNCS, st) +# define sk_NAME_FUNCS_pop_free(st, free_func) SKM_sk_pop_free(NAME_FUNCS, (st), (free_func)) +# define sk_NAME_FUNCS_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(NAME_FUNCS, (st), (copy_func), (free_func)) +# define sk_NAME_FUNCS_shift(st) SKM_sk_shift(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_pop(st) SKM_sk_pop(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_sort(st) SKM_sk_sort(NAME_FUNCS, (st)) +# define sk_NAME_FUNCS_is_sorted(st) SKM_sk_is_sorted(NAME_FUNCS, (st)) +# define sk_OCSP_CERTID_new(cmp) SKM_sk_new(OCSP_CERTID, (cmp)) +# define sk_OCSP_CERTID_new_null() SKM_sk_new_null(OCSP_CERTID) +# define sk_OCSP_CERTID_free(st) SKM_sk_free(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_num(st) SKM_sk_num(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_value(st, i) SKM_sk_value(OCSP_CERTID, (st), (i)) +# define sk_OCSP_CERTID_set(st, i, val) SKM_sk_set(OCSP_CERTID, (st), (i), (val)) +# define sk_OCSP_CERTID_zero(st) SKM_sk_zero(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_push(st, val) SKM_sk_push(OCSP_CERTID, (st), (val)) +# define sk_OCSP_CERTID_unshift(st, val) SKM_sk_unshift(OCSP_CERTID, (st), (val)) +# define sk_OCSP_CERTID_find(st, val) SKM_sk_find(OCSP_CERTID, (st), (val)) +# define sk_OCSP_CERTID_find_ex(st, val) SKM_sk_find_ex(OCSP_CERTID, (st), (val)) +# define sk_OCSP_CERTID_delete(st, i) SKM_sk_delete(OCSP_CERTID, (st), (i)) +# define sk_OCSP_CERTID_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_CERTID, (st), (ptr)) +# define sk_OCSP_CERTID_insert(st, val, i) SKM_sk_insert(OCSP_CERTID, (st), (val), (i)) +# define sk_OCSP_CERTID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_CERTID, (st), (cmp)) +# define sk_OCSP_CERTID_dup(st) SKM_sk_dup(OCSP_CERTID, st) +# define sk_OCSP_CERTID_pop_free(st, free_func) SKM_sk_pop_free(OCSP_CERTID, (st), (free_func)) +# define sk_OCSP_CERTID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_CERTID, (st), (copy_func), (free_func)) +# define sk_OCSP_CERTID_shift(st) SKM_sk_shift(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_pop(st) SKM_sk_pop(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_sort(st) SKM_sk_sort(OCSP_CERTID, (st)) +# define sk_OCSP_CERTID_is_sorted(st) SKM_sk_is_sorted(OCSP_CERTID, (st)) +# define sk_OCSP_ONEREQ_new(cmp) SKM_sk_new(OCSP_ONEREQ, (cmp)) +# define sk_OCSP_ONEREQ_new_null() SKM_sk_new_null(OCSP_ONEREQ) +# define sk_OCSP_ONEREQ_free(st) SKM_sk_free(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_num(st) SKM_sk_num(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_value(st, i) SKM_sk_value(OCSP_ONEREQ, (st), (i)) +# define sk_OCSP_ONEREQ_set(st, i, val) SKM_sk_set(OCSP_ONEREQ, (st), (i), (val)) +# define sk_OCSP_ONEREQ_zero(st) SKM_sk_zero(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_push(st, val) SKM_sk_push(OCSP_ONEREQ, (st), (val)) +# define sk_OCSP_ONEREQ_unshift(st, val) SKM_sk_unshift(OCSP_ONEREQ, (st), (val)) +# define sk_OCSP_ONEREQ_find(st, val) SKM_sk_find(OCSP_ONEREQ, (st), (val)) +# define sk_OCSP_ONEREQ_find_ex(st, val) SKM_sk_find_ex(OCSP_ONEREQ, (st), (val)) +# define sk_OCSP_ONEREQ_delete(st, i) SKM_sk_delete(OCSP_ONEREQ, (st), (i)) +# define sk_OCSP_ONEREQ_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_ONEREQ, (st), (ptr)) +# define sk_OCSP_ONEREQ_insert(st, val, i) SKM_sk_insert(OCSP_ONEREQ, (st), (val), (i)) +# define sk_OCSP_ONEREQ_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_ONEREQ, (st), (cmp)) +# define sk_OCSP_ONEREQ_dup(st) SKM_sk_dup(OCSP_ONEREQ, st) +# define sk_OCSP_ONEREQ_pop_free(st, free_func) SKM_sk_pop_free(OCSP_ONEREQ, (st), (free_func)) +# define sk_OCSP_ONEREQ_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_ONEREQ, (st), (copy_func), (free_func)) +# define sk_OCSP_ONEREQ_shift(st) SKM_sk_shift(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_pop(st) SKM_sk_pop(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_sort(st) SKM_sk_sort(OCSP_ONEREQ, (st)) +# define sk_OCSP_ONEREQ_is_sorted(st) SKM_sk_is_sorted(OCSP_ONEREQ, (st)) +# define sk_OCSP_RESPID_new(cmp) SKM_sk_new(OCSP_RESPID, (cmp)) +# define sk_OCSP_RESPID_new_null() SKM_sk_new_null(OCSP_RESPID) +# define sk_OCSP_RESPID_free(st) SKM_sk_free(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_num(st) SKM_sk_num(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_value(st, i) SKM_sk_value(OCSP_RESPID, (st), (i)) +# define sk_OCSP_RESPID_set(st, i, val) SKM_sk_set(OCSP_RESPID, (st), (i), (val)) +# define sk_OCSP_RESPID_zero(st) SKM_sk_zero(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_push(st, val) SKM_sk_push(OCSP_RESPID, (st), (val)) +# define sk_OCSP_RESPID_unshift(st, val) SKM_sk_unshift(OCSP_RESPID, (st), (val)) +# define sk_OCSP_RESPID_find(st, val) SKM_sk_find(OCSP_RESPID, (st), (val)) +# define sk_OCSP_RESPID_find_ex(st, val) SKM_sk_find_ex(OCSP_RESPID, (st), (val)) +# define sk_OCSP_RESPID_delete(st, i) SKM_sk_delete(OCSP_RESPID, (st), (i)) +# define sk_OCSP_RESPID_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_RESPID, (st), (ptr)) +# define sk_OCSP_RESPID_insert(st, val, i) SKM_sk_insert(OCSP_RESPID, (st), (val), (i)) +# define sk_OCSP_RESPID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_RESPID, (st), (cmp)) +# define sk_OCSP_RESPID_dup(st) SKM_sk_dup(OCSP_RESPID, st) +# define sk_OCSP_RESPID_pop_free(st, free_func) SKM_sk_pop_free(OCSP_RESPID, (st), (free_func)) +# define sk_OCSP_RESPID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_RESPID, (st), (copy_func), (free_func)) +# define sk_OCSP_RESPID_shift(st) SKM_sk_shift(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_pop(st) SKM_sk_pop(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_sort(st) SKM_sk_sort(OCSP_RESPID, (st)) +# define sk_OCSP_RESPID_is_sorted(st) SKM_sk_is_sorted(OCSP_RESPID, (st)) +# define sk_OCSP_SINGLERESP_new(cmp) SKM_sk_new(OCSP_SINGLERESP, (cmp)) +# define sk_OCSP_SINGLERESP_new_null() SKM_sk_new_null(OCSP_SINGLERESP) +# define sk_OCSP_SINGLERESP_free(st) SKM_sk_free(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_num(st) SKM_sk_num(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_value(st, i) SKM_sk_value(OCSP_SINGLERESP, (st), (i)) +# define sk_OCSP_SINGLERESP_set(st, i, val) SKM_sk_set(OCSP_SINGLERESP, (st), (i), (val)) +# define sk_OCSP_SINGLERESP_zero(st) SKM_sk_zero(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_push(st, val) SKM_sk_push(OCSP_SINGLERESP, (st), (val)) +# define sk_OCSP_SINGLERESP_unshift(st, val) SKM_sk_unshift(OCSP_SINGLERESP, (st), (val)) +# define sk_OCSP_SINGLERESP_find(st, val) SKM_sk_find(OCSP_SINGLERESP, (st), (val)) +# define sk_OCSP_SINGLERESP_find_ex(st, val) SKM_sk_find_ex(OCSP_SINGLERESP, (st), (val)) +# define sk_OCSP_SINGLERESP_delete(st, i) SKM_sk_delete(OCSP_SINGLERESP, (st), (i)) +# define sk_OCSP_SINGLERESP_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_SINGLERESP, (st), (ptr)) +# define sk_OCSP_SINGLERESP_insert(st, val, i) SKM_sk_insert(OCSP_SINGLERESP, (st), (val), (i)) +# define sk_OCSP_SINGLERESP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_SINGLERESP, (st), (cmp)) +# define sk_OCSP_SINGLERESP_dup(st) SKM_sk_dup(OCSP_SINGLERESP, st) +# define sk_OCSP_SINGLERESP_pop_free(st, free_func) SKM_sk_pop_free(OCSP_SINGLERESP, (st), (free_func)) +# define sk_OCSP_SINGLERESP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_SINGLERESP, (st), (copy_func), (free_func)) +# define sk_OCSP_SINGLERESP_shift(st) SKM_sk_shift(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_pop(st) SKM_sk_pop(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_sort(st) SKM_sk_sort(OCSP_SINGLERESP, (st)) +# define sk_OCSP_SINGLERESP_is_sorted(st) SKM_sk_is_sorted(OCSP_SINGLERESP, (st)) +# define sk_PKCS12_SAFEBAG_new(cmp) SKM_sk_new(PKCS12_SAFEBAG, (cmp)) +# define sk_PKCS12_SAFEBAG_new_null() SKM_sk_new_null(PKCS12_SAFEBAG) +# define sk_PKCS12_SAFEBAG_free(st) SKM_sk_free(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_num(st) SKM_sk_num(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_value(st, i) SKM_sk_value(PKCS12_SAFEBAG, (st), (i)) +# define sk_PKCS12_SAFEBAG_set(st, i, val) SKM_sk_set(PKCS12_SAFEBAG, (st), (i), (val)) +# define sk_PKCS12_SAFEBAG_zero(st) SKM_sk_zero(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_push(st, val) SKM_sk_push(PKCS12_SAFEBAG, (st), (val)) +# define sk_PKCS12_SAFEBAG_unshift(st, val) SKM_sk_unshift(PKCS12_SAFEBAG, (st), (val)) +# define sk_PKCS12_SAFEBAG_find(st, val) SKM_sk_find(PKCS12_SAFEBAG, (st), (val)) +# define sk_PKCS12_SAFEBAG_find_ex(st, val) SKM_sk_find_ex(PKCS12_SAFEBAG, (st), (val)) +# define sk_PKCS12_SAFEBAG_delete(st, i) SKM_sk_delete(PKCS12_SAFEBAG, (st), (i)) +# define sk_PKCS12_SAFEBAG_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS12_SAFEBAG, (st), (ptr)) +# define sk_PKCS12_SAFEBAG_insert(st, val, i) SKM_sk_insert(PKCS12_SAFEBAG, (st), (val), (i)) +# define sk_PKCS12_SAFEBAG_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS12_SAFEBAG, (st), (cmp)) +# define sk_PKCS12_SAFEBAG_dup(st) SKM_sk_dup(PKCS12_SAFEBAG, st) +# define sk_PKCS12_SAFEBAG_pop_free(st, free_func) SKM_sk_pop_free(PKCS12_SAFEBAG, (st), (free_func)) +# define sk_PKCS12_SAFEBAG_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS12_SAFEBAG, (st), (copy_func), (free_func)) +# define sk_PKCS12_SAFEBAG_shift(st) SKM_sk_shift(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_pop(st) SKM_sk_pop(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_sort(st) SKM_sk_sort(PKCS12_SAFEBAG, (st)) +# define sk_PKCS12_SAFEBAG_is_sorted(st) SKM_sk_is_sorted(PKCS12_SAFEBAG, (st)) +# define sk_PKCS7_new(cmp) SKM_sk_new(PKCS7, (cmp)) +# define sk_PKCS7_new_null() SKM_sk_new_null(PKCS7) +# define sk_PKCS7_free(st) SKM_sk_free(PKCS7, (st)) +# define sk_PKCS7_num(st) SKM_sk_num(PKCS7, (st)) +# define sk_PKCS7_value(st, i) SKM_sk_value(PKCS7, (st), (i)) +# define sk_PKCS7_set(st, i, val) SKM_sk_set(PKCS7, (st), (i), (val)) +# define sk_PKCS7_zero(st) SKM_sk_zero(PKCS7, (st)) +# define sk_PKCS7_push(st, val) SKM_sk_push(PKCS7, (st), (val)) +# define sk_PKCS7_unshift(st, val) SKM_sk_unshift(PKCS7, (st), (val)) +# define sk_PKCS7_find(st, val) SKM_sk_find(PKCS7, (st), (val)) +# define sk_PKCS7_find_ex(st, val) SKM_sk_find_ex(PKCS7, (st), (val)) +# define sk_PKCS7_delete(st, i) SKM_sk_delete(PKCS7, (st), (i)) +# define sk_PKCS7_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7, (st), (ptr)) +# define sk_PKCS7_insert(st, val, i) SKM_sk_insert(PKCS7, (st), (val), (i)) +# define sk_PKCS7_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7, (st), (cmp)) +# define sk_PKCS7_dup(st) SKM_sk_dup(PKCS7, st) +# define sk_PKCS7_pop_free(st, free_func) SKM_sk_pop_free(PKCS7, (st), (free_func)) +# define sk_PKCS7_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7, (st), (copy_func), (free_func)) +# define sk_PKCS7_shift(st) SKM_sk_shift(PKCS7, (st)) +# define sk_PKCS7_pop(st) SKM_sk_pop(PKCS7, (st)) +# define sk_PKCS7_sort(st) SKM_sk_sort(PKCS7, (st)) +# define sk_PKCS7_is_sorted(st) SKM_sk_is_sorted(PKCS7, (st)) +# define sk_PKCS7_RECIP_INFO_new(cmp) SKM_sk_new(PKCS7_RECIP_INFO, (cmp)) +# define sk_PKCS7_RECIP_INFO_new_null() SKM_sk_new_null(PKCS7_RECIP_INFO) +# define sk_PKCS7_RECIP_INFO_free(st) SKM_sk_free(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_num(st) SKM_sk_num(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_value(st, i) SKM_sk_value(PKCS7_RECIP_INFO, (st), (i)) +# define sk_PKCS7_RECIP_INFO_set(st, i, val) SKM_sk_set(PKCS7_RECIP_INFO, (st), (i), (val)) +# define sk_PKCS7_RECIP_INFO_zero(st) SKM_sk_zero(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_push(st, val) SKM_sk_push(PKCS7_RECIP_INFO, (st), (val)) +# define sk_PKCS7_RECIP_INFO_unshift(st, val) SKM_sk_unshift(PKCS7_RECIP_INFO, (st), (val)) +# define sk_PKCS7_RECIP_INFO_find(st, val) SKM_sk_find(PKCS7_RECIP_INFO, (st), (val)) +# define sk_PKCS7_RECIP_INFO_find_ex(st, val) SKM_sk_find_ex(PKCS7_RECIP_INFO, (st), (val)) +# define sk_PKCS7_RECIP_INFO_delete(st, i) SKM_sk_delete(PKCS7_RECIP_INFO, (st), (i)) +# define sk_PKCS7_RECIP_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7_RECIP_INFO, (st), (ptr)) +# define sk_PKCS7_RECIP_INFO_insert(st, val, i) SKM_sk_insert(PKCS7_RECIP_INFO, (st), (val), (i)) +# define sk_PKCS7_RECIP_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7_RECIP_INFO, (st), (cmp)) +# define sk_PKCS7_RECIP_INFO_dup(st) SKM_sk_dup(PKCS7_RECIP_INFO, st) +# define sk_PKCS7_RECIP_INFO_pop_free(st, free_func) SKM_sk_pop_free(PKCS7_RECIP_INFO, (st), (free_func)) +# define sk_PKCS7_RECIP_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7_RECIP_INFO, (st), (copy_func), (free_func)) +# define sk_PKCS7_RECIP_INFO_shift(st) SKM_sk_shift(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_pop(st) SKM_sk_pop(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_sort(st) SKM_sk_sort(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_RECIP_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_RECIP_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_new(cmp) SKM_sk_new(PKCS7_SIGNER_INFO, (cmp)) +# define sk_PKCS7_SIGNER_INFO_new_null() SKM_sk_new_null(PKCS7_SIGNER_INFO) +# define sk_PKCS7_SIGNER_INFO_free(st) SKM_sk_free(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_num(st) SKM_sk_num(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_value(st, i) SKM_sk_value(PKCS7_SIGNER_INFO, (st), (i)) +# define sk_PKCS7_SIGNER_INFO_set(st, i, val) SKM_sk_set(PKCS7_SIGNER_INFO, (st), (i), (val)) +# define sk_PKCS7_SIGNER_INFO_zero(st) SKM_sk_zero(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_push(st, val) SKM_sk_push(PKCS7_SIGNER_INFO, (st), (val)) +# define sk_PKCS7_SIGNER_INFO_unshift(st, val) SKM_sk_unshift(PKCS7_SIGNER_INFO, (st), (val)) +# define sk_PKCS7_SIGNER_INFO_find(st, val) SKM_sk_find(PKCS7_SIGNER_INFO, (st), (val)) +# define sk_PKCS7_SIGNER_INFO_find_ex(st, val) SKM_sk_find_ex(PKCS7_SIGNER_INFO, (st), (val)) +# define sk_PKCS7_SIGNER_INFO_delete(st, i) SKM_sk_delete(PKCS7_SIGNER_INFO, (st), (i)) +# define sk_PKCS7_SIGNER_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7_SIGNER_INFO, (st), (ptr)) +# define sk_PKCS7_SIGNER_INFO_insert(st, val, i) SKM_sk_insert(PKCS7_SIGNER_INFO, (st), (val), (i)) +# define sk_PKCS7_SIGNER_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7_SIGNER_INFO, (st), (cmp)) +# define sk_PKCS7_SIGNER_INFO_dup(st) SKM_sk_dup(PKCS7_SIGNER_INFO, st) +# define sk_PKCS7_SIGNER_INFO_pop_free(st, free_func) SKM_sk_pop_free(PKCS7_SIGNER_INFO, (st), (free_func)) +# define sk_PKCS7_SIGNER_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7_SIGNER_INFO, (st), (copy_func), (free_func)) +# define sk_PKCS7_SIGNER_INFO_shift(st) SKM_sk_shift(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_pop(st) SKM_sk_pop(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_sort(st) SKM_sk_sort(PKCS7_SIGNER_INFO, (st)) +# define sk_PKCS7_SIGNER_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_SIGNER_INFO, (st)) +# define sk_POLICYINFO_new(cmp) SKM_sk_new(POLICYINFO, (cmp)) +# define sk_POLICYINFO_new_null() SKM_sk_new_null(POLICYINFO) +# define sk_POLICYINFO_free(st) SKM_sk_free(POLICYINFO, (st)) +# define sk_POLICYINFO_num(st) SKM_sk_num(POLICYINFO, (st)) +# define sk_POLICYINFO_value(st, i) SKM_sk_value(POLICYINFO, (st), (i)) +# define sk_POLICYINFO_set(st, i, val) SKM_sk_set(POLICYINFO, (st), (i), (val)) +# define sk_POLICYINFO_zero(st) SKM_sk_zero(POLICYINFO, (st)) +# define sk_POLICYINFO_push(st, val) SKM_sk_push(POLICYINFO, (st), (val)) +# define sk_POLICYINFO_unshift(st, val) SKM_sk_unshift(POLICYINFO, (st), (val)) +# define sk_POLICYINFO_find(st, val) SKM_sk_find(POLICYINFO, (st), (val)) +# define sk_POLICYINFO_find_ex(st, val) SKM_sk_find_ex(POLICYINFO, (st), (val)) +# define sk_POLICYINFO_delete(st, i) SKM_sk_delete(POLICYINFO, (st), (i)) +# define sk_POLICYINFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICYINFO, (st), (ptr)) +# define sk_POLICYINFO_insert(st, val, i) SKM_sk_insert(POLICYINFO, (st), (val), (i)) +# define sk_POLICYINFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICYINFO, (st), (cmp)) +# define sk_POLICYINFO_dup(st) SKM_sk_dup(POLICYINFO, st) +# define sk_POLICYINFO_pop_free(st, free_func) SKM_sk_pop_free(POLICYINFO, (st), (free_func)) +# define sk_POLICYINFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICYINFO, (st), (copy_func), (free_func)) +# define sk_POLICYINFO_shift(st) SKM_sk_shift(POLICYINFO, (st)) +# define sk_POLICYINFO_pop(st) SKM_sk_pop(POLICYINFO, (st)) +# define sk_POLICYINFO_sort(st) SKM_sk_sort(POLICYINFO, (st)) +# define sk_POLICYINFO_is_sorted(st) SKM_sk_is_sorted(POLICYINFO, (st)) +# define sk_POLICYQUALINFO_new(cmp) SKM_sk_new(POLICYQUALINFO, (cmp)) +# define sk_POLICYQUALINFO_new_null() SKM_sk_new_null(POLICYQUALINFO) +# define sk_POLICYQUALINFO_free(st) SKM_sk_free(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_num(st) SKM_sk_num(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_value(st, i) SKM_sk_value(POLICYQUALINFO, (st), (i)) +# define sk_POLICYQUALINFO_set(st, i, val) SKM_sk_set(POLICYQUALINFO, (st), (i), (val)) +# define sk_POLICYQUALINFO_zero(st) SKM_sk_zero(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_push(st, val) SKM_sk_push(POLICYQUALINFO, (st), (val)) +# define sk_POLICYQUALINFO_unshift(st, val) SKM_sk_unshift(POLICYQUALINFO, (st), (val)) +# define sk_POLICYQUALINFO_find(st, val) SKM_sk_find(POLICYQUALINFO, (st), (val)) +# define sk_POLICYQUALINFO_find_ex(st, val) SKM_sk_find_ex(POLICYQUALINFO, (st), (val)) +# define sk_POLICYQUALINFO_delete(st, i) SKM_sk_delete(POLICYQUALINFO, (st), (i)) +# define sk_POLICYQUALINFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICYQUALINFO, (st), (ptr)) +# define sk_POLICYQUALINFO_insert(st, val, i) SKM_sk_insert(POLICYQUALINFO, (st), (val), (i)) +# define sk_POLICYQUALINFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICYQUALINFO, (st), (cmp)) +# define sk_POLICYQUALINFO_dup(st) SKM_sk_dup(POLICYQUALINFO, st) +# define sk_POLICYQUALINFO_pop_free(st, free_func) SKM_sk_pop_free(POLICYQUALINFO, (st), (free_func)) +# define sk_POLICYQUALINFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICYQUALINFO, (st), (copy_func), (free_func)) +# define sk_POLICYQUALINFO_shift(st) SKM_sk_shift(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_pop(st) SKM_sk_pop(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_sort(st) SKM_sk_sort(POLICYQUALINFO, (st)) +# define sk_POLICYQUALINFO_is_sorted(st) SKM_sk_is_sorted(POLICYQUALINFO, (st)) +# define sk_POLICY_MAPPING_new(cmp) SKM_sk_new(POLICY_MAPPING, (cmp)) +# define sk_POLICY_MAPPING_new_null() SKM_sk_new_null(POLICY_MAPPING) +# define sk_POLICY_MAPPING_free(st) SKM_sk_free(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_num(st) SKM_sk_num(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_value(st, i) SKM_sk_value(POLICY_MAPPING, (st), (i)) +# define sk_POLICY_MAPPING_set(st, i, val) SKM_sk_set(POLICY_MAPPING, (st), (i), (val)) +# define sk_POLICY_MAPPING_zero(st) SKM_sk_zero(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_push(st, val) SKM_sk_push(POLICY_MAPPING, (st), (val)) +# define sk_POLICY_MAPPING_unshift(st, val) SKM_sk_unshift(POLICY_MAPPING, (st), (val)) +# define sk_POLICY_MAPPING_find(st, val) SKM_sk_find(POLICY_MAPPING, (st), (val)) +# define sk_POLICY_MAPPING_find_ex(st, val) SKM_sk_find_ex(POLICY_MAPPING, (st), (val)) +# define sk_POLICY_MAPPING_delete(st, i) SKM_sk_delete(POLICY_MAPPING, (st), (i)) +# define sk_POLICY_MAPPING_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICY_MAPPING, (st), (ptr)) +# define sk_POLICY_MAPPING_insert(st, val, i) SKM_sk_insert(POLICY_MAPPING, (st), (val), (i)) +# define sk_POLICY_MAPPING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICY_MAPPING, (st), (cmp)) +# define sk_POLICY_MAPPING_dup(st) SKM_sk_dup(POLICY_MAPPING, st) +# define sk_POLICY_MAPPING_pop_free(st, free_func) SKM_sk_pop_free(POLICY_MAPPING, (st), (free_func)) +# define sk_POLICY_MAPPING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICY_MAPPING, (st), (copy_func), (free_func)) +# define sk_POLICY_MAPPING_shift(st) SKM_sk_shift(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_pop(st) SKM_sk_pop(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_sort(st) SKM_sk_sort(POLICY_MAPPING, (st)) +# define sk_POLICY_MAPPING_is_sorted(st) SKM_sk_is_sorted(POLICY_MAPPING, (st)) +# define sk_SCT_new(cmp) SKM_sk_new(SCT, (cmp)) +# define sk_SCT_new_null() SKM_sk_new_null(SCT) +# define sk_SCT_free(st) SKM_sk_free(SCT, (st)) +# define sk_SCT_num(st) SKM_sk_num(SCT, (st)) +# define sk_SCT_value(st, i) SKM_sk_value(SCT, (st), (i)) +# define sk_SCT_set(st, i, val) SKM_sk_set(SCT, (st), (i), (val)) +# define sk_SCT_zero(st) SKM_sk_zero(SCT, (st)) +# define sk_SCT_push(st, val) SKM_sk_push(SCT, (st), (val)) +# define sk_SCT_unshift(st, val) SKM_sk_unshift(SCT, (st), (val)) +# define sk_SCT_find(st, val) SKM_sk_find(SCT, (st), (val)) +# define sk_SCT_find_ex(st, val) SKM_sk_find_ex(SCT, (st), (val)) +# define sk_SCT_delete(st, i) SKM_sk_delete(SCT, (st), (i)) +# define sk_SCT_delete_ptr(st, ptr) SKM_sk_delete_ptr(SCT, (st), (ptr)) +# define sk_SCT_insert(st, val, i) SKM_sk_insert(SCT, (st), (val), (i)) +# define sk_SCT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SCT, (st), (cmp)) +# define sk_SCT_dup(st) SKM_sk_dup(SCT, st) +# define sk_SCT_pop_free(st, free_func) SKM_sk_pop_free(SCT, (st), (free_func)) +# define sk_SCT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SCT, (st), (copy_func), (free_func)) +# define sk_SCT_shift(st) SKM_sk_shift(SCT, (st)) +# define sk_SCT_pop(st) SKM_sk_pop(SCT, (st)) +# define sk_SCT_sort(st) SKM_sk_sort(SCT, (st)) +# define sk_SCT_is_sorted(st) SKM_sk_is_sorted(SCT, (st)) +# define sk_SRP_gN_new(cmp) SKM_sk_new(SRP_gN, (cmp)) +# define sk_SRP_gN_new_null() SKM_sk_new_null(SRP_gN) +# define sk_SRP_gN_free(st) SKM_sk_free(SRP_gN, (st)) +# define sk_SRP_gN_num(st) SKM_sk_num(SRP_gN, (st)) +# define sk_SRP_gN_value(st, i) SKM_sk_value(SRP_gN, (st), (i)) +# define sk_SRP_gN_set(st, i, val) SKM_sk_set(SRP_gN, (st), (i), (val)) +# define sk_SRP_gN_zero(st) SKM_sk_zero(SRP_gN, (st)) +# define sk_SRP_gN_push(st, val) SKM_sk_push(SRP_gN, (st), (val)) +# define sk_SRP_gN_unshift(st, val) SKM_sk_unshift(SRP_gN, (st), (val)) +# define sk_SRP_gN_find(st, val) SKM_sk_find(SRP_gN, (st), (val)) +# define sk_SRP_gN_find_ex(st, val) SKM_sk_find_ex(SRP_gN, (st), (val)) +# define sk_SRP_gN_delete(st, i) SKM_sk_delete(SRP_gN, (st), (i)) +# define sk_SRP_gN_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_gN, (st), (ptr)) +# define sk_SRP_gN_insert(st, val, i) SKM_sk_insert(SRP_gN, (st), (val), (i)) +# define sk_SRP_gN_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_gN, (st), (cmp)) +# define sk_SRP_gN_dup(st) SKM_sk_dup(SRP_gN, st) +# define sk_SRP_gN_pop_free(st, free_func) SKM_sk_pop_free(SRP_gN, (st), (free_func)) +# define sk_SRP_gN_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_gN, (st), (copy_func), (free_func)) +# define sk_SRP_gN_shift(st) SKM_sk_shift(SRP_gN, (st)) +# define sk_SRP_gN_pop(st) SKM_sk_pop(SRP_gN, (st)) +# define sk_SRP_gN_sort(st) SKM_sk_sort(SRP_gN, (st)) +# define sk_SRP_gN_is_sorted(st) SKM_sk_is_sorted(SRP_gN, (st)) +# define sk_SRP_gN_cache_new(cmp) SKM_sk_new(SRP_gN_cache, (cmp)) +# define sk_SRP_gN_cache_new_null() SKM_sk_new_null(SRP_gN_cache) +# define sk_SRP_gN_cache_free(st) SKM_sk_free(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_num(st) SKM_sk_num(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_value(st, i) SKM_sk_value(SRP_gN_cache, (st), (i)) +# define sk_SRP_gN_cache_set(st, i, val) SKM_sk_set(SRP_gN_cache, (st), (i), (val)) +# define sk_SRP_gN_cache_zero(st) SKM_sk_zero(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_push(st, val) SKM_sk_push(SRP_gN_cache, (st), (val)) +# define sk_SRP_gN_cache_unshift(st, val) SKM_sk_unshift(SRP_gN_cache, (st), (val)) +# define sk_SRP_gN_cache_find(st, val) SKM_sk_find(SRP_gN_cache, (st), (val)) +# define sk_SRP_gN_cache_find_ex(st, val) SKM_sk_find_ex(SRP_gN_cache, (st), (val)) +# define sk_SRP_gN_cache_delete(st, i) SKM_sk_delete(SRP_gN_cache, (st), (i)) +# define sk_SRP_gN_cache_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_gN_cache, (st), (ptr)) +# define sk_SRP_gN_cache_insert(st, val, i) SKM_sk_insert(SRP_gN_cache, (st), (val), (i)) +# define sk_SRP_gN_cache_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_gN_cache, (st), (cmp)) +# define sk_SRP_gN_cache_dup(st) SKM_sk_dup(SRP_gN_cache, st) +# define sk_SRP_gN_cache_pop_free(st, free_func) SKM_sk_pop_free(SRP_gN_cache, (st), (free_func)) +# define sk_SRP_gN_cache_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_gN_cache, (st), (copy_func), (free_func)) +# define sk_SRP_gN_cache_shift(st) SKM_sk_shift(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_pop(st) SKM_sk_pop(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_sort(st) SKM_sk_sort(SRP_gN_cache, (st)) +# define sk_SRP_gN_cache_is_sorted(st) SKM_sk_is_sorted(SRP_gN_cache, (st)) +# define sk_SRP_user_pwd_new(cmp) SKM_sk_new(SRP_user_pwd, (cmp)) +# define sk_SRP_user_pwd_new_null() SKM_sk_new_null(SRP_user_pwd) +# define sk_SRP_user_pwd_free(st) SKM_sk_free(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_num(st) SKM_sk_num(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_value(st, i) SKM_sk_value(SRP_user_pwd, (st), (i)) +# define sk_SRP_user_pwd_set(st, i, val) SKM_sk_set(SRP_user_pwd, (st), (i), (val)) +# define sk_SRP_user_pwd_zero(st) SKM_sk_zero(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_push(st, val) SKM_sk_push(SRP_user_pwd, (st), (val)) +# define sk_SRP_user_pwd_unshift(st, val) SKM_sk_unshift(SRP_user_pwd, (st), (val)) +# define sk_SRP_user_pwd_find(st, val) SKM_sk_find(SRP_user_pwd, (st), (val)) +# define sk_SRP_user_pwd_find_ex(st, val) SKM_sk_find_ex(SRP_user_pwd, (st), (val)) +# define sk_SRP_user_pwd_delete(st, i) SKM_sk_delete(SRP_user_pwd, (st), (i)) +# define sk_SRP_user_pwd_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_user_pwd, (st), (ptr)) +# define sk_SRP_user_pwd_insert(st, val, i) SKM_sk_insert(SRP_user_pwd, (st), (val), (i)) +# define sk_SRP_user_pwd_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_user_pwd, (st), (cmp)) +# define sk_SRP_user_pwd_dup(st) SKM_sk_dup(SRP_user_pwd, st) +# define sk_SRP_user_pwd_pop_free(st, free_func) SKM_sk_pop_free(SRP_user_pwd, (st), (free_func)) +# define sk_SRP_user_pwd_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_user_pwd, (st), (copy_func), (free_func)) +# define sk_SRP_user_pwd_shift(st) SKM_sk_shift(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_pop(st) SKM_sk_pop(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_sort(st) SKM_sk_sort(SRP_user_pwd, (st)) +# define sk_SRP_user_pwd_is_sorted(st) SKM_sk_is_sorted(SRP_user_pwd, (st)) +# define sk_SRTP_PROTECTION_PROFILE_new(cmp) SKM_sk_new(SRTP_PROTECTION_PROFILE, (cmp)) +# define sk_SRTP_PROTECTION_PROFILE_new_null() SKM_sk_new_null(SRTP_PROTECTION_PROFILE) +# define sk_SRTP_PROTECTION_PROFILE_free(st) SKM_sk_free(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_num(st) SKM_sk_num(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_value(st, i) SKM_sk_value(SRTP_PROTECTION_PROFILE, (st), (i)) +# define sk_SRTP_PROTECTION_PROFILE_set(st, i, val) SKM_sk_set(SRTP_PROTECTION_PROFILE, (st), (i), (val)) +# define sk_SRTP_PROTECTION_PROFILE_zero(st) SKM_sk_zero(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_push(st, val) SKM_sk_push(SRTP_PROTECTION_PROFILE, (st), (val)) +# define sk_SRTP_PROTECTION_PROFILE_unshift(st, val) SKM_sk_unshift(SRTP_PROTECTION_PROFILE, (st), (val)) +# define sk_SRTP_PROTECTION_PROFILE_find(st, val) SKM_sk_find(SRTP_PROTECTION_PROFILE, (st), (val)) +# define sk_SRTP_PROTECTION_PROFILE_find_ex(st, val) SKM_sk_find_ex(SRTP_PROTECTION_PROFILE, (st), (val)) +# define sk_SRTP_PROTECTION_PROFILE_delete(st, i) SKM_sk_delete(SRTP_PROTECTION_PROFILE, (st), (i)) +# define sk_SRTP_PROTECTION_PROFILE_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRTP_PROTECTION_PROFILE, (st), (ptr)) +# define sk_SRTP_PROTECTION_PROFILE_insert(st, val, i) SKM_sk_insert(SRTP_PROTECTION_PROFILE, (st), (val), (i)) +# define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRTP_PROTECTION_PROFILE, (st), (cmp)) +# define sk_SRTP_PROTECTION_PROFILE_dup(st) SKM_sk_dup(SRTP_PROTECTION_PROFILE, st) +# define sk_SRTP_PROTECTION_PROFILE_pop_free(st, free_func) SKM_sk_pop_free(SRTP_PROTECTION_PROFILE, (st), (free_func)) +# define sk_SRTP_PROTECTION_PROFILE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRTP_PROTECTION_PROFILE, (st), (copy_func), (free_func)) +# define sk_SRTP_PROTECTION_PROFILE_shift(st) SKM_sk_shift(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_pop(st) SKM_sk_pop(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_sort(st) SKM_sk_sort(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SRTP_PROTECTION_PROFILE_is_sorted(st) SKM_sk_is_sorted(SRTP_PROTECTION_PROFILE, (st)) +# define sk_SSL_CIPHER_new(cmp) SKM_sk_new(SSL_CIPHER, (cmp)) +# define sk_SSL_CIPHER_new_null() SKM_sk_new_null(SSL_CIPHER) +# define sk_SSL_CIPHER_free(st) SKM_sk_free(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_num(st) SKM_sk_num(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_value(st, i) SKM_sk_value(SSL_CIPHER, (st), (i)) +# define sk_SSL_CIPHER_set(st, i, val) SKM_sk_set(SSL_CIPHER, (st), (i), (val)) +# define sk_SSL_CIPHER_zero(st) SKM_sk_zero(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_push(st, val) SKM_sk_push(SSL_CIPHER, (st), (val)) +# define sk_SSL_CIPHER_unshift(st, val) SKM_sk_unshift(SSL_CIPHER, (st), (val)) +# define sk_SSL_CIPHER_find(st, val) SKM_sk_find(SSL_CIPHER, (st), (val)) +# define sk_SSL_CIPHER_find_ex(st, val) SKM_sk_find_ex(SSL_CIPHER, (st), (val)) +# define sk_SSL_CIPHER_delete(st, i) SKM_sk_delete(SSL_CIPHER, (st), (i)) +# define sk_SSL_CIPHER_delete_ptr(st, ptr) SKM_sk_delete_ptr(SSL_CIPHER, (st), (ptr)) +# define sk_SSL_CIPHER_insert(st, val, i) SKM_sk_insert(SSL_CIPHER, (st), (val), (i)) +# define sk_SSL_CIPHER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SSL_CIPHER, (st), (cmp)) +# define sk_SSL_CIPHER_dup(st) SKM_sk_dup(SSL_CIPHER, st) +# define sk_SSL_CIPHER_pop_free(st, free_func) SKM_sk_pop_free(SSL_CIPHER, (st), (free_func)) +# define sk_SSL_CIPHER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SSL_CIPHER, (st), (copy_func), (free_func)) +# define sk_SSL_CIPHER_shift(st) SKM_sk_shift(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_pop(st) SKM_sk_pop(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_sort(st) SKM_sk_sort(SSL_CIPHER, (st)) +# define sk_SSL_CIPHER_is_sorted(st) SKM_sk_is_sorted(SSL_CIPHER, (st)) +# define sk_SSL_COMP_new(cmp) SKM_sk_new(SSL_COMP, (cmp)) +# define sk_SSL_COMP_new_null() SKM_sk_new_null(SSL_COMP) +# define sk_SSL_COMP_free(st) SKM_sk_free(SSL_COMP, (st)) +# define sk_SSL_COMP_num(st) SKM_sk_num(SSL_COMP, (st)) +# define sk_SSL_COMP_value(st, i) SKM_sk_value(SSL_COMP, (st), (i)) +# define sk_SSL_COMP_set(st, i, val) SKM_sk_set(SSL_COMP, (st), (i), (val)) +# define sk_SSL_COMP_zero(st) SKM_sk_zero(SSL_COMP, (st)) +# define sk_SSL_COMP_push(st, val) SKM_sk_push(SSL_COMP, (st), (val)) +# define sk_SSL_COMP_unshift(st, val) SKM_sk_unshift(SSL_COMP, (st), (val)) +# define sk_SSL_COMP_find(st, val) SKM_sk_find(SSL_COMP, (st), (val)) +# define sk_SSL_COMP_find_ex(st, val) SKM_sk_find_ex(SSL_COMP, (st), (val)) +# define sk_SSL_COMP_delete(st, i) SKM_sk_delete(SSL_COMP, (st), (i)) +# define sk_SSL_COMP_delete_ptr(st, ptr) SKM_sk_delete_ptr(SSL_COMP, (st), (ptr)) +# define sk_SSL_COMP_insert(st, val, i) SKM_sk_insert(SSL_COMP, (st), (val), (i)) +# define sk_SSL_COMP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SSL_COMP, (st), (cmp)) +# define sk_SSL_COMP_dup(st) SKM_sk_dup(SSL_COMP, st) +# define sk_SSL_COMP_pop_free(st, free_func) SKM_sk_pop_free(SSL_COMP, (st), (free_func)) +# define sk_SSL_COMP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SSL_COMP, (st), (copy_func), (free_func)) +# define sk_SSL_COMP_shift(st) SKM_sk_shift(SSL_COMP, (st)) +# define sk_SSL_COMP_pop(st) SKM_sk_pop(SSL_COMP, (st)) +# define sk_SSL_COMP_sort(st) SKM_sk_sort(SSL_COMP, (st)) +# define sk_SSL_COMP_is_sorted(st) SKM_sk_is_sorted(SSL_COMP, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_new(cmp) SKM_sk_new(STACK_OF_X509_NAME_ENTRY, (cmp)) +# define sk_STACK_OF_X509_NAME_ENTRY_new_null() SKM_sk_new_null(STACK_OF_X509_NAME_ENTRY) +# define sk_STACK_OF_X509_NAME_ENTRY_free(st) SKM_sk_free(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_num(st) SKM_sk_num(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_value(st, i) SKM_sk_value(STACK_OF_X509_NAME_ENTRY, (st), (i)) +# define sk_STACK_OF_X509_NAME_ENTRY_set(st, i, val) SKM_sk_set(STACK_OF_X509_NAME_ENTRY, (st), (i), (val)) +# define sk_STACK_OF_X509_NAME_ENTRY_zero(st) SKM_sk_zero(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_push(st, val) SKM_sk_push(STACK_OF_X509_NAME_ENTRY, (st), (val)) +# define sk_STACK_OF_X509_NAME_ENTRY_unshift(st, val) SKM_sk_unshift(STACK_OF_X509_NAME_ENTRY, (st), (val)) +# define sk_STACK_OF_X509_NAME_ENTRY_find(st, val) SKM_sk_find(STACK_OF_X509_NAME_ENTRY, (st), (val)) +# define sk_STACK_OF_X509_NAME_ENTRY_find_ex(st, val) SKM_sk_find_ex(STACK_OF_X509_NAME_ENTRY, (st), (val)) +# define sk_STACK_OF_X509_NAME_ENTRY_delete(st, i) SKM_sk_delete(STACK_OF_X509_NAME_ENTRY, (st), (i)) +# define sk_STACK_OF_X509_NAME_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(STACK_OF_X509_NAME_ENTRY, (st), (ptr)) +# define sk_STACK_OF_X509_NAME_ENTRY_insert(st, val, i) SKM_sk_insert(STACK_OF_X509_NAME_ENTRY, (st), (val), (i)) +# define sk_STACK_OF_X509_NAME_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STACK_OF_X509_NAME_ENTRY, (st), (cmp)) +# define sk_STACK_OF_X509_NAME_ENTRY_dup(st) SKM_sk_dup(STACK_OF_X509_NAME_ENTRY, st) +# define sk_STACK_OF_X509_NAME_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(STACK_OF_X509_NAME_ENTRY, (st), (free_func)) +# define sk_STACK_OF_X509_NAME_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STACK_OF_X509_NAME_ENTRY, (st), (copy_func), (free_func)) +# define sk_STACK_OF_X509_NAME_ENTRY_shift(st) SKM_sk_shift(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_pop(st) SKM_sk_pop(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_sort(st) SKM_sk_sort(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STACK_OF_X509_NAME_ENTRY_is_sorted(st) SKM_sk_is_sorted(STACK_OF_X509_NAME_ENTRY, (st)) +# define sk_STORE_ATTR_INFO_new(cmp) SKM_sk_new(STORE_ATTR_INFO, (cmp)) +# define sk_STORE_ATTR_INFO_new_null() SKM_sk_new_null(STORE_ATTR_INFO) +# define sk_STORE_ATTR_INFO_free(st) SKM_sk_free(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_num(st) SKM_sk_num(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_value(st, i) SKM_sk_value(STORE_ATTR_INFO, (st), (i)) +# define sk_STORE_ATTR_INFO_set(st, i, val) SKM_sk_set(STORE_ATTR_INFO, (st), (i), (val)) +# define sk_STORE_ATTR_INFO_zero(st) SKM_sk_zero(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_push(st, val) SKM_sk_push(STORE_ATTR_INFO, (st), (val)) +# define sk_STORE_ATTR_INFO_unshift(st, val) SKM_sk_unshift(STORE_ATTR_INFO, (st), (val)) +# define sk_STORE_ATTR_INFO_find(st, val) SKM_sk_find(STORE_ATTR_INFO, (st), (val)) +# define sk_STORE_ATTR_INFO_find_ex(st, val) SKM_sk_find_ex(STORE_ATTR_INFO, (st), (val)) +# define sk_STORE_ATTR_INFO_delete(st, i) SKM_sk_delete(STORE_ATTR_INFO, (st), (i)) +# define sk_STORE_ATTR_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(STORE_ATTR_INFO, (st), (ptr)) +# define sk_STORE_ATTR_INFO_insert(st, val, i) SKM_sk_insert(STORE_ATTR_INFO, (st), (val), (i)) +# define sk_STORE_ATTR_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STORE_ATTR_INFO, (st), (cmp)) +# define sk_STORE_ATTR_INFO_dup(st) SKM_sk_dup(STORE_ATTR_INFO, st) +# define sk_STORE_ATTR_INFO_pop_free(st, free_func) SKM_sk_pop_free(STORE_ATTR_INFO, (st), (free_func)) +# define sk_STORE_ATTR_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STORE_ATTR_INFO, (st), (copy_func), (free_func)) +# define sk_STORE_ATTR_INFO_shift(st) SKM_sk_shift(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_pop(st) SKM_sk_pop(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_sort(st) SKM_sk_sort(STORE_ATTR_INFO, (st)) +# define sk_STORE_ATTR_INFO_is_sorted(st) SKM_sk_is_sorted(STORE_ATTR_INFO, (st)) +# define sk_STORE_OBJECT_new(cmp) SKM_sk_new(STORE_OBJECT, (cmp)) +# define sk_STORE_OBJECT_new_null() SKM_sk_new_null(STORE_OBJECT) +# define sk_STORE_OBJECT_free(st) SKM_sk_free(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_num(st) SKM_sk_num(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_value(st, i) SKM_sk_value(STORE_OBJECT, (st), (i)) +# define sk_STORE_OBJECT_set(st, i, val) SKM_sk_set(STORE_OBJECT, (st), (i), (val)) +# define sk_STORE_OBJECT_zero(st) SKM_sk_zero(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_push(st, val) SKM_sk_push(STORE_OBJECT, (st), (val)) +# define sk_STORE_OBJECT_unshift(st, val) SKM_sk_unshift(STORE_OBJECT, (st), (val)) +# define sk_STORE_OBJECT_find(st, val) SKM_sk_find(STORE_OBJECT, (st), (val)) +# define sk_STORE_OBJECT_find_ex(st, val) SKM_sk_find_ex(STORE_OBJECT, (st), (val)) +# define sk_STORE_OBJECT_delete(st, i) SKM_sk_delete(STORE_OBJECT, (st), (i)) +# define sk_STORE_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(STORE_OBJECT, (st), (ptr)) +# define sk_STORE_OBJECT_insert(st, val, i) SKM_sk_insert(STORE_OBJECT, (st), (val), (i)) +# define sk_STORE_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STORE_OBJECT, (st), (cmp)) +# define sk_STORE_OBJECT_dup(st) SKM_sk_dup(STORE_OBJECT, st) +# define sk_STORE_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(STORE_OBJECT, (st), (free_func)) +# define sk_STORE_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STORE_OBJECT, (st), (copy_func), (free_func)) +# define sk_STORE_OBJECT_shift(st) SKM_sk_shift(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_pop(st) SKM_sk_pop(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_sort(st) SKM_sk_sort(STORE_OBJECT, (st)) +# define sk_STORE_OBJECT_is_sorted(st) SKM_sk_is_sorted(STORE_OBJECT, (st)) +# define sk_SXNETID_new(cmp) SKM_sk_new(SXNETID, (cmp)) +# define sk_SXNETID_new_null() SKM_sk_new_null(SXNETID) +# define sk_SXNETID_free(st) SKM_sk_free(SXNETID, (st)) +# define sk_SXNETID_num(st) SKM_sk_num(SXNETID, (st)) +# define sk_SXNETID_value(st, i) SKM_sk_value(SXNETID, (st), (i)) +# define sk_SXNETID_set(st, i, val) SKM_sk_set(SXNETID, (st), (i), (val)) +# define sk_SXNETID_zero(st) SKM_sk_zero(SXNETID, (st)) +# define sk_SXNETID_push(st, val) SKM_sk_push(SXNETID, (st), (val)) +# define sk_SXNETID_unshift(st, val) SKM_sk_unshift(SXNETID, (st), (val)) +# define sk_SXNETID_find(st, val) SKM_sk_find(SXNETID, (st), (val)) +# define sk_SXNETID_find_ex(st, val) SKM_sk_find_ex(SXNETID, (st), (val)) +# define sk_SXNETID_delete(st, i) SKM_sk_delete(SXNETID, (st), (i)) +# define sk_SXNETID_delete_ptr(st, ptr) SKM_sk_delete_ptr(SXNETID, (st), (ptr)) +# define sk_SXNETID_insert(st, val, i) SKM_sk_insert(SXNETID, (st), (val), (i)) +# define sk_SXNETID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SXNETID, (st), (cmp)) +# define sk_SXNETID_dup(st) SKM_sk_dup(SXNETID, st) +# define sk_SXNETID_pop_free(st, free_func) SKM_sk_pop_free(SXNETID, (st), (free_func)) +# define sk_SXNETID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SXNETID, (st), (copy_func), (free_func)) +# define sk_SXNETID_shift(st) SKM_sk_shift(SXNETID, (st)) +# define sk_SXNETID_pop(st) SKM_sk_pop(SXNETID, (st)) +# define sk_SXNETID_sort(st) SKM_sk_sort(SXNETID, (st)) +# define sk_SXNETID_is_sorted(st) SKM_sk_is_sorted(SXNETID, (st)) +# define sk_UI_STRING_new(cmp) SKM_sk_new(UI_STRING, (cmp)) +# define sk_UI_STRING_new_null() SKM_sk_new_null(UI_STRING) +# define sk_UI_STRING_free(st) SKM_sk_free(UI_STRING, (st)) +# define sk_UI_STRING_num(st) SKM_sk_num(UI_STRING, (st)) +# define sk_UI_STRING_value(st, i) SKM_sk_value(UI_STRING, (st), (i)) +# define sk_UI_STRING_set(st, i, val) SKM_sk_set(UI_STRING, (st), (i), (val)) +# define sk_UI_STRING_zero(st) SKM_sk_zero(UI_STRING, (st)) +# define sk_UI_STRING_push(st, val) SKM_sk_push(UI_STRING, (st), (val)) +# define sk_UI_STRING_unshift(st, val) SKM_sk_unshift(UI_STRING, (st), (val)) +# define sk_UI_STRING_find(st, val) SKM_sk_find(UI_STRING, (st), (val)) +# define sk_UI_STRING_find_ex(st, val) SKM_sk_find_ex(UI_STRING, (st), (val)) +# define sk_UI_STRING_delete(st, i) SKM_sk_delete(UI_STRING, (st), (i)) +# define sk_UI_STRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(UI_STRING, (st), (ptr)) +# define sk_UI_STRING_insert(st, val, i) SKM_sk_insert(UI_STRING, (st), (val), (i)) +# define sk_UI_STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(UI_STRING, (st), (cmp)) +# define sk_UI_STRING_dup(st) SKM_sk_dup(UI_STRING, st) +# define sk_UI_STRING_pop_free(st, free_func) SKM_sk_pop_free(UI_STRING, (st), (free_func)) +# define sk_UI_STRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(UI_STRING, (st), (copy_func), (free_func)) +# define sk_UI_STRING_shift(st) SKM_sk_shift(UI_STRING, (st)) +# define sk_UI_STRING_pop(st) SKM_sk_pop(UI_STRING, (st)) +# define sk_UI_STRING_sort(st) SKM_sk_sort(UI_STRING, (st)) +# define sk_UI_STRING_is_sorted(st) SKM_sk_is_sorted(UI_STRING, (st)) +# define sk_X509_new(cmp) SKM_sk_new(X509, (cmp)) +# define sk_X509_new_null() SKM_sk_new_null(X509) +# define sk_X509_free(st) SKM_sk_free(X509, (st)) +# define sk_X509_num(st) SKM_sk_num(X509, (st)) +# define sk_X509_value(st, i) SKM_sk_value(X509, (st), (i)) +# define sk_X509_set(st, i, val) SKM_sk_set(X509, (st), (i), (val)) +# define sk_X509_zero(st) SKM_sk_zero(X509, (st)) +# define sk_X509_push(st, val) SKM_sk_push(X509, (st), (val)) +# define sk_X509_unshift(st, val) SKM_sk_unshift(X509, (st), (val)) +# define sk_X509_find(st, val) SKM_sk_find(X509, (st), (val)) +# define sk_X509_find_ex(st, val) SKM_sk_find_ex(X509, (st), (val)) +# define sk_X509_delete(st, i) SKM_sk_delete(X509, (st), (i)) +# define sk_X509_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509, (st), (ptr)) +# define sk_X509_insert(st, val, i) SKM_sk_insert(X509, (st), (val), (i)) +# define sk_X509_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509, (st), (cmp)) +# define sk_X509_dup(st) SKM_sk_dup(X509, st) +# define sk_X509_pop_free(st, free_func) SKM_sk_pop_free(X509, (st), (free_func)) +# define sk_X509_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509, (st), (copy_func), (free_func)) +# define sk_X509_shift(st) SKM_sk_shift(X509, (st)) +# define sk_X509_pop(st) SKM_sk_pop(X509, (st)) +# define sk_X509_sort(st) SKM_sk_sort(X509, (st)) +# define sk_X509_is_sorted(st) SKM_sk_is_sorted(X509, (st)) +# define sk_X509V3_EXT_METHOD_new(cmp) SKM_sk_new(X509V3_EXT_METHOD, (cmp)) +# define sk_X509V3_EXT_METHOD_new_null() SKM_sk_new_null(X509V3_EXT_METHOD) +# define sk_X509V3_EXT_METHOD_free(st) SKM_sk_free(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_num(st) SKM_sk_num(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_value(st, i) SKM_sk_value(X509V3_EXT_METHOD, (st), (i)) +# define sk_X509V3_EXT_METHOD_set(st, i, val) SKM_sk_set(X509V3_EXT_METHOD, (st), (i), (val)) +# define sk_X509V3_EXT_METHOD_zero(st) SKM_sk_zero(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_push(st, val) SKM_sk_push(X509V3_EXT_METHOD, (st), (val)) +# define sk_X509V3_EXT_METHOD_unshift(st, val) SKM_sk_unshift(X509V3_EXT_METHOD, (st), (val)) +# define sk_X509V3_EXT_METHOD_find(st, val) SKM_sk_find(X509V3_EXT_METHOD, (st), (val)) +# define sk_X509V3_EXT_METHOD_find_ex(st, val) SKM_sk_find_ex(X509V3_EXT_METHOD, (st), (val)) +# define sk_X509V3_EXT_METHOD_delete(st, i) SKM_sk_delete(X509V3_EXT_METHOD, (st), (i)) +# define sk_X509V3_EXT_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509V3_EXT_METHOD, (st), (ptr)) +# define sk_X509V3_EXT_METHOD_insert(st, val, i) SKM_sk_insert(X509V3_EXT_METHOD, (st), (val), (i)) +# define sk_X509V3_EXT_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509V3_EXT_METHOD, (st), (cmp)) +# define sk_X509V3_EXT_METHOD_dup(st) SKM_sk_dup(X509V3_EXT_METHOD, st) +# define sk_X509V3_EXT_METHOD_pop_free(st, free_func) SKM_sk_pop_free(X509V3_EXT_METHOD, (st), (free_func)) +# define sk_X509V3_EXT_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509V3_EXT_METHOD, (st), (copy_func), (free_func)) +# define sk_X509V3_EXT_METHOD_shift(st) SKM_sk_shift(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_pop(st) SKM_sk_pop(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_sort(st) SKM_sk_sort(X509V3_EXT_METHOD, (st)) +# define sk_X509V3_EXT_METHOD_is_sorted(st) SKM_sk_is_sorted(X509V3_EXT_METHOD, (st)) +# define sk_X509_ALGOR_new(cmp) SKM_sk_new(X509_ALGOR, (cmp)) +# define sk_X509_ALGOR_new_null() SKM_sk_new_null(X509_ALGOR) +# define sk_X509_ALGOR_free(st) SKM_sk_free(X509_ALGOR, (st)) +# define sk_X509_ALGOR_num(st) SKM_sk_num(X509_ALGOR, (st)) +# define sk_X509_ALGOR_value(st, i) SKM_sk_value(X509_ALGOR, (st), (i)) +# define sk_X509_ALGOR_set(st, i, val) SKM_sk_set(X509_ALGOR, (st), (i), (val)) +# define sk_X509_ALGOR_zero(st) SKM_sk_zero(X509_ALGOR, (st)) +# define sk_X509_ALGOR_push(st, val) SKM_sk_push(X509_ALGOR, (st), (val)) +# define sk_X509_ALGOR_unshift(st, val) SKM_sk_unshift(X509_ALGOR, (st), (val)) +# define sk_X509_ALGOR_find(st, val) SKM_sk_find(X509_ALGOR, (st), (val)) +# define sk_X509_ALGOR_find_ex(st, val) SKM_sk_find_ex(X509_ALGOR, (st), (val)) +# define sk_X509_ALGOR_delete(st, i) SKM_sk_delete(X509_ALGOR, (st), (i)) +# define sk_X509_ALGOR_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_ALGOR, (st), (ptr)) +# define sk_X509_ALGOR_insert(st, val, i) SKM_sk_insert(X509_ALGOR, (st), (val), (i)) +# define sk_X509_ALGOR_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_ALGOR, (st), (cmp)) +# define sk_X509_ALGOR_dup(st) SKM_sk_dup(X509_ALGOR, st) +# define sk_X509_ALGOR_pop_free(st, free_func) SKM_sk_pop_free(X509_ALGOR, (st), (free_func)) +# define sk_X509_ALGOR_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_ALGOR, (st), (copy_func), (free_func)) +# define sk_X509_ALGOR_shift(st) SKM_sk_shift(X509_ALGOR, (st)) +# define sk_X509_ALGOR_pop(st) SKM_sk_pop(X509_ALGOR, (st)) +# define sk_X509_ALGOR_sort(st) SKM_sk_sort(X509_ALGOR, (st)) +# define sk_X509_ALGOR_is_sorted(st) SKM_sk_is_sorted(X509_ALGOR, (st)) +# define sk_X509_ATTRIBUTE_new(cmp) SKM_sk_new(X509_ATTRIBUTE, (cmp)) +# define sk_X509_ATTRIBUTE_new_null() SKM_sk_new_null(X509_ATTRIBUTE) +# define sk_X509_ATTRIBUTE_free(st) SKM_sk_free(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_num(st) SKM_sk_num(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_value(st, i) SKM_sk_value(X509_ATTRIBUTE, (st), (i)) +# define sk_X509_ATTRIBUTE_set(st, i, val) SKM_sk_set(X509_ATTRIBUTE, (st), (i), (val)) +# define sk_X509_ATTRIBUTE_zero(st) SKM_sk_zero(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_push(st, val) SKM_sk_push(X509_ATTRIBUTE, (st), (val)) +# define sk_X509_ATTRIBUTE_unshift(st, val) SKM_sk_unshift(X509_ATTRIBUTE, (st), (val)) +# define sk_X509_ATTRIBUTE_find(st, val) SKM_sk_find(X509_ATTRIBUTE, (st), (val)) +# define sk_X509_ATTRIBUTE_find_ex(st, val) SKM_sk_find_ex(X509_ATTRIBUTE, (st), (val)) +# define sk_X509_ATTRIBUTE_delete(st, i) SKM_sk_delete(X509_ATTRIBUTE, (st), (i)) +# define sk_X509_ATTRIBUTE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_ATTRIBUTE, (st), (ptr)) +# define sk_X509_ATTRIBUTE_insert(st, val, i) SKM_sk_insert(X509_ATTRIBUTE, (st), (val), (i)) +# define sk_X509_ATTRIBUTE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_ATTRIBUTE, (st), (cmp)) +# define sk_X509_ATTRIBUTE_dup(st) SKM_sk_dup(X509_ATTRIBUTE, st) +# define sk_X509_ATTRIBUTE_pop_free(st, free_func) SKM_sk_pop_free(X509_ATTRIBUTE, (st), (free_func)) +# define sk_X509_ATTRIBUTE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_ATTRIBUTE, (st), (copy_func), (free_func)) +# define sk_X509_ATTRIBUTE_shift(st) SKM_sk_shift(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_pop(st) SKM_sk_pop(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_sort(st) SKM_sk_sort(X509_ATTRIBUTE, (st)) +# define sk_X509_ATTRIBUTE_is_sorted(st) SKM_sk_is_sorted(X509_ATTRIBUTE, (st)) +# define sk_X509_CRL_new(cmp) SKM_sk_new(X509_CRL, (cmp)) +# define sk_X509_CRL_new_null() SKM_sk_new_null(X509_CRL) +# define sk_X509_CRL_free(st) SKM_sk_free(X509_CRL, (st)) +# define sk_X509_CRL_num(st) SKM_sk_num(X509_CRL, (st)) +# define sk_X509_CRL_value(st, i) SKM_sk_value(X509_CRL, (st), (i)) +# define sk_X509_CRL_set(st, i, val) SKM_sk_set(X509_CRL, (st), (i), (val)) +# define sk_X509_CRL_zero(st) SKM_sk_zero(X509_CRL, (st)) +# define sk_X509_CRL_push(st, val) SKM_sk_push(X509_CRL, (st), (val)) +# define sk_X509_CRL_unshift(st, val) SKM_sk_unshift(X509_CRL, (st), (val)) +# define sk_X509_CRL_find(st, val) SKM_sk_find(X509_CRL, (st), (val)) +# define sk_X509_CRL_find_ex(st, val) SKM_sk_find_ex(X509_CRL, (st), (val)) +# define sk_X509_CRL_delete(st, i) SKM_sk_delete(X509_CRL, (st), (i)) +# define sk_X509_CRL_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_CRL, (st), (ptr)) +# define sk_X509_CRL_insert(st, val, i) SKM_sk_insert(X509_CRL, (st), (val), (i)) +# define sk_X509_CRL_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_CRL, (st), (cmp)) +# define sk_X509_CRL_dup(st) SKM_sk_dup(X509_CRL, st) +# define sk_X509_CRL_pop_free(st, free_func) SKM_sk_pop_free(X509_CRL, (st), (free_func)) +# define sk_X509_CRL_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_CRL, (st), (copy_func), (free_func)) +# define sk_X509_CRL_shift(st) SKM_sk_shift(X509_CRL, (st)) +# define sk_X509_CRL_pop(st) SKM_sk_pop(X509_CRL, (st)) +# define sk_X509_CRL_sort(st) SKM_sk_sort(X509_CRL, (st)) +# define sk_X509_CRL_is_sorted(st) SKM_sk_is_sorted(X509_CRL, (st)) +# define sk_X509_EXTENSION_new(cmp) SKM_sk_new(X509_EXTENSION, (cmp)) +# define sk_X509_EXTENSION_new_null() SKM_sk_new_null(X509_EXTENSION) +# define sk_X509_EXTENSION_free(st) SKM_sk_free(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_num(st) SKM_sk_num(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_value(st, i) SKM_sk_value(X509_EXTENSION, (st), (i)) +# define sk_X509_EXTENSION_set(st, i, val) SKM_sk_set(X509_EXTENSION, (st), (i), (val)) +# define sk_X509_EXTENSION_zero(st) SKM_sk_zero(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_push(st, val) SKM_sk_push(X509_EXTENSION, (st), (val)) +# define sk_X509_EXTENSION_unshift(st, val) SKM_sk_unshift(X509_EXTENSION, (st), (val)) +# define sk_X509_EXTENSION_find(st, val) SKM_sk_find(X509_EXTENSION, (st), (val)) +# define sk_X509_EXTENSION_find_ex(st, val) SKM_sk_find_ex(X509_EXTENSION, (st), (val)) +# define sk_X509_EXTENSION_delete(st, i) SKM_sk_delete(X509_EXTENSION, (st), (i)) +# define sk_X509_EXTENSION_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_EXTENSION, (st), (ptr)) +# define sk_X509_EXTENSION_insert(st, val, i) SKM_sk_insert(X509_EXTENSION, (st), (val), (i)) +# define sk_X509_EXTENSION_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_EXTENSION, (st), (cmp)) +# define sk_X509_EXTENSION_dup(st) SKM_sk_dup(X509_EXTENSION, st) +# define sk_X509_EXTENSION_pop_free(st, free_func) SKM_sk_pop_free(X509_EXTENSION, (st), (free_func)) +# define sk_X509_EXTENSION_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_EXTENSION, (st), (copy_func), (free_func)) +# define sk_X509_EXTENSION_shift(st) SKM_sk_shift(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_pop(st) SKM_sk_pop(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_sort(st) SKM_sk_sort(X509_EXTENSION, (st)) +# define sk_X509_EXTENSION_is_sorted(st) SKM_sk_is_sorted(X509_EXTENSION, (st)) +# define sk_X509_INFO_new(cmp) SKM_sk_new(X509_INFO, (cmp)) +# define sk_X509_INFO_new_null() SKM_sk_new_null(X509_INFO) +# define sk_X509_INFO_free(st) SKM_sk_free(X509_INFO, (st)) +# define sk_X509_INFO_num(st) SKM_sk_num(X509_INFO, (st)) +# define sk_X509_INFO_value(st, i) SKM_sk_value(X509_INFO, (st), (i)) +# define sk_X509_INFO_set(st, i, val) SKM_sk_set(X509_INFO, (st), (i), (val)) +# define sk_X509_INFO_zero(st) SKM_sk_zero(X509_INFO, (st)) +# define sk_X509_INFO_push(st, val) SKM_sk_push(X509_INFO, (st), (val)) +# define sk_X509_INFO_unshift(st, val) SKM_sk_unshift(X509_INFO, (st), (val)) +# define sk_X509_INFO_find(st, val) SKM_sk_find(X509_INFO, (st), (val)) +# define sk_X509_INFO_find_ex(st, val) SKM_sk_find_ex(X509_INFO, (st), (val)) +# define sk_X509_INFO_delete(st, i) SKM_sk_delete(X509_INFO, (st), (i)) +# define sk_X509_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_INFO, (st), (ptr)) +# define sk_X509_INFO_insert(st, val, i) SKM_sk_insert(X509_INFO, (st), (val), (i)) +# define sk_X509_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_INFO, (st), (cmp)) +# define sk_X509_INFO_dup(st) SKM_sk_dup(X509_INFO, st) +# define sk_X509_INFO_pop_free(st, free_func) SKM_sk_pop_free(X509_INFO, (st), (free_func)) +# define sk_X509_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_INFO, (st), (copy_func), (free_func)) +# define sk_X509_INFO_shift(st) SKM_sk_shift(X509_INFO, (st)) +# define sk_X509_INFO_pop(st) SKM_sk_pop(X509_INFO, (st)) +# define sk_X509_INFO_sort(st) SKM_sk_sort(X509_INFO, (st)) +# define sk_X509_INFO_is_sorted(st) SKM_sk_is_sorted(X509_INFO, (st)) +# define sk_X509_LOOKUP_new(cmp) SKM_sk_new(X509_LOOKUP, (cmp)) +# define sk_X509_LOOKUP_new_null() SKM_sk_new_null(X509_LOOKUP) +# define sk_X509_LOOKUP_free(st) SKM_sk_free(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_num(st) SKM_sk_num(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_value(st, i) SKM_sk_value(X509_LOOKUP, (st), (i)) +# define sk_X509_LOOKUP_set(st, i, val) SKM_sk_set(X509_LOOKUP, (st), (i), (val)) +# define sk_X509_LOOKUP_zero(st) SKM_sk_zero(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_push(st, val) SKM_sk_push(X509_LOOKUP, (st), (val)) +# define sk_X509_LOOKUP_unshift(st, val) SKM_sk_unshift(X509_LOOKUP, (st), (val)) +# define sk_X509_LOOKUP_find(st, val) SKM_sk_find(X509_LOOKUP, (st), (val)) +# define sk_X509_LOOKUP_find_ex(st, val) SKM_sk_find_ex(X509_LOOKUP, (st), (val)) +# define sk_X509_LOOKUP_delete(st, i) SKM_sk_delete(X509_LOOKUP, (st), (i)) +# define sk_X509_LOOKUP_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_LOOKUP, (st), (ptr)) +# define sk_X509_LOOKUP_insert(st, val, i) SKM_sk_insert(X509_LOOKUP, (st), (val), (i)) +# define sk_X509_LOOKUP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_LOOKUP, (st), (cmp)) +# define sk_X509_LOOKUP_dup(st) SKM_sk_dup(X509_LOOKUP, st) +# define sk_X509_LOOKUP_pop_free(st, free_func) SKM_sk_pop_free(X509_LOOKUP, (st), (free_func)) +# define sk_X509_LOOKUP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_LOOKUP, (st), (copy_func), (free_func)) +# define sk_X509_LOOKUP_shift(st) SKM_sk_shift(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_pop(st) SKM_sk_pop(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_sort(st) SKM_sk_sort(X509_LOOKUP, (st)) +# define sk_X509_LOOKUP_is_sorted(st) SKM_sk_is_sorted(X509_LOOKUP, (st)) +# define sk_X509_NAME_new(cmp) SKM_sk_new(X509_NAME, (cmp)) +# define sk_X509_NAME_new_null() SKM_sk_new_null(X509_NAME) +# define sk_X509_NAME_free(st) SKM_sk_free(X509_NAME, (st)) +# define sk_X509_NAME_num(st) SKM_sk_num(X509_NAME, (st)) +# define sk_X509_NAME_value(st, i) SKM_sk_value(X509_NAME, (st), (i)) +# define sk_X509_NAME_set(st, i, val) SKM_sk_set(X509_NAME, (st), (i), (val)) +# define sk_X509_NAME_zero(st) SKM_sk_zero(X509_NAME, (st)) +# define sk_X509_NAME_push(st, val) SKM_sk_push(X509_NAME, (st), (val)) +# define sk_X509_NAME_unshift(st, val) SKM_sk_unshift(X509_NAME, (st), (val)) +# define sk_X509_NAME_find(st, val) SKM_sk_find(X509_NAME, (st), (val)) +# define sk_X509_NAME_find_ex(st, val) SKM_sk_find_ex(X509_NAME, (st), (val)) +# define sk_X509_NAME_delete(st, i) SKM_sk_delete(X509_NAME, (st), (i)) +# define sk_X509_NAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_NAME, (st), (ptr)) +# define sk_X509_NAME_insert(st, val, i) SKM_sk_insert(X509_NAME, (st), (val), (i)) +# define sk_X509_NAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_NAME, (st), (cmp)) +# define sk_X509_NAME_dup(st) SKM_sk_dup(X509_NAME, st) +# define sk_X509_NAME_pop_free(st, free_func) SKM_sk_pop_free(X509_NAME, (st), (free_func)) +# define sk_X509_NAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_NAME, (st), (copy_func), (free_func)) +# define sk_X509_NAME_shift(st) SKM_sk_shift(X509_NAME, (st)) +# define sk_X509_NAME_pop(st) SKM_sk_pop(X509_NAME, (st)) +# define sk_X509_NAME_sort(st) SKM_sk_sort(X509_NAME, (st)) +# define sk_X509_NAME_is_sorted(st) SKM_sk_is_sorted(X509_NAME, (st)) +# define sk_X509_NAME_ENTRY_new(cmp) SKM_sk_new(X509_NAME_ENTRY, (cmp)) +# define sk_X509_NAME_ENTRY_new_null() SKM_sk_new_null(X509_NAME_ENTRY) +# define sk_X509_NAME_ENTRY_free(st) SKM_sk_free(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_num(st) SKM_sk_num(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_value(st, i) SKM_sk_value(X509_NAME_ENTRY, (st), (i)) +# define sk_X509_NAME_ENTRY_set(st, i, val) SKM_sk_set(X509_NAME_ENTRY, (st), (i), (val)) +# define sk_X509_NAME_ENTRY_zero(st) SKM_sk_zero(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_push(st, val) SKM_sk_push(X509_NAME_ENTRY, (st), (val)) +# define sk_X509_NAME_ENTRY_unshift(st, val) SKM_sk_unshift(X509_NAME_ENTRY, (st), (val)) +# define sk_X509_NAME_ENTRY_find(st, val) SKM_sk_find(X509_NAME_ENTRY, (st), (val)) +# define sk_X509_NAME_ENTRY_find_ex(st, val) SKM_sk_find_ex(X509_NAME_ENTRY, (st), (val)) +# define sk_X509_NAME_ENTRY_delete(st, i) SKM_sk_delete(X509_NAME_ENTRY, (st), (i)) +# define sk_X509_NAME_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_NAME_ENTRY, (st), (ptr)) +# define sk_X509_NAME_ENTRY_insert(st, val, i) SKM_sk_insert(X509_NAME_ENTRY, (st), (val), (i)) +# define sk_X509_NAME_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_NAME_ENTRY, (st), (cmp)) +# define sk_X509_NAME_ENTRY_dup(st) SKM_sk_dup(X509_NAME_ENTRY, st) +# define sk_X509_NAME_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(X509_NAME_ENTRY, (st), (free_func)) +# define sk_X509_NAME_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_NAME_ENTRY, (st), (copy_func), (free_func)) +# define sk_X509_NAME_ENTRY_shift(st) SKM_sk_shift(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_pop(st) SKM_sk_pop(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_sort(st) SKM_sk_sort(X509_NAME_ENTRY, (st)) +# define sk_X509_NAME_ENTRY_is_sorted(st) SKM_sk_is_sorted(X509_NAME_ENTRY, (st)) +# define sk_X509_OBJECT_new(cmp) SKM_sk_new(X509_OBJECT, (cmp)) +# define sk_X509_OBJECT_new_null() SKM_sk_new_null(X509_OBJECT) +# define sk_X509_OBJECT_free(st) SKM_sk_free(X509_OBJECT, (st)) +# define sk_X509_OBJECT_num(st) SKM_sk_num(X509_OBJECT, (st)) +# define sk_X509_OBJECT_value(st, i) SKM_sk_value(X509_OBJECT, (st), (i)) +# define sk_X509_OBJECT_set(st, i, val) SKM_sk_set(X509_OBJECT, (st), (i), (val)) +# define sk_X509_OBJECT_zero(st) SKM_sk_zero(X509_OBJECT, (st)) +# define sk_X509_OBJECT_push(st, val) SKM_sk_push(X509_OBJECT, (st), (val)) +# define sk_X509_OBJECT_unshift(st, val) SKM_sk_unshift(X509_OBJECT, (st), (val)) +# define sk_X509_OBJECT_find(st, val) SKM_sk_find(X509_OBJECT, (st), (val)) +# define sk_X509_OBJECT_find_ex(st, val) SKM_sk_find_ex(X509_OBJECT, (st), (val)) +# define sk_X509_OBJECT_delete(st, i) SKM_sk_delete(X509_OBJECT, (st), (i)) +# define sk_X509_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_OBJECT, (st), (ptr)) +# define sk_X509_OBJECT_insert(st, val, i) SKM_sk_insert(X509_OBJECT, (st), (val), (i)) +# define sk_X509_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_OBJECT, (st), (cmp)) +# define sk_X509_OBJECT_dup(st) SKM_sk_dup(X509_OBJECT, st) +# define sk_X509_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(X509_OBJECT, (st), (free_func)) +# define sk_X509_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_OBJECT, (st), (copy_func), (free_func)) +# define sk_X509_OBJECT_shift(st) SKM_sk_shift(X509_OBJECT, (st)) +# define sk_X509_OBJECT_pop(st) SKM_sk_pop(X509_OBJECT, (st)) +# define sk_X509_OBJECT_sort(st) SKM_sk_sort(X509_OBJECT, (st)) +# define sk_X509_OBJECT_is_sorted(st) SKM_sk_is_sorted(X509_OBJECT, (st)) +# define sk_X509_POLICY_DATA_new(cmp) SKM_sk_new(X509_POLICY_DATA, (cmp)) +# define sk_X509_POLICY_DATA_new_null() SKM_sk_new_null(X509_POLICY_DATA) +# define sk_X509_POLICY_DATA_free(st) SKM_sk_free(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_num(st) SKM_sk_num(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_value(st, i) SKM_sk_value(X509_POLICY_DATA, (st), (i)) +# define sk_X509_POLICY_DATA_set(st, i, val) SKM_sk_set(X509_POLICY_DATA, (st), (i), (val)) +# define sk_X509_POLICY_DATA_zero(st) SKM_sk_zero(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_push(st, val) SKM_sk_push(X509_POLICY_DATA, (st), (val)) +# define sk_X509_POLICY_DATA_unshift(st, val) SKM_sk_unshift(X509_POLICY_DATA, (st), (val)) +# define sk_X509_POLICY_DATA_find(st, val) SKM_sk_find(X509_POLICY_DATA, (st), (val)) +# define sk_X509_POLICY_DATA_find_ex(st, val) SKM_sk_find_ex(X509_POLICY_DATA, (st), (val)) +# define sk_X509_POLICY_DATA_delete(st, i) SKM_sk_delete(X509_POLICY_DATA, (st), (i)) +# define sk_X509_POLICY_DATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_POLICY_DATA, (st), (ptr)) +# define sk_X509_POLICY_DATA_insert(st, val, i) SKM_sk_insert(X509_POLICY_DATA, (st), (val), (i)) +# define sk_X509_POLICY_DATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_POLICY_DATA, (st), (cmp)) +# define sk_X509_POLICY_DATA_dup(st) SKM_sk_dup(X509_POLICY_DATA, st) +# define sk_X509_POLICY_DATA_pop_free(st, free_func) SKM_sk_pop_free(X509_POLICY_DATA, (st), (free_func)) +# define sk_X509_POLICY_DATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_POLICY_DATA, (st), (copy_func), (free_func)) +# define sk_X509_POLICY_DATA_shift(st) SKM_sk_shift(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_pop(st) SKM_sk_pop(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_sort(st) SKM_sk_sort(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_DATA_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_DATA, (st)) +# define sk_X509_POLICY_NODE_new(cmp) SKM_sk_new(X509_POLICY_NODE, (cmp)) +# define sk_X509_POLICY_NODE_new_null() SKM_sk_new_null(X509_POLICY_NODE) +# define sk_X509_POLICY_NODE_free(st) SKM_sk_free(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_num(st) SKM_sk_num(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_value(st, i) SKM_sk_value(X509_POLICY_NODE, (st), (i)) +# define sk_X509_POLICY_NODE_set(st, i, val) SKM_sk_set(X509_POLICY_NODE, (st), (i), (val)) +# define sk_X509_POLICY_NODE_zero(st) SKM_sk_zero(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_push(st, val) SKM_sk_push(X509_POLICY_NODE, (st), (val)) +# define sk_X509_POLICY_NODE_unshift(st, val) SKM_sk_unshift(X509_POLICY_NODE, (st), (val)) +# define sk_X509_POLICY_NODE_find(st, val) SKM_sk_find(X509_POLICY_NODE, (st), (val)) +# define sk_X509_POLICY_NODE_find_ex(st, val) SKM_sk_find_ex(X509_POLICY_NODE, (st), (val)) +# define sk_X509_POLICY_NODE_delete(st, i) SKM_sk_delete(X509_POLICY_NODE, (st), (i)) +# define sk_X509_POLICY_NODE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_POLICY_NODE, (st), (ptr)) +# define sk_X509_POLICY_NODE_insert(st, val, i) SKM_sk_insert(X509_POLICY_NODE, (st), (val), (i)) +# define sk_X509_POLICY_NODE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_POLICY_NODE, (st), (cmp)) +# define sk_X509_POLICY_NODE_dup(st) SKM_sk_dup(X509_POLICY_NODE, st) +# define sk_X509_POLICY_NODE_pop_free(st, free_func) SKM_sk_pop_free(X509_POLICY_NODE, (st), (free_func)) +# define sk_X509_POLICY_NODE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_POLICY_NODE, (st), (copy_func), (free_func)) +# define sk_X509_POLICY_NODE_shift(st) SKM_sk_shift(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_pop(st) SKM_sk_pop(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_sort(st) SKM_sk_sort(X509_POLICY_NODE, (st)) +# define sk_X509_POLICY_NODE_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_NODE, (st)) +# define sk_X509_PURPOSE_new(cmp) SKM_sk_new(X509_PURPOSE, (cmp)) +# define sk_X509_PURPOSE_new_null() SKM_sk_new_null(X509_PURPOSE) +# define sk_X509_PURPOSE_free(st) SKM_sk_free(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_num(st) SKM_sk_num(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_value(st, i) SKM_sk_value(X509_PURPOSE, (st), (i)) +# define sk_X509_PURPOSE_set(st, i, val) SKM_sk_set(X509_PURPOSE, (st), (i), (val)) +# define sk_X509_PURPOSE_zero(st) SKM_sk_zero(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_push(st, val) SKM_sk_push(X509_PURPOSE, (st), (val)) +# define sk_X509_PURPOSE_unshift(st, val) SKM_sk_unshift(X509_PURPOSE, (st), (val)) +# define sk_X509_PURPOSE_find(st, val) SKM_sk_find(X509_PURPOSE, (st), (val)) +# define sk_X509_PURPOSE_find_ex(st, val) SKM_sk_find_ex(X509_PURPOSE, (st), (val)) +# define sk_X509_PURPOSE_delete(st, i) SKM_sk_delete(X509_PURPOSE, (st), (i)) +# define sk_X509_PURPOSE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_PURPOSE, (st), (ptr)) +# define sk_X509_PURPOSE_insert(st, val, i) SKM_sk_insert(X509_PURPOSE, (st), (val), (i)) +# define sk_X509_PURPOSE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_PURPOSE, (st), (cmp)) +# define sk_X509_PURPOSE_dup(st) SKM_sk_dup(X509_PURPOSE, st) +# define sk_X509_PURPOSE_pop_free(st, free_func) SKM_sk_pop_free(X509_PURPOSE, (st), (free_func)) +# define sk_X509_PURPOSE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_PURPOSE, (st), (copy_func), (free_func)) +# define sk_X509_PURPOSE_shift(st) SKM_sk_shift(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_pop(st) SKM_sk_pop(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_sort(st) SKM_sk_sort(X509_PURPOSE, (st)) +# define sk_X509_PURPOSE_is_sorted(st) SKM_sk_is_sorted(X509_PURPOSE, (st)) +# define sk_X509_REVOKED_new(cmp) SKM_sk_new(X509_REVOKED, (cmp)) +# define sk_X509_REVOKED_new_null() SKM_sk_new_null(X509_REVOKED) +# define sk_X509_REVOKED_free(st) SKM_sk_free(X509_REVOKED, (st)) +# define sk_X509_REVOKED_num(st) SKM_sk_num(X509_REVOKED, (st)) +# define sk_X509_REVOKED_value(st, i) SKM_sk_value(X509_REVOKED, (st), (i)) +# define sk_X509_REVOKED_set(st, i, val) SKM_sk_set(X509_REVOKED, (st), (i), (val)) +# define sk_X509_REVOKED_zero(st) SKM_sk_zero(X509_REVOKED, (st)) +# define sk_X509_REVOKED_push(st, val) SKM_sk_push(X509_REVOKED, (st), (val)) +# define sk_X509_REVOKED_unshift(st, val) SKM_sk_unshift(X509_REVOKED, (st), (val)) +# define sk_X509_REVOKED_find(st, val) SKM_sk_find(X509_REVOKED, (st), (val)) +# define sk_X509_REVOKED_find_ex(st, val) SKM_sk_find_ex(X509_REVOKED, (st), (val)) +# define sk_X509_REVOKED_delete(st, i) SKM_sk_delete(X509_REVOKED, (st), (i)) +# define sk_X509_REVOKED_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_REVOKED, (st), (ptr)) +# define sk_X509_REVOKED_insert(st, val, i) SKM_sk_insert(X509_REVOKED, (st), (val), (i)) +# define sk_X509_REVOKED_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_REVOKED, (st), (cmp)) +# define sk_X509_REVOKED_dup(st) SKM_sk_dup(X509_REVOKED, st) +# define sk_X509_REVOKED_pop_free(st, free_func) SKM_sk_pop_free(X509_REVOKED, (st), (free_func)) +# define sk_X509_REVOKED_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_REVOKED, (st), (copy_func), (free_func)) +# define sk_X509_REVOKED_shift(st) SKM_sk_shift(X509_REVOKED, (st)) +# define sk_X509_REVOKED_pop(st) SKM_sk_pop(X509_REVOKED, (st)) +# define sk_X509_REVOKED_sort(st) SKM_sk_sort(X509_REVOKED, (st)) +# define sk_X509_REVOKED_is_sorted(st) SKM_sk_is_sorted(X509_REVOKED, (st)) +# define sk_X509_TRUST_new(cmp) SKM_sk_new(X509_TRUST, (cmp)) +# define sk_X509_TRUST_new_null() SKM_sk_new_null(X509_TRUST) +# define sk_X509_TRUST_free(st) SKM_sk_free(X509_TRUST, (st)) +# define sk_X509_TRUST_num(st) SKM_sk_num(X509_TRUST, (st)) +# define sk_X509_TRUST_value(st, i) SKM_sk_value(X509_TRUST, (st), (i)) +# define sk_X509_TRUST_set(st, i, val) SKM_sk_set(X509_TRUST, (st), (i), (val)) +# define sk_X509_TRUST_zero(st) SKM_sk_zero(X509_TRUST, (st)) +# define sk_X509_TRUST_push(st, val) SKM_sk_push(X509_TRUST, (st), (val)) +# define sk_X509_TRUST_unshift(st, val) SKM_sk_unshift(X509_TRUST, (st), (val)) +# define sk_X509_TRUST_find(st, val) SKM_sk_find(X509_TRUST, (st), (val)) +# define sk_X509_TRUST_find_ex(st, val) SKM_sk_find_ex(X509_TRUST, (st), (val)) +# define sk_X509_TRUST_delete(st, i) SKM_sk_delete(X509_TRUST, (st), (i)) +# define sk_X509_TRUST_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_TRUST, (st), (ptr)) +# define sk_X509_TRUST_insert(st, val, i) SKM_sk_insert(X509_TRUST, (st), (val), (i)) +# define sk_X509_TRUST_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_TRUST, (st), (cmp)) +# define sk_X509_TRUST_dup(st) SKM_sk_dup(X509_TRUST, st) +# define sk_X509_TRUST_pop_free(st, free_func) SKM_sk_pop_free(X509_TRUST, (st), (free_func)) +# define sk_X509_TRUST_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_TRUST, (st), (copy_func), (free_func)) +# define sk_X509_TRUST_shift(st) SKM_sk_shift(X509_TRUST, (st)) +# define sk_X509_TRUST_pop(st) SKM_sk_pop(X509_TRUST, (st)) +# define sk_X509_TRUST_sort(st) SKM_sk_sort(X509_TRUST, (st)) +# define sk_X509_TRUST_is_sorted(st) SKM_sk_is_sorted(X509_TRUST, (st)) +# define sk_X509_VERIFY_PARAM_new(cmp) SKM_sk_new(X509_VERIFY_PARAM, (cmp)) +# define sk_X509_VERIFY_PARAM_new_null() SKM_sk_new_null(X509_VERIFY_PARAM) +# define sk_X509_VERIFY_PARAM_free(st) SKM_sk_free(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_num(st) SKM_sk_num(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_value(st, i) SKM_sk_value(X509_VERIFY_PARAM, (st), (i)) +# define sk_X509_VERIFY_PARAM_set(st, i, val) SKM_sk_set(X509_VERIFY_PARAM, (st), (i), (val)) +# define sk_X509_VERIFY_PARAM_zero(st) SKM_sk_zero(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_push(st, val) SKM_sk_push(X509_VERIFY_PARAM, (st), (val)) +# define sk_X509_VERIFY_PARAM_unshift(st, val) SKM_sk_unshift(X509_VERIFY_PARAM, (st), (val)) +# define sk_X509_VERIFY_PARAM_find(st, val) SKM_sk_find(X509_VERIFY_PARAM, (st), (val)) +# define sk_X509_VERIFY_PARAM_find_ex(st, val) SKM_sk_find_ex(X509_VERIFY_PARAM, (st), (val)) +# define sk_X509_VERIFY_PARAM_delete(st, i) SKM_sk_delete(X509_VERIFY_PARAM, (st), (i)) +# define sk_X509_VERIFY_PARAM_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_VERIFY_PARAM, (st), (ptr)) +# define sk_X509_VERIFY_PARAM_insert(st, val, i) SKM_sk_insert(X509_VERIFY_PARAM, (st), (val), (i)) +# define sk_X509_VERIFY_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_VERIFY_PARAM, (st), (cmp)) +# define sk_X509_VERIFY_PARAM_dup(st) SKM_sk_dup(X509_VERIFY_PARAM, st) +# define sk_X509_VERIFY_PARAM_pop_free(st, free_func) SKM_sk_pop_free(X509_VERIFY_PARAM, (st), (free_func)) +# define sk_X509_VERIFY_PARAM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_VERIFY_PARAM, (st), (copy_func), (free_func)) +# define sk_X509_VERIFY_PARAM_shift(st) SKM_sk_shift(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_pop(st) SKM_sk_pop(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_sort(st) SKM_sk_sort(X509_VERIFY_PARAM, (st)) +# define sk_X509_VERIFY_PARAM_is_sorted(st) SKM_sk_is_sorted(X509_VERIFY_PARAM, (st)) +# define sk_nid_triple_new(cmp) SKM_sk_new(nid_triple, (cmp)) +# define sk_nid_triple_new_null() SKM_sk_new_null(nid_triple) +# define sk_nid_triple_free(st) SKM_sk_free(nid_triple, (st)) +# define sk_nid_triple_num(st) SKM_sk_num(nid_triple, (st)) +# define sk_nid_triple_value(st, i) SKM_sk_value(nid_triple, (st), (i)) +# define sk_nid_triple_set(st, i, val) SKM_sk_set(nid_triple, (st), (i), (val)) +# define sk_nid_triple_zero(st) SKM_sk_zero(nid_triple, (st)) +# define sk_nid_triple_push(st, val) SKM_sk_push(nid_triple, (st), (val)) +# define sk_nid_triple_unshift(st, val) SKM_sk_unshift(nid_triple, (st), (val)) +# define sk_nid_triple_find(st, val) SKM_sk_find(nid_triple, (st), (val)) +# define sk_nid_triple_find_ex(st, val) SKM_sk_find_ex(nid_triple, (st), (val)) +# define sk_nid_triple_delete(st, i) SKM_sk_delete(nid_triple, (st), (i)) +# define sk_nid_triple_delete_ptr(st, ptr) SKM_sk_delete_ptr(nid_triple, (st), (ptr)) +# define sk_nid_triple_insert(st, val, i) SKM_sk_insert(nid_triple, (st), (val), (i)) +# define sk_nid_triple_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(nid_triple, (st), (cmp)) +# define sk_nid_triple_dup(st) SKM_sk_dup(nid_triple, st) +# define sk_nid_triple_pop_free(st, free_func) SKM_sk_pop_free(nid_triple, (st), (free_func)) +# define sk_nid_triple_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(nid_triple, (st), (copy_func), (free_func)) +# define sk_nid_triple_shift(st) SKM_sk_shift(nid_triple, (st)) +# define sk_nid_triple_pop(st) SKM_sk_pop(nid_triple, (st)) +# define sk_nid_triple_sort(st) SKM_sk_sort(nid_triple, (st)) +# define sk_nid_triple_is_sorted(st) SKM_sk_is_sorted(nid_triple, (st)) +# define sk_void_new(cmp) SKM_sk_new(void, (cmp)) +# define sk_void_new_null() SKM_sk_new_null(void) +# define sk_void_free(st) SKM_sk_free(void, (st)) +# define sk_void_num(st) SKM_sk_num(void, (st)) +# define sk_void_value(st, i) SKM_sk_value(void, (st), (i)) +# define sk_void_set(st, i, val) SKM_sk_set(void, (st), (i), (val)) +# define sk_void_zero(st) SKM_sk_zero(void, (st)) +# define sk_void_push(st, val) SKM_sk_push(void, (st), (val)) +# define sk_void_unshift(st, val) SKM_sk_unshift(void, (st), (val)) +# define sk_void_find(st, val) SKM_sk_find(void, (st), (val)) +# define sk_void_find_ex(st, val) SKM_sk_find_ex(void, (st), (val)) +# define sk_void_delete(st, i) SKM_sk_delete(void, (st), (i)) +# define sk_void_delete_ptr(st, ptr) SKM_sk_delete_ptr(void, (st), (ptr)) +# define sk_void_insert(st, val, i) SKM_sk_insert(void, (st), (val), (i)) +# define sk_void_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(void, (st), (cmp)) +# define sk_void_dup(st) SKM_sk_dup(void, st) +# define sk_void_pop_free(st, free_func) SKM_sk_pop_free(void, (st), (free_func)) +# define sk_void_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(void, (st), (copy_func), (free_func)) +# define sk_void_shift(st) SKM_sk_shift(void, (st)) +# define sk_void_pop(st) SKM_sk_pop(void, (st)) +# define sk_void_sort(st) SKM_sk_sort(void, (st)) +# define sk_void_is_sorted(st) SKM_sk_is_sorted(void, (st)) +# define sk_OPENSSL_STRING_new(cmp) ((STACK_OF(OPENSSL_STRING) *)sk_new(CHECKED_SK_CMP_FUNC(char, cmp))) +# define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)sk_new_null()) +# define sk_OPENSSL_STRING_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) +# define sk_OPENSSL_STRING_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) +# define sk_OPENSSL_STRING_value(st, i) ((OPENSSL_STRING)sk_value(CHECKED_STACK_OF(OPENSSL_STRING, st), i)) +# define sk_OPENSSL_STRING_num(st) SKM_sk_num(OPENSSL_STRING, st) +# define sk_OPENSSL_STRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_FREE_FUNC(char, free_func)) +# define sk_OPENSSL_STRING_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_STRING) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_COPY_FUNC(char, copy_func), CHECKED_SK_FREE_FUNC(char, free_func))) +# define sk_OPENSSL_STRING_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val), i) +# define sk_OPENSSL_STRING_free(st) SKM_sk_free(OPENSSL_STRING, st) +# define sk_OPENSSL_STRING_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_STRING, st), i, CHECKED_PTR_OF(char, val)) +# define sk_OPENSSL_STRING_zero(st) SKM_sk_zero(OPENSSL_STRING, (st)) +# define sk_OPENSSL_STRING_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) +# define sk_OPENSSL_STRING_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_STRING), st), CHECKED_CONST_PTR_OF(char, val)) +# define sk_OPENSSL_STRING_delete(st, i) SKM_sk_delete(OPENSSL_STRING, (st), (i)) +# define sk_OPENSSL_STRING_delete_ptr(st, ptr) (OPENSSL_STRING *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, ptr)) +# define sk_OPENSSL_STRING_set_cmp_func(st, cmp) \ + ((int (*)(const char * const *,const char * const *)) \ + sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_CMP_FUNC(char, cmp))) +# define sk_OPENSSL_STRING_dup(st) SKM_sk_dup(OPENSSL_STRING, st) +# define sk_OPENSSL_STRING_shift(st) SKM_sk_shift(OPENSSL_STRING, (st)) +# define sk_OPENSSL_STRING_pop(st) (char *)sk_pop(CHECKED_STACK_OF(OPENSSL_STRING, st)) +# define sk_OPENSSL_STRING_sort(st) SKM_sk_sort(OPENSSL_STRING, (st)) +# define sk_OPENSSL_STRING_is_sorted(st) SKM_sk_is_sorted(OPENSSL_STRING, (st)) +# define sk_OPENSSL_BLOCK_new(cmp) ((STACK_OF(OPENSSL_BLOCK) *)sk_new(CHECKED_SK_CMP_FUNC(void, cmp))) +# define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)sk_new_null()) +# define sk_OPENSSL_BLOCK_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) +# define sk_OPENSSL_BLOCK_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) +# define sk_OPENSSL_BLOCK_value(st, i) ((OPENSSL_BLOCK)sk_value(CHECKED_STACK_OF(OPENSSL_BLOCK, st), i)) +# define sk_OPENSSL_BLOCK_num(st) SKM_sk_num(OPENSSL_BLOCK, st) +# define sk_OPENSSL_BLOCK_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_FREE_FUNC(void, free_func)) +# define sk_OPENSSL_BLOCK_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_BLOCK) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_COPY_FUNC(void, copy_func), CHECKED_SK_FREE_FUNC(void, free_func))) +# define sk_OPENSSL_BLOCK_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val), i) +# define sk_OPENSSL_BLOCK_free(st) SKM_sk_free(OPENSSL_BLOCK, st) +# define sk_OPENSSL_BLOCK_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_BLOCK, st), i, CHECKED_PTR_OF(void, val)) +# define sk_OPENSSL_BLOCK_zero(st) SKM_sk_zero(OPENSSL_BLOCK, (st)) +# define sk_OPENSSL_BLOCK_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) +# define sk_OPENSSL_BLOCK_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_BLOCK), st), CHECKED_CONST_PTR_OF(void, val)) +# define sk_OPENSSL_BLOCK_delete(st, i) SKM_sk_delete(OPENSSL_BLOCK, (st), (i)) +# define sk_OPENSSL_BLOCK_delete_ptr(st, ptr) (OPENSSL_BLOCK *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, ptr)) +# define sk_OPENSSL_BLOCK_set_cmp_func(st, cmp) \ + ((int (*)(const void * const *,const void * const *)) \ + sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_CMP_FUNC(void, cmp))) +# define sk_OPENSSL_BLOCK_dup(st) SKM_sk_dup(OPENSSL_BLOCK, st) +# define sk_OPENSSL_BLOCK_shift(st) SKM_sk_shift(OPENSSL_BLOCK, (st)) +# define sk_OPENSSL_BLOCK_pop(st) (void *)sk_pop(CHECKED_STACK_OF(OPENSSL_BLOCK, st)) +# define sk_OPENSSL_BLOCK_sort(st) SKM_sk_sort(OPENSSL_BLOCK, (st)) +# define sk_OPENSSL_BLOCK_is_sorted(st) SKM_sk_is_sorted(OPENSSL_BLOCK, (st)) +# define sk_OPENSSL_PSTRING_new(cmp) ((STACK_OF(OPENSSL_PSTRING) *)sk_new(CHECKED_SK_CMP_FUNC(OPENSSL_STRING, cmp))) +# define sk_OPENSSL_PSTRING_new_null() ((STACK_OF(OPENSSL_PSTRING) *)sk_new_null()) +# define sk_OPENSSL_PSTRING_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) +# define sk_OPENSSL_PSTRING_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) +# define sk_OPENSSL_PSTRING_value(st, i) ((OPENSSL_PSTRING)sk_value(CHECKED_STACK_OF(OPENSSL_PSTRING, st), i)) +# define sk_OPENSSL_PSTRING_num(st) SKM_sk_num(OPENSSL_PSTRING, st) +# define sk_OPENSSL_PSTRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_FREE_FUNC(OPENSSL_STRING, free_func)) +# define sk_OPENSSL_PSTRING_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_PSTRING) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_COPY_FUNC(OPENSSL_STRING, copy_func), CHECKED_SK_FREE_FUNC(OPENSSL_STRING, free_func))) +# define sk_OPENSSL_PSTRING_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val), i) +# define sk_OPENSSL_PSTRING_free(st) SKM_sk_free(OPENSSL_PSTRING, st) +# define sk_OPENSSL_PSTRING_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_PSTRING, st), i, CHECKED_PTR_OF(OPENSSL_STRING, val)) +# define sk_OPENSSL_PSTRING_zero(st) SKM_sk_zero(OPENSSL_PSTRING, (st)) +# define sk_OPENSSL_PSTRING_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) +# define sk_OPENSSL_PSTRING_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_PSTRING), st), CHECKED_CONST_PTR_OF(OPENSSL_STRING, val)) +# define sk_OPENSSL_PSTRING_delete(st, i) SKM_sk_delete(OPENSSL_PSTRING, (st), (i)) +# define sk_OPENSSL_PSTRING_delete_ptr(st, ptr) (OPENSSL_PSTRING *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, ptr)) +# define sk_OPENSSL_PSTRING_set_cmp_func(st, cmp) \ + ((int (*)(const OPENSSL_STRING * const *,const OPENSSL_STRING * const *)) \ + sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_CMP_FUNC(OPENSSL_STRING, cmp))) +# define sk_OPENSSL_PSTRING_dup(st) SKM_sk_dup(OPENSSL_PSTRING, st) +# define sk_OPENSSL_PSTRING_shift(st) SKM_sk_shift(OPENSSL_PSTRING, (st)) +# define sk_OPENSSL_PSTRING_pop(st) (OPENSSL_STRING *)sk_pop(CHECKED_STACK_OF(OPENSSL_PSTRING, st)) +# define sk_OPENSSL_PSTRING_sort(st) SKM_sk_sort(OPENSSL_PSTRING, (st)) +# define sk_OPENSSL_PSTRING_is_sorted(st) SKM_sk_is_sorted(OPENSSL_PSTRING, (st)) +# define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ACCESS_DESCRIPTION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ACCESS_DESCRIPTION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ACCESS_DESCRIPTION(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ACCESS_DESCRIPTION, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ACCESS_DESCRIPTION(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ACCESS_DESCRIPTION, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_ASN1_INTEGER(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ASN1_INTEGER, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ASN1_INTEGER(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ASN1_INTEGER, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ASN1_INTEGER(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ASN1_INTEGER, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ASN1_INTEGER(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ASN1_INTEGER, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_ASN1_OBJECT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ASN1_OBJECT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ASN1_OBJECT(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ASN1_OBJECT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ASN1_OBJECT(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ASN1_OBJECT, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ASN1_OBJECT(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ASN1_OBJECT, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_ASN1_TYPE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ASN1_TYPE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ASN1_TYPE(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ASN1_TYPE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ASN1_TYPE(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ASN1_TYPE, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ASN1_TYPE(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ASN1_TYPE, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ASN1_UTF8STRING, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ASN1_UTF8STRING, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ASN1_UTF8STRING(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ASN1_UTF8STRING, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ASN1_UTF8STRING(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ASN1_UTF8STRING, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_DIST_POINT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(DIST_POINT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_DIST_POINT(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(DIST_POINT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_DIST_POINT(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(DIST_POINT, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_DIST_POINT(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(DIST_POINT, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_ESS_CERT_ID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(ESS_CERT_ID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_ESS_CERT_ID(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(ESS_CERT_ID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_ESS_CERT_ID(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(ESS_CERT_ID, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_ESS_CERT_ID(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(ESS_CERT_ID, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_EVP_MD(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(EVP_MD, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_EVP_MD(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(EVP_MD, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_EVP_MD(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(EVP_MD, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_EVP_MD(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(EVP_MD, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_GENERAL_NAME(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(GENERAL_NAME, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_GENERAL_NAME(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(GENERAL_NAME, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_GENERAL_NAME(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(GENERAL_NAME, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_GENERAL_NAME(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(GENERAL_NAME, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_OCSP_ONEREQ(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(OCSP_ONEREQ, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_OCSP_ONEREQ(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(OCSP_ONEREQ, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_OCSP_ONEREQ(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(OCSP_ONEREQ, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_OCSP_ONEREQ(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(OCSP_ONEREQ, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(OCSP_SINGLERESP, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(OCSP_SINGLERESP, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_OCSP_SINGLERESP(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(OCSP_SINGLERESP, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_OCSP_SINGLERESP(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(OCSP_SINGLERESP, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(PKCS12_SAFEBAG, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(PKCS12_SAFEBAG, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_PKCS12_SAFEBAG(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(PKCS12_SAFEBAG, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_PKCS12_SAFEBAG(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(PKCS12_SAFEBAG, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_PKCS7(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(PKCS7, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_PKCS7(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(PKCS7, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_PKCS7(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(PKCS7, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_PKCS7(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(PKCS7, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(PKCS7_RECIP_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(PKCS7_RECIP_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_PKCS7_RECIP_INFO(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(PKCS7_RECIP_INFO, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_PKCS7_RECIP_INFO(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(PKCS7_RECIP_INFO, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(PKCS7_SIGNER_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(PKCS7_SIGNER_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_PKCS7_SIGNER_INFO(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(PKCS7_SIGNER_INFO, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_PKCS7_SIGNER_INFO(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(PKCS7_SIGNER_INFO, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_POLICYINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(POLICYINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_POLICYINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(POLICYINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_POLICYINFO(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(POLICYINFO, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_POLICYINFO(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(POLICYINFO, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_POLICYQUALINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(POLICYQUALINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_POLICYQUALINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(POLICYQUALINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_POLICYQUALINFO(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(POLICYQUALINFO, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_POLICYQUALINFO(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(POLICYQUALINFO, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_SXNETID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(SXNETID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_SXNETID(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(SXNETID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_SXNETID(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(SXNETID, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_SXNETID(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(SXNETID, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_ALGOR(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_ALGOR, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_ALGOR(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_ALGOR, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_ALGOR(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_ALGOR, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_ALGOR(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_ALGOR, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_ATTRIBUTE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_ATTRIBUTE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_ATTRIBUTE(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_ATTRIBUTE, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_ATTRIBUTE(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_ATTRIBUTE, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_CRL(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_CRL, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_CRL(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_CRL, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_CRL(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_CRL, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_CRL(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_CRL, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_EXTENSION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_EXTENSION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_EXTENSION(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_EXTENSION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_EXTENSION(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_EXTENSION, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_EXTENSION(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_EXTENSION, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_NAME_ENTRY, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_NAME_ENTRY, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_NAME_ENTRY(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_NAME_ENTRY, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_NAME_ENTRY(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_NAME_ENTRY, (buf), (len), (d2i_func), (free_func)) +# define d2i_ASN1_SET_OF_X509_REVOKED(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ + SKM_ASN1_SET_OF_d2i(X509_REVOKED, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) +# define i2d_ASN1_SET_OF_X509_REVOKED(st, pp, i2d_func, ex_tag, ex_class, is_set) \ + SKM_ASN1_SET_OF_i2d(X509_REVOKED, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) +# define ASN1_seq_pack_X509_REVOKED(st, i2d_func, buf, len) \ + SKM_ASN1_seq_pack(X509_REVOKED, (st), (i2d_func), (buf), (len)) +# define ASN1_seq_unpack_X509_REVOKED(buf, len, d2i_func, free_func) \ + SKM_ASN1_seq_unpack(X509_REVOKED, (buf), (len), (d2i_func), (free_func)) +# define PKCS12_decrypt_d2i_PKCS12_SAFEBAG(algor, d2i_func, free_func, pass, passlen, oct, seq) \ + SKM_PKCS12_decrypt_d2i(PKCS12_SAFEBAG, (algor), (d2i_func), (free_func), (pass), (passlen), (oct), (seq)) +# define PKCS12_decrypt_d2i_PKCS7(algor, d2i_func, free_func, pass, passlen, oct, seq) \ + SKM_PKCS12_decrypt_d2i(PKCS7, (algor), (d2i_func), (free_func), (pass), (passlen), (oct), (seq)) +# define lh_ADDED_OBJ_new() LHM_lh_new(ADDED_OBJ,added_obj) +# define lh_ADDED_OBJ_insert(lh,inst) LHM_lh_insert(ADDED_OBJ,lh,inst) +# define lh_ADDED_OBJ_retrieve(lh,inst) LHM_lh_retrieve(ADDED_OBJ,lh,inst) +# define lh_ADDED_OBJ_delete(lh,inst) LHM_lh_delete(ADDED_OBJ,lh,inst) +# define lh_ADDED_OBJ_doall(lh,fn) LHM_lh_doall(ADDED_OBJ,lh,fn) +# define lh_ADDED_OBJ_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(ADDED_OBJ,lh,fn,arg_type,arg) +# define lh_ADDED_OBJ_error(lh) LHM_lh_error(ADDED_OBJ,lh) +# define lh_ADDED_OBJ_num_items(lh) LHM_lh_num_items(ADDED_OBJ,lh) +# define lh_ADDED_OBJ_down_load(lh) LHM_lh_down_load(ADDED_OBJ,lh) +# define lh_ADDED_OBJ_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(ADDED_OBJ,lh,out) +# define lh_ADDED_OBJ_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(ADDED_OBJ,lh,out) +# define lh_ADDED_OBJ_stats_bio(lh,out) \ + LHM_lh_stats_bio(ADDED_OBJ,lh,out) +# define lh_ADDED_OBJ_free(lh) LHM_lh_free(ADDED_OBJ,lh) +# define lh_APP_INFO_new() LHM_lh_new(APP_INFO,app_info) +# define lh_APP_INFO_insert(lh,inst) LHM_lh_insert(APP_INFO,lh,inst) +# define lh_APP_INFO_retrieve(lh,inst) LHM_lh_retrieve(APP_INFO,lh,inst) +# define lh_APP_INFO_delete(lh,inst) LHM_lh_delete(APP_INFO,lh,inst) +# define lh_APP_INFO_doall(lh,fn) LHM_lh_doall(APP_INFO,lh,fn) +# define lh_APP_INFO_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(APP_INFO,lh,fn,arg_type,arg) +# define lh_APP_INFO_error(lh) LHM_lh_error(APP_INFO,lh) +# define lh_APP_INFO_num_items(lh) LHM_lh_num_items(APP_INFO,lh) +# define lh_APP_INFO_down_load(lh) LHM_lh_down_load(APP_INFO,lh) +# define lh_APP_INFO_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(APP_INFO,lh,out) +# define lh_APP_INFO_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(APP_INFO,lh,out) +# define lh_APP_INFO_stats_bio(lh,out) \ + LHM_lh_stats_bio(APP_INFO,lh,out) +# define lh_APP_INFO_free(lh) LHM_lh_free(APP_INFO,lh) +# define lh_CONF_VALUE_new() LHM_lh_new(CONF_VALUE,conf_value) +# define lh_CONF_VALUE_insert(lh,inst) LHM_lh_insert(CONF_VALUE,lh,inst) +# define lh_CONF_VALUE_retrieve(lh,inst) LHM_lh_retrieve(CONF_VALUE,lh,inst) +# define lh_CONF_VALUE_delete(lh,inst) LHM_lh_delete(CONF_VALUE,lh,inst) +# define lh_CONF_VALUE_doall(lh,fn) LHM_lh_doall(CONF_VALUE,lh,fn) +# define lh_CONF_VALUE_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(CONF_VALUE,lh,fn,arg_type,arg) +# define lh_CONF_VALUE_error(lh) LHM_lh_error(CONF_VALUE,lh) +# define lh_CONF_VALUE_num_items(lh) LHM_lh_num_items(CONF_VALUE,lh) +# define lh_CONF_VALUE_down_load(lh) LHM_lh_down_load(CONF_VALUE,lh) +# define lh_CONF_VALUE_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(CONF_VALUE,lh,out) +# define lh_CONF_VALUE_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(CONF_VALUE,lh,out) +# define lh_CONF_VALUE_stats_bio(lh,out) \ + LHM_lh_stats_bio(CONF_VALUE,lh,out) +# define lh_CONF_VALUE_free(lh) LHM_lh_free(CONF_VALUE,lh) +# define lh_ENGINE_PILE_new() LHM_lh_new(ENGINE_PILE,engine_pile) +# define lh_ENGINE_PILE_insert(lh,inst) LHM_lh_insert(ENGINE_PILE,lh,inst) +# define lh_ENGINE_PILE_retrieve(lh,inst) LHM_lh_retrieve(ENGINE_PILE,lh,inst) +# define lh_ENGINE_PILE_delete(lh,inst) LHM_lh_delete(ENGINE_PILE,lh,inst) +# define lh_ENGINE_PILE_doall(lh,fn) LHM_lh_doall(ENGINE_PILE,lh,fn) +# define lh_ENGINE_PILE_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(ENGINE_PILE,lh,fn,arg_type,arg) +# define lh_ENGINE_PILE_error(lh) LHM_lh_error(ENGINE_PILE,lh) +# define lh_ENGINE_PILE_num_items(lh) LHM_lh_num_items(ENGINE_PILE,lh) +# define lh_ENGINE_PILE_down_load(lh) LHM_lh_down_load(ENGINE_PILE,lh) +# define lh_ENGINE_PILE_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(ENGINE_PILE,lh,out) +# define lh_ENGINE_PILE_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(ENGINE_PILE,lh,out) +# define lh_ENGINE_PILE_stats_bio(lh,out) \ + LHM_lh_stats_bio(ENGINE_PILE,lh,out) +# define lh_ENGINE_PILE_free(lh) LHM_lh_free(ENGINE_PILE,lh) +# define lh_ERR_STATE_new() LHM_lh_new(ERR_STATE,err_state) +# define lh_ERR_STATE_insert(lh,inst) LHM_lh_insert(ERR_STATE,lh,inst) +# define lh_ERR_STATE_retrieve(lh,inst) LHM_lh_retrieve(ERR_STATE,lh,inst) +# define lh_ERR_STATE_delete(lh,inst) LHM_lh_delete(ERR_STATE,lh,inst) +# define lh_ERR_STATE_doall(lh,fn) LHM_lh_doall(ERR_STATE,lh,fn) +# define lh_ERR_STATE_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(ERR_STATE,lh,fn,arg_type,arg) +# define lh_ERR_STATE_error(lh) LHM_lh_error(ERR_STATE,lh) +# define lh_ERR_STATE_num_items(lh) LHM_lh_num_items(ERR_STATE,lh) +# define lh_ERR_STATE_down_load(lh) LHM_lh_down_load(ERR_STATE,lh) +# define lh_ERR_STATE_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(ERR_STATE,lh,out) +# define lh_ERR_STATE_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(ERR_STATE,lh,out) +# define lh_ERR_STATE_stats_bio(lh,out) \ + LHM_lh_stats_bio(ERR_STATE,lh,out) +# define lh_ERR_STATE_free(lh) LHM_lh_free(ERR_STATE,lh) +# define lh_ERR_STRING_DATA_new() LHM_lh_new(ERR_STRING_DATA,err_string_data) +# define lh_ERR_STRING_DATA_insert(lh,inst) LHM_lh_insert(ERR_STRING_DATA,lh,inst) +# define lh_ERR_STRING_DATA_retrieve(lh,inst) LHM_lh_retrieve(ERR_STRING_DATA,lh,inst) +# define lh_ERR_STRING_DATA_delete(lh,inst) LHM_lh_delete(ERR_STRING_DATA,lh,inst) +# define lh_ERR_STRING_DATA_doall(lh,fn) LHM_lh_doall(ERR_STRING_DATA,lh,fn) +# define lh_ERR_STRING_DATA_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(ERR_STRING_DATA,lh,fn,arg_type,arg) +# define lh_ERR_STRING_DATA_error(lh) LHM_lh_error(ERR_STRING_DATA,lh) +# define lh_ERR_STRING_DATA_num_items(lh) LHM_lh_num_items(ERR_STRING_DATA,lh) +# define lh_ERR_STRING_DATA_down_load(lh) LHM_lh_down_load(ERR_STRING_DATA,lh) +# define lh_ERR_STRING_DATA_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(ERR_STRING_DATA,lh,out) +# define lh_ERR_STRING_DATA_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(ERR_STRING_DATA,lh,out) +# define lh_ERR_STRING_DATA_stats_bio(lh,out) \ + LHM_lh_stats_bio(ERR_STRING_DATA,lh,out) +# define lh_ERR_STRING_DATA_free(lh) LHM_lh_free(ERR_STRING_DATA,lh) +# define lh_EX_CLASS_ITEM_new() LHM_lh_new(EX_CLASS_ITEM,ex_class_item) +# define lh_EX_CLASS_ITEM_insert(lh,inst) LHM_lh_insert(EX_CLASS_ITEM,lh,inst) +# define lh_EX_CLASS_ITEM_retrieve(lh,inst) LHM_lh_retrieve(EX_CLASS_ITEM,lh,inst) +# define lh_EX_CLASS_ITEM_delete(lh,inst) LHM_lh_delete(EX_CLASS_ITEM,lh,inst) +# define lh_EX_CLASS_ITEM_doall(lh,fn) LHM_lh_doall(EX_CLASS_ITEM,lh,fn) +# define lh_EX_CLASS_ITEM_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(EX_CLASS_ITEM,lh,fn,arg_type,arg) +# define lh_EX_CLASS_ITEM_error(lh) LHM_lh_error(EX_CLASS_ITEM,lh) +# define lh_EX_CLASS_ITEM_num_items(lh) LHM_lh_num_items(EX_CLASS_ITEM,lh) +# define lh_EX_CLASS_ITEM_down_load(lh) LHM_lh_down_load(EX_CLASS_ITEM,lh) +# define lh_EX_CLASS_ITEM_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(EX_CLASS_ITEM,lh,out) +# define lh_EX_CLASS_ITEM_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(EX_CLASS_ITEM,lh,out) +# define lh_EX_CLASS_ITEM_stats_bio(lh,out) \ + LHM_lh_stats_bio(EX_CLASS_ITEM,lh,out) +# define lh_EX_CLASS_ITEM_free(lh) LHM_lh_free(EX_CLASS_ITEM,lh) +# define lh_FUNCTION_new() LHM_lh_new(FUNCTION,function) +# define lh_FUNCTION_insert(lh,inst) LHM_lh_insert(FUNCTION,lh,inst) +# define lh_FUNCTION_retrieve(lh,inst) LHM_lh_retrieve(FUNCTION,lh,inst) +# define lh_FUNCTION_delete(lh,inst) LHM_lh_delete(FUNCTION,lh,inst) +# define lh_FUNCTION_doall(lh,fn) LHM_lh_doall(FUNCTION,lh,fn) +# define lh_FUNCTION_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(FUNCTION,lh,fn,arg_type,arg) +# define lh_FUNCTION_error(lh) LHM_lh_error(FUNCTION,lh) +# define lh_FUNCTION_num_items(lh) LHM_lh_num_items(FUNCTION,lh) +# define lh_FUNCTION_down_load(lh) LHM_lh_down_load(FUNCTION,lh) +# define lh_FUNCTION_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(FUNCTION,lh,out) +# define lh_FUNCTION_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(FUNCTION,lh,out) +# define lh_FUNCTION_stats_bio(lh,out) \ + LHM_lh_stats_bio(FUNCTION,lh,out) +# define lh_FUNCTION_free(lh) LHM_lh_free(FUNCTION,lh) +# define lh_MEM_new() LHM_lh_new(MEM,mem) +# define lh_MEM_insert(lh,inst) LHM_lh_insert(MEM,lh,inst) +# define lh_MEM_retrieve(lh,inst) LHM_lh_retrieve(MEM,lh,inst) +# define lh_MEM_delete(lh,inst) LHM_lh_delete(MEM,lh,inst) +# define lh_MEM_doall(lh,fn) LHM_lh_doall(MEM,lh,fn) +# define lh_MEM_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(MEM,lh,fn,arg_type,arg) +# define lh_MEM_error(lh) LHM_lh_error(MEM,lh) +# define lh_MEM_num_items(lh) LHM_lh_num_items(MEM,lh) +# define lh_MEM_down_load(lh) LHM_lh_down_load(MEM,lh) +# define lh_MEM_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(MEM,lh,out) +# define lh_MEM_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(MEM,lh,out) +# define lh_MEM_stats_bio(lh,out) \ + LHM_lh_stats_bio(MEM,lh,out) +# define lh_MEM_free(lh) LHM_lh_free(MEM,lh) +# define lh_OBJ_NAME_new() LHM_lh_new(OBJ_NAME,obj_name) +# define lh_OBJ_NAME_insert(lh,inst) LHM_lh_insert(OBJ_NAME,lh,inst) +# define lh_OBJ_NAME_retrieve(lh,inst) LHM_lh_retrieve(OBJ_NAME,lh,inst) +# define lh_OBJ_NAME_delete(lh,inst) LHM_lh_delete(OBJ_NAME,lh,inst) +# define lh_OBJ_NAME_doall(lh,fn) LHM_lh_doall(OBJ_NAME,lh,fn) +# define lh_OBJ_NAME_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(OBJ_NAME,lh,fn,arg_type,arg) +# define lh_OBJ_NAME_error(lh) LHM_lh_error(OBJ_NAME,lh) +# define lh_OBJ_NAME_num_items(lh) LHM_lh_num_items(OBJ_NAME,lh) +# define lh_OBJ_NAME_down_load(lh) LHM_lh_down_load(OBJ_NAME,lh) +# define lh_OBJ_NAME_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(OBJ_NAME,lh,out) +# define lh_OBJ_NAME_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(OBJ_NAME,lh,out) +# define lh_OBJ_NAME_stats_bio(lh,out) \ + LHM_lh_stats_bio(OBJ_NAME,lh,out) +# define lh_OBJ_NAME_free(lh) LHM_lh_free(OBJ_NAME,lh) +# define lh_OPENSSL_CSTRING_new() LHM_lh_new(OPENSSL_CSTRING,openssl_cstring) +# define lh_OPENSSL_CSTRING_insert(lh,inst) LHM_lh_insert(OPENSSL_CSTRING,lh,inst) +# define lh_OPENSSL_CSTRING_retrieve(lh,inst) LHM_lh_retrieve(OPENSSL_CSTRING,lh,inst) +# define lh_OPENSSL_CSTRING_delete(lh,inst) LHM_lh_delete(OPENSSL_CSTRING,lh,inst) +# define lh_OPENSSL_CSTRING_doall(lh,fn) LHM_lh_doall(OPENSSL_CSTRING,lh,fn) +# define lh_OPENSSL_CSTRING_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(OPENSSL_CSTRING,lh,fn,arg_type,arg) +# define lh_OPENSSL_CSTRING_error(lh) LHM_lh_error(OPENSSL_CSTRING,lh) +# define lh_OPENSSL_CSTRING_num_items(lh) LHM_lh_num_items(OPENSSL_CSTRING,lh) +# define lh_OPENSSL_CSTRING_down_load(lh) LHM_lh_down_load(OPENSSL_CSTRING,lh) +# define lh_OPENSSL_CSTRING_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(OPENSSL_CSTRING,lh,out) +# define lh_OPENSSL_CSTRING_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(OPENSSL_CSTRING,lh,out) +# define lh_OPENSSL_CSTRING_stats_bio(lh,out) \ + LHM_lh_stats_bio(OPENSSL_CSTRING,lh,out) +# define lh_OPENSSL_CSTRING_free(lh) LHM_lh_free(OPENSSL_CSTRING,lh) +# define lh_OPENSSL_STRING_new() LHM_lh_new(OPENSSL_STRING,openssl_string) +# define lh_OPENSSL_STRING_insert(lh,inst) LHM_lh_insert(OPENSSL_STRING,lh,inst) +# define lh_OPENSSL_STRING_retrieve(lh,inst) LHM_lh_retrieve(OPENSSL_STRING,lh,inst) +# define lh_OPENSSL_STRING_delete(lh,inst) LHM_lh_delete(OPENSSL_STRING,lh,inst) +# define lh_OPENSSL_STRING_doall(lh,fn) LHM_lh_doall(OPENSSL_STRING,lh,fn) +# define lh_OPENSSL_STRING_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(OPENSSL_STRING,lh,fn,arg_type,arg) +# define lh_OPENSSL_STRING_error(lh) LHM_lh_error(OPENSSL_STRING,lh) +# define lh_OPENSSL_STRING_num_items(lh) LHM_lh_num_items(OPENSSL_STRING,lh) +# define lh_OPENSSL_STRING_down_load(lh) LHM_lh_down_load(OPENSSL_STRING,lh) +# define lh_OPENSSL_STRING_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(OPENSSL_STRING,lh,out) +# define lh_OPENSSL_STRING_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(OPENSSL_STRING,lh,out) +# define lh_OPENSSL_STRING_stats_bio(lh,out) \ + LHM_lh_stats_bio(OPENSSL_STRING,lh,out) +# define lh_OPENSSL_STRING_free(lh) LHM_lh_free(OPENSSL_STRING,lh) +# define lh_SSL_SESSION_new() LHM_lh_new(SSL_SESSION,ssl_session) +# define lh_SSL_SESSION_insert(lh,inst) LHM_lh_insert(SSL_SESSION,lh,inst) +# define lh_SSL_SESSION_retrieve(lh,inst) LHM_lh_retrieve(SSL_SESSION,lh,inst) +# define lh_SSL_SESSION_delete(lh,inst) LHM_lh_delete(SSL_SESSION,lh,inst) +# define lh_SSL_SESSION_doall(lh,fn) LHM_lh_doall(SSL_SESSION,lh,fn) +# define lh_SSL_SESSION_doall_arg(lh,fn,arg_type,arg) \ + LHM_lh_doall_arg(SSL_SESSION,lh,fn,arg_type,arg) +# define lh_SSL_SESSION_error(lh) LHM_lh_error(SSL_SESSION,lh) +# define lh_SSL_SESSION_num_items(lh) LHM_lh_num_items(SSL_SESSION,lh) +# define lh_SSL_SESSION_down_load(lh) LHM_lh_down_load(SSL_SESSION,lh) +# define lh_SSL_SESSION_node_stats_bio(lh,out) \ + LHM_lh_node_stats_bio(SSL_SESSION,lh,out) +# define lh_SSL_SESSION_node_usage_stats_bio(lh,out) \ + LHM_lh_node_usage_stats_bio(SSL_SESSION,lh,out) +# define lh_SSL_SESSION_stats_bio(lh,out) \ + LHM_lh_stats_bio(SSL_SESSION,lh,out) +# define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh) +#ifdef __cplusplus +} +#endif +#endif /* !defined HEADER_SAFESTACK_H */ diff --git a/External/include64/openssl/seed.h b/External/include64/openssl/seed.h new file mode 100644 index 00000000..8cbf0d92 --- /dev/null +++ b/External/include64/openssl/seed.h @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2007 KISA(Korea Information Security Agency). 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. Neither the name of author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS 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. + * + */ +/* ==================================================================== + * Copyright (c) 1998-2007 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_SEED_H +# define HEADER_SEED_H + +# include +# include +# include + +# ifdef OPENSSL_NO_SEED +# error SEED is disabled. +# endif + +/* look whether we need 'long' to get 32 bits */ +# ifdef AES_LONG +# ifndef SEED_LONG +# define SEED_LONG 1 +# endif +# endif + +# if !defined(NO_SYS_TYPES_H) +# include +# endif + +# define SEED_BLOCK_SIZE 16 +# define SEED_KEY_LENGTH 16 + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct seed_key_st { +# ifdef SEED_LONG + unsigned long data[32]; +# else + unsigned int data[32]; +# endif +} SEED_KEY_SCHEDULE; + +# ifdef OPENSSL_FIPS +void private_SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], + SEED_KEY_SCHEDULE *ks); +# endif +void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], + SEED_KEY_SCHEDULE *ks); + +void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], + unsigned char d[SEED_BLOCK_SIZE], + const SEED_KEY_SCHEDULE *ks); +void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], + unsigned char d[SEED_BLOCK_SIZE], + const SEED_KEY_SCHEDULE *ks); + +void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out, + const SEED_KEY_SCHEDULE *ks, int enc); +void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, + const SEED_KEY_SCHEDULE *ks, + unsigned char ivec[SEED_BLOCK_SIZE], int enc); +void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const SEED_KEY_SCHEDULE *ks, + unsigned char ivec[SEED_BLOCK_SIZE], int *num, + int enc); +void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const SEED_KEY_SCHEDULE *ks, + unsigned char ivec[SEED_BLOCK_SIZE], int *num); + +#ifdef __cplusplus +} +#endif + +#endif /* HEADER_SEED_H */ diff --git a/External/include64/openssl/sha.h b/External/include64/openssl/sha.h new file mode 100644 index 00000000..e5169e4f --- /dev/null +++ b/External/include64/openssl/sha.h @@ -0,0 +1,214 @@ +/* crypto/sha/sha.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_SHA_H +# define HEADER_SHA_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# if defined(OPENSSL_NO_SHA) || (defined(OPENSSL_NO_SHA0) && defined(OPENSSL_NO_SHA1)) +# error SHA is disabled. +# endif + +# if defined(OPENSSL_FIPS) +# define FIPS_SHA_SIZE_T size_t +# endif + +/*- + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then ! + * ! SHA_LONG_LOG2 has to be defined along. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ + +# if defined(__LP32__) +# define SHA_LONG unsigned long +# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) +# define SHA_LONG unsigned long +# define SHA_LONG_LOG2 3 +# else +# define SHA_LONG unsigned int +# endif + +# define SHA_LBLOCK 16 +# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a + * contiguous array of 32 bit wide + * big-endian values. */ +# define SHA_LAST_BLOCK (SHA_CBLOCK-8) +# define SHA_DIGEST_LENGTH 20 + +typedef struct SHAstate_st { + SHA_LONG h0, h1, h2, h3, h4; + SHA_LONG Nl, Nh; + SHA_LONG data[SHA_LBLOCK]; + unsigned int num; +} SHA_CTX; + +# ifndef OPENSSL_NO_SHA0 +# ifdef OPENSSL_FIPS +int private_SHA_Init(SHA_CTX *c); +# endif +int SHA_Init(SHA_CTX *c); +int SHA_Update(SHA_CTX *c, const void *data, size_t len); +int SHA_Final(unsigned char *md, SHA_CTX *c); +unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md); +void SHA_Transform(SHA_CTX *c, const unsigned char *data); +# endif +# ifndef OPENSSL_NO_SHA1 +# ifdef OPENSSL_FIPS +int private_SHA1_Init(SHA_CTX *c); +# endif +int SHA1_Init(SHA_CTX *c); +int SHA1_Update(SHA_CTX *c, const void *data, size_t len); +int SHA1_Final(unsigned char *md, SHA_CTX *c); +unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); +void SHA1_Transform(SHA_CTX *c, const unsigned char *data); +# endif + +# define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a + * contiguous array of 32 bit wide + * big-endian values. */ +# define SHA224_DIGEST_LENGTH 28 +# define SHA256_DIGEST_LENGTH 32 + +typedef struct SHA256state_st { + SHA_LONG h[8]; + SHA_LONG Nl, Nh; + SHA_LONG data[SHA_LBLOCK]; + unsigned int num, md_len; +} SHA256_CTX; + +# ifndef OPENSSL_NO_SHA256 +# ifdef OPENSSL_FIPS +int private_SHA224_Init(SHA256_CTX *c); +int private_SHA256_Init(SHA256_CTX *c); +# endif +int SHA224_Init(SHA256_CTX *c); +int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); +int SHA224_Final(unsigned char *md, SHA256_CTX *c); +unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); +int SHA256_Init(SHA256_CTX *c); +int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); +int SHA256_Final(unsigned char *md, SHA256_CTX *c); +unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); +void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); +# endif + +# define SHA384_DIGEST_LENGTH 48 +# define SHA512_DIGEST_LENGTH 64 + +# ifndef OPENSSL_NO_SHA512 +/* + * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 + * being exactly 64-bit wide. See Implementation Notes in sha512.c + * for further details. + */ +/* + * SHA-512 treats input data as a + * contiguous array of 64 bit + * wide big-endian values. + */ +# define SHA512_CBLOCK (SHA_LBLOCK*8) +# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) +# define SHA_LONG64 unsigned __int64 +# define U64(C) C##UI64 +# elif defined(__arch64__) +# define SHA_LONG64 unsigned long +# define U64(C) C##UL +# else +# define SHA_LONG64 unsigned long long +# define U64(C) C##ULL +# endif + +typedef struct SHA512state_st { + SHA_LONG64 h[8]; + SHA_LONG64 Nl, Nh; + union { + SHA_LONG64 d[SHA_LBLOCK]; + unsigned char p[SHA512_CBLOCK]; + } u; + unsigned int num, md_len; +} SHA512_CTX; +# endif + +# ifndef OPENSSL_NO_SHA512 +# ifdef OPENSSL_FIPS +int private_SHA384_Init(SHA512_CTX *c); +int private_SHA512_Init(SHA512_CTX *c); +# endif +int SHA384_Init(SHA512_CTX *c); +int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); +int SHA384_Final(unsigned char *md, SHA512_CTX *c); +unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); +int SHA512_Init(SHA512_CTX *c); +int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); +int SHA512_Final(unsigned char *md, SHA512_CTX *c); +unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); +void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); +# endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/srp.h b/External/include64/openssl/srp.h new file mode 100644 index 00000000..028892a1 --- /dev/null +++ b/External/include64/openssl/srp.h @@ -0,0 +1,179 @@ +/* crypto/srp/srp.h */ +/* + * Written by Christophe Renou (christophe.renou@edelweb.fr) with the + * precious help of Peter Sylvester (peter.sylvester@edelweb.fr) for the + * EdelKey project and contributed to the OpenSSL project 2004. + */ +/* ==================================================================== + * Copyright (c) 2004 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +#ifndef __SRP_H__ +# define __SRP_H__ + +# ifndef OPENSSL_NO_SRP + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# include +# include +# include + +typedef struct SRP_gN_cache_st { + char *b64_bn; + BIGNUM *bn; +} SRP_gN_cache; + + +DECLARE_STACK_OF(SRP_gN_cache) + +typedef struct SRP_user_pwd_st { + /* Owned by us. */ + char *id; + BIGNUM *s; + BIGNUM *v; + /* Not owned by us. */ + const BIGNUM *g; + const BIGNUM *N; + /* Owned by us. */ + char *info; +} SRP_user_pwd; + +DECLARE_STACK_OF(SRP_user_pwd) + +void SRP_user_pwd_free(SRP_user_pwd *user_pwd); + +typedef struct SRP_VBASE_st { + STACK_OF(SRP_user_pwd) *users_pwd; + STACK_OF(SRP_gN_cache) *gN_cache; +/* to simulate a user */ + char *seed_key; + BIGNUM *default_g; + BIGNUM *default_N; +} SRP_VBASE; + +/* + * Structure interne pour retenir les couples N et g + */ +typedef struct SRP_gN_st { + char *id; + BIGNUM *g; + BIGNUM *N; +} SRP_gN; + +DECLARE_STACK_OF(SRP_gN) + +SRP_VBASE *SRP_VBASE_new(char *seed_key); +int SRP_VBASE_free(SRP_VBASE *vb); +int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); + +/* This method ignores the configured seed and fails for an unknown user. */ +SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username); +/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ +SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); + +char *SRP_create_verifier(const char *user, const char *pass, char **salt, + char **verifier, const char *N, const char *g); +int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, + BIGNUM **verifier, BIGNUM *N, BIGNUM *g); + +# define SRP_NO_ERROR 0 +# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 +# define SRP_ERR_VBASE_BN_LIB 2 +# define SRP_ERR_OPEN_FILE 3 +# define SRP_ERR_MEMORY 4 + +# define DB_srptype 0 +# define DB_srpverifier 1 +# define DB_srpsalt 2 +# define DB_srpid 3 +# define DB_srpgN 4 +# define DB_srpinfo 5 +# undef DB_NUMBER +# define DB_NUMBER 6 + +# define DB_SRP_INDEX 'I' +# define DB_SRP_VALID 'V' +# define DB_SRP_REVOKED 'R' +# define DB_SRP_MODIF 'v' + +/* see srp.c */ +char *SRP_check_known_gN_param(BIGNUM *g, BIGNUM *N); +SRP_gN *SRP_get_default_gN(const char *id); + +/* server side .... */ +BIGNUM *SRP_Calc_server_key(BIGNUM *A, BIGNUM *v, BIGNUM *u, BIGNUM *b, + BIGNUM *N); +BIGNUM *SRP_Calc_B(BIGNUM *b, BIGNUM *N, BIGNUM *g, BIGNUM *v); +int SRP_Verify_A_mod_N(BIGNUM *A, BIGNUM *N); +BIGNUM *SRP_Calc_u(BIGNUM *A, BIGNUM *B, BIGNUM *N); + +/* client side .... */ +BIGNUM *SRP_Calc_x(BIGNUM *s, const char *user, const char *pass); +BIGNUM *SRP_Calc_A(BIGNUM *a, BIGNUM *N, BIGNUM *g); +BIGNUM *SRP_Calc_client_key(BIGNUM *N, BIGNUM *B, BIGNUM *g, BIGNUM *x, + BIGNUM *a, BIGNUM *u); +int SRP_Verify_B_mod_N(BIGNUM *B, BIGNUM *N); + +# define SRP_MINIMAL_N 1024 + +#ifdef __cplusplus +} +#endif + +# endif +#endif diff --git a/External/include64/openssl/srtp.h b/External/include64/openssl/srtp.h new file mode 100644 index 00000000..2279c32b --- /dev/null +++ b/External/include64/openssl/srtp.h @@ -0,0 +1,147 @@ +/* ssl/srtp.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* + * DTLS code by Eric Rescorla + * + * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. + */ + +#ifndef HEADER_D1_SRTP_H +# define HEADER_D1_SRTP_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define SRTP_AES128_CM_SHA1_80 0x0001 +# define SRTP_AES128_CM_SHA1_32 0x0002 +# define SRTP_AES128_F8_SHA1_80 0x0003 +# define SRTP_AES128_F8_SHA1_32 0x0004 +# define SRTP_NULL_SHA1_80 0x0005 +# define SRTP_NULL_SHA1_32 0x0006 + +# ifndef OPENSSL_NO_SRTP + +int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); +int SSL_set_tlsext_use_srtp(SSL *ctx, const char *profiles); + +STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); +SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); + +# endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/ssl.h b/External/include64/openssl/ssl.h new file mode 100644 index 00000000..5ef56faa --- /dev/null +++ b/External/include64/openssl/ssl.h @@ -0,0 +1,3169 @@ +/* ssl/ssl.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2007 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * ECC cipher suite support in OpenSSL originally developed by + * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. + */ +/* ==================================================================== + * Copyright 2005 Nokia. All rights reserved. + * + * The portions of the attached software ("Contribution") is developed by + * Nokia Corporation and is licensed pursuant to the OpenSSL open source + * license. + * + * The Contribution, originally written by Mika Kousa and Pasi Eronen of + * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites + * support (see RFC 4279) to OpenSSL. + * + * No patent licenses or other rights except those expressly stated in + * the OpenSSL open source license shall be deemed granted or received + * expressly, by implication, estoppel, or otherwise. + * + * No assurances are provided by Nokia that the Contribution does not + * infringe the patent or other intellectual property rights of any third + * party or that the license provides you with all the necessary rights + * to make use of the Contribution. + * + * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN + * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA + * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY + * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR + * OTHERWISE. + */ + +#ifndef HEADER_SSL_H +# define HEADER_SSL_H + +# include + +# ifndef OPENSSL_NO_COMP +# include +# endif +# ifndef OPENSSL_NO_BIO +# include +# endif +# ifndef OPENSSL_NO_DEPRECATED +# ifndef OPENSSL_NO_X509 +# include +# endif +# include +# include +# include +# endif +# include +# include + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SSLeay version number for ASN.1 encoding of the session information */ +/*- + * Version 0 - initial version + * Version 1 - added the optional peer certificate + */ +# define SSL_SESSION_ASN1_VERSION 0x0001 + +/* text strings for the ciphers */ +# define SSL_TXT_NULL_WITH_MD5 SSL2_TXT_NULL_WITH_MD5 +# define SSL_TXT_RC4_128_WITH_MD5 SSL2_TXT_RC4_128_WITH_MD5 +# define SSL_TXT_RC4_128_EXPORT40_WITH_MD5 SSL2_TXT_RC4_128_EXPORT40_WITH_MD5 +# define SSL_TXT_RC2_128_CBC_WITH_MD5 SSL2_TXT_RC2_128_CBC_WITH_MD5 +# define SSL_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 +# define SSL_TXT_IDEA_128_CBC_WITH_MD5 SSL2_TXT_IDEA_128_CBC_WITH_MD5 +# define SSL_TXT_DES_64_CBC_WITH_MD5 SSL2_TXT_DES_64_CBC_WITH_MD5 +# define SSL_TXT_DES_64_CBC_WITH_SHA SSL2_TXT_DES_64_CBC_WITH_SHA +# define SSL_TXT_DES_192_EDE3_CBC_WITH_MD5 SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 +# define SSL_TXT_DES_192_EDE3_CBC_WITH_SHA SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA + +/* + * VRS Additional Kerberos5 entries + */ +# define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA +# define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA +# define SSL_TXT_KRB5_RC4_128_SHA SSL3_TXT_KRB5_RC4_128_SHA +# define SSL_TXT_KRB5_IDEA_128_CBC_SHA SSL3_TXT_KRB5_IDEA_128_CBC_SHA +# define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5 +# define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5 +# define SSL_TXT_KRB5_RC4_128_MD5 SSL3_TXT_KRB5_RC4_128_MD5 +# define SSL_TXT_KRB5_IDEA_128_CBC_MD5 SSL3_TXT_KRB5_IDEA_128_CBC_MD5 + +# define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA +# define SSL_TXT_KRB5_RC2_40_CBC_SHA SSL3_TXT_KRB5_RC2_40_CBC_SHA +# define SSL_TXT_KRB5_RC4_40_SHA SSL3_TXT_KRB5_RC4_40_SHA +# define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5 +# define SSL_TXT_KRB5_RC2_40_CBC_MD5 SSL3_TXT_KRB5_RC2_40_CBC_MD5 +# define SSL_TXT_KRB5_RC4_40_MD5 SSL3_TXT_KRB5_RC4_40_MD5 + +# define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA +# define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5 +# define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA +# define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5 +# define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA +# define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5 +# define SSL_MAX_KRB5_PRINCIPAL_LENGTH 256 + +# define SSL_MAX_SSL_SESSION_ID_LENGTH 32 +# define SSL_MAX_SID_CTX_LENGTH 32 + +# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) +# define SSL_MAX_KEY_ARG_LENGTH 8 +# define SSL_MAX_MASTER_KEY_LENGTH 48 + +/* These are used to specify which ciphers to use and not to use */ + +# define SSL_TXT_EXP40 "EXPORT40" +# define SSL_TXT_EXP56 "EXPORT56" +# define SSL_TXT_LOW "LOW" +# define SSL_TXT_MEDIUM "MEDIUM" +# define SSL_TXT_HIGH "HIGH" +# define SSL_TXT_FIPS "FIPS" + +# define SSL_TXT_kFZA "kFZA"/* unused! */ +# define SSL_TXT_aFZA "aFZA"/* unused! */ +# define SSL_TXT_eFZA "eFZA"/* unused! */ +# define SSL_TXT_FZA "FZA"/* unused! */ + +# define SSL_TXT_aNULL "aNULL" +# define SSL_TXT_eNULL "eNULL" +# define SSL_TXT_NULL "NULL" + +# define SSL_TXT_kRSA "kRSA" +# define SSL_TXT_kDHr "kDHr" +# define SSL_TXT_kDHd "kDHd" +# define SSL_TXT_kDH "kDH" +# define SSL_TXT_kEDH "kEDH" +# define SSL_TXT_kDHE "kDHE"/* alias for kEDH */ +# define SSL_TXT_kKRB5 "kKRB5" +# define SSL_TXT_kECDHr "kECDHr" +# define SSL_TXT_kECDHe "kECDHe" +# define SSL_TXT_kECDH "kECDH" +# define SSL_TXT_kEECDH "kEECDH" +# define SSL_TXT_kECDHE "kECDHE"/* alias for kEECDH */ +# define SSL_TXT_kPSK "kPSK" +# define SSL_TXT_kGOST "kGOST" +# define SSL_TXT_kSRP "kSRP" + +# define SSL_TXT_aRSA "aRSA" +# define SSL_TXT_aDSS "aDSS" +# define SSL_TXT_aDH "aDH" +# define SSL_TXT_aECDH "aECDH" +# define SSL_TXT_aKRB5 "aKRB5" +# define SSL_TXT_aECDSA "aECDSA" +# define SSL_TXT_aPSK "aPSK" +# define SSL_TXT_aGOST94 "aGOST94" +# define SSL_TXT_aGOST01 "aGOST01" +# define SSL_TXT_aGOST "aGOST" +# define SSL_TXT_aSRP "aSRP" + +# define SSL_TXT_DSS "DSS" +# define SSL_TXT_DH "DH" +# define SSL_TXT_EDH "EDH"/* same as "kEDH:-ADH" */ +# define SSL_TXT_DHE "DHE"/* alias for EDH */ +# define SSL_TXT_ADH "ADH" +# define SSL_TXT_RSA "RSA" +# define SSL_TXT_ECDH "ECDH" +# define SSL_TXT_EECDH "EECDH"/* same as "kEECDH:-AECDH" */ +# define SSL_TXT_ECDHE "ECDHE"/* alias for ECDHE" */ +# define SSL_TXT_AECDH "AECDH" +# define SSL_TXT_ECDSA "ECDSA" +# define SSL_TXT_KRB5 "KRB5" +# define SSL_TXT_PSK "PSK" +# define SSL_TXT_SRP "SRP" + +# define SSL_TXT_DES "DES" +# define SSL_TXT_3DES "3DES" +# define SSL_TXT_RC4 "RC4" +# define SSL_TXT_RC2 "RC2" +# define SSL_TXT_IDEA "IDEA" +# define SSL_TXT_SEED "SEED" +# define SSL_TXT_AES128 "AES128" +# define SSL_TXT_AES256 "AES256" +# define SSL_TXT_AES "AES" +# define SSL_TXT_AES_GCM "AESGCM" +# define SSL_TXT_CAMELLIA128 "CAMELLIA128" +# define SSL_TXT_CAMELLIA256 "CAMELLIA256" +# define SSL_TXT_CAMELLIA "CAMELLIA" + +# define SSL_TXT_MD5 "MD5" +# define SSL_TXT_SHA1 "SHA1" +# define SSL_TXT_SHA "SHA"/* same as "SHA1" */ +# define SSL_TXT_GOST94 "GOST94" +# define SSL_TXT_GOST89MAC "GOST89MAC" +# define SSL_TXT_SHA256 "SHA256" +# define SSL_TXT_SHA384 "SHA384" + +# define SSL_TXT_SSLV2 "SSLv2" +# define SSL_TXT_SSLV3 "SSLv3" +# define SSL_TXT_TLSV1 "TLSv1" +# define SSL_TXT_TLSV1_1 "TLSv1.1" +# define SSL_TXT_TLSV1_2 "TLSv1.2" + +# define SSL_TXT_EXP "EXP" +# define SSL_TXT_EXPORT "EXPORT" + +# define SSL_TXT_ALL "ALL" + +/*- + * COMPLEMENTOF* definitions. These identifiers are used to (de-select) + * ciphers normally not being used. + * Example: "RC4" will activate all ciphers using RC4 including ciphers + * without authentication, which would normally disabled by DEFAULT (due + * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" + * will make sure that it is also disabled in the specific selection. + * COMPLEMENTOF* identifiers are portable between version, as adjustments + * to the default cipher setup will also be included here. + * + * COMPLEMENTOFDEFAULT does not experience the same special treatment that + * DEFAULT gets, as only selection is being done and no sorting as needed + * for DEFAULT. + */ +# define SSL_TXT_CMPALL "COMPLEMENTOFALL" +# define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" + +/* + * The following cipher list is used by default. It also is substituted when + * an application-defined cipher list string starts with 'DEFAULT'. + */ +# define SSL_DEFAULT_CIPHER_LIST "ALL:!EXPORT:!LOW:!aNULL:!eNULL:!SSLv2" +/* + * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always + * starts with a reasonable order, and all we have to do for DEFAULT is + * throwing out anonymous and unencrypted ciphersuites! (The latter are not + * actually enabled by ALL, but "ALL:RSA" would enable some of them.) + */ + +/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ +# define SSL_SENT_SHUTDOWN 1 +# define SSL_RECEIVED_SHUTDOWN 2 + +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +# if (defined(OPENSSL_NO_RSA) || defined(OPENSSL_NO_MD5)) && !defined(OPENSSL_NO_SSL2) +# define OPENSSL_NO_SSL2 +# endif + +# define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 +# define SSL_FILETYPE_PEM X509_FILETYPE_PEM + +/* + * This is needed to stop compilers complaining about the 'struct ssl_st *' + * function parameters used to prototype callbacks in SSL_CTX. + */ +typedef struct ssl_st *ssl_crock_st; +typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; +typedef struct ssl_method_st SSL_METHOD; +typedef struct ssl_cipher_st SSL_CIPHER; +typedef struct ssl_session_st SSL_SESSION; +typedef struct tls_sigalgs_st TLS_SIGALGS; +typedef struct ssl_conf_ctx_st SSL_CONF_CTX; + +DECLARE_STACK_OF(SSL_CIPHER) + +/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ +typedef struct srtp_protection_profile_st { + const char *name; + unsigned long id; +} SRTP_PROTECTION_PROFILE; + +DECLARE_STACK_OF(SRTP_PROTECTION_PROFILE) + +typedef int (*tls_session_ticket_ext_cb_fn) (SSL *s, + const unsigned char *data, + int len, void *arg); +typedef int (*tls_session_secret_cb_fn) (SSL *s, void *secret, + int *secret_len, + STACK_OF(SSL_CIPHER) *peer_ciphers, + SSL_CIPHER **cipher, void *arg); + +# ifndef OPENSSL_NO_TLSEXT + +/* Typedefs for handling custom extensions */ + +typedef int (*custom_ext_add_cb) (SSL *s, unsigned int ext_type, + const unsigned char **out, + size_t *outlen, int *al, void *add_arg); + +typedef void (*custom_ext_free_cb) (SSL *s, unsigned int ext_type, + const unsigned char *out, void *add_arg); + +typedef int (*custom_ext_parse_cb) (SSL *s, unsigned int ext_type, + const unsigned char *in, + size_t inlen, int *al, void *parse_arg); + +# endif + +# ifndef OPENSSL_NO_SSL_INTERN + +/* used to hold info on the particular ciphers used */ +struct ssl_cipher_st { + int valid; + const char *name; /* text name */ + unsigned long id; /* id, 4 bytes, first is version */ + /* + * changed in 0.9.9: these four used to be portions of a single value + * 'algorithms' + */ + unsigned long algorithm_mkey; /* key exchange algorithm */ + unsigned long algorithm_auth; /* server authentication */ + unsigned long algorithm_enc; /* symmetric encryption */ + unsigned long algorithm_mac; /* symmetric authentication */ + unsigned long algorithm_ssl; /* (major) protocol version */ + unsigned long algo_strength; /* strength and export flags */ + unsigned long algorithm2; /* Extra flags */ + int strength_bits; /* Number of bits really used */ + int alg_bits; /* Number of bits for algorithm */ +}; + +/* Used to hold functions for SSLv2 or SSLv3/TLSv1 functions */ +struct ssl_method_st { + int version; + int (*ssl_new) (SSL *s); + void (*ssl_clear) (SSL *s); + void (*ssl_free) (SSL *s); + int (*ssl_accept) (SSL *s); + int (*ssl_connect) (SSL *s); + int (*ssl_read) (SSL *s, void *buf, int len); + int (*ssl_peek) (SSL *s, void *buf, int len); + int (*ssl_write) (SSL *s, const void *buf, int len); + int (*ssl_shutdown) (SSL *s); + int (*ssl_renegotiate) (SSL *s); + int (*ssl_renegotiate_check) (SSL *s); + long (*ssl_get_message) (SSL *s, int st1, int stn, int mt, long + max, int *ok); + int (*ssl_read_bytes) (SSL *s, int type, unsigned char *buf, int len, + int peek); + int (*ssl_write_bytes) (SSL *s, int type, const void *buf_, int len); + int (*ssl_dispatch_alert) (SSL *s); + long (*ssl_ctrl) (SSL *s, int cmd, long larg, void *parg); + long (*ssl_ctx_ctrl) (SSL_CTX *ctx, int cmd, long larg, void *parg); + const SSL_CIPHER *(*get_cipher_by_char) (const unsigned char *ptr); + int (*put_cipher_by_char) (const SSL_CIPHER *cipher, unsigned char *ptr); + int (*ssl_pending) (const SSL *s); + int (*num_ciphers) (void); + const SSL_CIPHER *(*get_cipher) (unsigned ncipher); + const struct ssl_method_st *(*get_ssl_method) (int version); + long (*get_timeout) (void); + struct ssl3_enc_method *ssl3_enc; /* Extra SSLv3/TLS stuff */ + int (*ssl_version) (void); + long (*ssl_callback_ctrl) (SSL *s, int cb_id, void (*fp) (void)); + long (*ssl_ctx_callback_ctrl) (SSL_CTX *s, int cb_id, void (*fp) (void)); +}; + +/*- + * Lets make this into an ASN.1 type structure as follows + * SSL_SESSION_ID ::= SEQUENCE { + * version INTEGER, -- structure version number + * SSLversion INTEGER, -- SSL version number + * Cipher OCTET STRING, -- the 3 byte cipher ID + * Session_ID OCTET STRING, -- the Session ID + * Master_key OCTET STRING, -- the master key + * KRB5_principal OCTET STRING -- optional Kerberos principal + * Key_Arg [ 0 ] IMPLICIT OCTET STRING, -- the optional Key argument + * Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time + * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds + * Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate + * Session_ID_context [ 4 ] EXPLICIT OCTET STRING, -- the Session ID context + * Verify_result [ 5 ] EXPLICIT INTEGER, -- X509_V_... code for `Peer' + * HostName [ 6 ] EXPLICIT OCTET STRING, -- optional HostName from servername TLS extension + * PSK_identity_hint [ 7 ] EXPLICIT OCTET STRING, -- optional PSK identity hint + * PSK_identity [ 8 ] EXPLICIT OCTET STRING, -- optional PSK identity + * Ticket_lifetime_hint [9] EXPLICIT INTEGER, -- server's lifetime hint for session ticket + * Ticket [10] EXPLICIT OCTET STRING, -- session ticket (clients only) + * Compression_meth [11] EXPLICIT OCTET STRING, -- optional compression method + * SRP_username [ 12 ] EXPLICIT OCTET STRING -- optional SRP username + * } + * Look in ssl/ssl_asn1.c for more details + * I'm using EXPLICIT tags so I can read the damn things using asn1parse :-). + */ +struct ssl_session_st { + int ssl_version; /* what ssl version session info is being + * kept in here? */ + /* only really used in SSLv2 */ + unsigned int key_arg_length; + unsigned char key_arg[SSL_MAX_KEY_ARG_LENGTH]; + int master_key_length; + unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH]; + /* session_id - valid? */ + unsigned int session_id_length; + unsigned char session_id[SSL_MAX_SSL_SESSION_ID_LENGTH]; + /* + * this is used to determine whether the session is being reused in the + * appropriate context. It is up to the application to set this, via + * SSL_new + */ + unsigned int sid_ctx_length; + unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; +# ifndef OPENSSL_NO_KRB5 + unsigned int krb5_client_princ_len; + unsigned char krb5_client_princ[SSL_MAX_KRB5_PRINCIPAL_LENGTH]; +# endif /* OPENSSL_NO_KRB5 */ +# ifndef OPENSSL_NO_PSK + char *psk_identity_hint; + char *psk_identity; +# endif + /* + * Used to indicate that session resumption is not allowed. Applications + * can also set this bit for a new session via not_resumable_session_cb + * to disable session caching and tickets. + */ + int not_resumable; + /* The cert is the certificate used to establish this connection */ + struct sess_cert_st /* SESS_CERT */ *sess_cert; + /* + * This is the cert for the other end. On clients, it will be the same as + * sess_cert->peer_key->x509 (the latter is not enough as sess_cert is + * not retained in the external representation of sessions, see + * ssl_asn1.c). + */ + X509 *peer; + /* + * when app_verify_callback accepts a session where the peer's + * certificate is not ok, we must remember the error for session reuse: + */ + long verify_result; /* only for servers */ + int references; + long timeout; + long time; + unsigned int compress_meth; /* Need to lookup the method */ + const SSL_CIPHER *cipher; + unsigned long cipher_id; /* when ASN.1 loaded, this needs to be used + * to load the 'cipher' structure */ + STACK_OF(SSL_CIPHER) *ciphers; /* shared ciphers? */ + CRYPTO_EX_DATA ex_data; /* application specific data */ + /* + * These are used to make removal of session-ids more efficient and to + * implement a maximum cache size. + */ + struct ssl_session_st *prev, *next; +# ifndef OPENSSL_NO_TLSEXT + char *tlsext_hostname; +# ifndef OPENSSL_NO_EC + size_t tlsext_ecpointformatlist_length; + unsigned char *tlsext_ecpointformatlist; /* peer's list */ + size_t tlsext_ellipticcurvelist_length; + unsigned char *tlsext_ellipticcurvelist; /* peer's list */ +# endif /* OPENSSL_NO_EC */ + /* RFC4507 info */ + unsigned char *tlsext_tick; /* Session ticket */ + size_t tlsext_ticklen; /* Session ticket length */ + long tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */ +# endif +# ifndef OPENSSL_NO_SRP + char *srp_username; +# endif +}; + +# endif + +# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x00000001L +# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x00000002L +/* Allow initial connection to servers that don't support RI */ +# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004L +# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x00000008L +# define SSL_OP_TLSEXT_PADDING 0x00000010L +# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x00000020L +# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040L +# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L +# define SSL_OP_TLS_D5_BUG 0x00000100L +# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L + +/* Hasn't done anything since OpenSSL 0.9.7h, retained for compatibility */ +# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 +/* Refers to ancient SSLREF and SSLv2, retained for compatibility */ +# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 + +/* + * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added in + * OpenSSL 0.9.6d. Usually (depending on the application protocol) the + * workaround is not needed. Unfortunately some broken SSL/TLS + * implementations cannot handle it at all, which is why we include it in + * SSL_OP_ALL. + */ +/* added in 0.9.6e */ +# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800L + +/* + * SSL_OP_ALL: various bug workarounds that should be rather harmless. This + * used to be 0x000FFFFFL before 0.9.7. + */ +# define SSL_OP_ALL 0x80000BFFL + +/* DTLS options */ +# define SSL_OP_NO_QUERY_MTU 0x00001000L +/* Turn on Cookie Exchange (on relevant for servers) */ +# define SSL_OP_COOKIE_EXCHANGE 0x00002000L +/* Don't use RFC4507 ticket extension */ +# define SSL_OP_NO_TICKET 0x00004000L +/* Use Cisco's "speshul" version of DTLS_BAD_VER (as client) */ +# define SSL_OP_CISCO_ANYCONNECT 0x00008000L + +/* As server, disallow session resumption on renegotiation */ +# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000L +/* Don't use compression even if supported */ +# define SSL_OP_NO_COMPRESSION 0x00020000L +/* Permit unsafe legacy renegotiation */ +# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000L +/* If set, always create a new key when using tmp_ecdh parameters */ +# define SSL_OP_SINGLE_ECDH_USE 0x00080000L +/* Does nothing: retained for compatibility */ +# define SSL_OP_SINGLE_DH_USE 0x00100000L +/* Does nothing: retained for compatibiity */ +# define SSL_OP_EPHEMERAL_RSA 0x0 +/* + * Set on servers to choose the cipher according to the server's preferences + */ +# define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000L +/* + * If set, a server will allow a client to issue a SSLv3.0 version number as + * latest version supported in the premaster secret, even when TLSv1.0 + * (version 3.1) was announced in the client hello. Normally this is + * forbidden to prevent version rollback attacks. + */ +# define SSL_OP_TLS_ROLLBACK_BUG 0x00800000L + +# define SSL_OP_NO_SSLv2 0x01000000L +# define SSL_OP_NO_SSLv3 0x02000000L +# define SSL_OP_NO_TLSv1 0x04000000L +# define SSL_OP_NO_TLSv1_2 0x08000000L +# define SSL_OP_NO_TLSv1_1 0x10000000L + +# define SSL_OP_NO_DTLSv1 0x04000000L +# define SSL_OP_NO_DTLSv1_2 0x08000000L + +# define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv2|SSL_OP_NO_SSLv3|\ + SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2) + +/* + * These next two were never actually used for anything since SSLeay zap so + * we have some more flags. + */ +/* + * The next flag deliberately changes the ciphertest, this is a check for the + * PKCS#1 attack + */ +# define SSL_OP_PKCS1_CHECK_1 0x0 +# define SSL_OP_PKCS1_CHECK_2 0x0 + +# define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L +# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x40000000L +/* + * Make server add server-hello extension from early version of cryptopro + * draft, when GOST ciphersuite is negotiated. Required for interoperability + * with CryptoPro CSP 3.x + */ +# define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000L + +/* + * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success + * when just a single record has been written): + */ +# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001L +/* + * Make it possible to retry SSL_write() with changed buffer location (buffer + * contents must stay the same!); this is not the default to avoid the + * misconception that non-blocking SSL_write() behaves like non-blocking + * write(): + */ +# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002L +/* + * Never bother the application with retries if the transport is blocking: + */ +# define SSL_MODE_AUTO_RETRY 0x00000004L +/* Don't attempt to automatically build certificate chain */ +# define SSL_MODE_NO_AUTO_CHAIN 0x00000008L +/* + * Save RAM by releasing read and write buffers when they're empty. (SSL3 and + * TLS only.) "Released" buffers are put onto a free-list in the context or + * just freed (depending on the context's setting for freelist_max_len). + */ +# define SSL_MODE_RELEASE_BUFFERS 0x00000010L +/* + * Send the current time in the Random fields of the ClientHello and + * ServerHello records for compatibility with hypothetical implementations + * that require it. + */ +# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020L +# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040L +/* + * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications + * that reconnect with a downgraded protocol version; see + * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your + * application attempts a normal handshake. Only use this in explicit + * fallback retries, following the guidance in + * draft-ietf-tls-downgrade-scsv-00. + */ +# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080L + +/* Cert related flags */ +/* + * Many implementations ignore some aspects of the TLS standards such as + * enforcing certifcate chain algorithms. When this is set we enforce them. + */ +# define SSL_CERT_FLAG_TLS_STRICT 0x00000001L + +/* Suite B modes, takes same values as certificate verify flags */ +# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 +/* Suite B 192 bit only mode */ +# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 +/* Suite B 128 bit mode allowing 192 bit algorithms */ +# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 + +/* Perform all sorts of protocol violations for testing purposes */ +# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 + +/* Flags for building certificate chains */ +/* Treat any existing certificates as untrusted CAs */ +# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 +/* Don't include root CA in chain */ +# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 +/* Just check certificates already there */ +# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 +/* Ignore verification errors */ +# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 +/* Clear verification errors from queue */ +# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 + +/* Flags returned by SSL_check_chain */ +/* Certificate can be used with this session */ +# define CERT_PKEY_VALID 0x1 +/* Certificate can also be used for signing */ +# define CERT_PKEY_SIGN 0x2 +/* EE certificate signing algorithm OK */ +# define CERT_PKEY_EE_SIGNATURE 0x10 +/* CA signature algorithms OK */ +# define CERT_PKEY_CA_SIGNATURE 0x20 +/* EE certificate parameters OK */ +# define CERT_PKEY_EE_PARAM 0x40 +/* CA certificate parameters OK */ +# define CERT_PKEY_CA_PARAM 0x80 +/* Signing explicitly allowed as opposed to SHA1 fallback */ +# define CERT_PKEY_EXPLICIT_SIGN 0x100 +/* Client CA issuer names match (always set for server cert) */ +# define CERT_PKEY_ISSUER_NAME 0x200 +/* Cert type matches client types (always set for server cert) */ +# define CERT_PKEY_CERT_TYPE 0x400 +/* Cert chain suitable to Suite B */ +# define CERT_PKEY_SUITEB 0x800 + +# define SSL_CONF_FLAG_CMDLINE 0x1 +# define SSL_CONF_FLAG_FILE 0x2 +# define SSL_CONF_FLAG_CLIENT 0x4 +# define SSL_CONF_FLAG_SERVER 0x8 +# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 +# define SSL_CONF_FLAG_CERTIFICATE 0x20 +/* Configuration value types */ +# define SSL_CONF_TYPE_UNKNOWN 0x0 +# define SSL_CONF_TYPE_STRING 0x1 +# define SSL_CONF_TYPE_FILE 0x2 +# define SSL_CONF_TYPE_DIR 0x3 + +/* + * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they + * cannot be used to clear bits. + */ + +# define SSL_CTX_set_options(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) +# define SSL_CTX_clear_options(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_OPTIONS,(op),NULL) +# define SSL_CTX_get_options(ctx) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,0,NULL) +# define SSL_set_options(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_OPTIONS,(op),NULL) +# define SSL_clear_options(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_CLEAR_OPTIONS,(op),NULL) +# define SSL_get_options(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_OPTIONS,0,NULL) + +# define SSL_CTX_set_mode(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) +# define SSL_CTX_clear_mode(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) +# define SSL_CTX_get_mode(ctx) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) +# define SSL_clear_mode(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) +# define SSL_set_mode(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) +# define SSL_get_mode(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) +# define SSL_set_mtu(ssl, mtu) \ + SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) +# define DTLS_set_link_mtu(ssl, mtu) \ + SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL) +# define DTLS_get_link_min_mtu(ssl) \ + SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL) + +# define SSL_get_secure_renegotiation_support(ssl) \ + SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) + +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_heartbeat(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_TLS_EXT_SEND_HEARTBEAT,0,NULL) +# endif + +# define SSL_CTX_set_cert_flags(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) +# define SSL_set_cert_flags(s,op) \ + SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) +# define SSL_CTX_clear_cert_flags(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) +# define SSL_clear_cert_flags(s,op) \ + SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) + +void SSL_CTX_set_msg_callback(SSL_CTX *ctx, + void (*cb) (int write_p, int version, + int content_type, const void *buf, + size_t len, SSL *ssl, void *arg)); +void SSL_set_msg_callback(SSL *ssl, + void (*cb) (int write_p, int version, + int content_type, const void *buf, + size_t len, SSL *ssl, void *arg)); +# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) +# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) + +# ifndef OPENSSL_NO_SRP + +# ifndef OPENSSL_NO_SSL_INTERN + +typedef struct srp_ctx_st { + /* param for all the callbacks */ + void *SRP_cb_arg; + /* set client Hello login callback */ + int (*TLS_ext_srp_username_callback) (SSL *, int *, void *); + /* set SRP N/g param callback for verification */ + int (*SRP_verify_param_callback) (SSL *, void *); + /* set SRP client passwd callback */ + char *(*SRP_give_srp_client_pwd_callback) (SSL *, void *); + char *login; + BIGNUM *N, *g, *s, *B, *A; + BIGNUM *a, *b, *v; + char *info; + int strength; + unsigned long srp_Mask; +} SRP_CTX; + +# endif + +/* see tls_srp.c */ +int SSL_SRP_CTX_init(SSL *s); +int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); +int SSL_SRP_CTX_free(SSL *ctx); +int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); +int SSL_srp_server_param_with_username(SSL *s, int *ad); +int SRP_generate_server_master_secret(SSL *s, unsigned char *master_key); +int SRP_Calc_A_param(SSL *s); +int SRP_generate_client_master_secret(SSL *s, unsigned char *master_key); + +# endif + +# if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32) +# define SSL_MAX_CERT_LIST_DEFAULT 1024*30 + /* 30k max cert list :-) */ +# else +# define SSL_MAX_CERT_LIST_DEFAULT 1024*100 + /* 100k max cert list :-) */ +# endif + +# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) + +/* + * This callback type is used inside SSL_CTX, SSL, and in the functions that + * set them. It is used to override the generation of SSL/TLS session IDs in + * a server. Return value should be zero on an error, non-zero to proceed. + * Also, callbacks should themselves check if the id they generate is unique + * otherwise the SSL handshake will fail with an error - callbacks can do + * this using the 'ssl' value they're passed by; + * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in + * is set at the maximum size the session ID can be. In SSLv2 this is 16 + * bytes, whereas SSLv3/TLSv1 it is 32 bytes. The callback can alter this + * length to be less if desired, but under SSLv2 session IDs are supposed to + * be fixed at 16 bytes so the id will be padded after the callback returns + * in this case. It is also an error for the callback to set the size to + * zero. + */ +typedef int (*GEN_SESSION_CB) (const SSL *ssl, unsigned char *id, + unsigned int *id_len); + +typedef struct ssl_comp_st SSL_COMP; + +# ifndef OPENSSL_NO_SSL_INTERN + +struct ssl_comp_st { + int id; + const char *name; +# ifndef OPENSSL_NO_COMP + COMP_METHOD *method; +# else + char *method; +# endif +}; + +DECLARE_STACK_OF(SSL_COMP) +DECLARE_LHASH_OF(SSL_SESSION); + +struct ssl_ctx_st { + const SSL_METHOD *method; + STACK_OF(SSL_CIPHER) *cipher_list; + /* same as above but sorted for lookup */ + STACK_OF(SSL_CIPHER) *cipher_list_by_id; + struct x509_store_st /* X509_STORE */ *cert_store; + LHASH_OF(SSL_SESSION) *sessions; + /* + * Most session-ids that will be cached, default is + * SSL_SESSION_CACHE_MAX_SIZE_DEFAULT. 0 is unlimited. + */ + unsigned long session_cache_size; + struct ssl_session_st *session_cache_head; + struct ssl_session_st *session_cache_tail; + /* + * This can have one of 2 values, ored together, SSL_SESS_CACHE_CLIENT, + * SSL_SESS_CACHE_SERVER, Default is SSL_SESSION_CACHE_SERVER, which + * means only SSL_accept which cache SSL_SESSIONS. + */ + int session_cache_mode; + /* + * If timeout is not 0, it is the default timeout value set when + * SSL_new() is called. This has been put in to make life easier to set + * things up + */ + long session_timeout; + /* + * If this callback is not null, it will be called each time a session id + * is added to the cache. If this function returns 1, it means that the + * callback will do a SSL_SESSION_free() when it has finished using it. + * Otherwise, on 0, it means the callback has finished with it. If + * remove_session_cb is not null, it will be called when a session-id is + * removed from the cache. After the call, OpenSSL will + * SSL_SESSION_free() it. + */ + int (*new_session_cb) (struct ssl_st *ssl, SSL_SESSION *sess); + void (*remove_session_cb) (struct ssl_ctx_st *ctx, SSL_SESSION *sess); + SSL_SESSION *(*get_session_cb) (struct ssl_st *ssl, + unsigned char *data, int len, int *copy); + struct { + int sess_connect; /* SSL new conn - started */ + int sess_connect_renegotiate; /* SSL reneg - requested */ + int sess_connect_good; /* SSL new conne/reneg - finished */ + int sess_accept; /* SSL new accept - started */ + int sess_accept_renegotiate; /* SSL reneg - requested */ + int sess_accept_good; /* SSL accept/reneg - finished */ + int sess_miss; /* session lookup misses */ + int sess_timeout; /* reuse attempt on timeouted session */ + int sess_cache_full; /* session removed due to full cache */ + int sess_hit; /* session reuse actually done */ + int sess_cb_hit; /* session-id that was not in the cache was + * passed back via the callback. This + * indicates that the application is + * supplying session-id's from other + * processes - spooky :-) */ + } stats; + + int references; + + /* if defined, these override the X509_verify_cert() calls */ + int (*app_verify_callback) (X509_STORE_CTX *, void *); + void *app_verify_arg; + /* + * before OpenSSL 0.9.7, 'app_verify_arg' was ignored + * ('app_verify_callback' was called with just one argument) + */ + + /* Default password callback. */ + pem_password_cb *default_passwd_callback; + + /* Default password callback user data. */ + void *default_passwd_callback_userdata; + + /* get client cert callback */ + int (*client_cert_cb) (SSL *ssl, X509 **x509, EVP_PKEY **pkey); + + /* cookie generate callback */ + int (*app_gen_cookie_cb) (SSL *ssl, unsigned char *cookie, + unsigned int *cookie_len); + + /* verify cookie callback */ + int (*app_verify_cookie_cb) (SSL *ssl, unsigned char *cookie, + unsigned int cookie_len); + + CRYPTO_EX_DATA ex_data; + + const EVP_MD *rsa_md5; /* For SSLv2 - name is 'ssl2-md5' */ + const EVP_MD *md5; /* For SSLv3/TLSv1 'ssl3-md5' */ + const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3->sha1' */ + + STACK_OF(X509) *extra_certs; + STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ + + /* Default values used when no per-SSL value is defined follow */ + + /* used if SSL's info_callback is NULL */ + void (*info_callback) (const SSL *ssl, int type, int val); + + /* what we put in client cert requests */ + STACK_OF(X509_NAME) *client_CA; + + /* + * Default values to use in SSL structures follow (these are copied by + * SSL_new) + */ + + unsigned long options; + unsigned long mode; + long max_cert_list; + + struct cert_st /* CERT */ *cert; + int read_ahead; + + /* callback that allows applications to peek at protocol messages */ + void (*msg_callback) (int write_p, int version, int content_type, + const void *buf, size_t len, SSL *ssl, void *arg); + void *msg_callback_arg; + + int verify_mode; + unsigned int sid_ctx_length; + unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; + /* called 'verify_callback' in the SSL */ + int (*default_verify_callback) (int ok, X509_STORE_CTX *ctx); + + /* Default generate session ID callback. */ + GEN_SESSION_CB generate_session_id; + + X509_VERIFY_PARAM *param; + +# if 0 + int purpose; /* Purpose setting */ + int trust; /* Trust setting */ +# endif + + int quiet_shutdown; + + /* + * Maximum amount of data to send in one fragment. actual record size can + * be more than this due to padding and MAC overheads. + */ + unsigned int max_send_fragment; + +# ifndef OPENSSL_NO_ENGINE + /* + * Engine to pass requests for client certs to + */ + ENGINE *client_cert_engine; +# endif + +# ifndef OPENSSL_NO_TLSEXT + /* TLS extensions servername callback */ + int (*tlsext_servername_callback) (SSL *, int *, void *); + void *tlsext_servername_arg; + /* RFC 4507 session ticket keys */ + unsigned char tlsext_tick_key_name[16]; + unsigned char tlsext_tick_hmac_key[16]; + unsigned char tlsext_tick_aes_key[16]; + /* Callback to support customisation of ticket key setting */ + int (*tlsext_ticket_key_cb) (SSL *ssl, + unsigned char *name, unsigned char *iv, + EVP_CIPHER_CTX *ectx, + HMAC_CTX *hctx, int enc); + + /* certificate status request info */ + /* Callback for status request */ + int (*tlsext_status_cb) (SSL *ssl, void *arg); + void *tlsext_status_arg; + + /* draft-rescorla-tls-opaque-prf-input-00.txt information */ + int (*tlsext_opaque_prf_input_callback) (SSL *, void *peerinput, + size_t len, void *arg); + void *tlsext_opaque_prf_input_callback_arg; +# endif + +# ifndef OPENSSL_NO_PSK + char *psk_identity_hint; + unsigned int (*psk_client_callback) (SSL *ssl, const char *hint, + char *identity, + unsigned int max_identity_len, + unsigned char *psk, + unsigned int max_psk_len); + unsigned int (*psk_server_callback) (SSL *ssl, const char *identity, + unsigned char *psk, + unsigned int max_psk_len); +# endif + +# ifndef OPENSSL_NO_BUF_FREELISTS +# define SSL_MAX_BUF_FREELIST_LEN_DEFAULT 32 + unsigned int freelist_max_len; + struct ssl3_buf_freelist_st *wbuf_freelist; + struct ssl3_buf_freelist_st *rbuf_freelist; +# endif +# ifndef OPENSSL_NO_SRP + SRP_CTX srp_ctx; /* ctx for SRP authentication */ +# endif + +# ifndef OPENSSL_NO_TLSEXT + +# ifndef OPENSSL_NO_NEXTPROTONEG + /* Next protocol negotiation information */ + /* (for experimental NPN extension). */ + + /* + * For a server, this contains a callback function by which the set of + * advertised protocols can be provided. + */ + int (*next_protos_advertised_cb) (SSL *s, const unsigned char **buf, + unsigned int *len, void *arg); + void *next_protos_advertised_cb_arg; + /* + * For a client, this contains a callback function that selects the next + * protocol from the list provided by the server. + */ + int (*next_proto_select_cb) (SSL *s, unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, void *arg); + void *next_proto_select_cb_arg; +# endif + /* SRTP profiles we are willing to do from RFC 5764 */ + STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles; + + /* + * ALPN information (we are in the process of transitioning from NPN to + * ALPN.) + */ + + /*- + * For a server, this contains a callback function that allows the + * server to select the protocol for the connection. + * out: on successful return, this must point to the raw protocol + * name (without the length prefix). + * outlen: on successful return, this contains the length of |*out|. + * in: points to the client's list of supported protocols in + * wire-format. + * inlen: the length of |in|. + */ + int (*alpn_select_cb) (SSL *s, + const unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, void *arg); + void *alpn_select_cb_arg; + + /* + * For a client, this contains the list of supported protocols in wire + * format. + */ + unsigned char *alpn_client_proto_list; + unsigned alpn_client_proto_list_len; + +# ifndef OPENSSL_NO_EC + /* EC extension values inherited by SSL structure */ + size_t tlsext_ecpointformatlist_length; + unsigned char *tlsext_ecpointformatlist; + size_t tlsext_ellipticcurvelist_length; + unsigned char *tlsext_ellipticcurvelist; +# endif /* OPENSSL_NO_EC */ +# endif +}; + +# endif + +# define SSL_SESS_CACHE_OFF 0x0000 +# define SSL_SESS_CACHE_CLIENT 0x0001 +# define SSL_SESS_CACHE_SERVER 0x0002 +# define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) +# define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 +/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ +# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 +# define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 +# define SSL_SESS_CACHE_NO_INTERNAL \ + (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) + +LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); +# define SSL_CTX_sess_number(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) +# define SSL_CTX_sess_connect(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) +# define SSL_CTX_sess_connect_good(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) +# define SSL_CTX_sess_connect_renegotiate(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) +# define SSL_CTX_sess_accept(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) +# define SSL_CTX_sess_accept_renegotiate(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) +# define SSL_CTX_sess_accept_good(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) +# define SSL_CTX_sess_hits(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) +# define SSL_CTX_sess_cb_hits(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) +# define SSL_CTX_sess_misses(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) +# define SSL_CTX_sess_timeouts(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) +# define SSL_CTX_sess_cache_full(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) + +void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, + int (*new_session_cb) (struct ssl_st *ssl, + SSL_SESSION *sess)); +int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, + SSL_SESSION *sess); +void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, + void (*remove_session_cb) (struct ssl_ctx_st + *ctx, + SSL_SESSION + *sess)); +void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, + SSL_SESSION *sess); +void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, + SSL_SESSION *(*get_session_cb) (struct ssl_st + *ssl, + unsigned char + *data, int len, + int *copy)); +SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, + unsigned char *Data, + int len, int *copy); +void SSL_CTX_set_info_callback(SSL_CTX *ctx, + void (*cb) (const SSL *ssl, int type, + int val)); +void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, + int val); +void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, + int (*client_cert_cb) (SSL *ssl, X509 **x509, + EVP_PKEY **pkey)); +int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, + EVP_PKEY **pkey); +# ifndef OPENSSL_NO_ENGINE +int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); +# endif +void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, + int (*app_gen_cookie_cb) (SSL *ssl, + unsigned char + *cookie, + unsigned int + *cookie_len)); +void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, + int (*app_verify_cookie_cb) (SSL *ssl, + unsigned char + *cookie, + unsigned int + cookie_len)); +# ifndef OPENSSL_NO_NEXTPROTONEG +void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, + int (*cb) (SSL *ssl, + const unsigned char + **out, + unsigned int *outlen, + void *arg), void *arg); +void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, + int (*cb) (SSL *ssl, + unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg), void *arg); +void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, + unsigned *len); +# endif + +# ifndef OPENSSL_NO_TLSEXT +int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, + const unsigned char *in, unsigned int inlen, + const unsigned char *client, + unsigned int client_len); +# endif + +# define OPENSSL_NPN_UNSUPPORTED 0 +# define OPENSSL_NPN_NEGOTIATED 1 +# define OPENSSL_NPN_NO_OVERLAP 2 + +int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, + unsigned protos_len); +int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, + unsigned protos_len); +void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, + int (*cb) (SSL *ssl, + const unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg), void *arg); +void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, + unsigned *len); + +# ifndef OPENSSL_NO_PSK +/* + * the maximum length of the buffer given to callbacks containing the + * resulting identity/psk + */ +# define PSK_MAX_IDENTITY_LEN 128 +# define PSK_MAX_PSK_LEN 256 +void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, + unsigned int (*psk_client_callback) (SSL + *ssl, + const + char + *hint, + char + *identity, + unsigned + int + max_identity_len, + unsigned + char + *psk, + unsigned + int + max_psk_len)); +void SSL_set_psk_client_callback(SSL *ssl, + unsigned int (*psk_client_callback) (SSL + *ssl, + const + char + *hint, + char + *identity, + unsigned + int + max_identity_len, + unsigned + char + *psk, + unsigned + int + max_psk_len)); +void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, + unsigned int (*psk_server_callback) (SSL + *ssl, + const + char + *identity, + unsigned + char + *psk, + unsigned + int + max_psk_len)); +void SSL_set_psk_server_callback(SSL *ssl, + unsigned int (*psk_server_callback) (SSL + *ssl, + const + char + *identity, + unsigned + char + *psk, + unsigned + int + max_psk_len)); +int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); +int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); +const char *SSL_get_psk_identity_hint(const SSL *s); +const char *SSL_get_psk_identity(const SSL *s); +# endif + +# ifndef OPENSSL_NO_TLSEXT +/* Register callbacks to handle custom TLS Extensions for client or server. */ + +int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +int SSL_extension_supported(unsigned int ext_type); + +# endif + +# define SSL_NOTHING 1 +# define SSL_WRITING 2 +# define SSL_READING 3 +# define SSL_X509_LOOKUP 4 + +/* These will only be used when doing non-blocking IO */ +# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) +# define SSL_want_read(s) (SSL_want(s) == SSL_READING) +# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) +# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) + +# define SSL_MAC_FLAG_READ_MAC_STREAM 1 +# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 + +# ifndef OPENSSL_NO_SSL_INTERN + +struct ssl_st { + /* + * protocol version (one of SSL2_VERSION, SSL3_VERSION, TLS1_VERSION, + * DTLS1_VERSION) + */ + int version; + /* SSL_ST_CONNECT or SSL_ST_ACCEPT */ + int type; + /* SSLv3 */ + const SSL_METHOD *method; + /* + * There are 2 BIO's even though they are normally both the same. This + * is so data can be read and written to different handlers + */ +# ifndef OPENSSL_NO_BIO + /* used by SSL_read */ + BIO *rbio; + /* used by SSL_write */ + BIO *wbio; + /* used during session-id reuse to concatenate messages */ + BIO *bbio; +# else + /* used by SSL_read */ + char *rbio; + /* used by SSL_write */ + char *wbio; + char *bbio; +# endif + /* + * This holds a variable that indicates what we were doing when a 0 or -1 + * is returned. This is needed for non-blocking IO so we know what + * request needs re-doing when in SSL_accept or SSL_connect + */ + int rwstate; + /* true when we are actually in SSL_accept() or SSL_connect() */ + int in_handshake; + int (*handshake_func) (SSL *); + /* + * Imagine that here's a boolean member "init" that is switched as soon + * as SSL_set_{accept/connect}_state is called for the first time, so + * that "state" and "handshake_func" are properly initialized. But as + * handshake_func is == 0 until then, we use this test instead of an + * "init" member. + */ + /* are we the server side? - mostly used by SSL_clear */ + int server; + /* + * Generate a new session or reuse an old one. + * NB: For servers, the 'new' session may actually be a previously + * cached session or even the previous session unless + * SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION is set + */ + int new_session; + /* don't send shutdown packets */ + int quiet_shutdown; + /* we have shut things down, 0x01 sent, 0x02 for received */ + int shutdown; + /* where we are */ + int state; + /* where we are when reading */ + int rstate; + BUF_MEM *init_buf; /* buffer used during init */ + void *init_msg; /* pointer to handshake message body, set by + * ssl3_get_message() */ + int init_num; /* amount read/written */ + int init_off; /* amount read/written */ + /* used internally to point at a raw packet */ + unsigned char *packet; + unsigned int packet_length; + struct ssl2_state_st *s2; /* SSLv2 variables */ + struct ssl3_state_st *s3; /* SSLv3 variables */ + struct dtls1_state_st *d1; /* DTLSv1 variables */ + int read_ahead; /* Read as many input bytes as possible (for + * non-blocking reads) */ + /* callback that allows applications to peek at protocol messages */ + void (*msg_callback) (int write_p, int version, int content_type, + const void *buf, size_t len, SSL *ssl, void *arg); + void *msg_callback_arg; + int hit; /* reusing a previous session */ + X509_VERIFY_PARAM *param; +# if 0 + int purpose; /* Purpose setting */ + int trust; /* Trust setting */ +# endif + /* crypto */ + STACK_OF(SSL_CIPHER) *cipher_list; + STACK_OF(SSL_CIPHER) *cipher_list_by_id; + /* + * These are the ones being used, the ones in SSL_SESSION are the ones to + * be 'copied' into these ones + */ + int mac_flags; + EVP_CIPHER_CTX *enc_read_ctx; /* cryptographic state */ + EVP_MD_CTX *read_hash; /* used for mac generation */ +# ifndef OPENSSL_NO_COMP + COMP_CTX *expand; /* uncompress */ +# else + char *expand; +# endif + EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ + EVP_MD_CTX *write_hash; /* used for mac generation */ +# ifndef OPENSSL_NO_COMP + COMP_CTX *compress; /* compression */ +# else + char *compress; +# endif + /* session info */ + /* client cert? */ + /* This is used to hold the server certificate used */ + struct cert_st /* CERT */ *cert; + /* + * the session_id_context is used to ensure sessions are only reused in + * the appropriate context + */ + unsigned int sid_ctx_length; + unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; + /* This can also be in the session once a session is established */ + SSL_SESSION *session; + /* Default generate session ID callback. */ + GEN_SESSION_CB generate_session_id; + /* Used in SSL2 and SSL3 */ + /* + * 0 don't care about verify failure. + * 1 fail if verify fails + */ + int verify_mode; + /* fail if callback returns 0 */ + int (*verify_callback) (int ok, X509_STORE_CTX *ctx); + /* optional informational callback */ + void (*info_callback) (const SSL *ssl, int type, int val); + /* error bytes to be written */ + int error; + /* actual code */ + int error_code; +# ifndef OPENSSL_NO_KRB5 + /* Kerberos 5 context */ + KSSL_CTX *kssl_ctx; +# endif /* OPENSSL_NO_KRB5 */ +# ifndef OPENSSL_NO_PSK + unsigned int (*psk_client_callback) (SSL *ssl, const char *hint, + char *identity, + unsigned int max_identity_len, + unsigned char *psk, + unsigned int max_psk_len); + unsigned int (*psk_server_callback) (SSL *ssl, const char *identity, + unsigned char *psk, + unsigned int max_psk_len); +# endif + SSL_CTX *ctx; + /* + * set this flag to 1 and a sleep(1) is put into all SSL_read() and + * SSL_write() calls, good for nbio debuging :-) + */ + int debug; + /* extra application data */ + long verify_result; + CRYPTO_EX_DATA ex_data; + /* for server side, keep the list of CA_dn we can use */ + STACK_OF(X509_NAME) *client_CA; + int references; + /* protocol behaviour */ + unsigned long options; + /* API behaviour */ + unsigned long mode; + long max_cert_list; + int first_packet; + /* what was passed, used for SSLv3/TLS rollback check */ + int client_version; + unsigned int max_send_fragment; +# ifndef OPENSSL_NO_TLSEXT + /* TLS extension debug callback */ + void (*tlsext_debug_cb) (SSL *s, int client_server, int type, + unsigned char *data, int len, void *arg); + void *tlsext_debug_arg; + char *tlsext_hostname; + /*- + * no further mod of servername + * 0 : call the servername extension callback. + * 1 : prepare 2, allow last ack just after in server callback. + * 2 : don't call servername callback, no ack in server hello + */ + int servername_done; + /* certificate status request info */ + /* Status type or -1 if no status type */ + int tlsext_status_type; + /* Expect OCSP CertificateStatus message */ + int tlsext_status_expected; + /* OCSP status request only */ + STACK_OF(OCSP_RESPID) *tlsext_ocsp_ids; + X509_EXTENSIONS *tlsext_ocsp_exts; + /* OCSP response received or to be sent */ + unsigned char *tlsext_ocsp_resp; + int tlsext_ocsp_resplen; + /* RFC4507 session ticket expected to be received or sent */ + int tlsext_ticket_expected; +# ifndef OPENSSL_NO_EC + size_t tlsext_ecpointformatlist_length; + /* our list */ + unsigned char *tlsext_ecpointformatlist; + size_t tlsext_ellipticcurvelist_length; + /* our list */ + unsigned char *tlsext_ellipticcurvelist; +# endif /* OPENSSL_NO_EC */ + /* + * draft-rescorla-tls-opaque-prf-input-00.txt information to be used for + * handshakes + */ + void *tlsext_opaque_prf_input; + size_t tlsext_opaque_prf_input_len; + /* TLS Session Ticket extension override */ + TLS_SESSION_TICKET_EXT *tlsext_session_ticket; + /* TLS Session Ticket extension callback */ + tls_session_ticket_ext_cb_fn tls_session_ticket_ext_cb; + void *tls_session_ticket_ext_cb_arg; + /* TLS pre-shared secret session resumption */ + tls_session_secret_cb_fn tls_session_secret_cb; + void *tls_session_secret_cb_arg; + SSL_CTX *initial_ctx; /* initial ctx, used to store sessions */ +# ifndef OPENSSL_NO_NEXTPROTONEG + /* + * Next protocol negotiation. For the client, this is the protocol that + * we sent in NextProtocol and is set when handling ServerHello + * extensions. For a server, this is the client's selected_protocol from + * NextProtocol and is set when handling the NextProtocol message, before + * the Finished message. + */ + unsigned char *next_proto_negotiated; + unsigned char next_proto_negotiated_len; +# endif +# define session_ctx initial_ctx + /* What we'll do */ + STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles; + /* What's been chosen */ + SRTP_PROTECTION_PROFILE *srtp_profile; + /*- + * Is use of the Heartbeat extension negotiated? + * 0: disabled + * 1: enabled + * 2: enabled, but not allowed to send Requests + */ + unsigned int tlsext_heartbeat; + /* Indicates if a HeartbeatRequest is in flight */ + unsigned int tlsext_hb_pending; + /* HeartbeatRequest sequence number */ + unsigned int tlsext_hb_seq; +# else +# define session_ctx ctx +# endif /* OPENSSL_NO_TLSEXT */ + /*- + * 1 if we are renegotiating. + * 2 if we are a server and are inside a handshake + * (i.e. not just sending a HelloRequest) + */ + int renegotiate; +# ifndef OPENSSL_NO_SRP + /* ctx for SRP authentication */ + SRP_CTX srp_ctx; +# endif +# ifndef OPENSSL_NO_TLSEXT + /* + * For a client, this contains the list of supported protocols in wire + * format. + */ + unsigned char *alpn_client_proto_list; + unsigned alpn_client_proto_list_len; +# endif /* OPENSSL_NO_TLSEXT */ +}; + +# endif + +#ifdef __cplusplus +} +#endif + +# include +# include +# include /* This is mostly sslv3 with a few tweaks */ +# include /* Datagram TLS */ +# include +# include /* Support for the use_srtp extension */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* compatibility */ +# define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)arg)) +# define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) +# define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0,(char *)a)) +# define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0)) +# define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0)) +# define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0,(char *)arg)) + +/* + * The following are the possible values for ssl->state are are used to + * indicate where we are up to in the SSL connection establishment. The + * macros that follow are about the only things you should need to use and + * even then, only when using non-blocking IO. It can also be useful to work + * out where you were when the connection failed + */ + +# define SSL_ST_CONNECT 0x1000 +# define SSL_ST_ACCEPT 0x2000 +# define SSL_ST_MASK 0x0FFF +# define SSL_ST_INIT (SSL_ST_CONNECT|SSL_ST_ACCEPT) +# define SSL_ST_BEFORE 0x4000 +# define SSL_ST_OK 0x03 +# define SSL_ST_RENEGOTIATE (0x04|SSL_ST_INIT) +# define SSL_ST_ERR 0x05 + +# define SSL_CB_LOOP 0x01 +# define SSL_CB_EXIT 0x02 +# define SSL_CB_READ 0x04 +# define SSL_CB_WRITE 0x08 +# define SSL_CB_ALERT 0x4000/* used in callback */ +# define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) +# define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) +# define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) +# define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) +# define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) +# define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) +# define SSL_CB_HANDSHAKE_START 0x10 +# define SSL_CB_HANDSHAKE_DONE 0x20 + +/* Is the SSL_connection established? */ +# define SSL_get_state(a) SSL_state(a) +# define SSL_is_init_finished(a) (SSL_state(a) == SSL_ST_OK) +# define SSL_in_init(a) (SSL_state(a)&SSL_ST_INIT) +# define SSL_in_before(a) (SSL_state(a)&SSL_ST_BEFORE) +# define SSL_in_connect_init(a) (SSL_state(a)&SSL_ST_CONNECT) +# define SSL_in_accept_init(a) (SSL_state(a)&SSL_ST_ACCEPT) + +/* + * The following 2 states are kept in ssl->rstate when reads fail, you should + * not need these + */ +# define SSL_ST_READ_HEADER 0xF0 +# define SSL_ST_READ_BODY 0xF1 +# define SSL_ST_READ_DONE 0xF2 + +/*- + * Obtain latest Finished message + * -- that we sent (SSL_get_finished) + * -- that we expected from peer (SSL_get_peer_finished). + * Returns length (0 == no Finished so far), copies up to 'count' bytes. + */ +size_t SSL_get_finished(const SSL *s, void *buf, size_t count); +size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); + +/* + * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options are + * 'ored' with SSL_VERIFY_PEER if they are desired + */ +# define SSL_VERIFY_NONE 0x00 +# define SSL_VERIFY_PEER 0x01 +# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 +# define SSL_VERIFY_CLIENT_ONCE 0x04 + +# define OpenSSL_add_ssl_algorithms() SSL_library_init() +# define SSLeay_add_ssl_algorithms() SSL_library_init() + +/* this is for backward compatibility */ +# if 0 /* NEW_SSLEAY */ +# define SSL_CTX_set_default_verify(a,b,c) SSL_CTX_set_verify(a,b,c) +# define SSL_set_pref_cipher(c,n) SSL_set_cipher_list(c,n) +# define SSL_add_session(a,b) SSL_CTX_add_session((a),(b)) +# define SSL_remove_session(a,b) SSL_CTX_remove_session((a),(b)) +# define SSL_flush_sessions(a,b) SSL_CTX_flush_sessions((a),(b)) +# endif +/* More backward compatibility */ +# define SSL_get_cipher(s) \ + SSL_CIPHER_get_name(SSL_get_current_cipher(s)) +# define SSL_get_cipher_bits(s,np) \ + SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) +# define SSL_get_cipher_version(s) \ + SSL_CIPHER_get_version(SSL_get_current_cipher(s)) +# define SSL_get_cipher_name(s) \ + SSL_CIPHER_get_name(SSL_get_current_cipher(s)) +# define SSL_get_time(a) SSL_SESSION_get_time(a) +# define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) +# define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) +# define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) + +# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) +# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) + +DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) +# define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value + * from SSL_AD_... */ +/* These alert types are for SSLv3 and TLSv1 */ +# define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY +/* fatal */ +# define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE +/* fatal */ +# define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC +# define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED +# define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW +/* fatal */ +# define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE +/* fatal */ +# define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE +/* Not for TLS */ +# define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE +# define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE +# define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE +# define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED +# define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED +# define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN +/* fatal */ +# define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER +/* fatal */ +# define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA +/* fatal */ +# define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED +/* fatal */ +# define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR +# define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR +/* fatal */ +# define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION +/* fatal */ +# define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION +/* fatal */ +# define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY +/* fatal */ +# define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR +# define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED +# define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION +# define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION +# define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE +# define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME +# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE +# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE +/* fatal */ +# define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY +/* fatal */ +# define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK +# define SSL_ERROR_NONE 0 +# define SSL_ERROR_SSL 1 +# define SSL_ERROR_WANT_READ 2 +# define SSL_ERROR_WANT_WRITE 3 +# define SSL_ERROR_WANT_X509_LOOKUP 4 +# define SSL_ERROR_SYSCALL 5/* look at error stack/return + * value/errno */ +# define SSL_ERROR_ZERO_RETURN 6 +# define SSL_ERROR_WANT_CONNECT 7 +# define SSL_ERROR_WANT_ACCEPT 8 +# define SSL_CTRL_NEED_TMP_RSA 1 +# define SSL_CTRL_SET_TMP_RSA 2 +# define SSL_CTRL_SET_TMP_DH 3 +# define SSL_CTRL_SET_TMP_ECDH 4 +# define SSL_CTRL_SET_TMP_RSA_CB 5 +# define SSL_CTRL_SET_TMP_DH_CB 6 +# define SSL_CTRL_SET_TMP_ECDH_CB 7 +# define SSL_CTRL_GET_SESSION_REUSED 8 +# define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 +# define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 +# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 +# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 +# define SSL_CTRL_GET_FLAGS 13 +# define SSL_CTRL_EXTRA_CHAIN_CERT 14 +# define SSL_CTRL_SET_MSG_CALLBACK 15 +# define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 +/* only applies to datagram connections */ +# define SSL_CTRL_SET_MTU 17 +/* Stats */ +# define SSL_CTRL_SESS_NUMBER 20 +# define SSL_CTRL_SESS_CONNECT 21 +# define SSL_CTRL_SESS_CONNECT_GOOD 22 +# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 +# define SSL_CTRL_SESS_ACCEPT 24 +# define SSL_CTRL_SESS_ACCEPT_GOOD 25 +# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 +# define SSL_CTRL_SESS_HIT 27 +# define SSL_CTRL_SESS_CB_HIT 28 +# define SSL_CTRL_SESS_MISSES 29 +# define SSL_CTRL_SESS_TIMEOUTS 30 +# define SSL_CTRL_SESS_CACHE_FULL 31 +# define SSL_CTRL_OPTIONS 32 +# define SSL_CTRL_MODE 33 +# define SSL_CTRL_GET_READ_AHEAD 40 +# define SSL_CTRL_SET_READ_AHEAD 41 +# define SSL_CTRL_SET_SESS_CACHE_SIZE 42 +# define SSL_CTRL_GET_SESS_CACHE_SIZE 43 +# define SSL_CTRL_SET_SESS_CACHE_MODE 44 +# define SSL_CTRL_GET_SESS_CACHE_MODE 45 +# define SSL_CTRL_GET_MAX_CERT_LIST 50 +# define SSL_CTRL_SET_MAX_CERT_LIST 51 +# define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 +/* see tls1.h for macros based on these */ +# ifndef OPENSSL_NO_TLSEXT +# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 +# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 +# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 +# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 +# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 +# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 +# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 +# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 +# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 +# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 +# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 +# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 +# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 +# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 +# define SSL_CTRL_SET_SRP_ARG 78 +# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 +# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 +# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_CTRL_TLS_EXT_SEND_HEARTBEAT 85 +# define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING 86 +# define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS 87 +# endif +# endif /* OPENSSL_NO_TLSEXT */ +# define DTLS_CTRL_GET_TIMEOUT 73 +# define DTLS_CTRL_HANDLE_TIMEOUT 74 +# define DTLS_CTRL_LISTEN 75 +# define SSL_CTRL_GET_RI_SUPPORT 76 +# define SSL_CTRL_CLEAR_OPTIONS 77 +# define SSL_CTRL_CLEAR_MODE 78 +# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 +# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 +# define SSL_CTRL_CHAIN 88 +# define SSL_CTRL_CHAIN_CERT 89 +# define SSL_CTRL_GET_CURVES 90 +# define SSL_CTRL_SET_CURVES 91 +# define SSL_CTRL_SET_CURVES_LIST 92 +# define SSL_CTRL_GET_SHARED_CURVE 93 +# define SSL_CTRL_SET_ECDH_AUTO 94 +# define SSL_CTRL_SET_SIGALGS 97 +# define SSL_CTRL_SET_SIGALGS_LIST 98 +# define SSL_CTRL_CERT_FLAGS 99 +# define SSL_CTRL_CLEAR_CERT_FLAGS 100 +# define SSL_CTRL_SET_CLIENT_SIGALGS 101 +# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 +# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 +# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 +# define SSL_CTRL_BUILD_CERT_CHAIN 105 +# define SSL_CTRL_SET_VERIFY_CERT_STORE 106 +# define SSL_CTRL_SET_CHAIN_CERT_STORE 107 +# define SSL_CTRL_GET_PEER_SIGNATURE_NID 108 +# define SSL_CTRL_GET_SERVER_TMP_KEY 109 +# define SSL_CTRL_GET_RAW_CIPHERLIST 110 +# define SSL_CTRL_GET_EC_POINT_FORMATS 111 +# define SSL_CTRL_GET_CHAIN_CERTS 115 +# define SSL_CTRL_SELECT_CURRENT_CERT 116 +# define SSL_CTRL_SET_CURRENT_CERT 117 +# define SSL_CTRL_CHECK_PROTO_VERSION 119 +# define DTLS_CTRL_SET_LINK_MTU 120 +# define DTLS_CTRL_GET_LINK_MIN_MTU 121 +# define SSL_CERT_SET_FIRST 1 +# define SSL_CERT_SET_NEXT 2 +# define SSL_CERT_SET_SERVER 3 +# define DTLSv1_get_timeout(ssl, arg) \ + SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg) +# define DTLSv1_handle_timeout(ssl) \ + SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) +# define DTLSv1_listen(ssl, peer) \ + SSL_ctrl(ssl,DTLS_CTRL_LISTEN,0, (void *)peer) +# define SSL_session_reused(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_SESSION_REUSED,0,NULL) +# define SSL_num_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) +# define SSL_clear_num_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) +# define SSL_total_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL) +# define SSL_CTX_need_tmp_RSA(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_NEED_TMP_RSA,0,NULL) +# define SSL_CTX_set_tmp_rsa(ctx,rsa) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa) +# define SSL_CTX_set_tmp_dh(ctx,dh) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh) +# define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh) +# define SSL_need_tmp_RSA(ssl) \ + SSL_ctrl(ssl,SSL_CTRL_NEED_TMP_RSA,0,NULL) +# define SSL_set_tmp_rsa(ssl,rsa) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa) +# define SSL_set_tmp_dh(ssl,dh) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)dh) +# define SSL_set_tmp_ecdh(ssl,ecdh) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh) +# define SSL_CTX_add_extra_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) +# define SSL_CTX_get_extra_chain_certs(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) +# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) +# define SSL_CTX_clear_extra_chain_certs(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) +# define SSL_CTX_set0_chain(ctx,sk) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) +# define SSL_CTX_set1_chain(ctx,sk) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) +# define SSL_CTX_add0_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) +# define SSL_CTX_add1_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) +# define SSL_CTX_get0_chain_certs(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) +# define SSL_CTX_clear_chain_certs(ctx) \ + SSL_CTX_set0_chain(ctx,NULL) +# define SSL_CTX_build_cert_chain(ctx, flags) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) +# define SSL_CTX_select_current_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) +# define SSL_CTX_set_current_cert(ctx, op) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) +# define SSL_CTX_set0_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) +# define SSL_CTX_set1_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) +# define SSL_CTX_set0_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) +# define SSL_CTX_set1_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) +# define SSL_set0_chain(ctx,sk) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) +# define SSL_set1_chain(ctx,sk) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) +# define SSL_add0_chain_cert(ctx,x509) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) +# define SSL_add1_chain_cert(ctx,x509) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) +# define SSL_get0_chain_certs(ctx,px509) \ + SSL_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) +# define SSL_clear_chain_certs(ctx) \ + SSL_set0_chain(ctx,NULL) +# define SSL_build_cert_chain(s, flags) \ + SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) +# define SSL_select_current_cert(ctx,x509) \ + SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) +# define SSL_set_current_cert(ctx,op) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) +# define SSL_set0_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) +# define SSL_set1_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) +# define SSL_set0_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) +# define SSL_set1_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) +# define SSL_get1_curves(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_GET_CURVES,0,(char *)s) +# define SSL_CTX_set1_curves(ctx, clist, clistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) +# define SSL_CTX_set1_curves_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) +# define SSL_set1_curves(ctx, clist, clistlen) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) +# define SSL_set1_curves_list(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) +# define SSL_get_shared_curve(s, n) \ + SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL) +# define SSL_CTX_set_ecdh_auto(ctx, onoff) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_ECDH_AUTO,onoff,NULL) +# define SSL_set_ecdh_auto(s, onoff) \ + SSL_ctrl(s,SSL_CTRL_SET_ECDH_AUTO,onoff,NULL) +# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) +# define SSL_CTX_set1_sigalgs_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) +# define SSL_set1_sigalgs(ctx, slist, slistlen) \ + SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) +# define SSL_set1_sigalgs_list(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) +# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)slist) +# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) +# define SSL_set1_client_sigalgs(ctx, slist, slistlen) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)slist) +# define SSL_set1_client_sigalgs_list(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) +# define SSL_get0_certificate_types(s, clist) \ + SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)clist) +# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist) +# define SSL_set1_client_certificate_types(s, clist, clistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist) +# define SSL_get_peer_signature_nid(s, pn) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) +# define SSL_get_server_tmp_key(s, pk) \ + SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk) +# define SSL_get0_raw_cipherlist(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,(char *)plst) +# define SSL_get0_ec_point_formats(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,(char *)plst) +# ifndef OPENSSL_NO_BIO +BIO_METHOD *BIO_f_ssl(void); +BIO *BIO_new_ssl(SSL_CTX *ctx, int client); +BIO *BIO_new_ssl_connect(SSL_CTX *ctx); +BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); +int BIO_ssl_copy_session_id(BIO *to, BIO *from); +void BIO_ssl_shutdown(BIO *ssl_bio); + +# endif + +int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); +SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); +void SSL_CTX_free(SSL_CTX *); +long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); +long SSL_CTX_get_timeout(const SSL_CTX *ctx); +X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); +void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); +int SSL_want(const SSL *s); +int SSL_clear(SSL *s); + +void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); + +const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); +int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); +char *SSL_CIPHER_get_version(const SSL_CIPHER *c); +const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); +unsigned long SSL_CIPHER_get_id(const SSL_CIPHER *c); + +int SSL_get_fd(const SSL *s); +int SSL_get_rfd(const SSL *s); +int SSL_get_wfd(const SSL *s); +const char *SSL_get_cipher_list(const SSL *s, int n); +char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len); +int SSL_get_read_ahead(const SSL *s); +int SSL_pending(const SSL *s); +# ifndef OPENSSL_NO_SOCK +int SSL_set_fd(SSL *s, int fd); +int SSL_set_rfd(SSL *s, int fd); +int SSL_set_wfd(SSL *s, int fd); +# endif +# ifndef OPENSSL_NO_BIO +void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); +BIO *SSL_get_rbio(const SSL *s); +BIO *SSL_get_wbio(const SSL *s); +# endif +int SSL_set_cipher_list(SSL *s, const char *str); +void SSL_set_read_ahead(SSL *s, int yes); +int SSL_get_verify_mode(const SSL *s); +int SSL_get_verify_depth(const SSL *s); +int (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *); +void SSL_set_verify(SSL *s, int mode, + int (*callback) (int ok, X509_STORE_CTX *ctx)); +void SSL_set_verify_depth(SSL *s, int depth); +void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); +# ifndef OPENSSL_NO_RSA +int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); +# endif +int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len); +int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); +int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, + long len); +int SSL_use_certificate(SSL *ssl, X509 *x); +int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); + +# ifndef OPENSSL_NO_TLSEXT +/* Set serverinfo data for the current active cert. */ +int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, + size_t serverinfo_length); +# ifndef OPENSSL_NO_STDIO +int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); +# endif /* NO_STDIO */ + +# endif + +# ifndef OPENSSL_NO_STDIO +int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); +int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); +int SSL_use_certificate_file(SSL *ssl, const char *file, int type); +int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type); +int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type); +int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type); +/* PEM type */ +int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); +STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); +int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, + const char *file); +# ifndef OPENSSL_SYS_VMS +/* XXXXX: Better scheme needed! [was: #ifndef MAC_OS_pre_X] */ +# ifndef OPENSSL_SYS_MACINTOSH_CLASSIC +int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, + const char *dir); +# endif +# endif + +# endif + +void SSL_load_error_strings(void); +const char *SSL_state_string(const SSL *s); +const char *SSL_rstate_string(const SSL *s); +const char *SSL_state_string_long(const SSL *s); +const char *SSL_rstate_string_long(const SSL *s); +long SSL_SESSION_get_time(const SSL_SESSION *s); +long SSL_SESSION_set_time(SSL_SESSION *s, long t); +long SSL_SESSION_get_timeout(const SSL_SESSION *s); +long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); +void SSL_copy_session_id(SSL *to, const SSL *from); +X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); +int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx, + unsigned int sid_ctx_len); + +SSL_SESSION *SSL_SESSION_new(void); +const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, + unsigned int *len); +unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); +# ifndef OPENSSL_NO_FP_API +int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); +# endif +# ifndef OPENSSL_NO_BIO +int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); +# endif +void SSL_SESSION_free(SSL_SESSION *ses); +int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); +int SSL_set_session(SSL *to, SSL_SESSION *session); +int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c); +int SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c); +int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); +int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); +int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, + unsigned int id_len); +SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, + long length); + +# ifdef HEADER_X509_H +X509 *SSL_get_peer_certificate(const SSL *s); +# endif + +STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); + +int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); +int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); +int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx)) (int, + X509_STORE_CTX *); +void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, + int (*callback) (int, X509_STORE_CTX *)); +void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); +void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, + int (*cb) (X509_STORE_CTX *, void *), + void *arg); +void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), + void *arg); +# ifndef OPENSSL_NO_RSA +int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); +# endif +int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, + long len); +int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); +int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, + const unsigned char *d, long len); +int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); +int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, + const unsigned char *d); + +void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); +void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); + +int SSL_CTX_check_private_key(const SSL_CTX *ctx); +int SSL_check_private_key(const SSL *ctx); + +int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx, + unsigned int sid_ctx_len); + +SSL *SSL_new(SSL_CTX *ctx); +int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, + unsigned int sid_ctx_len); + +int SSL_CTX_set_purpose(SSL_CTX *s, int purpose); +int SSL_set_purpose(SSL *s, int purpose); +int SSL_CTX_set_trust(SSL_CTX *s, int trust); +int SSL_set_trust(SSL *s, int trust); + +int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); +int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); + +X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); +X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); + +# ifndef OPENSSL_NO_SRP +int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); +int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); +int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); +int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, + char *(*cb) (SSL *, void *)); +int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, + int (*cb) (SSL *, void *)); +int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, + int (*cb) (SSL *, int *, void *)); +int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); + +int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, + BIGNUM *sa, BIGNUM *v, char *info); +int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, + const char *grp); + +BIGNUM *SSL_get_srp_g(SSL *s); +BIGNUM *SSL_get_srp_N(SSL *s); + +char *SSL_get_srp_username(SSL *s); +char *SSL_get_srp_userinfo(SSL *s); +# endif + +void SSL_certs_clear(SSL *s); +void SSL_free(SSL *ssl); +int SSL_accept(SSL *ssl); +int SSL_connect(SSL *ssl); +int SSL_read(SSL *ssl, void *buf, int num); +int SSL_peek(SSL *ssl, void *buf, int num); +int SSL_write(SSL *ssl, const void *buf, int num); +long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); +long SSL_callback_ctrl(SSL *, int, void (*)(void)); +long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); +long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); + +int SSL_get_error(const SSL *s, int ret_code); +const char *SSL_get_version(const SSL *s); + +/* This sets the 'default' SSL version that SSL_new() will create */ +int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); + +# ifndef OPENSSL_NO_SSL2_METHOD +const SSL_METHOD *SSLv2_method(void); /* SSLv2 */ +const SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */ +const SSL_METHOD *SSLv2_client_method(void); /* SSLv2 */ +# endif + +# ifndef OPENSSL_NO_SSL3_METHOD +const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ +const SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ +const SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ +# endif + +const SSL_METHOD *SSLv23_method(void); /* Negotiate highest available SSL/TLS + * version */ +const SSL_METHOD *SSLv23_server_method(void); /* Negotiate highest available + * SSL/TLS version */ +const SSL_METHOD *SSLv23_client_method(void); /* Negotiate highest available + * SSL/TLS version */ + +const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ +const SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ +const SSL_METHOD *TLSv1_client_method(void); /* TLSv1.0 */ + +const SSL_METHOD *TLSv1_1_method(void); /* TLSv1.1 */ +const SSL_METHOD *TLSv1_1_server_method(void); /* TLSv1.1 */ +const SSL_METHOD *TLSv1_1_client_method(void); /* TLSv1.1 */ + +const SSL_METHOD *TLSv1_2_method(void); /* TLSv1.2 */ +const SSL_METHOD *TLSv1_2_server_method(void); /* TLSv1.2 */ +const SSL_METHOD *TLSv1_2_client_method(void); /* TLSv1.2 */ + +const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ +const SSL_METHOD *DTLSv1_server_method(void); /* DTLSv1.0 */ +const SSL_METHOD *DTLSv1_client_method(void); /* DTLSv1.0 */ + +const SSL_METHOD *DTLSv1_2_method(void); /* DTLSv1.2 */ +const SSL_METHOD *DTLSv1_2_server_method(void); /* DTLSv1.2 */ +const SSL_METHOD *DTLSv1_2_client_method(void); /* DTLSv1.2 */ + +const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ +const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ +const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ + +STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); + +int SSL_do_handshake(SSL *s); +int SSL_renegotiate(SSL *s); +int SSL_renegotiate_abbreviated(SSL *s); +int SSL_renegotiate_pending(SSL *s); +int SSL_shutdown(SSL *s); + +const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx); +const SSL_METHOD *SSL_get_ssl_method(SSL *s); +int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); +const char *SSL_alert_type_string_long(int value); +const char *SSL_alert_type_string(int value); +const char *SSL_alert_desc_string_long(int value); +const char *SSL_alert_desc_string(int value); + +void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); +void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); +STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); +STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); +int SSL_add_client_CA(SSL *ssl, X509 *x); +int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); + +void SSL_set_connect_state(SSL *s); +void SSL_set_accept_state(SSL *s); + +long SSL_get_default_timeout(const SSL *s); + +int SSL_library_init(void); + +char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); +STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk); + +SSL *SSL_dup(SSL *ssl); + +X509 *SSL_get_certificate(const SSL *ssl); +/* + * EVP_PKEY + */ struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); + +X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); +EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); + +void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); +int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); +void SSL_set_quiet_shutdown(SSL *ssl, int mode); +int SSL_get_quiet_shutdown(const SSL *ssl); +void SSL_set_shutdown(SSL *ssl, int mode); +int SSL_get_shutdown(const SSL *ssl); +int SSL_version(const SSL *ssl); +int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); +int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, + const char *CApath); +# define SSL_get0_session SSL_get_session/* just peek at pointer */ +SSL_SESSION *SSL_get_session(const SSL *ssl); +SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ +SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); +SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); +void SSL_set_info_callback(SSL *ssl, + void (*cb) (const SSL *ssl, int type, int val)); +void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, + int val); +int SSL_state(const SSL *ssl); +void SSL_set_state(SSL *ssl, int state); + +void SSL_set_verify_result(SSL *ssl, long v); +long SSL_get_verify_result(const SSL *ssl); + +int SSL_set_ex_data(SSL *ssl, int idx, void *data); +void *SSL_get_ex_data(const SSL *ssl, int idx); +int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); + +int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); +void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); +int SSL_SESSION_get_ex_new_index(long argl, void *argp, + CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); + +int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); +void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); +int SSL_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); + +int SSL_get_ex_data_X509_STORE_CTX_idx(void); + +# define SSL_CTX_sess_set_cache_size(ctx,t) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) +# define SSL_CTX_sess_get_cache_size(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) +# define SSL_CTX_set_session_cache_mode(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) +# define SSL_CTX_get_session_cache_mode(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) + +# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) +# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) +# define SSL_CTX_get_read_ahead(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) +# define SSL_CTX_set_read_ahead(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) +# define SSL_CTX_get_max_cert_list(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) +# define SSL_CTX_set_max_cert_list(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) +# define SSL_get_max_cert_list(ssl) \ + SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) +# define SSL_set_max_cert_list(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) + +# define SSL_CTX_set_max_send_fragment(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) +# define SSL_set_max_send_fragment(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) + + /* NB: the keylength is only applicable when is_export is true */ +# ifndef OPENSSL_NO_RSA +void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, + RSA *(*cb) (SSL *ssl, int is_export, + int keylength)); + +void SSL_set_tmp_rsa_callback(SSL *ssl, + RSA *(*cb) (SSL *ssl, int is_export, + int keylength)); +# endif +# ifndef OPENSSL_NO_DH +void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, + DH *(*dh) (SSL *ssl, int is_export, + int keylength)); +void SSL_set_tmp_dh_callback(SSL *ssl, + DH *(*dh) (SSL *ssl, int is_export, + int keylength)); +# endif +# ifndef OPENSSL_NO_ECDH +void SSL_CTX_set_tmp_ecdh_callback(SSL_CTX *ctx, + EC_KEY *(*ecdh) (SSL *ssl, int is_export, + int keylength)); +void SSL_set_tmp_ecdh_callback(SSL *ssl, + EC_KEY *(*ecdh) (SSL *ssl, int is_export, + int keylength)); +# endif + +# ifndef OPENSSL_NO_COMP +const COMP_METHOD *SSL_get_current_compression(SSL *s); +const COMP_METHOD *SSL_get_current_expansion(SSL *s); +const char *SSL_COMP_get_name(const COMP_METHOD *comp); +STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); +STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) + *meths); +void SSL_COMP_free_compression_methods(void); +int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); +# else +const void *SSL_get_current_compression(SSL *s); +const void *SSL_get_current_expansion(SSL *s); +const char *SSL_COMP_get_name(const void *comp); +void *SSL_COMP_get_compression_methods(void); +int SSL_COMP_add_compression_method(int id, void *cm); +# endif + +const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); + +/* TLS extensions functions */ +int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); + +int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn cb, + void *arg); + +/* Pre-shared secret session resumption functions */ +int SSL_set_session_secret_cb(SSL *s, + tls_session_secret_cb_fn tls_session_secret_cb, + void *arg); + +void SSL_set_debug(SSL *s, int debug); +int SSL_cache_hit(SSL *s); +int SSL_is_server(SSL *s); + +SSL_CONF_CTX *SSL_CONF_CTX_new(void); +int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); +void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); +unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); +unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags); +int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); + +void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); +void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); + +int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); +int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); +int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); + +# ifndef OPENSSL_NO_SSL_TRACE +void SSL_trace(int write_p, int version, int content_type, + const void *buf, size_t len, SSL *ssl, void *arg); +const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); +# endif + +# ifndef OPENSSL_NO_UNIT_TEST +const struct openssl_ssl_test_functions *SSL_test_functions(void); +# endif + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_SSL_strings(void); + +/* Error codes for the SSL functions. */ + +/* Function codes. */ +# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 +# define SSL_F_CLIENT_CERTIFICATE 100 +# define SSL_F_CLIENT_FINISHED 167 +# define SSL_F_CLIENT_HELLO 101 +# define SSL_F_CLIENT_MASTER_KEY 102 +# define SSL_F_D2I_SSL_SESSION 103 +# define SSL_F_DO_DTLS1_WRITE 245 +# define SSL_F_DO_SSL3_WRITE 104 +# define SSL_F_DTLS1_ACCEPT 246 +# define SSL_F_DTLS1_ADD_CERT_TO_BUF 295 +# define SSL_F_DTLS1_BUFFER_RECORD 247 +# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 316 +# define SSL_F_DTLS1_CLIENT_HELLO 248 +# define SSL_F_DTLS1_CONNECT 249 +# define SSL_F_DTLS1_ENC 250 +# define SSL_F_DTLS1_GET_HELLO_VERIFY 251 +# define SSL_F_DTLS1_GET_MESSAGE 252 +# define SSL_F_DTLS1_GET_MESSAGE_FRAGMENT 253 +# define SSL_F_DTLS1_GET_RECORD 254 +# define SSL_F_DTLS1_HANDLE_TIMEOUT 297 +# define SSL_F_DTLS1_HEARTBEAT 305 +# define SSL_F_DTLS1_OUTPUT_CERT_CHAIN 255 +# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 +# define SSL_F_DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE 256 +# define SSL_F_DTLS1_PROCESS_RECORD 257 +# define SSL_F_DTLS1_READ_BYTES 258 +# define SSL_F_DTLS1_READ_FAILED 259 +# define SSL_F_DTLS1_SEND_CERTIFICATE_REQUEST 260 +# define SSL_F_DTLS1_SEND_CLIENT_CERTIFICATE 261 +# define SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE 262 +# define SSL_F_DTLS1_SEND_CLIENT_VERIFY 263 +# define SSL_F_DTLS1_SEND_HELLO_VERIFY_REQUEST 264 +# define SSL_F_DTLS1_SEND_SERVER_CERTIFICATE 265 +# define SSL_F_DTLS1_SEND_SERVER_HELLO 266 +# define SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE 267 +# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 +# define SSL_F_GET_CLIENT_FINISHED 105 +# define SSL_F_GET_CLIENT_HELLO 106 +# define SSL_F_GET_CLIENT_MASTER_KEY 107 +# define SSL_F_GET_SERVER_FINISHED 108 +# define SSL_F_GET_SERVER_HELLO 109 +# define SSL_F_GET_SERVER_STATIC_DH_KEY 340 +# define SSL_F_GET_SERVER_VERIFY 110 +# define SSL_F_I2D_SSL_SESSION 111 +# define SSL_F_READ_N 112 +# define SSL_F_REQUEST_CERTIFICATE 113 +# define SSL_F_SERVER_FINISH 239 +# define SSL_F_SERVER_HELLO 114 +# define SSL_F_SERVER_VERIFY 240 +# define SSL_F_SSL23_ACCEPT 115 +# define SSL_F_SSL23_CLIENT_HELLO 116 +# define SSL_F_SSL23_CONNECT 117 +# define SSL_F_SSL23_GET_CLIENT_HELLO 118 +# define SSL_F_SSL23_GET_SERVER_HELLO 119 +# define SSL_F_SSL23_PEEK 237 +# define SSL_F_SSL23_READ 120 +# define SSL_F_SSL23_WRITE 121 +# define SSL_F_SSL2_ACCEPT 122 +# define SSL_F_SSL2_CONNECT 123 +# define SSL_F_SSL2_ENC_INIT 124 +# define SSL_F_SSL2_GENERATE_KEY_MATERIAL 241 +# define SSL_F_SSL2_PEEK 234 +# define SSL_F_SSL2_READ 125 +# define SSL_F_SSL2_READ_INTERNAL 236 +# define SSL_F_SSL2_SET_CERTIFICATE 126 +# define SSL_F_SSL2_WRITE 127 +# define SSL_F_SSL3_ACCEPT 128 +# define SSL_F_SSL3_ADD_CERT_TO_BUF 296 +# define SSL_F_SSL3_CALLBACK_CTRL 233 +# define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 +# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 +# define SSL_F_SSL3_CHECK_CLIENT_HELLO 304 +# define SSL_F_SSL3_CHECK_FINISHED 339 +# define SSL_F_SSL3_CLIENT_HELLO 131 +# define SSL_F_SSL3_CONNECT 132 +# define SSL_F_SSL3_CTRL 213 +# define SSL_F_SSL3_CTX_CTRL 133 +# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 +# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 +# define SSL_F_SSL3_ENC 134 +# define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 +# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 +# define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135 +# define SSL_F_SSL3_GET_CERT_STATUS 289 +# define SSL_F_SSL3_GET_CERT_VERIFY 136 +# define SSL_F_SSL3_GET_CLIENT_CERTIFICATE 137 +# define SSL_F_SSL3_GET_CLIENT_HELLO 138 +# define SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE 139 +# define SSL_F_SSL3_GET_FINISHED 140 +# define SSL_F_SSL3_GET_KEY_EXCHANGE 141 +# define SSL_F_SSL3_GET_MESSAGE 142 +# define SSL_F_SSL3_GET_NEW_SESSION_TICKET 283 +# define SSL_F_SSL3_GET_NEXT_PROTO 306 +# define SSL_F_SSL3_GET_RECORD 143 +# define SSL_F_SSL3_GET_SERVER_CERTIFICATE 144 +# define SSL_F_SSL3_GET_SERVER_DONE 145 +# define SSL_F_SSL3_GET_SERVER_HELLO 146 +# define SSL_F_SSL3_HANDSHAKE_MAC 285 +# define SSL_F_SSL3_NEW_SESSION_TICKET 287 +# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 +# define SSL_F_SSL3_PEEK 235 +# define SSL_F_SSL3_READ_BYTES 148 +# define SSL_F_SSL3_READ_N 149 +# define SSL_F_SSL3_SEND_CERTIFICATE_REQUEST 150 +# define SSL_F_SSL3_SEND_CLIENT_CERTIFICATE 151 +# define SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE 152 +# define SSL_F_SSL3_SEND_CLIENT_VERIFY 153 +# define SSL_F_SSL3_SEND_SERVER_CERTIFICATE 154 +# define SSL_F_SSL3_SEND_SERVER_HELLO 242 +# define SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE 155 +# define SSL_F_SSL3_SETUP_KEY_BLOCK 157 +# define SSL_F_SSL3_SETUP_READ_BUFFER 156 +# define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 +# define SSL_F_SSL3_WRITE_BYTES 158 +# define SSL_F_SSL3_WRITE_PENDING 159 +# define SSL_F_SSL_ADD_CERT_CHAIN 318 +# define SSL_F_SSL_ADD_CERT_TO_BUF 319 +# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 +# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 +# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 +# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 +# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 +# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 +# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 +# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 +# define SSL_F_SSL_BAD_METHOD 160 +# define SSL_F_SSL_BUILD_CERT_CHAIN 332 +# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 +# define SSL_F_SSL_CERT_DUP 221 +# define SSL_F_SSL_CERT_INST 222 +# define SSL_F_SSL_CERT_INSTANTIATE 214 +# define SSL_F_SSL_CERT_NEW 162 +# define SSL_F_SSL_CHECK_PRIVATE_KEY 163 +# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 +# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 +# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 +# define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 +# define SSL_F_SSL_CLEAR 164 +# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 +# define SSL_F_SSL_CONF_CMD 334 +# define SSL_F_SSL_CREATE_CIPHER_LIST 166 +# define SSL_F_SSL_CTRL 232 +# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 +# define SSL_F_SSL_CTX_MAKE_PROFILES 309 +# define SSL_F_SSL_CTX_NEW 169 +# define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 +# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 +# define SSL_F_SSL_CTX_SET_PURPOSE 226 +# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 +# define SSL_F_SSL_CTX_SET_SSL_VERSION 170 +# define SSL_F_SSL_CTX_SET_TRUST 229 +# define SSL_F_SSL_CTX_USE_CERTIFICATE 171 +# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 +# define SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE 220 +# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 +# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 +# define SSL_F_SSL_CTX_USE_SERVERINFO 336 +# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 +# define SSL_F_SSL_DO_HANDSHAKE 180 +# define SSL_F_SSL_GET_NEW_SESSION 181 +# define SSL_F_SSL_GET_PREV_SESSION 217 +# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 +# define SSL_F_SSL_GET_SERVER_SEND_CERT 182 +# define SSL_F_SSL_GET_SERVER_SEND_PKEY 317 +# define SSL_F_SSL_GET_SIGN_PKEY 183 +# define SSL_F_SSL_INIT_WBIO_BUFFER 184 +# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 +# define SSL_F_SSL_NEW 186 +# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 +# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 +# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 +# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 +# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 +# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 +# define SSL_F_SSL_PEEK 270 +# define SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT 281 +# define SSL_F_SSL_PREPARE_SERVERHELLO_TLSEXT 282 +# define SSL_F_SSL_READ 223 +# define SSL_F_SSL_RSA_PRIVATE_DECRYPT 187 +# define SSL_F_SSL_RSA_PUBLIC_ENCRYPT 188 +# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 +# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 +# define SSL_F_SSL_SESSION_DUP 348 +# define SSL_F_SSL_SESSION_NEW 189 +# define SSL_F_SSL_SESSION_PRINT_FP 190 +# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 +# define SSL_F_SSL_SESS_CERT_NEW 225 +# define SSL_F_SSL_SET_CERT 191 +# define SSL_F_SSL_SET_CIPHER_LIST 271 +# define SSL_F_SSL_SET_FD 192 +# define SSL_F_SSL_SET_PKEY 193 +# define SSL_F_SSL_SET_PURPOSE 227 +# define SSL_F_SSL_SET_RFD 194 +# define SSL_F_SSL_SET_SESSION 195 +# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 +# define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 +# define SSL_F_SSL_SET_TRUST 228 +# define SSL_F_SSL_SET_WFD 196 +# define SSL_F_SSL_SHUTDOWN 224 +# define SSL_F_SSL_SRP_CTX_INIT 313 +# define SSL_F_SSL_UNDEFINED_CONST_FUNCTION 243 +# define SSL_F_SSL_UNDEFINED_FUNCTION 197 +# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 +# define SSL_F_SSL_USE_CERTIFICATE 198 +# define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 +# define SSL_F_SSL_USE_CERTIFICATE_FILE 200 +# define SSL_F_SSL_USE_PRIVATEKEY 201 +# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 +# define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 +# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 +# define SSL_F_SSL_USE_RSAPRIVATEKEY 204 +# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 +# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 +# define SSL_F_SSL_VERIFY_CERT_CHAIN 207 +# define SSL_F_SSL_WRITE 208 +# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 +# define SSL_F_TLS1_CERT_VERIFY_MAC 286 +# define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 +# define SSL_F_TLS1_CHECK_SERVERHELLO_TLSEXT 274 +# define SSL_F_TLS1_ENC 210 +# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 +# define SSL_F_TLS1_GET_CURVELIST 338 +# define SSL_F_TLS1_HEARTBEAT 315 +# define SSL_F_TLS1_PREPARE_CLIENTHELLO_TLSEXT 275 +# define SSL_F_TLS1_PREPARE_SERVERHELLO_TLSEXT 276 +# define SSL_F_TLS1_PRF 284 +# define SSL_F_TLS1_SETUP_KEY_BLOCK 211 +# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 +# define SSL_F_WRITE_PENDING 212 + +/* Reason codes. */ +# define SSL_R_APP_DATA_IN_HANDSHAKE 100 +# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 +# define SSL_R_BAD_ALERT_RECORD 101 +# define SSL_R_BAD_AUTHENTICATION_TYPE 102 +# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 +# define SSL_R_BAD_CHECKSUM 104 +# define SSL_R_BAD_DATA 390 +# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 +# define SSL_R_BAD_DECOMPRESSION 107 +# define SSL_R_BAD_DH_G_LENGTH 108 +# define SSL_R_BAD_DH_G_VALUE 375 +# define SSL_R_BAD_DH_PUB_KEY_LENGTH 109 +# define SSL_R_BAD_DH_PUB_KEY_VALUE 393 +# define SSL_R_BAD_DH_P_LENGTH 110 +# define SSL_R_BAD_DH_P_VALUE 395 +# define SSL_R_BAD_DIGEST_LENGTH 111 +# define SSL_R_BAD_DSA_SIGNATURE 112 +# define SSL_R_BAD_ECC_CERT 304 +# define SSL_R_BAD_ECDSA_SIGNATURE 305 +# define SSL_R_BAD_ECPOINT 306 +# define SSL_R_BAD_HANDSHAKE_LENGTH 332 +# define SSL_R_BAD_HELLO_REQUEST 105 +# define SSL_R_BAD_LENGTH 271 +# define SSL_R_BAD_MAC_DECODE 113 +# define SSL_R_BAD_MAC_LENGTH 333 +# define SSL_R_BAD_MESSAGE_TYPE 114 +# define SSL_R_BAD_PACKET_LENGTH 115 +# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 +# define SSL_R_BAD_PSK_IDENTITY_HINT_LENGTH 316 +# define SSL_R_BAD_RESPONSE_ARGUMENT 117 +# define SSL_R_BAD_RSA_DECRYPT 118 +# define SSL_R_BAD_RSA_ENCRYPT 119 +# define SSL_R_BAD_RSA_E_LENGTH 120 +# define SSL_R_BAD_RSA_MODULUS_LENGTH 121 +# define SSL_R_BAD_RSA_SIGNATURE 122 +# define SSL_R_BAD_SIGNATURE 123 +# define SSL_R_BAD_SRP_A_LENGTH 347 +# define SSL_R_BAD_SRP_B_LENGTH 348 +# define SSL_R_BAD_SRP_G_LENGTH 349 +# define SSL_R_BAD_SRP_N_LENGTH 350 +# define SSL_R_BAD_SRP_PARAMETERS 371 +# define SSL_R_BAD_SRP_S_LENGTH 351 +# define SSL_R_BAD_SRTP_MKI_VALUE 352 +# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 +# define SSL_R_BAD_SSL_FILETYPE 124 +# define SSL_R_BAD_SSL_SESSION_ID_LENGTH 125 +# define SSL_R_BAD_STATE 126 +# define SSL_R_BAD_VALUE 384 +# define SSL_R_BAD_WRITE_RETRY 127 +# define SSL_R_BIO_NOT_SET 128 +# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 +# define SSL_R_BN_LIB 130 +# define SSL_R_CA_DN_LENGTH_MISMATCH 131 +# define SSL_R_CA_DN_TOO_LONG 132 +# define SSL_R_CCS_RECEIVED_EARLY 133 +# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 +# define SSL_R_CERT_CB_ERROR 377 +# define SSL_R_CERT_LENGTH_MISMATCH 135 +# define SSL_R_CHALLENGE_IS_DIFFERENT 136 +# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 +# define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 +# define SSL_R_CIPHER_TABLE_SRC_ERROR 139 +# define SSL_R_CLIENTHELLO_TLSEXT 226 +# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 +# define SSL_R_COMPRESSION_DISABLED 343 +# define SSL_R_COMPRESSION_FAILURE 141 +# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 +# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 +# define SSL_R_CONNECTION_ID_IS_DIFFERENT 143 +# define SSL_R_CONNECTION_TYPE_NOT_SET 144 +# define SSL_R_COOKIE_MISMATCH 308 +# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 +# define SSL_R_DATA_LENGTH_TOO_LONG 146 +# define SSL_R_DECRYPTION_FAILED 147 +# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 +# define SSL_R_DH_KEY_TOO_SMALL 372 +# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 +# define SSL_R_DIGEST_CHECK_FAILED 149 +# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 +# define SSL_R_DUPLICATE_COMPRESSION_ID 309 +# define SSL_R_ECC_CERT_NOT_FOR_KEY_AGREEMENT 317 +# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 +# define SSL_R_ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE 322 +# define SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE 323 +# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 +# define SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER 310 +# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 +# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 +# define SSL_R_ERROR_GENERATING_TMP_RSA_KEY 282 +# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 +# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 +# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 +# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 +# define SSL_R_GOT_NEXT_PROTO_BEFORE_A_CCS 355 +# define SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION 356 +# define SSL_R_HTTPS_PROXY_REQUEST 155 +# define SSL_R_HTTP_REQUEST 156 +# define SSL_R_ILLEGAL_PADDING 283 +# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 +# define SSL_R_INAPPROPRIATE_FALLBACK 373 +# define SSL_R_INCONSISTENT_COMPRESSION 340 +# define SSL_R_INVALID_CHALLENGE_LENGTH 158 +# define SSL_R_INVALID_COMMAND 280 +# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 +# define SSL_R_INVALID_NULL_CMD_NAME 385 +# define SSL_R_INVALID_PURPOSE 278 +# define SSL_R_INVALID_SERVERINFO_DATA 388 +# define SSL_R_INVALID_SRP_USERNAME 357 +# define SSL_R_INVALID_STATUS_RESPONSE 328 +# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 +# define SSL_R_INVALID_TRUST 279 +# define SSL_R_KEY_ARG_TOO_LONG 284 +# define SSL_R_KRB5 285 +# define SSL_R_KRB5_C_CC_PRINC 286 +# define SSL_R_KRB5_C_GET_CRED 287 +# define SSL_R_KRB5_C_INIT 288 +# define SSL_R_KRB5_C_MK_REQ 289 +# define SSL_R_KRB5_S_BAD_TICKET 290 +# define SSL_R_KRB5_S_INIT 291 +# define SSL_R_KRB5_S_RD_REQ 292 +# define SSL_R_KRB5_S_TKT_EXPIRED 293 +# define SSL_R_KRB5_S_TKT_NYV 294 +# define SSL_R_KRB5_S_TKT_SKEW 295 +# define SSL_R_LENGTH_MISMATCH 159 +# define SSL_R_LENGTH_TOO_SHORT 160 +# define SSL_R_LIBRARY_BUG 274 +# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 +# define SSL_R_MESSAGE_TOO_LONG 296 +# define SSL_R_MISSING_DH_DSA_CERT 162 +# define SSL_R_MISSING_DH_KEY 163 +# define SSL_R_MISSING_DH_RSA_CERT 164 +# define SSL_R_MISSING_DSA_SIGNING_CERT 165 +# define SSL_R_MISSING_ECDH_CERT 382 +# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 +# define SSL_R_MISSING_EXPORT_TMP_DH_KEY 166 +# define SSL_R_MISSING_EXPORT_TMP_RSA_KEY 167 +# define SSL_R_MISSING_RSA_CERTIFICATE 168 +# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 +# define SSL_R_MISSING_RSA_SIGNING_CERT 170 +# define SSL_R_MISSING_SRP_PARAM 358 +# define SSL_R_MISSING_TMP_DH_KEY 171 +# define SSL_R_MISSING_TMP_ECDH_KEY 311 +# define SSL_R_MISSING_TMP_RSA_KEY 172 +# define SSL_R_MISSING_TMP_RSA_PKEY 173 +# define SSL_R_MISSING_VERIFY_MESSAGE 174 +# define SSL_R_MULTIPLE_SGC_RESTARTS 346 +# define SSL_R_NON_SSLV2_INITIAL_PACKET 175 +# define SSL_R_NO_CERTIFICATES_RETURNED 176 +# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 +# define SSL_R_NO_CERTIFICATE_RETURNED 178 +# define SSL_R_NO_CERTIFICATE_SET 179 +# define SSL_R_NO_CERTIFICATE_SPECIFIED 180 +# define SSL_R_NO_CIPHERS_AVAILABLE 181 +# define SSL_R_NO_CIPHERS_PASSED 182 +# define SSL_R_NO_CIPHERS_SPECIFIED 183 +# define SSL_R_NO_CIPHER_LIST 184 +# define SSL_R_NO_CIPHER_MATCH 185 +# define SSL_R_NO_CLIENT_CERT_METHOD 331 +# define SSL_R_NO_CLIENT_CERT_RECEIVED 186 +# define SSL_R_NO_COMPRESSION_SPECIFIED 187 +# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 +# define SSL_R_NO_METHOD_SPECIFIED 188 +# define SSL_R_NO_PEM_EXTENSIONS 389 +# define SSL_R_NO_PRIVATEKEY 189 +# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 +# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 +# define SSL_R_NO_PUBLICKEY 192 +# define SSL_R_NO_RENEGOTIATION 339 +# define SSL_R_NO_REQUIRED_DIGEST 324 +# define SSL_R_NO_SHARED_CIPHER 193 +# define SSL_R_NO_SHARED_SIGATURE_ALGORITHMS 376 +# define SSL_R_NO_SRTP_PROFILES 359 +# define SSL_R_NO_VERIFY_CALLBACK 194 +# define SSL_R_NULL_SSL_CTX 195 +# define SSL_R_NULL_SSL_METHOD_PASSED 196 +# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 +# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 +# define SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE 387 +# define SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE 379 +# define SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE 297 +# define SSL_R_OPAQUE_PRF_INPUT_TOO_LONG 327 +# define SSL_R_PACKET_LENGTH_TOO_LONG 198 +# define SSL_R_PARSE_TLSEXT 227 +# define SSL_R_PATH_TOO_LONG 270 +# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 +# define SSL_R_PEER_ERROR 200 +# define SSL_R_PEER_ERROR_CERTIFICATE 201 +# define SSL_R_PEER_ERROR_NO_CERTIFICATE 202 +# define SSL_R_PEER_ERROR_NO_CIPHER 203 +# define SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE 204 +# define SSL_R_PEM_NAME_BAD_PREFIX 391 +# define SSL_R_PEM_NAME_TOO_SHORT 392 +# define SSL_R_PRE_MAC_LENGTH_TOO_LONG 205 +# define SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS 206 +# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 +# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 +# define SSL_R_PSK_NO_CLIENT_CB 224 +# define SSL_R_PSK_NO_SERVER_CB 225 +# define SSL_R_PUBLIC_KEY_ENCRYPT_ERROR 208 +# define SSL_R_PUBLIC_KEY_IS_NOT_RSA 209 +# define SSL_R_PUBLIC_KEY_NOT_RSA 210 +# define SSL_R_READ_BIO_NOT_SET 211 +# define SSL_R_READ_TIMEOUT_EXPIRED 312 +# define SSL_R_READ_WRONG_PACKET_TYPE 212 +# define SSL_R_RECORD_LENGTH_MISMATCH 213 +# define SSL_R_RECORD_TOO_LARGE 214 +# define SSL_R_RECORD_TOO_SMALL 298 +# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 +# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 +# define SSL_R_RENEGOTIATION_MISMATCH 337 +# define SSL_R_REQUIRED_CIPHER_MISSING 215 +# define SSL_R_REQUIRED_COMPRESSSION_ALGORITHM_MISSING 342 +# define SSL_R_REUSE_CERT_LENGTH_NOT_ZERO 216 +# define SSL_R_REUSE_CERT_TYPE_NOT_ZERO 217 +# define SSL_R_REUSE_CIPHER_LIST_NOT_ZERO 218 +# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 +# define SSL_R_SERVERHELLO_TLSEXT 275 +# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 +# define SSL_R_SHORT_READ 219 +# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 +# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 +# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 +# define SSL_R_SRP_A_CALC 361 +# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 +# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 +# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 +# define SSL_R_SSL23_DOING_SESSION_ID_REUSE 221 +# define SSL_R_SSL2_CONNECTION_ID_TOO_LONG 299 +# define SSL_R_SSL3_EXT_INVALID_ECPOINTFORMAT 321 +# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 +# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 +# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 +# define SSL_R_SSL3_SESSION_ID_TOO_SHORT 222 +# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 +# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 +# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 +# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 +# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 +# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 +# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 +# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 +# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 +# define SSL_R_SSL_HANDSHAKE_FAILURE 229 +# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 +# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 +# define SSL_R_SSL_SESSION_ID_CONFLICT 302 +# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 +# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 +# define SSL_R_SSL_SESSION_ID_IS_DIFFERENT 231 +# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 +# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 +# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 +# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 +# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 +# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 +# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 +# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 +# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 +# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 +# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 +# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 +# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 +# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 +# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 +# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 +# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 +# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 +# define SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER 232 +# define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 +# define SSL_R_TLS_HEARTBEAT_PENDING 366 +# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 +# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 +# define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 +# define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 +# define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235 +# define SSL_R_UNABLE_TO_DECODE_DH_CERTS 236 +# define SSL_R_UNABLE_TO_DECODE_ECDH_CERTS 313 +# define SSL_R_UNABLE_TO_EXTRACT_PUBLIC_KEY 237 +# define SSL_R_UNABLE_TO_FIND_DH_PARAMETERS 238 +# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 +# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 +# define SSL_R_UNABLE_TO_FIND_SSL_METHOD 240 +# define SSL_R_UNABLE_TO_LOAD_SSL2_MD5_ROUTINES 241 +# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 +# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 +# define SSL_R_UNEXPECTED_MESSAGE 244 +# define SSL_R_UNEXPECTED_RECORD 245 +# define SSL_R_UNINITIALIZED 276 +# define SSL_R_UNKNOWN_ALERT_TYPE 246 +# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 +# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 +# define SSL_R_UNKNOWN_CIPHER_TYPE 249 +# define SSL_R_UNKNOWN_CMD_NAME 386 +# define SSL_R_UNKNOWN_DIGEST 368 +# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 +# define SSL_R_UNKNOWN_PKEY_TYPE 251 +# define SSL_R_UNKNOWN_PROTOCOL 252 +# define SSL_R_UNKNOWN_REMOTE_ERROR_TYPE 253 +# define SSL_R_UNKNOWN_SSL_VERSION 254 +# define SSL_R_UNKNOWN_STATE 255 +# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 +# define SSL_R_UNSUPPORTED_CIPHER 256 +# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 +# define SSL_R_UNSUPPORTED_DIGEST_TYPE 326 +# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 +# define SSL_R_UNSUPPORTED_PROTOCOL 258 +# define SSL_R_UNSUPPORTED_SSL_VERSION 259 +# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 +# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 +# define SSL_R_WRITE_BIO_NOT_SET 260 +# define SSL_R_WRONG_CERTIFICATE_TYPE 383 +# define SSL_R_WRONG_CIPHER_RETURNED 261 +# define SSL_R_WRONG_CURVE 378 +# define SSL_R_WRONG_MESSAGE_TYPE 262 +# define SSL_R_WRONG_NUMBER_OF_KEY_BITS 263 +# define SSL_R_WRONG_SIGNATURE_LENGTH 264 +# define SSL_R_WRONG_SIGNATURE_SIZE 265 +# define SSL_R_WRONG_SIGNATURE_TYPE 370 +# define SSL_R_WRONG_SSL_VERSION 266 +# define SSL_R_WRONG_VERSION_NUMBER 267 +# define SSL_R_X509_LIB 268 +# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/ssl2.h b/External/include64/openssl/ssl2.h new file mode 100644 index 00000000..03c7dd8c --- /dev/null +++ b/External/include64/openssl/ssl2.h @@ -0,0 +1,265 @@ +/* ssl/ssl2.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_SSL2_H +# define HEADER_SSL2_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Protocol Version Codes */ +# define SSL2_VERSION 0x0002 +# define SSL2_VERSION_MAJOR 0x00 +# define SSL2_VERSION_MINOR 0x02 +/* #define SSL2_CLIENT_VERSION 0x0002 */ +/* #define SSL2_SERVER_VERSION 0x0002 */ + +/* Protocol Message Codes */ +# define SSL2_MT_ERROR 0 +# define SSL2_MT_CLIENT_HELLO 1 +# define SSL2_MT_CLIENT_MASTER_KEY 2 +# define SSL2_MT_CLIENT_FINISHED 3 +# define SSL2_MT_SERVER_HELLO 4 +# define SSL2_MT_SERVER_VERIFY 5 +# define SSL2_MT_SERVER_FINISHED 6 +# define SSL2_MT_REQUEST_CERTIFICATE 7 +# define SSL2_MT_CLIENT_CERTIFICATE 8 + +/* Error Message Codes */ +# define SSL2_PE_UNDEFINED_ERROR 0x0000 +# define SSL2_PE_NO_CIPHER 0x0001 +# define SSL2_PE_NO_CERTIFICATE 0x0002 +# define SSL2_PE_BAD_CERTIFICATE 0x0004 +# define SSL2_PE_UNSUPPORTED_CERTIFICATE_TYPE 0x0006 + +/* Cipher Kind Values */ +# define SSL2_CK_NULL_WITH_MD5 0x02000000/* v3 */ +# define SSL2_CK_RC4_128_WITH_MD5 0x02010080 +# define SSL2_CK_RC4_128_EXPORT40_WITH_MD5 0x02020080 +# define SSL2_CK_RC2_128_CBC_WITH_MD5 0x02030080 +# define SSL2_CK_RC2_128_CBC_EXPORT40_WITH_MD5 0x02040080 +# define SSL2_CK_IDEA_128_CBC_WITH_MD5 0x02050080 +# define SSL2_CK_DES_64_CBC_WITH_MD5 0x02060040 +# define SSL2_CK_DES_64_CBC_WITH_SHA 0x02060140/* v3 */ +# define SSL2_CK_DES_192_EDE3_CBC_WITH_MD5 0x020700c0 +# define SSL2_CK_DES_192_EDE3_CBC_WITH_SHA 0x020701c0/* v3 */ +# define SSL2_CK_RC4_64_WITH_MD5 0x02080080/* MS hack */ + +# define SSL2_CK_DES_64_CFB64_WITH_MD5_1 0x02ff0800/* SSLeay */ +# define SSL2_CK_NULL 0x02ff0810/* SSLeay */ + +# define SSL2_TXT_DES_64_CFB64_WITH_MD5_1 "DES-CFB-M1" +# define SSL2_TXT_NULL_WITH_MD5 "NULL-MD5" +# define SSL2_TXT_RC4_128_WITH_MD5 "RC4-MD5" +# define SSL2_TXT_RC4_128_EXPORT40_WITH_MD5 "EXP-RC4-MD5" +# define SSL2_TXT_RC2_128_CBC_WITH_MD5 "RC2-CBC-MD5" +# define SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 "EXP-RC2-CBC-MD5" +# define SSL2_TXT_IDEA_128_CBC_WITH_MD5 "IDEA-CBC-MD5" +# define SSL2_TXT_DES_64_CBC_WITH_MD5 "DES-CBC-MD5" +# define SSL2_TXT_DES_64_CBC_WITH_SHA "DES-CBC-SHA" +# define SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 "DES-CBC3-MD5" +# define SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA "DES-CBC3-SHA" +# define SSL2_TXT_RC4_64_WITH_MD5 "RC4-64-MD5" + +# define SSL2_TXT_NULL "NULL" + +/* Flags for the SSL_CIPHER.algorithm2 field */ +# define SSL2_CF_5_BYTE_ENC 0x01 +# define SSL2_CF_8_BYTE_ENC 0x02 + +/* Certificate Type Codes */ +# define SSL2_CT_X509_CERTIFICATE 0x01 + +/* Authentication Type Code */ +# define SSL2_AT_MD5_WITH_RSA_ENCRYPTION 0x01 + +# define SSL2_MAX_SSL_SESSION_ID_LENGTH 32 + +/* Upper/Lower Bounds */ +# define SSL2_MAX_MASTER_KEY_LENGTH_IN_BITS 256 +# ifdef OPENSSL_SYS_MPE +# define SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER 29998u +# else +# define SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER 32767u + /* 2^15-1 */ +# endif +# define SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER 16383/* 2^14-1 */ + +# define SSL2_CHALLENGE_LENGTH 16 +/* + * #define SSL2_CHALLENGE_LENGTH 32 + */ +# define SSL2_MIN_CHALLENGE_LENGTH 16 +# define SSL2_MAX_CHALLENGE_LENGTH 32 +# define SSL2_CONNECTION_ID_LENGTH 16 +# define SSL2_MAX_CONNECTION_ID_LENGTH 16 +# define SSL2_SSL_SESSION_ID_LENGTH 16 +# define SSL2_MAX_CERT_CHALLENGE_LENGTH 32 +# define SSL2_MIN_CERT_CHALLENGE_LENGTH 16 +# define SSL2_MAX_KEY_MATERIAL_LENGTH 24 + +# ifndef HEADER_SSL_LOCL_H +# define CERT char +# endif + +# ifndef OPENSSL_NO_SSL_INTERN + +typedef struct ssl2_state_st { + int three_byte_header; + int clear_text; /* clear text */ + int escape; /* not used in SSLv2 */ + int ssl2_rollback; /* used if SSLv23 rolled back to SSLv2 */ + /* + * non-blocking io info, used to make sure the same args were passwd + */ + unsigned int wnum; /* number of bytes sent so far */ + int wpend_tot; + const unsigned char *wpend_buf; + int wpend_off; /* offset to data to write */ + int wpend_len; /* number of bytes passwd to write */ + int wpend_ret; /* number of bytes to return to caller */ + /* buffer raw data */ + int rbuf_left; + int rbuf_offs; + unsigned char *rbuf; + unsigned char *wbuf; + unsigned char *write_ptr; /* used to point to the start due to 2/3 byte + * header. */ + unsigned int padding; + unsigned int rlength; /* passed to ssl2_enc */ + int ract_data_length; /* Set when things are encrypted. */ + unsigned int wlength; /* passed to ssl2_enc */ + int wact_data_length; /* Set when things are decrypted. */ + unsigned char *ract_data; + unsigned char *wact_data; + unsigned char *mac_data; + unsigned char *read_key; + unsigned char *write_key; + /* Stuff specifically to do with this SSL session */ + unsigned int challenge_length; + unsigned char challenge[SSL2_MAX_CHALLENGE_LENGTH]; + unsigned int conn_id_length; + unsigned char conn_id[SSL2_MAX_CONNECTION_ID_LENGTH]; + unsigned int key_material_length; + unsigned char key_material[SSL2_MAX_KEY_MATERIAL_LENGTH * 2]; + unsigned long read_sequence; + unsigned long write_sequence; + struct { + unsigned int conn_id_length; + unsigned int cert_type; + unsigned int cert_length; + unsigned int csl; + unsigned int clear; + unsigned int enc; + unsigned char ccl[SSL2_MAX_CERT_CHALLENGE_LENGTH]; + unsigned int cipher_spec_length; + unsigned int session_id_length; + unsigned int clen; + unsigned int rlen; + } tmp; +} SSL2_STATE; + +# endif + +/* SSLv2 */ +/* client */ +# define SSL2_ST_SEND_CLIENT_HELLO_A (0x10|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_HELLO_B (0x11|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_HELLO_A (0x20|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_HELLO_B (0x21|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_MASTER_KEY_A (0x30|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_MASTER_KEY_B (0x31|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_FINISHED_A (0x40|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_FINISHED_B (0x41|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_CERTIFICATE_A (0x50|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_CERTIFICATE_B (0x51|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_CERTIFICATE_C (0x52|SSL_ST_CONNECT) +# define SSL2_ST_SEND_CLIENT_CERTIFICATE_D (0x53|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_VERIFY_A (0x60|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_VERIFY_B (0x61|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_FINISHED_A (0x70|SSL_ST_CONNECT) +# define SSL2_ST_GET_SERVER_FINISHED_B (0x71|SSL_ST_CONNECT) +# define SSL2_ST_CLIENT_START_ENCRYPTION (0x80|SSL_ST_CONNECT) +# define SSL2_ST_X509_GET_CLIENT_CERTIFICATE (0x90|SSL_ST_CONNECT) +/* server */ +# define SSL2_ST_GET_CLIENT_HELLO_A (0x10|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_HELLO_B (0x11|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_HELLO_C (0x12|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_HELLO_A (0x20|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_HELLO_B (0x21|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_MASTER_KEY_A (0x30|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_MASTER_KEY_B (0x31|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_VERIFY_A (0x40|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_VERIFY_B (0x41|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_VERIFY_C (0x42|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_FINISHED_A (0x50|SSL_ST_ACCEPT) +# define SSL2_ST_GET_CLIENT_FINISHED_B (0x51|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_FINISHED_A (0x60|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_SERVER_FINISHED_B (0x61|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_REQUEST_CERTIFICATE_A (0x70|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_REQUEST_CERTIFICATE_B (0x71|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_REQUEST_CERTIFICATE_C (0x72|SSL_ST_ACCEPT) +# define SSL2_ST_SEND_REQUEST_CERTIFICATE_D (0x73|SSL_ST_ACCEPT) +# define SSL2_ST_SERVER_START_ENCRYPTION (0x80|SSL_ST_ACCEPT) +# define SSL2_ST_X509_GET_SERVER_CERTIFICATE (0x90|SSL_ST_ACCEPT) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/ssl23.h b/External/include64/openssl/ssl23.h new file mode 100644 index 00000000..9de4685a --- /dev/null +++ b/External/include64/openssl/ssl23.h @@ -0,0 +1,84 @@ +/* ssl/ssl23.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_SSL23_H +# define HEADER_SSL23_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * client + */ +/* write to server */ +# define SSL23_ST_CW_CLNT_HELLO_A (0x210|SSL_ST_CONNECT) +# define SSL23_ST_CW_CLNT_HELLO_B (0x211|SSL_ST_CONNECT) +/* read from server */ +# define SSL23_ST_CR_SRVR_HELLO_A (0x220|SSL_ST_CONNECT) +# define SSL23_ST_CR_SRVR_HELLO_B (0x221|SSL_ST_CONNECT) + +/* server */ +/* read from client */ +# define SSL23_ST_SR_CLNT_HELLO_A (0x210|SSL_ST_ACCEPT) +# define SSL23_ST_SR_CLNT_HELLO_B (0x211|SSL_ST_ACCEPT) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/ssl3.h b/External/include64/openssl/ssl3.h new file mode 100644 index 00000000..e681d50a --- /dev/null +++ b/External/include64/openssl/ssl3.h @@ -0,0 +1,774 @@ +/* ssl/ssl3.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2002 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * ECC cipher suite support in OpenSSL originally developed by + * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. + */ + +#ifndef HEADER_SSL3_H +# define HEADER_SSL3_H + +# ifndef OPENSSL_NO_COMP +# include +# endif +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Signalling cipher suite value from RFC 5746 + * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV) + */ +# define SSL3_CK_SCSV 0x030000FF + +/* + * Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00 + * (TLS_FALLBACK_SCSV) + */ +# define SSL3_CK_FALLBACK_SCSV 0x03005600 + +# define SSL3_CK_RSA_NULL_MD5 0x03000001 +# define SSL3_CK_RSA_NULL_SHA 0x03000002 +# define SSL3_CK_RSA_RC4_40_MD5 0x03000003 +# define SSL3_CK_RSA_RC4_128_MD5 0x03000004 +# define SSL3_CK_RSA_RC4_128_SHA 0x03000005 +# define SSL3_CK_RSA_RC2_40_MD5 0x03000006 +# define SSL3_CK_RSA_IDEA_128_SHA 0x03000007 +# define SSL3_CK_RSA_DES_40_CBC_SHA 0x03000008 +# define SSL3_CK_RSA_DES_64_CBC_SHA 0x03000009 +# define SSL3_CK_RSA_DES_192_CBC3_SHA 0x0300000A + +# define SSL3_CK_DH_DSS_DES_40_CBC_SHA 0x0300000B +# define SSL3_CK_DH_DSS_DES_64_CBC_SHA 0x0300000C +# define SSL3_CK_DH_DSS_DES_192_CBC3_SHA 0x0300000D +# define SSL3_CK_DH_RSA_DES_40_CBC_SHA 0x0300000E +# define SSL3_CK_DH_RSA_DES_64_CBC_SHA 0x0300000F +# define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 + +# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA 0x03000011 +# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA SSL3_CK_EDH_DSS_DES_40_CBC_SHA +# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA 0x03000012 +# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA SSL3_CK_EDH_DSS_DES_64_CBC_SHA +# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA 0x03000013 +# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA SSL3_CK_EDH_DSS_DES_192_CBC3_SHA +# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA 0x03000014 +# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA SSL3_CK_EDH_RSA_DES_40_CBC_SHA +# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA 0x03000015 +# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA SSL3_CK_EDH_RSA_DES_64_CBC_SHA +# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA 0x03000016 +# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA SSL3_CK_EDH_RSA_DES_192_CBC3_SHA + +# define SSL3_CK_ADH_RC4_40_MD5 0x03000017 +# define SSL3_CK_ADH_RC4_128_MD5 0x03000018 +# define SSL3_CK_ADH_DES_40_CBC_SHA 0x03000019 +# define SSL3_CK_ADH_DES_64_CBC_SHA 0x0300001A +# define SSL3_CK_ADH_DES_192_CBC_SHA 0x0300001B + +# if 0 +# define SSL3_CK_FZA_DMS_NULL_SHA 0x0300001C +# define SSL3_CK_FZA_DMS_FZA_SHA 0x0300001D +# if 0 /* Because it clashes with KRB5, is never + * used any more, and is safe to remove + * according to David Hopwood + * of the + * ietf-tls list */ +# define SSL3_CK_FZA_DMS_RC4_SHA 0x0300001E +# endif +# endif + +/* + * VRS Additional Kerberos5 entries + */ +# define SSL3_CK_KRB5_DES_64_CBC_SHA 0x0300001E +# define SSL3_CK_KRB5_DES_192_CBC3_SHA 0x0300001F +# define SSL3_CK_KRB5_RC4_128_SHA 0x03000020 +# define SSL3_CK_KRB5_IDEA_128_CBC_SHA 0x03000021 +# define SSL3_CK_KRB5_DES_64_CBC_MD5 0x03000022 +# define SSL3_CK_KRB5_DES_192_CBC3_MD5 0x03000023 +# define SSL3_CK_KRB5_RC4_128_MD5 0x03000024 +# define SSL3_CK_KRB5_IDEA_128_CBC_MD5 0x03000025 + +# define SSL3_CK_KRB5_DES_40_CBC_SHA 0x03000026 +# define SSL3_CK_KRB5_RC2_40_CBC_SHA 0x03000027 +# define SSL3_CK_KRB5_RC4_40_SHA 0x03000028 +# define SSL3_CK_KRB5_DES_40_CBC_MD5 0x03000029 +# define SSL3_CK_KRB5_RC2_40_CBC_MD5 0x0300002A +# define SSL3_CK_KRB5_RC4_40_MD5 0x0300002B + +# define SSL3_TXT_RSA_NULL_MD5 "NULL-MD5" +# define SSL3_TXT_RSA_NULL_SHA "NULL-SHA" +# define SSL3_TXT_RSA_RC4_40_MD5 "EXP-RC4-MD5" +# define SSL3_TXT_RSA_RC4_128_MD5 "RC4-MD5" +# define SSL3_TXT_RSA_RC4_128_SHA "RC4-SHA" +# define SSL3_TXT_RSA_RC2_40_MD5 "EXP-RC2-CBC-MD5" +# define SSL3_TXT_RSA_IDEA_128_SHA "IDEA-CBC-SHA" +# define SSL3_TXT_RSA_DES_40_CBC_SHA "EXP-DES-CBC-SHA" +# define SSL3_TXT_RSA_DES_64_CBC_SHA "DES-CBC-SHA" +# define SSL3_TXT_RSA_DES_192_CBC3_SHA "DES-CBC3-SHA" + +# define SSL3_TXT_DH_DSS_DES_40_CBC_SHA "EXP-DH-DSS-DES-CBC-SHA" +# define SSL3_TXT_DH_DSS_DES_64_CBC_SHA "DH-DSS-DES-CBC-SHA" +# define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA "DH-DSS-DES-CBC3-SHA" +# define SSL3_TXT_DH_RSA_DES_40_CBC_SHA "EXP-DH-RSA-DES-CBC-SHA" +# define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" +# define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" + +# define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA "EXP-DHE-DSS-DES-CBC-SHA" +# define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA "DHE-DSS-DES-CBC-SHA" +# define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA "DHE-DSS-DES-CBC3-SHA" +# define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA "EXP-DHE-RSA-DES-CBC-SHA" +# define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA "DHE-RSA-DES-CBC-SHA" +# define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA "DHE-RSA-DES-CBC3-SHA" + +/* + * This next block of six "EDH" labels is for backward compatibility with + * older versions of OpenSSL. New code should use the six "DHE" labels above + * instead: + */ +# define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" +# define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" +# define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" +# define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA "EXP-EDH-RSA-DES-CBC-SHA" +# define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA "EDH-RSA-DES-CBC-SHA" +# define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA "EDH-RSA-DES-CBC3-SHA" + +# define SSL3_TXT_ADH_RC4_40_MD5 "EXP-ADH-RC4-MD5" +# define SSL3_TXT_ADH_RC4_128_MD5 "ADH-RC4-MD5" +# define SSL3_TXT_ADH_DES_40_CBC_SHA "EXP-ADH-DES-CBC-SHA" +# define SSL3_TXT_ADH_DES_64_CBC_SHA "ADH-DES-CBC-SHA" +# define SSL3_TXT_ADH_DES_192_CBC_SHA "ADH-DES-CBC3-SHA" + +# if 0 +# define SSL3_TXT_FZA_DMS_NULL_SHA "FZA-NULL-SHA" +# define SSL3_TXT_FZA_DMS_FZA_SHA "FZA-FZA-CBC-SHA" +# define SSL3_TXT_FZA_DMS_RC4_SHA "FZA-RC4-SHA" +# endif + +# define SSL3_TXT_KRB5_DES_64_CBC_SHA "KRB5-DES-CBC-SHA" +# define SSL3_TXT_KRB5_DES_192_CBC3_SHA "KRB5-DES-CBC3-SHA" +# define SSL3_TXT_KRB5_RC4_128_SHA "KRB5-RC4-SHA" +# define SSL3_TXT_KRB5_IDEA_128_CBC_SHA "KRB5-IDEA-CBC-SHA" +# define SSL3_TXT_KRB5_DES_64_CBC_MD5 "KRB5-DES-CBC-MD5" +# define SSL3_TXT_KRB5_DES_192_CBC3_MD5 "KRB5-DES-CBC3-MD5" +# define SSL3_TXT_KRB5_RC4_128_MD5 "KRB5-RC4-MD5" +# define SSL3_TXT_KRB5_IDEA_128_CBC_MD5 "KRB5-IDEA-CBC-MD5" + +# define SSL3_TXT_KRB5_DES_40_CBC_SHA "EXP-KRB5-DES-CBC-SHA" +# define SSL3_TXT_KRB5_RC2_40_CBC_SHA "EXP-KRB5-RC2-CBC-SHA" +# define SSL3_TXT_KRB5_RC4_40_SHA "EXP-KRB5-RC4-SHA" +# define SSL3_TXT_KRB5_DES_40_CBC_MD5 "EXP-KRB5-DES-CBC-MD5" +# define SSL3_TXT_KRB5_RC2_40_CBC_MD5 "EXP-KRB5-RC2-CBC-MD5" +# define SSL3_TXT_KRB5_RC4_40_MD5 "EXP-KRB5-RC4-MD5" + +# define SSL3_SSL_SESSION_ID_LENGTH 32 +# define SSL3_MAX_SSL_SESSION_ID_LENGTH 32 + +# define SSL3_MASTER_SECRET_SIZE 48 +# define SSL3_RANDOM_SIZE 32 +# define SSL3_SESSION_ID_SIZE 32 +# define SSL3_RT_HEADER_LENGTH 5 + +# define SSL3_HM_HEADER_LENGTH 4 + +# ifndef SSL3_ALIGN_PAYLOAD + /* + * Some will argue that this increases memory footprint, but it's not + * actually true. Point is that malloc has to return at least 64-bit aligned + * pointers, meaning that allocating 5 bytes wastes 3 bytes in either case. + * Suggested pre-gaping simply moves these wasted bytes from the end of + * allocated region to its front, but makes data payload aligned, which + * improves performance:-) + */ +# define SSL3_ALIGN_PAYLOAD 8 +# else +# if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0 +# error "insane SSL3_ALIGN_PAYLOAD" +# undef SSL3_ALIGN_PAYLOAD +# endif +# endif + +/* + * This is the maximum MAC (digest) size used by the SSL library. Currently + * maximum of 20 is used by SHA1, but we reserve for future extension for + * 512-bit hashes. + */ + +# define SSL3_RT_MAX_MD_SIZE 64 + +/* + * Maximum block size used in all ciphersuites. Currently 16 for AES. + */ + +# define SSL_RT_MAX_CIPHER_BLOCK_SIZE 16 + +# define SSL3_RT_MAX_EXTRA (16384) + +/* Maximum plaintext length: defined by SSL/TLS standards */ +# define SSL3_RT_MAX_PLAIN_LENGTH 16384 +/* Maximum compression overhead: defined by SSL/TLS standards */ +# define SSL3_RT_MAX_COMPRESSED_OVERHEAD 1024 + +/* + * The standards give a maximum encryption overhead of 1024 bytes. In + * practice the value is lower than this. The overhead is the maximum number + * of padding bytes (256) plus the mac size. + */ +# define SSL3_RT_MAX_ENCRYPTED_OVERHEAD (256 + SSL3_RT_MAX_MD_SIZE) + +/* + * OpenSSL currently only uses a padding length of at most one block so the + * send overhead is smaller. + */ + +# define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \ + (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE) + +/* If compression isn't used don't include the compression overhead */ + +# ifdef OPENSSL_NO_COMP +# define SSL3_RT_MAX_COMPRESSED_LENGTH SSL3_RT_MAX_PLAIN_LENGTH +# else +# define SSL3_RT_MAX_COMPRESSED_LENGTH \ + (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD) +# endif +# define SSL3_RT_MAX_ENCRYPTED_LENGTH \ + (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH) +# define SSL3_RT_MAX_PACKET_SIZE \ + (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH) + +# define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" +# define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" + +# define SSL3_VERSION 0x0300 +# define SSL3_VERSION_MAJOR 0x03 +# define SSL3_VERSION_MINOR 0x00 + +# define SSL3_RT_CHANGE_CIPHER_SPEC 20 +# define SSL3_RT_ALERT 21 +# define SSL3_RT_HANDSHAKE 22 +# define SSL3_RT_APPLICATION_DATA 23 +# define TLS1_RT_HEARTBEAT 24 + +/* Pseudo content types to indicate additional parameters */ +# define TLS1_RT_CRYPTO 0x1000 +# define TLS1_RT_CRYPTO_PREMASTER (TLS1_RT_CRYPTO | 0x1) +# define TLS1_RT_CRYPTO_CLIENT_RANDOM (TLS1_RT_CRYPTO | 0x2) +# define TLS1_RT_CRYPTO_SERVER_RANDOM (TLS1_RT_CRYPTO | 0x3) +# define TLS1_RT_CRYPTO_MASTER (TLS1_RT_CRYPTO | 0x4) + +# define TLS1_RT_CRYPTO_READ 0x0000 +# define TLS1_RT_CRYPTO_WRITE 0x0100 +# define TLS1_RT_CRYPTO_MAC (TLS1_RT_CRYPTO | 0x5) +# define TLS1_RT_CRYPTO_KEY (TLS1_RT_CRYPTO | 0x6) +# define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) +# define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) + +/* Pseudo content type for SSL/TLS header info */ +# define SSL3_RT_HEADER 0x100 + +# define SSL3_AL_WARNING 1 +# define SSL3_AL_FATAL 2 + +# define SSL3_AD_CLOSE_NOTIFY 0 +# define SSL3_AD_UNEXPECTED_MESSAGE 10/* fatal */ +# define SSL3_AD_BAD_RECORD_MAC 20/* fatal */ +# define SSL3_AD_DECOMPRESSION_FAILURE 30/* fatal */ +# define SSL3_AD_HANDSHAKE_FAILURE 40/* fatal */ +# define SSL3_AD_NO_CERTIFICATE 41 +# define SSL3_AD_BAD_CERTIFICATE 42 +# define SSL3_AD_UNSUPPORTED_CERTIFICATE 43 +# define SSL3_AD_CERTIFICATE_REVOKED 44 +# define SSL3_AD_CERTIFICATE_EXPIRED 45 +# define SSL3_AD_CERTIFICATE_UNKNOWN 46 +# define SSL3_AD_ILLEGAL_PARAMETER 47/* fatal */ + +# define TLS1_HB_REQUEST 1 +# define TLS1_HB_RESPONSE 2 + +# ifndef OPENSSL_NO_SSL_INTERN + +typedef struct ssl3_record_st { + /* type of record */ + /* + * r + */ int type; + /* How many bytes available */ + /* + * rw + */ unsigned int length; + /* read/write offset into 'buf' */ + /* + * r + */ unsigned int off; + /* pointer to the record data */ + /* + * rw + */ unsigned char *data; + /* where the decode bytes are */ + /* + * rw + */ unsigned char *input; + /* only used with decompression - malloc()ed */ + /* + * r + */ unsigned char *comp; + /* epoch number, needed by DTLS1 */ + /* + * r + */ unsigned long epoch; + /* sequence number, needed by DTLS1 */ + /* + * r + */ unsigned char seq_num[8]; +} SSL3_RECORD; + +typedef struct ssl3_buffer_st { + /* at least SSL3_RT_MAX_PACKET_SIZE bytes, see ssl3_setup_buffers() */ + unsigned char *buf; + /* buffer size */ + size_t len; + /* where to 'copy from' */ + int offset; + /* how many bytes left */ + int left; +} SSL3_BUFFER; + +# endif + +# define SSL3_CT_RSA_SIGN 1 +# define SSL3_CT_DSS_SIGN 2 +# define SSL3_CT_RSA_FIXED_DH 3 +# define SSL3_CT_DSS_FIXED_DH 4 +# define SSL3_CT_RSA_EPHEMERAL_DH 5 +# define SSL3_CT_DSS_EPHEMERAL_DH 6 +# define SSL3_CT_FORTEZZA_DMS 20 +/* + * SSL3_CT_NUMBER is used to size arrays and it must be large enough to + * contain all of the cert types defined either for SSLv3 and TLSv1. + */ +# define SSL3_CT_NUMBER 9 + +# define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 +# define SSL3_FLAGS_DELAY_CLIENT_FINISHED 0x0002 +# define SSL3_FLAGS_POP_BUFFER 0x0004 +# define TLS1_FLAGS_TLS_PADDING_BUG 0x0008 +# define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 +# define TLS1_FLAGS_KEEP_HANDSHAKE 0x0020 +/* + * Set when the handshake is ready to process peer's ChangeCipherSpec message. + * Cleared after the message has been processed. + */ +# define SSL3_FLAGS_CCS_OK 0x0080 + +/* SSL3_FLAGS_SGC_RESTART_DONE is no longer used */ +# define SSL3_FLAGS_SGC_RESTART_DONE 0x0040 + +# ifndef OPENSSL_NO_SSL_INTERN + +typedef struct ssl3_state_st { + long flags; + int delay_buf_pop_ret; + unsigned char read_sequence[8]; + int read_mac_secret_size; + unsigned char read_mac_secret[EVP_MAX_MD_SIZE]; + unsigned char write_sequence[8]; + int write_mac_secret_size; + unsigned char write_mac_secret[EVP_MAX_MD_SIZE]; + unsigned char server_random[SSL3_RANDOM_SIZE]; + unsigned char client_random[SSL3_RANDOM_SIZE]; + /* flags for countermeasure against known-IV weakness */ + int need_empty_fragments; + int empty_fragment_done; + /* The value of 'extra' when the buffers were initialized */ + int init_extra; + SSL3_BUFFER rbuf; /* read IO goes into here */ + SSL3_BUFFER wbuf; /* write IO goes into here */ + SSL3_RECORD rrec; /* each decoded record goes in here */ + SSL3_RECORD wrec; /* goes out from here */ + /* + * storage for Alert/Handshake protocol data received but not yet + * processed by ssl3_read_bytes: + */ + unsigned char alert_fragment[2]; + unsigned int alert_fragment_len; + unsigned char handshake_fragment[4]; + unsigned int handshake_fragment_len; + /* partial write - check the numbers match */ + unsigned int wnum; /* number of bytes sent so far */ + int wpend_tot; /* number bytes written */ + int wpend_type; + int wpend_ret; /* number of bytes submitted */ + const unsigned char *wpend_buf; + /* used during startup, digest all incoming/outgoing packets */ + BIO *handshake_buffer; + /* + * When set of handshake digests is determined, buffer is hashed and + * freed and MD_CTX-es for all required digests are stored in this array + */ + EVP_MD_CTX **handshake_dgst; + /* + * Set whenever an expected ChangeCipherSpec message is processed. + * Unset when the peer's Finished message is received. + * Unexpected ChangeCipherSpec messages trigger a fatal alert. + */ + int change_cipher_spec; + int warn_alert; + int fatal_alert; + /* + * we allow one fatal and one warning alert to be outstanding, send close + * alert via the warning alert + */ + int alert_dispatch; + unsigned char send_alert[2]; + /* + * This flag is set when we should renegotiate ASAP, basically when there + * is no more data in the read or write buffers + */ + int renegotiate; + int total_renegotiations; + int num_renegotiations; + int in_read_app_data; + /* + * Opaque PRF input as used for the current handshake. These fields are + * used only if TLSEXT_TYPE_opaque_prf_input is defined (otherwise, they + * are merely present to improve binary compatibility) + */ + void *client_opaque_prf_input; + size_t client_opaque_prf_input_len; + void *server_opaque_prf_input; + size_t server_opaque_prf_input_len; + struct { + /* actually only needs to be 16+20 */ + unsigned char cert_verify_md[EVP_MAX_MD_SIZE * 2]; + /* actually only need to be 16+20 for SSLv3 and 12 for TLS */ + unsigned char finish_md[EVP_MAX_MD_SIZE * 2]; + int finish_md_len; + unsigned char peer_finish_md[EVP_MAX_MD_SIZE * 2]; + int peer_finish_md_len; + unsigned long message_size; + int message_type; + /* used to hold the new cipher we are going to use */ + const SSL_CIPHER *new_cipher; +# ifndef OPENSSL_NO_DH + DH *dh; +# endif +# ifndef OPENSSL_NO_ECDH + EC_KEY *ecdh; /* holds short lived ECDH key */ +# endif + /* used when SSL_ST_FLUSH_DATA is entered */ + int next_state; + int reuse_message; + /* used for certificate requests */ + int cert_req; + int ctype_num; + char ctype[SSL3_CT_NUMBER]; + STACK_OF(X509_NAME) *ca_names; + int use_rsa_tmp; + int key_block_length; + unsigned char *key_block; + const EVP_CIPHER *new_sym_enc; + const EVP_MD *new_hash; + int new_mac_pkey_type; + int new_mac_secret_size; +# ifndef OPENSSL_NO_COMP + const SSL_COMP *new_compression; +# else + char *new_compression; +# endif + int cert_request; + } tmp; + + /* Connection binding to prevent renegotiation attacks */ + unsigned char previous_client_finished[EVP_MAX_MD_SIZE]; + unsigned char previous_client_finished_len; + unsigned char previous_server_finished[EVP_MAX_MD_SIZE]; + unsigned char previous_server_finished_len; + int send_connection_binding; /* TODOEKR */ + +# ifndef OPENSSL_NO_NEXTPROTONEG + /* + * Set if we saw the Next Protocol Negotiation extension from our peer. + */ + int next_proto_neg_seen; +# endif + +# ifndef OPENSSL_NO_TLSEXT +# ifndef OPENSSL_NO_EC + /* + * This is set to true if we believe that this is a version of Safari + * running on OS X 10.6 or newer. We wish to know this because Safari on + * 10.8 .. 10.8.3 has broken ECDHE-ECDSA support. + */ + char is_probably_safari; +# endif /* !OPENSSL_NO_EC */ + + /* + * ALPN information (we are in the process of transitioning from NPN to + * ALPN.) + */ + + /* + * In a server these point to the selected ALPN protocol after the + * ClientHello has been processed. In a client these contain the protocol + * that the server selected once the ServerHello has been processed. + */ + unsigned char *alpn_selected; + unsigned alpn_selected_len; +# endif /* OPENSSL_NO_TLSEXT */ +} SSL3_STATE; + +# endif + +/* SSLv3 */ +/* + * client + */ +/* extra state */ +# define SSL3_ST_CW_FLUSH (0x100|SSL_ST_CONNECT) +# ifndef OPENSSL_NO_SCTP +# define DTLS1_SCTP_ST_CW_WRITE_SOCK (0x310|SSL_ST_CONNECT) +# define DTLS1_SCTP_ST_CR_READ_SOCK (0x320|SSL_ST_CONNECT) +# endif +/* write to server */ +# define SSL3_ST_CW_CLNT_HELLO_A (0x110|SSL_ST_CONNECT) +# define SSL3_ST_CW_CLNT_HELLO_B (0x111|SSL_ST_CONNECT) +/* read from server */ +# define SSL3_ST_CR_SRVR_HELLO_A (0x120|SSL_ST_CONNECT) +# define SSL3_ST_CR_SRVR_HELLO_B (0x121|SSL_ST_CONNECT) +# define DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A (0x126|SSL_ST_CONNECT) +# define DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B (0x127|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_A (0x130|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_B (0x131|SSL_ST_CONNECT) +# define SSL3_ST_CR_KEY_EXCH_A (0x140|SSL_ST_CONNECT) +# define SSL3_ST_CR_KEY_EXCH_B (0x141|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_REQ_A (0x150|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_REQ_B (0x151|SSL_ST_CONNECT) +# define SSL3_ST_CR_SRVR_DONE_A (0x160|SSL_ST_CONNECT) +# define SSL3_ST_CR_SRVR_DONE_B (0x161|SSL_ST_CONNECT) +/* write to server */ +# define SSL3_ST_CW_CERT_A (0x170|SSL_ST_CONNECT) +# define SSL3_ST_CW_CERT_B (0x171|SSL_ST_CONNECT) +# define SSL3_ST_CW_CERT_C (0x172|SSL_ST_CONNECT) +# define SSL3_ST_CW_CERT_D (0x173|SSL_ST_CONNECT) +# define SSL3_ST_CW_KEY_EXCH_A (0x180|SSL_ST_CONNECT) +# define SSL3_ST_CW_KEY_EXCH_B (0x181|SSL_ST_CONNECT) +# define SSL3_ST_CW_CERT_VRFY_A (0x190|SSL_ST_CONNECT) +# define SSL3_ST_CW_CERT_VRFY_B (0x191|SSL_ST_CONNECT) +# define SSL3_ST_CW_CHANGE_A (0x1A0|SSL_ST_CONNECT) +# define SSL3_ST_CW_CHANGE_B (0x1A1|SSL_ST_CONNECT) +# ifndef OPENSSL_NO_NEXTPROTONEG +# define SSL3_ST_CW_NEXT_PROTO_A (0x200|SSL_ST_CONNECT) +# define SSL3_ST_CW_NEXT_PROTO_B (0x201|SSL_ST_CONNECT) +# endif +# define SSL3_ST_CW_FINISHED_A (0x1B0|SSL_ST_CONNECT) +# define SSL3_ST_CW_FINISHED_B (0x1B1|SSL_ST_CONNECT) +/* read from server */ +# define SSL3_ST_CR_CHANGE_A (0x1C0|SSL_ST_CONNECT) +# define SSL3_ST_CR_CHANGE_B (0x1C1|SSL_ST_CONNECT) +# define SSL3_ST_CR_FINISHED_A (0x1D0|SSL_ST_CONNECT) +# define SSL3_ST_CR_FINISHED_B (0x1D1|SSL_ST_CONNECT) +# define SSL3_ST_CR_SESSION_TICKET_A (0x1E0|SSL_ST_CONNECT) +# define SSL3_ST_CR_SESSION_TICKET_B (0x1E1|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_STATUS_A (0x1F0|SSL_ST_CONNECT) +# define SSL3_ST_CR_CERT_STATUS_B (0x1F1|SSL_ST_CONNECT) + +/* server */ +/* extra state */ +# define SSL3_ST_SW_FLUSH (0x100|SSL_ST_ACCEPT) +# ifndef OPENSSL_NO_SCTP +# define DTLS1_SCTP_ST_SW_WRITE_SOCK (0x310|SSL_ST_ACCEPT) +# define DTLS1_SCTP_ST_SR_READ_SOCK (0x320|SSL_ST_ACCEPT) +# endif +/* read from client */ +/* Do not change the number values, they do matter */ +# define SSL3_ST_SR_CLNT_HELLO_A (0x110|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CLNT_HELLO_B (0x111|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CLNT_HELLO_C (0x112|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CLNT_HELLO_D (0x115|SSL_ST_ACCEPT) +/* write to client */ +# define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A (0x113|SSL_ST_ACCEPT) +# define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B (0x114|SSL_ST_ACCEPT) +# define SSL3_ST_SW_HELLO_REQ_A (0x120|SSL_ST_ACCEPT) +# define SSL3_ST_SW_HELLO_REQ_B (0x121|SSL_ST_ACCEPT) +# define SSL3_ST_SW_HELLO_REQ_C (0x122|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SRVR_HELLO_A (0x130|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SRVR_HELLO_B (0x131|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_A (0x140|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_B (0x141|SSL_ST_ACCEPT) +# define SSL3_ST_SW_KEY_EXCH_A (0x150|SSL_ST_ACCEPT) +# define SSL3_ST_SW_KEY_EXCH_B (0x151|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_REQ_A (0x160|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_REQ_B (0x161|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SRVR_DONE_A (0x170|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SRVR_DONE_B (0x171|SSL_ST_ACCEPT) +/* read from client */ +# define SSL3_ST_SR_CERT_A (0x180|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CERT_B (0x181|SSL_ST_ACCEPT) +# define SSL3_ST_SR_KEY_EXCH_A (0x190|SSL_ST_ACCEPT) +# define SSL3_ST_SR_KEY_EXCH_B (0x191|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CERT_VRFY_A (0x1A0|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CERT_VRFY_B (0x1A1|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CHANGE_A (0x1B0|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CHANGE_B (0x1B1|SSL_ST_ACCEPT) +# ifndef OPENSSL_NO_NEXTPROTONEG +# define SSL3_ST_SR_NEXT_PROTO_A (0x210|SSL_ST_ACCEPT) +# define SSL3_ST_SR_NEXT_PROTO_B (0x211|SSL_ST_ACCEPT) +# endif +# define SSL3_ST_SR_FINISHED_A (0x1C0|SSL_ST_ACCEPT) +# define SSL3_ST_SR_FINISHED_B (0x1C1|SSL_ST_ACCEPT) +/* write to client */ +# define SSL3_ST_SW_CHANGE_A (0x1D0|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CHANGE_B (0x1D1|SSL_ST_ACCEPT) +# define SSL3_ST_SW_FINISHED_A (0x1E0|SSL_ST_ACCEPT) +# define SSL3_ST_SW_FINISHED_B (0x1E1|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SESSION_TICKET_A (0x1F0|SSL_ST_ACCEPT) +# define SSL3_ST_SW_SESSION_TICKET_B (0x1F1|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_STATUS_A (0x200|SSL_ST_ACCEPT) +# define SSL3_ST_SW_CERT_STATUS_B (0x201|SSL_ST_ACCEPT) + +# define SSL3_MT_HELLO_REQUEST 0 +# define SSL3_MT_CLIENT_HELLO 1 +# define SSL3_MT_SERVER_HELLO 2 +# define SSL3_MT_NEWSESSION_TICKET 4 +# define SSL3_MT_CERTIFICATE 11 +# define SSL3_MT_SERVER_KEY_EXCHANGE 12 +# define SSL3_MT_CERTIFICATE_REQUEST 13 +# define SSL3_MT_SERVER_DONE 14 +# define SSL3_MT_CERTIFICATE_VERIFY 15 +# define SSL3_MT_CLIENT_KEY_EXCHANGE 16 +# define SSL3_MT_FINISHED 20 +# define SSL3_MT_CERTIFICATE_STATUS 22 +# ifndef OPENSSL_NO_NEXTPROTONEG +# define SSL3_MT_NEXT_PROTO 67 +# endif +# define DTLS1_MT_HELLO_VERIFY_REQUEST 3 + +# define SSL3_MT_CCS 1 + +/* These are used when changing over to a new cipher */ +# define SSL3_CC_READ 0x01 +# define SSL3_CC_WRITE 0x02 +# define SSL3_CC_CLIENT 0x10 +# define SSL3_CC_SERVER 0x20 +# define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE) +# define SSL3_CHANGE_CIPHER_SERVER_READ (SSL3_CC_SERVER|SSL3_CC_READ) +# define SSL3_CHANGE_CIPHER_CLIENT_READ (SSL3_CC_CLIENT|SSL3_CC_READ) +# define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/stack.h b/External/include64/openssl/stack.h new file mode 100644 index 00000000..eb072166 --- /dev/null +++ b/External/include64/openssl/stack.h @@ -0,0 +1,107 @@ +/* crypto/stack/stack.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_STACK_H +# define HEADER_STACK_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct stack_st { + int num; + char **data; + int sorted; + int num_alloc; + int (*comp) (const void *, const void *); +} _STACK; /* Use STACK_OF(...) instead */ + +# define M_sk_num(sk) ((sk) ? (sk)->num:-1) +# define M_sk_value(sk,n) ((sk) ? (sk)->data[n] : NULL) + +int sk_num(const _STACK *); +void *sk_value(const _STACK *, int); + +void *sk_set(_STACK *, int, void *); + +_STACK *sk_new(int (*cmp) (const void *, const void *)); +_STACK *sk_new_null(void); +void sk_free(_STACK *); +void sk_pop_free(_STACK *st, void (*func) (void *)); +_STACK *sk_deep_copy(_STACK *, void *(*)(void *), void (*)(void *)); +int sk_insert(_STACK *sk, void *data, int where); +void *sk_delete(_STACK *st, int loc); +void *sk_delete_ptr(_STACK *st, void *p); +int sk_find(_STACK *st, void *data); +int sk_find_ex(_STACK *st, void *data); +int sk_push(_STACK *st, void *data); +int sk_unshift(_STACK *st, void *data); +void *sk_shift(_STACK *st); +void *sk_pop(_STACK *st); +void sk_zero(_STACK *st); +int (*sk_set_cmp_func(_STACK *sk, int (*c) (const void *, const void *))) + (const void *, const void *); +_STACK *sk_dup(_STACK *st); +void sk_sort(_STACK *st); +int sk_is_sorted(const _STACK *st); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/symhacks.h b/External/include64/openssl/symhacks.h new file mode 100644 index 00000000..239fa4fb --- /dev/null +++ b/External/include64/openssl/symhacks.h @@ -0,0 +1,516 @@ +/* ==================================================================== + * Copyright (c) 1999 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_SYMHACKS_H +# define HEADER_SYMHACKS_H + +# include + +/* + * Hacks to solve the problem with linkers incapable of handling very long + * symbol names. In the case of VMS, the limit is 31 characters on VMS for + * VAX. + */ +/* + * Note that this affects util/libeay.num and util/ssleay.num... you may + * change those manually, but that's not recommended, as those files are + * controlled centrally and updated on Unix, and the central definition may + * disagree with yours, which in turn may come with shareable library + * incompatibilities. + */ +# ifdef OPENSSL_SYS_VMS + +/* Hack a long name in crypto/ex_data.c */ +# undef CRYPTO_get_ex_data_implementation +# define CRYPTO_get_ex_data_implementation CRYPTO_get_ex_data_impl +# undef CRYPTO_set_ex_data_implementation +# define CRYPTO_set_ex_data_implementation CRYPTO_set_ex_data_impl + +/* Hack a long name in crypto/asn1/a_mbstr.c */ +# undef ASN1_STRING_set_default_mask_asc +# define ASN1_STRING_set_default_mask_asc ASN1_STRING_set_def_mask_asc + +# if 0 /* No longer needed, since safestack macro + * magic does the job */ +/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) */ +# undef i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO +# define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO i2d_ASN1_SET_OF_PKCS7_SIGINF +# undef d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO +# define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO d2i_ASN1_SET_OF_PKCS7_SIGINF +# endif + +# if 0 /* No longer needed, since safestack macro + * magic does the job */ +/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) */ +# undef i2d_ASN1_SET_OF_PKCS7_RECIP_INFO +# define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO i2d_ASN1_SET_OF_PKCS7_RECINF +# undef d2i_ASN1_SET_OF_PKCS7_RECIP_INFO +# define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO d2i_ASN1_SET_OF_PKCS7_RECINF +# endif + +# if 0 /* No longer needed, since safestack macro + * magic does the job */ +/* Hack the names created with DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION) */ +# undef i2d_ASN1_SET_OF_ACCESS_DESCRIPTION +# define i2d_ASN1_SET_OF_ACCESS_DESCRIPTION i2d_ASN1_SET_OF_ACC_DESC +# undef d2i_ASN1_SET_OF_ACCESS_DESCRIPTION +# define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION d2i_ASN1_SET_OF_ACC_DESC +# endif + +/* Hack the names created with DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE) */ +# undef PEM_read_NETSCAPE_CERT_SEQUENCE +# define PEM_read_NETSCAPE_CERT_SEQUENCE PEM_read_NS_CERT_SEQ +# undef PEM_write_NETSCAPE_CERT_SEQUENCE +# define PEM_write_NETSCAPE_CERT_SEQUENCE PEM_write_NS_CERT_SEQ +# undef PEM_read_bio_NETSCAPE_CERT_SEQUENCE +# define PEM_read_bio_NETSCAPE_CERT_SEQUENCE PEM_read_bio_NS_CERT_SEQ +# undef PEM_write_bio_NETSCAPE_CERT_SEQUENCE +# define PEM_write_bio_NETSCAPE_CERT_SEQUENCE PEM_write_bio_NS_CERT_SEQ +# undef PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE +# define PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE PEM_write_cb_bio_NS_CERT_SEQ + +/* Hack the names created with DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO) */ +# undef PEM_read_PKCS8_PRIV_KEY_INFO +# define PEM_read_PKCS8_PRIV_KEY_INFO PEM_read_P8_PRIV_KEY_INFO +# undef PEM_write_PKCS8_PRIV_KEY_INFO +# define PEM_write_PKCS8_PRIV_KEY_INFO PEM_write_P8_PRIV_KEY_INFO +# undef PEM_read_bio_PKCS8_PRIV_KEY_INFO +# define PEM_read_bio_PKCS8_PRIV_KEY_INFO PEM_read_bio_P8_PRIV_KEY_INFO +# undef PEM_write_bio_PKCS8_PRIV_KEY_INFO +# define PEM_write_bio_PKCS8_PRIV_KEY_INFO PEM_write_bio_P8_PRIV_KEY_INFO +# undef PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO +# define PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO PEM_wrt_cb_bio_P8_PRIV_KEY_INFO + +/* Hack other PEM names */ +# undef PEM_write_bio_PKCS8PrivateKey_nid +# define PEM_write_bio_PKCS8PrivateKey_nid PEM_write_bio_PKCS8PrivKey_nid + +/* Hack some long X509 names */ +# undef X509_REVOKED_get_ext_by_critical +# define X509_REVOKED_get_ext_by_critical X509_REVOKED_get_ext_by_critic +# undef X509_policy_tree_get0_user_policies +# define X509_policy_tree_get0_user_policies X509_pcy_tree_get0_usr_policies +# undef X509_policy_node_get0_qualifiers +# define X509_policy_node_get0_qualifiers X509_pcy_node_get0_qualifiers +# undef X509_STORE_CTX_get_explicit_policy +# define X509_STORE_CTX_get_explicit_policy X509_STORE_CTX_get_expl_policy +# undef X509_STORE_CTX_get0_current_issuer +# define X509_STORE_CTX_get0_current_issuer X509_STORE_CTX_get0_cur_issuer + +/* Hack some long CRYPTO names */ +# undef CRYPTO_set_dynlock_destroy_callback +# define CRYPTO_set_dynlock_destroy_callback CRYPTO_set_dynlock_destroy_cb +# undef CRYPTO_set_dynlock_create_callback +# define CRYPTO_set_dynlock_create_callback CRYPTO_set_dynlock_create_cb +# undef CRYPTO_set_dynlock_lock_callback +# define CRYPTO_set_dynlock_lock_callback CRYPTO_set_dynlock_lock_cb +# undef CRYPTO_get_dynlock_lock_callback +# define CRYPTO_get_dynlock_lock_callback CRYPTO_get_dynlock_lock_cb +# undef CRYPTO_get_dynlock_destroy_callback +# define CRYPTO_get_dynlock_destroy_callback CRYPTO_get_dynlock_destroy_cb +# undef CRYPTO_get_dynlock_create_callback +# define CRYPTO_get_dynlock_create_callback CRYPTO_get_dynlock_create_cb +# undef CRYPTO_set_locked_mem_ex_functions +# define CRYPTO_set_locked_mem_ex_functions CRYPTO_set_locked_mem_ex_funcs +# undef CRYPTO_get_locked_mem_ex_functions +# define CRYPTO_get_locked_mem_ex_functions CRYPTO_get_locked_mem_ex_funcs + +/* Hack some long SSL/TLS names */ +# undef SSL_CTX_set_default_verify_paths +# define SSL_CTX_set_default_verify_paths SSL_CTX_set_def_verify_paths +# undef SSL_get_ex_data_X509_STORE_CTX_idx +# define SSL_get_ex_data_X509_STORE_CTX_idx SSL_get_ex_d_X509_STORE_CTX_idx +# undef SSL_add_file_cert_subjects_to_stack +# define SSL_add_file_cert_subjects_to_stack SSL_add_file_cert_subjs_to_stk +# undef SSL_add_dir_cert_subjects_to_stack +# define SSL_add_dir_cert_subjects_to_stack SSL_add_dir_cert_subjs_to_stk +# undef SSL_CTX_use_certificate_chain_file +# define SSL_CTX_use_certificate_chain_file SSL_CTX_use_cert_chain_file +# undef SSL_CTX_set_cert_verify_callback +# define SSL_CTX_set_cert_verify_callback SSL_CTX_set_cert_verify_cb +# undef SSL_CTX_set_default_passwd_cb_userdata +# define SSL_CTX_set_default_passwd_cb_userdata SSL_CTX_set_def_passwd_cb_ud +# undef SSL_COMP_get_compression_methods +# define SSL_COMP_get_compression_methods SSL_COMP_get_compress_methods +# undef SSL_COMP_set0_compression_methods +# define SSL_COMP_set0_compression_methods SSL_COMP_set0_compress_methods +# undef SSL_COMP_free_compression_methods +# define SSL_COMP_free_compression_methods SSL_COMP_free_compress_methods +# undef ssl_add_clienthello_renegotiate_ext +# define ssl_add_clienthello_renegotiate_ext ssl_add_clienthello_reneg_ext +# undef ssl_add_serverhello_renegotiate_ext +# define ssl_add_serverhello_renegotiate_ext ssl_add_serverhello_reneg_ext +# undef ssl_parse_clienthello_renegotiate_ext +# define ssl_parse_clienthello_renegotiate_ext ssl_parse_clienthello_reneg_ext +# undef ssl_parse_serverhello_renegotiate_ext +# define ssl_parse_serverhello_renegotiate_ext ssl_parse_serverhello_reneg_ext +# undef SSL_srp_server_param_with_username +# define SSL_srp_server_param_with_username SSL_srp_server_param_with_un +# undef SSL_CTX_set_srp_client_pwd_callback +# define SSL_CTX_set_srp_client_pwd_callback SSL_CTX_set_srp_client_pwd_cb +# undef SSL_CTX_set_srp_verify_param_callback +# define SSL_CTX_set_srp_verify_param_callback SSL_CTX_set_srp_vfy_param_cb +# undef SSL_CTX_set_srp_username_callback +# define SSL_CTX_set_srp_username_callback SSL_CTX_set_srp_un_cb +# undef ssl_add_clienthello_use_srtp_ext +# define ssl_add_clienthello_use_srtp_ext ssl_add_clihello_use_srtp_ext +# undef ssl_add_serverhello_use_srtp_ext +# define ssl_add_serverhello_use_srtp_ext ssl_add_serhello_use_srtp_ext +# undef ssl_parse_clienthello_use_srtp_ext +# define ssl_parse_clienthello_use_srtp_ext ssl_parse_clihello_use_srtp_ext +# undef ssl_parse_serverhello_use_srtp_ext +# define ssl_parse_serverhello_use_srtp_ext ssl_parse_serhello_use_srtp_ext +# undef SSL_CTX_set_next_protos_advertised_cb +# define SSL_CTX_set_next_protos_advertised_cb SSL_CTX_set_next_protos_adv_cb +# undef SSL_CTX_set_next_proto_select_cb +# define SSL_CTX_set_next_proto_select_cb SSL_CTX_set_next_proto_sel_cb + +# undef tls1_send_server_supplemental_data +# define tls1_send_server_supplemental_data tls1_send_server_suppl_data +# undef tls1_send_client_supplemental_data +# define tls1_send_client_supplemental_data tls1_send_client_suppl_data +# undef tls1_get_server_supplemental_data +# define tls1_get_server_supplemental_data tls1_get_server_suppl_data +# undef tls1_get_client_supplemental_data +# define tls1_get_client_supplemental_data tls1_get_client_suppl_data + +# undef ssl3_cbc_record_digest_supported +# define ssl3_cbc_record_digest_supported ssl3_cbc_record_digest_support +# undef ssl_check_clienthello_tlsext_late +# define ssl_check_clienthello_tlsext_late ssl_check_clihello_tlsext_late +# undef ssl_check_clienthello_tlsext_early +# define ssl_check_clienthello_tlsext_early ssl_check_clihello_tlsext_early + +/* Hack some RSA long names */ +# undef RSA_padding_check_PKCS1_OAEP_mgf1 +# define RSA_padding_check_PKCS1_OAEP_mgf1 RSA_pad_check_PKCS1_OAEP_mgf1 + +/* Hack some ENGINE long names */ +# undef ENGINE_get_default_BN_mod_exp_crt +# define ENGINE_get_default_BN_mod_exp_crt ENGINE_get_def_BN_mod_exp_crt +# undef ENGINE_set_default_BN_mod_exp_crt +# define ENGINE_set_default_BN_mod_exp_crt ENGINE_set_def_BN_mod_exp_crt +# undef ENGINE_set_load_privkey_function +# define ENGINE_set_load_privkey_function ENGINE_set_load_privkey_fn +# undef ENGINE_get_load_privkey_function +# define ENGINE_get_load_privkey_function ENGINE_get_load_privkey_fn +# undef ENGINE_unregister_pkey_asn1_meths +# define ENGINE_unregister_pkey_asn1_meths ENGINE_unreg_pkey_asn1_meths +# undef ENGINE_register_all_pkey_asn1_meths +# define ENGINE_register_all_pkey_asn1_meths ENGINE_reg_all_pkey_asn1_meths +# undef ENGINE_set_default_pkey_asn1_meths +# define ENGINE_set_default_pkey_asn1_meths ENGINE_set_def_pkey_asn1_meths +# undef ENGINE_get_pkey_asn1_meth_engine +# define ENGINE_get_pkey_asn1_meth_engine ENGINE_get_pkey_asn1_meth_eng +# undef ENGINE_set_load_ssl_client_cert_function +# define ENGINE_set_load_ssl_client_cert_function \ + ENGINE_set_ld_ssl_clnt_cert_fn +# undef ENGINE_get_ssl_client_cert_function +# define ENGINE_get_ssl_client_cert_function ENGINE_get_ssl_client_cert_fn + +/* Hack some long OCSP names */ +# undef OCSP_REQUEST_get_ext_by_critical +# define OCSP_REQUEST_get_ext_by_critical OCSP_REQUEST_get_ext_by_crit +# undef OCSP_BASICRESP_get_ext_by_critical +# define OCSP_BASICRESP_get_ext_by_critical OCSP_BASICRESP_get_ext_by_crit +# undef OCSP_SINGLERESP_get_ext_by_critical +# define OCSP_SINGLERESP_get_ext_by_critical OCSP_SINGLERESP_get_ext_by_crit + +/* Hack some long DES names */ +# undef _ossl_old_des_ede3_cfb64_encrypt +# define _ossl_old_des_ede3_cfb64_encrypt _ossl_odes_ede3_cfb64_encrypt +# undef _ossl_old_des_ede3_ofb64_encrypt +# define _ossl_old_des_ede3_ofb64_encrypt _ossl_odes_ede3_ofb64_encrypt + +/* Hack some long EVP names */ +# undef OPENSSL_add_all_algorithms_noconf +# define OPENSSL_add_all_algorithms_noconf OPENSSL_add_all_algo_noconf +# undef OPENSSL_add_all_algorithms_conf +# define OPENSSL_add_all_algorithms_conf OPENSSL_add_all_algo_conf +# undef EVP_PKEY_meth_set_verify_recover +# define EVP_PKEY_meth_set_verify_recover EVP_PKEY_meth_set_vrfy_recover + +/* Hack some long EC names */ +# undef EC_GROUP_set_point_conversion_form +# define EC_GROUP_set_point_conversion_form EC_GROUP_set_point_conv_form +# undef EC_GROUP_get_point_conversion_form +# define EC_GROUP_get_point_conversion_form EC_GROUP_get_point_conv_form +# undef EC_GROUP_clear_free_all_extra_data +# define EC_GROUP_clear_free_all_extra_data EC_GROUP_clr_free_all_xtra_data +# undef EC_KEY_set_public_key_affine_coordinates +# define EC_KEY_set_public_key_affine_coordinates \ + EC_KEY_set_pub_key_aff_coords +# undef EC_POINT_set_Jprojective_coordinates_GFp +# define EC_POINT_set_Jprojective_coordinates_GFp \ + EC_POINT_set_Jproj_coords_GFp +# undef EC_POINT_get_Jprojective_coordinates_GFp +# define EC_POINT_get_Jprojective_coordinates_GFp \ + EC_POINT_get_Jproj_coords_GFp +# undef EC_POINT_set_affine_coordinates_GFp +# define EC_POINT_set_affine_coordinates_GFp EC_POINT_set_affine_coords_GFp +# undef EC_POINT_get_affine_coordinates_GFp +# define EC_POINT_get_affine_coordinates_GFp EC_POINT_get_affine_coords_GFp +# undef EC_POINT_set_compressed_coordinates_GFp +# define EC_POINT_set_compressed_coordinates_GFp EC_POINT_set_compr_coords_GFp +# undef EC_POINT_set_affine_coordinates_GF2m +# define EC_POINT_set_affine_coordinates_GF2m EC_POINT_set_affine_coords_GF2m +# undef EC_POINT_get_affine_coordinates_GF2m +# define EC_POINT_get_affine_coordinates_GF2m EC_POINT_get_affine_coords_GF2m +# undef EC_POINT_set_compressed_coordinates_GF2m +# define EC_POINT_set_compressed_coordinates_GF2m \ + EC_POINT_set_compr_coords_GF2m +# undef ec_GF2m_simple_group_clear_finish +# define ec_GF2m_simple_group_clear_finish ec_GF2m_simple_grp_clr_finish +# undef ec_GF2m_simple_group_check_discriminant +# define ec_GF2m_simple_group_check_discriminant ec_GF2m_simple_grp_chk_discrim +# undef ec_GF2m_simple_point_clear_finish +# define ec_GF2m_simple_point_clear_finish ec_GF2m_simple_pt_clr_finish +# undef ec_GF2m_simple_point_set_to_infinity +# define ec_GF2m_simple_point_set_to_infinity ec_GF2m_simple_pt_set_to_inf +# undef ec_GF2m_simple_points_make_affine +# define ec_GF2m_simple_points_make_affine ec_GF2m_simple_pts_make_affine +# undef ec_GF2m_simple_point_set_affine_coordinates +# define ec_GF2m_simple_point_set_affine_coordinates \ + ec_GF2m_smp_pt_set_af_coords +# undef ec_GF2m_simple_point_get_affine_coordinates +# define ec_GF2m_simple_point_get_affine_coordinates \ + ec_GF2m_smp_pt_get_af_coords +# undef ec_GF2m_simple_set_compressed_coordinates +# define ec_GF2m_simple_set_compressed_coordinates \ + ec_GF2m_smp_set_compr_coords +# undef ec_GFp_simple_group_set_curve_GFp +# define ec_GFp_simple_group_set_curve_GFp ec_GFp_simple_grp_set_curve_GFp +# undef ec_GFp_simple_group_get_curve_GFp +# define ec_GFp_simple_group_get_curve_GFp ec_GFp_simple_grp_get_curve_GFp +# undef ec_GFp_simple_group_clear_finish +# define ec_GFp_simple_group_clear_finish ec_GFp_simple_grp_clear_finish +# undef ec_GFp_simple_group_set_generator +# define ec_GFp_simple_group_set_generator ec_GFp_simple_grp_set_generator +# undef ec_GFp_simple_group_get0_generator +# define ec_GFp_simple_group_get0_generator ec_GFp_simple_grp_gt0_generator +# undef ec_GFp_simple_group_get_cofactor +# define ec_GFp_simple_group_get_cofactor ec_GFp_simple_grp_get_cofactor +# undef ec_GFp_simple_point_clear_finish +# define ec_GFp_simple_point_clear_finish ec_GFp_simple_pt_clear_finish +# undef ec_GFp_simple_point_set_to_infinity +# define ec_GFp_simple_point_set_to_infinity ec_GFp_simple_pt_set_to_inf +# undef ec_GFp_simple_points_make_affine +# define ec_GFp_simple_points_make_affine ec_GFp_simple_pts_make_affine +# undef ec_GFp_simple_set_Jprojective_coordinates_GFp +# define ec_GFp_simple_set_Jprojective_coordinates_GFp \ + ec_GFp_smp_set_Jproj_coords_GFp +# undef ec_GFp_simple_get_Jprojective_coordinates_GFp +# define ec_GFp_simple_get_Jprojective_coordinates_GFp \ + ec_GFp_smp_get_Jproj_coords_GFp +# undef ec_GFp_simple_point_set_affine_coordinates_GFp +# define ec_GFp_simple_point_set_affine_coordinates_GFp \ + ec_GFp_smp_pt_set_af_coords_GFp +# undef ec_GFp_simple_point_get_affine_coordinates_GFp +# define ec_GFp_simple_point_get_affine_coordinates_GFp \ + ec_GFp_smp_pt_get_af_coords_GFp +# undef ec_GFp_simple_set_compressed_coordinates_GFp +# define ec_GFp_simple_set_compressed_coordinates_GFp \ + ec_GFp_smp_set_compr_coords_GFp +# undef ec_GFp_simple_point_set_affine_coordinates +# define ec_GFp_simple_point_set_affine_coordinates \ + ec_GFp_smp_pt_set_af_coords +# undef ec_GFp_simple_point_get_affine_coordinates +# define ec_GFp_simple_point_get_affine_coordinates \ + ec_GFp_smp_pt_get_af_coords +# undef ec_GFp_simple_set_compressed_coordinates +# define ec_GFp_simple_set_compressed_coordinates \ + ec_GFp_smp_set_compr_coords +# undef ec_GFp_simple_group_check_discriminant +# define ec_GFp_simple_group_check_discriminant ec_GFp_simple_grp_chk_discrim + +/* Hack som long STORE names */ +# undef STORE_method_set_initialise_function +# define STORE_method_set_initialise_function STORE_meth_set_initialise_fn +# undef STORE_method_set_cleanup_function +# define STORE_method_set_cleanup_function STORE_meth_set_cleanup_fn +# undef STORE_method_set_generate_function +# define STORE_method_set_generate_function STORE_meth_set_generate_fn +# undef STORE_method_set_modify_function +# define STORE_method_set_modify_function STORE_meth_set_modify_fn +# undef STORE_method_set_revoke_function +# define STORE_method_set_revoke_function STORE_meth_set_revoke_fn +# undef STORE_method_set_delete_function +# define STORE_method_set_delete_function STORE_meth_set_delete_fn +# undef STORE_method_set_list_start_function +# define STORE_method_set_list_start_function STORE_meth_set_list_start_fn +# undef STORE_method_set_list_next_function +# define STORE_method_set_list_next_function STORE_meth_set_list_next_fn +# undef STORE_method_set_list_end_function +# define STORE_method_set_list_end_function STORE_meth_set_list_end_fn +# undef STORE_method_set_update_store_function +# define STORE_method_set_update_store_function STORE_meth_set_update_store_fn +# undef STORE_method_set_lock_store_function +# define STORE_method_set_lock_store_function STORE_meth_set_lock_store_fn +# undef STORE_method_set_unlock_store_function +# define STORE_method_set_unlock_store_function STORE_meth_set_unlock_store_fn +# undef STORE_method_get_initialise_function +# define STORE_method_get_initialise_function STORE_meth_get_initialise_fn +# undef STORE_method_get_cleanup_function +# define STORE_method_get_cleanup_function STORE_meth_get_cleanup_fn +# undef STORE_method_get_generate_function +# define STORE_method_get_generate_function STORE_meth_get_generate_fn +# undef STORE_method_get_modify_function +# define STORE_method_get_modify_function STORE_meth_get_modify_fn +# undef STORE_method_get_revoke_function +# define STORE_method_get_revoke_function STORE_meth_get_revoke_fn +# undef STORE_method_get_delete_function +# define STORE_method_get_delete_function STORE_meth_get_delete_fn +# undef STORE_method_get_list_start_function +# define STORE_method_get_list_start_function STORE_meth_get_list_start_fn +# undef STORE_method_get_list_next_function +# define STORE_method_get_list_next_function STORE_meth_get_list_next_fn +# undef STORE_method_get_list_end_function +# define STORE_method_get_list_end_function STORE_meth_get_list_end_fn +# undef STORE_method_get_update_store_function +# define STORE_method_get_update_store_function STORE_meth_get_update_store_fn +# undef STORE_method_get_lock_store_function +# define STORE_method_get_lock_store_function STORE_meth_get_lock_store_fn +# undef STORE_method_get_unlock_store_function +# define STORE_method_get_unlock_store_function STORE_meth_get_unlock_store_fn + +/* Hack some long TS names */ +# undef TS_RESP_CTX_set_status_info_cond +# define TS_RESP_CTX_set_status_info_cond TS_RESP_CTX_set_stat_info_cond +# undef TS_RESP_CTX_set_clock_precision_digits +# define TS_RESP_CTX_set_clock_precision_digits TS_RESP_CTX_set_clk_prec_digits +# undef TS_CONF_set_clock_precision_digits +# define TS_CONF_set_clock_precision_digits TS_CONF_set_clk_prec_digits + +/* Hack some long CMS names */ +# undef CMS_RecipientInfo_ktri_get0_algs +# define CMS_RecipientInfo_ktri_get0_algs CMS_RecipInfo_ktri_get0_algs +# undef CMS_RecipientInfo_ktri_get0_signer_id +# define CMS_RecipientInfo_ktri_get0_signer_id CMS_RecipInfo_ktri_get0_sigr_id +# undef CMS_OtherRevocationInfoFormat_it +# define CMS_OtherRevocationInfoFormat_it CMS_OtherRevocInfoFormat_it +# undef CMS_KeyAgreeRecipientIdentifier_it +# define CMS_KeyAgreeRecipientIdentifier_it CMS_KeyAgreeRecipIdentifier_it +# undef CMS_OriginatorIdentifierOrKey_it +# define CMS_OriginatorIdentifierOrKey_it CMS_OriginatorIdOrKey_it +# undef cms_SignerIdentifier_get0_signer_id +# define cms_SignerIdentifier_get0_signer_id cms_SignerId_get0_signer_id +# undef CMS_RecipientInfo_kari_get0_orig_id +# define CMS_RecipientInfo_kari_get0_orig_id CMS_RecipInfo_kari_get0_orig_id +# undef CMS_RecipientInfo_kari_get0_reks +# define CMS_RecipientInfo_kari_get0_reks CMS_RecipInfo_kari_get0_reks +# undef CMS_RecipientEncryptedKey_cert_cmp +# define CMS_RecipientEncryptedKey_cert_cmp CMS_RecipEncryptedKey_cert_cmp +# undef CMS_RecipientInfo_kari_set0_pkey +# define CMS_RecipientInfo_kari_set0_pkey CMS_RecipInfo_kari_set0_pkey +# undef CMS_RecipientEncryptedKey_get0_id +# define CMS_RecipientEncryptedKey_get0_id CMS_RecipEncryptedKey_get0_id +# undef CMS_RecipientInfo_kari_orig_id_cmp +# define CMS_RecipientInfo_kari_orig_id_cmp CMS_RecipInfo_kari_orig_id_cmp + +/* Hack some long DTLS1 names */ +# undef dtls1_retransmit_buffered_messages +# define dtls1_retransmit_buffered_messages dtls1_retransmit_buffered_msgs + +/* Hack some long SRP names */ +# undef SRP_generate_server_master_secret +# define SRP_generate_server_master_secret SRP_gen_server_master_secret +# undef SRP_generate_client_master_secret +# define SRP_generate_client_master_secret SRP_gen_client_master_secret + +/* Hack some long UI names */ +# undef UI_method_get_prompt_constructor +# define UI_method_get_prompt_constructor UI_method_get_prompt_constructr +# undef UI_method_set_prompt_constructor +# define UI_method_set_prompt_constructor UI_method_set_prompt_constructr + +# endif /* defined OPENSSL_SYS_VMS */ + +/* Case insensitive linking causes problems.... */ +# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2) +# undef ERR_load_CRYPTO_strings +# define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings +# undef OCSP_crlID_new +# define OCSP_crlID_new OCSP_crlID2_new + +# undef d2i_ECPARAMETERS +# define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS +# undef i2d_ECPARAMETERS +# define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS +# undef d2i_ECPKPARAMETERS +# define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS +# undef i2d_ECPKPARAMETERS +# define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS + +/* + * These functions do not seem to exist! However, I'm paranoid... Original + * command in x509v3.h: These functions are being redefined in another + * directory, and clash when the linker is case-insensitive, so let's hide + * them a little, by giving them an extra 'o' at the beginning of the name... + */ +# undef X509v3_cleanup_extensions +# define X509v3_cleanup_extensions oX509v3_cleanup_extensions +# undef X509v3_add_extension +# define X509v3_add_extension oX509v3_add_extension +# undef X509v3_add_netscape_extensions +# define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions +# undef X509v3_add_standard_extensions +# define X509v3_add_standard_extensions oX509v3_add_standard_extensions + +/* This one clashes with CMS_data_create */ +# undef cms_Data_create +# define cms_Data_create priv_cms_Data_create + +# endif + +#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/External/include64/openssl/tls1.h b/External/include64/openssl/tls1.h new file mode 100644 index 00000000..7e237d06 --- /dev/null +++ b/External/include64/openssl/tls1.h @@ -0,0 +1,810 @@ +/* ssl/tls1.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright (c) 1998-2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * + * Portions of the attached software ("Contribution") are developed by + * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. + * + * The Contribution is licensed pursuant to the OpenSSL open source + * license provided above. + * + * ECC cipher suite support in OpenSSL originally written by + * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. + * + */ +/* ==================================================================== + * Copyright 2005 Nokia. All rights reserved. + * + * The portions of the attached software ("Contribution") is developed by + * Nokia Corporation and is licensed pursuant to the OpenSSL open source + * license. + * + * The Contribution, originally written by Mika Kousa and Pasi Eronen of + * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites + * support (see RFC 4279) to OpenSSL. + * + * No patent licenses or other rights except those expressly stated in + * the OpenSSL open source license shall be deemed granted or received + * expressly, by implication, estoppel, or otherwise. + * + * No assurances are provided by Nokia that the Contribution does not + * infringe the patent or other intellectual property rights of any third + * party or that the license provides you with all the necessary rights + * to make use of the Contribution. + * + * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN + * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA + * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY + * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR + * OTHERWISE. + */ + +#ifndef HEADER_TLS1_H +# define HEADER_TLS1_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES 0 + +# define TLS1_VERSION 0x0301 +# define TLS1_1_VERSION 0x0302 +# define TLS1_2_VERSION 0x0303 +# define TLS_MAX_VERSION TLS1_2_VERSION + +# define TLS1_VERSION_MAJOR 0x03 +# define TLS1_VERSION_MINOR 0x01 + +# define TLS1_1_VERSION_MAJOR 0x03 +# define TLS1_1_VERSION_MINOR 0x02 + +# define TLS1_2_VERSION_MAJOR 0x03 +# define TLS1_2_VERSION_MINOR 0x03 + +# define TLS1_get_version(s) \ + ((s->version >> 8) == TLS1_VERSION_MAJOR ? s->version : 0) + +# define TLS1_get_client_version(s) \ + ((s->client_version >> 8) == TLS1_VERSION_MAJOR ? s->client_version : 0) + +# define TLS1_AD_DECRYPTION_FAILED 21 +# define TLS1_AD_RECORD_OVERFLOW 22 +# define TLS1_AD_UNKNOWN_CA 48/* fatal */ +# define TLS1_AD_ACCESS_DENIED 49/* fatal */ +# define TLS1_AD_DECODE_ERROR 50/* fatal */ +# define TLS1_AD_DECRYPT_ERROR 51 +# define TLS1_AD_EXPORT_RESTRICTION 60/* fatal */ +# define TLS1_AD_PROTOCOL_VERSION 70/* fatal */ +# define TLS1_AD_INSUFFICIENT_SECURITY 71/* fatal */ +# define TLS1_AD_INTERNAL_ERROR 80/* fatal */ +# define TLS1_AD_INAPPROPRIATE_FALLBACK 86/* fatal */ +# define TLS1_AD_USER_CANCELLED 90 +# define TLS1_AD_NO_RENEGOTIATION 100 +/* codes 110-114 are from RFC3546 */ +# define TLS1_AD_UNSUPPORTED_EXTENSION 110 +# define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111 +# define TLS1_AD_UNRECOGNIZED_NAME 112 +# define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 +# define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 +# define TLS1_AD_UNKNOWN_PSK_IDENTITY 115/* fatal */ + +/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ +# define TLSEXT_TYPE_server_name 0 +# define TLSEXT_TYPE_max_fragment_length 1 +# define TLSEXT_TYPE_client_certificate_url 2 +# define TLSEXT_TYPE_trusted_ca_keys 3 +# define TLSEXT_TYPE_truncated_hmac 4 +# define TLSEXT_TYPE_status_request 5 +/* ExtensionType values from RFC4681 */ +# define TLSEXT_TYPE_user_mapping 6 +/* ExtensionType values from RFC5878 */ +# define TLSEXT_TYPE_client_authz 7 +# define TLSEXT_TYPE_server_authz 8 +/* ExtensionType values from RFC6091 */ +# define TLSEXT_TYPE_cert_type 9 + +/* ExtensionType values from RFC4492 */ +# define TLSEXT_TYPE_elliptic_curves 10 +# define TLSEXT_TYPE_ec_point_formats 11 + +/* ExtensionType value from RFC5054 */ +# define TLSEXT_TYPE_srp 12 + +/* ExtensionType values from RFC5246 */ +# define TLSEXT_TYPE_signature_algorithms 13 + +/* ExtensionType value from RFC5764 */ +# define TLSEXT_TYPE_use_srtp 14 + +/* ExtensionType value from RFC5620 */ +# define TLSEXT_TYPE_heartbeat 15 + +/* ExtensionType value from RFC7301 */ +# define TLSEXT_TYPE_application_layer_protocol_negotiation 16 + +/* + * ExtensionType value for TLS padding extension. + * http://tools.ietf.org/html/draft-agl-tls-padding + */ +# define TLSEXT_TYPE_padding 21 + +/* ExtensionType value from RFC4507 */ +# define TLSEXT_TYPE_session_ticket 35 + +/* ExtensionType value from draft-rescorla-tls-opaque-prf-input-00.txt */ +# if 0 +/* + * will have to be provided externally for now , + * i.e. build with -DTLSEXT_TYPE_opaque_prf_input=38183 + * using whatever extension number you'd like to try + */ +# define TLSEXT_TYPE_opaque_prf_input ?? +# endif + +/* Temporary extension type */ +# define TLSEXT_TYPE_renegotiate 0xff01 + +# ifndef OPENSSL_NO_NEXTPROTONEG +/* This is not an IANA defined extension number */ +# define TLSEXT_TYPE_next_proto_neg 13172 +# endif + +/* NameType value from RFC3546 */ +# define TLSEXT_NAMETYPE_host_name 0 +/* status request value from RFC3546 */ +# define TLSEXT_STATUSTYPE_ocsp 1 + +/* ECPointFormat values from RFC4492 */ +# define TLSEXT_ECPOINTFORMAT_first 0 +# define TLSEXT_ECPOINTFORMAT_uncompressed 0 +# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 +# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 +# define TLSEXT_ECPOINTFORMAT_last 2 + +/* Signature and hash algorithms from RFC5246 */ +# define TLSEXT_signature_anonymous 0 +# define TLSEXT_signature_rsa 1 +# define TLSEXT_signature_dsa 2 +# define TLSEXT_signature_ecdsa 3 + +/* Total number of different signature algorithms */ +# define TLSEXT_signature_num 4 + +# define TLSEXT_hash_none 0 +# define TLSEXT_hash_md5 1 +# define TLSEXT_hash_sha1 2 +# define TLSEXT_hash_sha224 3 +# define TLSEXT_hash_sha256 4 +# define TLSEXT_hash_sha384 5 +# define TLSEXT_hash_sha512 6 + +/* Total number of different digest algorithms */ + +# define TLSEXT_hash_num 7 + +/* Flag set for unrecognised algorithms */ +# define TLSEXT_nid_unknown 0x1000000 + +/* ECC curves */ + +# define TLSEXT_curve_P_256 23 +# define TLSEXT_curve_P_384 24 + +# ifndef OPENSSL_NO_TLSEXT + +# define TLSEXT_MAXLEN_host_name 255 + +const char *SSL_get_servername(const SSL *s, const int type); +int SSL_get_servername_type(const SSL *s); +/* + * SSL_export_keying_material exports a value derived from the master secret, + * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and + * optional context. (Since a zero length context is allowed, the |use_context| + * flag controls whether a context is included.) It returns 1 on success and + * zero otherwise. + */ +int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, + const char *label, size_t llen, + const unsigned char *p, size_t plen, + int use_context); + +int SSL_get_sigalgs(SSL *s, int idx, + int *psign, int *phash, int *psignandhash, + unsigned char *rsig, unsigned char *rhash); + +int SSL_get_shared_sigalgs(SSL *s, int idx, + int *psign, int *phash, int *psignandhash, + unsigned char *rsig, unsigned char *rhash); + +int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); + +# define SSL_set_tlsext_host_name(s,name) \ +SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,(char *)name) + +# define SSL_set_tlsext_debug_callback(ssl, cb) \ +SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,(void (*)(void))cb) + +# define SSL_set_tlsext_debug_arg(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0, (void *)arg) + +# define SSL_set_tlsext_status_type(ssl, type) \ +SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type, NULL) + +# define SSL_get_tlsext_status_exts(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) + +# define SSL_set_tlsext_status_exts(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) + +# define SSL_get_tlsext_status_ids(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) + +# define SSL_set_tlsext_status_ids(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) + +# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ +SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0, (void *)arg) + +# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ +SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen, (void *)arg) + +# define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ +SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,(void (*)(void))cb) + +# define SSL_TLSEXT_ERR_OK 0 +# define SSL_TLSEXT_ERR_ALERT_WARNING 1 +# define SSL_TLSEXT_ERR_ALERT_FATAL 2 +# define SSL_TLSEXT_ERR_NOACK 3 + +# define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ +SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg) + +# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_GET_TLSEXT_TICKET_KEYS,(keylen),(keys)) +# define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_SET_TLSEXT_TICKET_KEYS,(keylen),(keys)) + +# define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ +SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,(void (*)(void))cb) + +# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ +SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) + +# define SSL_set_tlsext_opaque_prf_input(s, src, len) \ +SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT, len, src) +# define SSL_CTX_set_tlsext_opaque_prf_input_callback(ctx, cb) \ +SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB, (void (*)(void))cb) +# define SSL_CTX_set_tlsext_opaque_prf_input_callback_arg(ctx, arg) \ +SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG, 0, arg) + +# define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ +SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) + +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_TLSEXT_HB_ENABLED 0x01 +# define SSL_TLSEXT_HB_DONT_SEND_REQUESTS 0x02 +# define SSL_TLSEXT_HB_DONT_RECV_REQUESTS 0x04 + +# define SSL_get_tlsext_heartbeat_pending(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING,0,NULL) +# define SSL_set_tlsext_heartbeat_no_requests(ssl, arg) \ + SSL_ctrl((ssl),SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) +# endif +# endif + +/* PSK ciphersuites from 4279 */ +# define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A +# define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B +# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C +# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D + +/* + * Additional TLS ciphersuites from expired Internet Draft + * draft-ietf-tls-56-bit-ciphersuites-01.txt (available if + * TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES is defined, see s3_lib.c). We + * actually treat them like SSL 3.0 ciphers, which we probably shouldn't. + * Note that the first two are actually not in the IDs. + */ +# define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5 0x03000060/* not in + * ID */ +# define TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 0x03000061/* not in + * ID */ +# define TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA 0x03000062 +# define TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA 0x03000063 +# define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA 0x03000064 +# define TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA 0x03000065 +# define TLS1_CK_DHE_DSS_WITH_RC4_128_SHA 0x03000066 + +/* AES ciphersuites from RFC3268 */ +# define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F +# define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 +# define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 +# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032 +# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033 +# define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034 + +# define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035 +# define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036 +# define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037 +# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 +# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 +# define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A + +/* TLS v1.2 ciphersuites */ +# define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B +# define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C +# define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D +# define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E +# define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F +# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 + +/* Camellia ciphersuites from RFC4132 */ +# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 +# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 +# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 +# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 +# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 +# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 + +/* TLS v1.2 ciphersuites */ +# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 +# define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 +# define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 +# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A +# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B +# define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C +# define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D + +/* Camellia ciphersuites from RFC4132 */ +# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 +# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 +# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 +# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 +# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 +# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 + +/* SEED ciphersuites from RFC4162 */ +# define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 +# define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 +# define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 +# define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 +# define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A +# define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B + +/* TLS v1.2 GCM ciphersuites from RFC5288 */ +# define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C +# define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D +# define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E +# define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F +# define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 +# define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 +# define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 +# define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 +# define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 +# define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 +# define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 +# define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 + +/* + * ECC ciphersuites from draft-ietf-tls-ecc-12.txt with changes soon to be in + * draft 13 + */ +# define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 +# define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 +# define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 + +# define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 +# define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 +# define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A + +# define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B +# define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C +# define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D +# define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E +# define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F + +# define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 +# define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 +# define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 +# define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 +# define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 + +# define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 +# define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 +# define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 +# define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 +# define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 + +/* SRP ciphersuites from RFC 5054 */ +# define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A +# define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B +# define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C +# define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D +# define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E +# define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F +# define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 +# define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 +# define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022 + +/* ECDH HMAC based ciphersuites from RFC5289 */ + +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023 +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 +# define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 +# define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 +# define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 +# define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A + +/* ECDH GCM based ciphersuites from RFC5289 */ +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C +# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D +# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E +# define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F +# define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 +# define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 +# define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 + +/* + * XXX * Backward compatibility alert: + * Older versions of OpenSSL gave + * some DHE ciphers names with "EDH" + * instead of "DHE". Going forward, we + * should be using DHE + * everywhere, though we may indefinitely maintain + * aliases for users + * or configurations that used "EDH" + + */ +# define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5 "EXP1024-RC4-MD5" +# define TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 "EXP1024-RC2-CBC-MD5" +# define TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DES-CBC-SHA" +# define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DHE-DSS-DES-CBC-SHA" +# define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA "EXP1024-RC4-SHA" +# define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA "EXP1024-DHE-DSS-RC4-SHA" +# define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" + +/* AES ciphersuites from RFC3268 */ +# define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" +# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" +# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" +# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" +# define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" + +# define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" +# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" +# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" +# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" +# define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" + +/* ECC ciphersuites from RFC4492 */ +# define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" + +# define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" + +# define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" + +# define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" + +# define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" +# define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" +# define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" +# define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" +# define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" + +/* PSK ciphersuites from RFC 4279 */ +# define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" +# define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" +# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" +# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" + +/* SRP ciphersuite from RFC 5054 */ +# define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" +# define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" +# define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" +# define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" +# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" +# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" +# define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" +# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" +# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" + +/* Camellia ciphersuites from RFC4132 */ +# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" +# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" +# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" +# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" +# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" +# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" + +# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" +# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" +# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" +# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" +# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" +# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" + +/* SEED ciphersuites from RFC4162 */ +# define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" +# define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" +# define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" +# define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" +# define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" +# define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" + +/* TLS v1.2 ciphersuites */ +# define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" +# define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" +# define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" +# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" +# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" +# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" +# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" +# define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" +# define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" + +/* TLS v1.2 GCM ciphersuites from RFC5288 */ +# define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" +# define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" +# define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" +# define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" +# define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" +# define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" +# define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" +# define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384" + +/* ECDH HMAC based ciphersuites from RFC5289 */ + +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" +# define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" +# define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" + +/* ECDH GCM based ciphersuites from RFC5289 */ +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" +# define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" + +# define TLS_CT_RSA_SIGN 1 +# define TLS_CT_DSS_SIGN 2 +# define TLS_CT_RSA_FIXED_DH 3 +# define TLS_CT_DSS_FIXED_DH 4 +# define TLS_CT_ECDSA_SIGN 64 +# define TLS_CT_RSA_FIXED_ECDH 65 +# define TLS_CT_ECDSA_FIXED_ECDH 66 +# define TLS_CT_GOST94_SIGN 21 +# define TLS_CT_GOST01_SIGN 22 +/* + * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see + * comment there) + */ +# define TLS_CT_NUMBER 9 + +# define TLS1_FINISH_MAC_LENGTH 12 + +# define TLS_MD_MAX_CONST_SIZE 20 +# define TLS_MD_CLIENT_FINISH_CONST "client finished" +# define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 +# define TLS_MD_SERVER_FINISH_CONST "server finished" +# define TLS_MD_SERVER_FINISH_CONST_SIZE 15 +# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" +# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 +# define TLS_MD_KEY_EXPANSION_CONST "key expansion" +# define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 +# define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key" +# define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 +# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" +# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 +# define TLS_MD_IV_BLOCK_CONST "IV block" +# define TLS_MD_IV_BLOCK_CONST_SIZE 8 +# define TLS_MD_MASTER_SECRET_CONST "master secret" +# define TLS_MD_MASTER_SECRET_CONST_SIZE 13 + +# ifdef CHARSET_EBCDIC +# undef TLS_MD_CLIENT_FINISH_CONST +/* + * client finished + */ +# define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" + +# undef TLS_MD_SERVER_FINISH_CONST +/* + * server finished + */ +# define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" + +# undef TLS_MD_SERVER_WRITE_KEY_CONST +/* + * server write key + */ +# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" + +# undef TLS_MD_KEY_EXPANSION_CONST +/* + * key expansion + */ +# define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" + +# undef TLS_MD_CLIENT_WRITE_KEY_CONST +/* + * client write key + */ +# define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" + +# undef TLS_MD_SERVER_WRITE_KEY_CONST +/* + * server write key + */ +# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" + +# undef TLS_MD_IV_BLOCK_CONST +/* + * IV block + */ +# define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" + +# undef TLS_MD_MASTER_SECRET_CONST +/* + * master secret + */ +# define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" +# endif + +/* TLS Session Ticket extension struct */ +struct tls_session_ticket_ext_st { + unsigned short length; + void *data; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/ts.h b/External/include64/openssl/ts.h new file mode 100644 index 00000000..16eccbb3 --- /dev/null +++ b/External/include64/openssl/ts.h @@ -0,0 +1,862 @@ +/* crypto/ts/ts.h */ +/* + * Written by Zoltan Glozik (zglozik@opentsa.org) for the OpenSSL project + * 2002, 2003, 2004. + */ +/* ==================================================================== + * Copyright (c) 2006 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_TS_H +# define HEADER_TS_H + +# include +# include +# ifndef OPENSSL_NO_BUFFER +# include +# endif +# ifndef OPENSSL_NO_EVP +# include +# endif +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include +# include + +# ifndef OPENSSL_NO_RSA +# include +# endif + +# ifndef OPENSSL_NO_DSA +# include +# endif + +# ifndef OPENSSL_NO_DH +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef WIN32 +/* Under Win32 this is defined in wincrypt.h */ +# undef X509_NAME +# endif + +# include +# include + +/*- +MessageImprint ::= SEQUENCE { + hashAlgorithm AlgorithmIdentifier, + hashedMessage OCTET STRING } +*/ + +typedef struct TS_msg_imprint_st { + X509_ALGOR *hash_algo; + ASN1_OCTET_STRING *hashed_msg; +} TS_MSG_IMPRINT; + +/*- +TimeStampReq ::= SEQUENCE { + version INTEGER { v1(1) }, + messageImprint MessageImprint, + --a hash algorithm OID and the hash value of the data to be + --time-stamped + reqPolicy TSAPolicyId OPTIONAL, + nonce INTEGER OPTIONAL, + certReq BOOLEAN DEFAULT FALSE, + extensions [0] IMPLICIT Extensions OPTIONAL } +*/ + +typedef struct TS_req_st { + ASN1_INTEGER *version; + TS_MSG_IMPRINT *msg_imprint; + ASN1_OBJECT *policy_id; /* OPTIONAL */ + ASN1_INTEGER *nonce; /* OPTIONAL */ + ASN1_BOOLEAN cert_req; /* DEFAULT FALSE */ + STACK_OF(X509_EXTENSION) *extensions; /* [0] OPTIONAL */ +} TS_REQ; + +/*- +Accuracy ::= SEQUENCE { + seconds INTEGER OPTIONAL, + millis [0] INTEGER (1..999) OPTIONAL, + micros [1] INTEGER (1..999) OPTIONAL } +*/ + +typedef struct TS_accuracy_st { + ASN1_INTEGER *seconds; + ASN1_INTEGER *millis; + ASN1_INTEGER *micros; +} TS_ACCURACY; + +/*- +TSTInfo ::= SEQUENCE { + version INTEGER { v1(1) }, + policy TSAPolicyId, + messageImprint MessageImprint, + -- MUST have the same value as the similar field in + -- TimeStampReq + serialNumber INTEGER, + -- Time-Stamping users MUST be ready to accommodate integers + -- up to 160 bits. + genTime GeneralizedTime, + accuracy Accuracy OPTIONAL, + ordering BOOLEAN DEFAULT FALSE, + nonce INTEGER OPTIONAL, + -- MUST be present if the similar field was present + -- in TimeStampReq. In that case it MUST have the same value. + tsa [0] GeneralName OPTIONAL, + extensions [1] IMPLICIT Extensions OPTIONAL } +*/ + +typedef struct TS_tst_info_st { + ASN1_INTEGER *version; + ASN1_OBJECT *policy_id; + TS_MSG_IMPRINT *msg_imprint; + ASN1_INTEGER *serial; + ASN1_GENERALIZEDTIME *time; + TS_ACCURACY *accuracy; + ASN1_BOOLEAN ordering; + ASN1_INTEGER *nonce; + GENERAL_NAME *tsa; + STACK_OF(X509_EXTENSION) *extensions; +} TS_TST_INFO; + +/*- +PKIStatusInfo ::= SEQUENCE { + status PKIStatus, + statusString PKIFreeText OPTIONAL, + failInfo PKIFailureInfo OPTIONAL } + +From RFC 1510 - section 3.1.1: +PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String + -- text encoded as UTF-8 String (note: each UTF8String SHOULD + -- include an RFC 1766 language tag to indicate the language + -- of the contained text) +*/ + +/* Possible values for status. See ts_resp_print.c && ts_resp_verify.c. */ + +# define TS_STATUS_GRANTED 0 +# define TS_STATUS_GRANTED_WITH_MODS 1 +# define TS_STATUS_REJECTION 2 +# define TS_STATUS_WAITING 3 +# define TS_STATUS_REVOCATION_WARNING 4 +# define TS_STATUS_REVOCATION_NOTIFICATION 5 + +/* + * Possible values for failure_info. See ts_resp_print.c && ts_resp_verify.c + */ + +# define TS_INFO_BAD_ALG 0 +# define TS_INFO_BAD_REQUEST 2 +# define TS_INFO_BAD_DATA_FORMAT 5 +# define TS_INFO_TIME_NOT_AVAILABLE 14 +# define TS_INFO_UNACCEPTED_POLICY 15 +# define TS_INFO_UNACCEPTED_EXTENSION 16 +# define TS_INFO_ADD_INFO_NOT_AVAILABLE 17 +# define TS_INFO_SYSTEM_FAILURE 25 + +typedef struct TS_status_info_st { + ASN1_INTEGER *status; + STACK_OF(ASN1_UTF8STRING) *text; + ASN1_BIT_STRING *failure_info; +} TS_STATUS_INFO; + +DECLARE_STACK_OF(ASN1_UTF8STRING) +DECLARE_ASN1_SET_OF(ASN1_UTF8STRING) + +/*- +TimeStampResp ::= SEQUENCE { + status PKIStatusInfo, + timeStampToken TimeStampToken OPTIONAL } +*/ + +typedef struct TS_resp_st { + TS_STATUS_INFO *status_info; + PKCS7 *token; + TS_TST_INFO *tst_info; +} TS_RESP; + +/* The structure below would belong to the ESS component. */ + +/*- +IssuerSerial ::= SEQUENCE { + issuer GeneralNames, + serialNumber CertificateSerialNumber + } +*/ + +typedef struct ESS_issuer_serial { + STACK_OF(GENERAL_NAME) *issuer; + ASN1_INTEGER *serial; +} ESS_ISSUER_SERIAL; + +/*- +ESSCertID ::= SEQUENCE { + certHash Hash, + issuerSerial IssuerSerial OPTIONAL +} +*/ + +typedef struct ESS_cert_id { + ASN1_OCTET_STRING *hash; /* Always SHA-1 digest. */ + ESS_ISSUER_SERIAL *issuer_serial; +} ESS_CERT_ID; + +DECLARE_STACK_OF(ESS_CERT_ID) +DECLARE_ASN1_SET_OF(ESS_CERT_ID) + +/*- +SigningCertificate ::= SEQUENCE { + certs SEQUENCE OF ESSCertID, + policies SEQUENCE OF PolicyInformation OPTIONAL +} +*/ + +typedef struct ESS_signing_cert { + STACK_OF(ESS_CERT_ID) *cert_ids; + STACK_OF(POLICYINFO) *policy_info; +} ESS_SIGNING_CERT; + +TS_REQ *TS_REQ_new(void); +void TS_REQ_free(TS_REQ *a); +int i2d_TS_REQ(const TS_REQ *a, unsigned char **pp); +TS_REQ *d2i_TS_REQ(TS_REQ **a, const unsigned char **pp, long length); + +TS_REQ *TS_REQ_dup(TS_REQ *a); + +TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); +int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a); +TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); +int i2d_TS_REQ_bio(BIO *fp, TS_REQ *a); + +TS_MSG_IMPRINT *TS_MSG_IMPRINT_new(void); +void TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *a); +int i2d_TS_MSG_IMPRINT(const TS_MSG_IMPRINT *a, unsigned char **pp); +TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, + const unsigned char **pp, long length); + +TS_MSG_IMPRINT *TS_MSG_IMPRINT_dup(TS_MSG_IMPRINT *a); + +TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a); +int i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a); +TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *fp, TS_MSG_IMPRINT **a); +int i2d_TS_MSG_IMPRINT_bio(BIO *fp, TS_MSG_IMPRINT *a); + +TS_RESP *TS_RESP_new(void); +void TS_RESP_free(TS_RESP *a); +int i2d_TS_RESP(const TS_RESP *a, unsigned char **pp); +TS_RESP *d2i_TS_RESP(TS_RESP **a, const unsigned char **pp, long length); +TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token); +TS_RESP *TS_RESP_dup(TS_RESP *a); + +TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a); +int i2d_TS_RESP_fp(FILE *fp, TS_RESP *a); +TS_RESP *d2i_TS_RESP_bio(BIO *fp, TS_RESP **a); +int i2d_TS_RESP_bio(BIO *fp, TS_RESP *a); + +TS_STATUS_INFO *TS_STATUS_INFO_new(void); +void TS_STATUS_INFO_free(TS_STATUS_INFO *a); +int i2d_TS_STATUS_INFO(const TS_STATUS_INFO *a, unsigned char **pp); +TS_STATUS_INFO *d2i_TS_STATUS_INFO(TS_STATUS_INFO **a, + const unsigned char **pp, long length); +TS_STATUS_INFO *TS_STATUS_INFO_dup(TS_STATUS_INFO *a); + +TS_TST_INFO *TS_TST_INFO_new(void); +void TS_TST_INFO_free(TS_TST_INFO *a); +int i2d_TS_TST_INFO(const TS_TST_INFO *a, unsigned char **pp); +TS_TST_INFO *d2i_TS_TST_INFO(TS_TST_INFO **a, const unsigned char **pp, + long length); +TS_TST_INFO *TS_TST_INFO_dup(TS_TST_INFO *a); + +TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a); +int i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a); +TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *fp, TS_TST_INFO **a); +int i2d_TS_TST_INFO_bio(BIO *fp, TS_TST_INFO *a); + +TS_ACCURACY *TS_ACCURACY_new(void); +void TS_ACCURACY_free(TS_ACCURACY *a); +int i2d_TS_ACCURACY(const TS_ACCURACY *a, unsigned char **pp); +TS_ACCURACY *d2i_TS_ACCURACY(TS_ACCURACY **a, const unsigned char **pp, + long length); +TS_ACCURACY *TS_ACCURACY_dup(TS_ACCURACY *a); + +ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_new(void); +void ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *a); +int i2d_ESS_ISSUER_SERIAL(const ESS_ISSUER_SERIAL *a, unsigned char **pp); +ESS_ISSUER_SERIAL *d2i_ESS_ISSUER_SERIAL(ESS_ISSUER_SERIAL **a, + const unsigned char **pp, + long length); +ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_dup(ESS_ISSUER_SERIAL *a); + +ESS_CERT_ID *ESS_CERT_ID_new(void); +void ESS_CERT_ID_free(ESS_CERT_ID *a); +int i2d_ESS_CERT_ID(const ESS_CERT_ID *a, unsigned char **pp); +ESS_CERT_ID *d2i_ESS_CERT_ID(ESS_CERT_ID **a, const unsigned char **pp, + long length); +ESS_CERT_ID *ESS_CERT_ID_dup(ESS_CERT_ID *a); + +ESS_SIGNING_CERT *ESS_SIGNING_CERT_new(void); +void ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *a); +int i2d_ESS_SIGNING_CERT(const ESS_SIGNING_CERT *a, unsigned char **pp); +ESS_SIGNING_CERT *d2i_ESS_SIGNING_CERT(ESS_SIGNING_CERT **a, + const unsigned char **pp, long length); +ESS_SIGNING_CERT *ESS_SIGNING_CERT_dup(ESS_SIGNING_CERT *a); + +void ERR_load_TS_strings(void); + +int TS_REQ_set_version(TS_REQ *a, long version); +long TS_REQ_get_version(const TS_REQ *a); + +int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); +TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); + +int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg); +X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a); + +int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len); +ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a); + +int TS_REQ_set_policy_id(TS_REQ *a, ASN1_OBJECT *policy); +ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); + +int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); +const ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a); + +int TS_REQ_set_cert_req(TS_REQ *a, int cert_req); +int TS_REQ_get_cert_req(const TS_REQ *a); + +STACK_OF(X509_EXTENSION) *TS_REQ_get_exts(TS_REQ *a); +void TS_REQ_ext_free(TS_REQ *a); +int TS_REQ_get_ext_count(TS_REQ *a); +int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos); +int TS_REQ_get_ext_by_OBJ(TS_REQ *a, ASN1_OBJECT *obj, int lastpos); +int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos); +X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc); +X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc); +int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc); +void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx); + +/* Function declarations for TS_REQ defined in ts/ts_req_print.c */ + +int TS_REQ_print_bio(BIO *bio, TS_REQ *a); + +/* Function declarations for TS_RESP defined in ts/ts_resp_utils.c */ + +int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *info); +TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a); + +/* Caller loses ownership of PKCS7 and TS_TST_INFO objects. */ +void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info); +PKCS7 *TS_RESP_get_token(TS_RESP *a); +TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a); + +int TS_TST_INFO_set_version(TS_TST_INFO *a, long version); +long TS_TST_INFO_get_version(const TS_TST_INFO *a); + +int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy_id); +ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a); + +int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint); +TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a); + +int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial); +const ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a); + +int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime); +const ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a); + +int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy); +TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a); + +int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds); +const ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a); + +int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis); +const ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a); + +int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros); +const ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a); + +int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering); +int TS_TST_INFO_get_ordering(const TS_TST_INFO *a); + +int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce); +const ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a); + +int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa); +GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a); + +STACK_OF(X509_EXTENSION) *TS_TST_INFO_get_exts(TS_TST_INFO *a); +void TS_TST_INFO_ext_free(TS_TST_INFO *a); +int TS_TST_INFO_get_ext_count(TS_TST_INFO *a); +int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos); +int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, ASN1_OBJECT *obj, int lastpos); +int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos); +X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc); +X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc); +int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc); +void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx); + +/* + * Declarations related to response generation, defined in ts/ts_resp_sign.c. + */ + +/* Optional flags for response generation. */ + +/* Don't include the TSA name in response. */ +# define TS_TSA_NAME 0x01 + +/* Set ordering to true in response. */ +# define TS_ORDERING 0x02 + +/* + * Include the signer certificate and the other specified certificates in + * the ESS signing certificate attribute beside the PKCS7 signed data. + * Only the signer certificates is included by default. + */ +# define TS_ESS_CERT_ID_CHAIN 0x04 + +/* Forward declaration. */ +struct TS_resp_ctx; + +/* This must return a unique number less than 160 bits long. */ +typedef ASN1_INTEGER *(*TS_serial_cb) (struct TS_resp_ctx *, void *); + +/* + * This must return the seconds and microseconds since Jan 1, 1970 in the sec + * and usec variables allocated by the caller. Return non-zero for success + * and zero for failure. + */ +typedef int (*TS_time_cb) (struct TS_resp_ctx *, void *, long *sec, + long *usec); + +/* + * This must process the given extension. It can modify the TS_TST_INFO + * object of the context. Return values: !0 (processed), 0 (error, it must + * set the status info/failure info of the response). + */ +typedef int (*TS_extension_cb) (struct TS_resp_ctx *, X509_EXTENSION *, + void *); + +typedef struct TS_resp_ctx { + X509 *signer_cert; + EVP_PKEY *signer_key; + STACK_OF(X509) *certs; /* Certs to include in signed data. */ + STACK_OF(ASN1_OBJECT) *policies; /* Acceptable policies. */ + ASN1_OBJECT *default_policy; /* It may appear in policies, too. */ + STACK_OF(EVP_MD) *mds; /* Acceptable message digests. */ + ASN1_INTEGER *seconds; /* accuracy, 0 means not specified. */ + ASN1_INTEGER *millis; /* accuracy, 0 means not specified. */ + ASN1_INTEGER *micros; /* accuracy, 0 means not specified. */ + unsigned clock_precision_digits; /* fraction of seconds in time stamp + * token. */ + unsigned flags; /* Optional info, see values above. */ + /* Callback functions. */ + TS_serial_cb serial_cb; + void *serial_cb_data; /* User data for serial_cb. */ + TS_time_cb time_cb; + void *time_cb_data; /* User data for time_cb. */ + TS_extension_cb extension_cb; + void *extension_cb_data; /* User data for extension_cb. */ + /* These members are used only while creating the response. */ + TS_REQ *request; + TS_RESP *response; + TS_TST_INFO *tst_info; +} TS_RESP_CTX; + +DECLARE_STACK_OF(EVP_MD) +DECLARE_ASN1_SET_OF(EVP_MD) + +/* Creates a response context that can be used for generating responses. */ +TS_RESP_CTX *TS_RESP_CTX_new(void); +void TS_RESP_CTX_free(TS_RESP_CTX *ctx); + +/* This parameter must be set. */ +int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer); + +/* This parameter must be set. */ +int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key); + +/* This parameter must be set. */ +int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, ASN1_OBJECT *def_policy); + +/* No additional certs are included in the response by default. */ +int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); + +/* + * Adds a new acceptable policy, only the default policy is accepted by + * default. + */ +int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, ASN1_OBJECT *policy); + +/* + * Adds a new acceptable message digest. Note that no message digests are + * accepted by default. The md argument is shared with the caller. + */ +int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md); + +/* Accuracy is not included by default. */ +int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx, + int secs, int millis, int micros); + +/* + * Clock precision digits, i.e. the number of decimal digits: '0' means sec, + * '3' msec, '6' usec, and so on. Default is 0. + */ +int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, + unsigned clock_precision_digits); +/* At most we accept usec precision. */ +# define TS_MAX_CLOCK_PRECISION_DIGITS 6 + +/* No flags are set by default. */ +void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); + +/* Default callback always returns a constant. */ +void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data); + +/* Default callback uses the gettimeofday() and gmtime() system calls. */ +void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data); + +/* + * Default callback rejects all extensions. The extension callback is called + * when the TS_TST_INFO object is already set up and not signed yet. + */ +/* FIXME: extension handling is not tested yet. */ +void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx, + TS_extension_cb cb, void *data); + +/* The following methods can be used in the callbacks. */ +int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx, + int status, const char *text); + +/* Sets the status info only if it is still TS_STATUS_GRANTED. */ +int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx, + int status, const char *text); + +int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure); + +/* The get methods below can be used in the extension callback. */ +TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx); + +TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx); + +/* + * Creates the signed TS_TST_INFO and puts it in TS_RESP. + * In case of errors it sets the status info properly. + * Returns NULL only in case of memory allocation/fatal error. + */ +TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio); + +/* + * Declarations related to response verification, + * they are defined in ts/ts_resp_verify.c. + */ + +int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, + X509_STORE *store, X509 **signer_out); + +/* Context structure for the generic verify method. */ + +/* Verify the signer's certificate and the signature of the response. */ +# define TS_VFY_SIGNATURE (1u << 0) +/* Verify the version number of the response. */ +# define TS_VFY_VERSION (1u << 1) +/* Verify if the policy supplied by the user matches the policy of the TSA. */ +# define TS_VFY_POLICY (1u << 2) +/* + * Verify the message imprint provided by the user. This flag should not be + * specified with TS_VFY_DATA. + */ +# define TS_VFY_IMPRINT (1u << 3) +/* + * Verify the message imprint computed by the verify method from the user + * provided data and the MD algorithm of the response. This flag should not + * be specified with TS_VFY_IMPRINT. + */ +# define TS_VFY_DATA (1u << 4) +/* Verify the nonce value. */ +# define TS_VFY_NONCE (1u << 5) +/* Verify if the TSA name field matches the signer certificate. */ +# define TS_VFY_SIGNER (1u << 6) +/* Verify if the TSA name field equals to the user provided name. */ +# define TS_VFY_TSA_NAME (1u << 7) + +/* You can use the following convenience constants. */ +# define TS_VFY_ALL_IMPRINT (TS_VFY_SIGNATURE \ + | TS_VFY_VERSION \ + | TS_VFY_POLICY \ + | TS_VFY_IMPRINT \ + | TS_VFY_NONCE \ + | TS_VFY_SIGNER \ + | TS_VFY_TSA_NAME) +# define TS_VFY_ALL_DATA (TS_VFY_SIGNATURE \ + | TS_VFY_VERSION \ + | TS_VFY_POLICY \ + | TS_VFY_DATA \ + | TS_VFY_NONCE \ + | TS_VFY_SIGNER \ + | TS_VFY_TSA_NAME) + +typedef struct TS_verify_ctx { + /* Set this to the union of TS_VFY_... flags you want to carry out. */ + unsigned flags; + /* Must be set only with TS_VFY_SIGNATURE. certs is optional. */ + X509_STORE *store; + STACK_OF(X509) *certs; + /* Must be set only with TS_VFY_POLICY. */ + ASN1_OBJECT *policy; + /* + * Must be set only with TS_VFY_IMPRINT. If md_alg is NULL, the + * algorithm from the response is used. + */ + X509_ALGOR *md_alg; + unsigned char *imprint; + unsigned imprint_len; + /* Must be set only with TS_VFY_DATA. */ + BIO *data; + /* Must be set only with TS_VFY_TSA_NAME. */ + ASN1_INTEGER *nonce; + /* Must be set only with TS_VFY_TSA_NAME. */ + GENERAL_NAME *tsa_name; +} TS_VERIFY_CTX; + +int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response); +int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token); + +/* + * Declarations related to response verification context, + * they are defined in ts/ts_verify_ctx.c. + */ + +/* Set all fields to zero. */ +TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); +void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); +void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); +void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); + +/*- + * If ctx is NULL, it allocates and returns a new object, otherwise + * it returns ctx. It initialises all the members as follows: + * flags = TS_VFY_ALL_IMPRINT & ~(TS_VFY_TSA_NAME | TS_VFY_SIGNATURE) + * certs = NULL + * store = NULL + * policy = policy from the request or NULL if absent (in this case + * TS_VFY_POLICY is cleared from flags as well) + * md_alg = MD algorithm from request + * imprint, imprint_len = imprint from request + * data = NULL + * nonce, nonce_len = nonce from the request or NULL if absent (in this case + * TS_VFY_NONCE is cleared from flags as well) + * tsa_name = NULL + * Important: after calling this method TS_VFY_SIGNATURE should be added! + */ +TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx); + +/* Function declarations for TS_RESP defined in ts/ts_resp_print.c */ + +int TS_RESP_print_bio(BIO *bio, TS_RESP *a); +int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a); +int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a); + +/* Common utility functions defined in ts/ts_lib.c */ + +int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num); +int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj); +int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions); +int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg); +int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *msg); + +/* + * Function declarations for handling configuration options, defined in + * ts/ts_conf.c + */ + +X509 *TS_CONF_load_cert(const char *file); +STACK_OF(X509) *TS_CONF_load_certs(const char *file); +EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass); +const char *TS_CONF_get_tsa_section(CONF *conf, const char *section); +int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, + TS_RESP_CTX *ctx); +int TS_CONF_set_crypto_device(CONF *conf, const char *section, + const char *device); +int TS_CONF_set_default_engine(const char *name); +int TS_CONF_set_signer_cert(CONF *conf, const char *section, + const char *cert, TS_RESP_CTX *ctx); +int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, + TS_RESP_CTX *ctx); +int TS_CONF_set_signer_key(CONF *conf, const char *section, + const char *key, const char *pass, + TS_RESP_CTX *ctx); +int TS_CONF_set_def_policy(CONF *conf, const char *section, + const char *policy, TS_RESP_CTX *ctx); +int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_clock_precision_digits(CONF *conf, const char *section, + TS_RESP_CTX *ctx); +int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section, + TS_RESP_CTX *ctx); + +/* -------------------------------------------------- */ +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_TS_strings(void); + +/* Error codes for the TS functions. */ + +/* Function codes. */ +# define TS_F_D2I_TS_RESP 147 +# define TS_F_DEF_SERIAL_CB 110 +# define TS_F_DEF_TIME_CB 111 +# define TS_F_ESS_ADD_SIGNING_CERT 112 +# define TS_F_ESS_CERT_ID_NEW_INIT 113 +# define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 +# define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 +# define TS_F_PKCS7_TO_TS_TST_INFO 148 +# define TS_F_TS_ACCURACY_SET_MICROS 115 +# define TS_F_TS_ACCURACY_SET_MILLIS 116 +# define TS_F_TS_ACCURACY_SET_SECONDS 117 +# define TS_F_TS_CHECK_IMPRINTS 100 +# define TS_F_TS_CHECK_NONCES 101 +# define TS_F_TS_CHECK_POLICY 102 +# define TS_F_TS_CHECK_SIGNING_CERTS 103 +# define TS_F_TS_CHECK_STATUS_INFO 104 +# define TS_F_TS_COMPUTE_IMPRINT 145 +# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 +# define TS_F_TS_GET_STATUS_TEXT 105 +# define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 +# define TS_F_TS_REQ_SET_MSG_IMPRINT 119 +# define TS_F_TS_REQ_SET_NONCE 120 +# define TS_F_TS_REQ_SET_POLICY_ID 121 +# define TS_F_TS_RESP_CREATE_RESPONSE 122 +# define TS_F_TS_RESP_CREATE_TST_INFO 123 +# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 +# define TS_F_TS_RESP_CTX_ADD_MD 125 +# define TS_F_TS_RESP_CTX_ADD_POLICY 126 +# define TS_F_TS_RESP_CTX_NEW 127 +# define TS_F_TS_RESP_CTX_SET_ACCURACY 128 +# define TS_F_TS_RESP_CTX_SET_CERTS 129 +# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 +# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 +# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 +# define TS_F_TS_RESP_GET_POLICY 133 +# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 +# define TS_F_TS_RESP_SET_STATUS_INFO 135 +# define TS_F_TS_RESP_SET_TST_INFO 150 +# define TS_F_TS_RESP_SIGN 136 +# define TS_F_TS_RESP_VERIFY_SIGNATURE 106 +# define TS_F_TS_RESP_VERIFY_TOKEN 107 +# define TS_F_TS_TST_INFO_SET_ACCURACY 137 +# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 +# define TS_F_TS_TST_INFO_SET_NONCE 139 +# define TS_F_TS_TST_INFO_SET_POLICY_ID 140 +# define TS_F_TS_TST_INFO_SET_SERIAL 141 +# define TS_F_TS_TST_INFO_SET_TIME 142 +# define TS_F_TS_TST_INFO_SET_TSA 143 +# define TS_F_TS_VERIFY 108 +# define TS_F_TS_VERIFY_CERT 109 +# define TS_F_TS_VERIFY_CTX_NEW 144 + +/* Reason codes. */ +# define TS_R_BAD_PKCS7_TYPE 132 +# define TS_R_BAD_TYPE 133 +# define TS_R_CERTIFICATE_VERIFY_ERROR 100 +# define TS_R_COULD_NOT_SET_ENGINE 127 +# define TS_R_COULD_NOT_SET_TIME 115 +# define TS_R_D2I_TS_RESP_INT_FAILED 128 +# define TS_R_DETACHED_CONTENT 134 +# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 +# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 +# define TS_R_INVALID_NULL_POINTER 102 +# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 +# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 +# define TS_R_NONCE_MISMATCH 104 +# define TS_R_NONCE_NOT_RETURNED 105 +# define TS_R_NO_CONTENT 106 +# define TS_R_NO_TIME_STAMP_TOKEN 107 +# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 +# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 +# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 +# define TS_R_POLICY_MISMATCH 108 +# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 +# define TS_R_RESPONSE_SETUP_ERROR 121 +# define TS_R_SIGNATURE_FAILURE 109 +# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 +# define TS_R_TIME_SYSCALL_ERROR 122 +# define TS_R_TOKEN_NOT_PRESENT 130 +# define TS_R_TOKEN_PRESENT 131 +# define TS_R_TSA_NAME_MISMATCH 111 +# define TS_R_TSA_UNTRUSTED 112 +# define TS_R_TST_INFO_SETUP_ERROR 123 +# define TS_R_TS_DATASIGN 124 +# define TS_R_UNACCEPTABLE_POLICY 125 +# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 +# define TS_R_UNSUPPORTED_VERSION 113 +# define TS_R_WRONG_CONTENT_TYPE 114 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/txt_db.h b/External/include64/openssl/txt_db.h new file mode 100644 index 00000000..98e23a20 --- /dev/null +++ b/External/include64/openssl/txt_db.h @@ -0,0 +1,112 @@ +/* crypto/txt_db/txt_db.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_TXT_DB_H +# define HEADER_TXT_DB_H + +# include +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include + +# define DB_ERROR_OK 0 +# define DB_ERROR_MALLOC 1 +# define DB_ERROR_INDEX_CLASH 2 +# define DB_ERROR_INDEX_OUT_OF_RANGE 3 +# define DB_ERROR_NO_INDEX 4 +# define DB_ERROR_INSERT_INDEX_CLASH 5 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OPENSSL_STRING *OPENSSL_PSTRING; +DECLARE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) + +typedef struct txt_db_st { + int num_fields; + STACK_OF(OPENSSL_PSTRING) *data; + LHASH_OF(OPENSSL_STRING) **index; + int (**qual) (OPENSSL_STRING *); + long error; + long arg1; + long arg2; + OPENSSL_STRING *arg_row; +} TXT_DB; + +# ifndef OPENSSL_NO_BIO +TXT_DB *TXT_DB_read(BIO *in, int num); +long TXT_DB_write(BIO *out, TXT_DB *db); +# else +TXT_DB *TXT_DB_read(char *in, int num); +long TXT_DB_write(char *out, TXT_DB *db); +# endif +int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), + LHASH_HASH_FN_TYPE hash, LHASH_COMP_FN_TYPE cmp); +void TXT_DB_free(TXT_DB *db); +OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, + OPENSSL_STRING *value); +int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/ui.h b/External/include64/openssl/ui.h new file mode 100644 index 00000000..0dc16330 --- /dev/null +++ b/External/include64/openssl/ui.h @@ -0,0 +1,415 @@ +/* crypto/ui/ui.h */ +/* + * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project + * 2001. + */ +/* ==================================================================== + * Copyright (c) 2001 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_UI_H +# define HEADER_UI_H + +# ifndef OPENSSL_NO_DEPRECATED +# include +# endif +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Declared already in ossl_typ.h */ +/* typedef struct ui_st UI; */ +/* typedef struct ui_method_st UI_METHOD; */ + +/* + * All the following functions return -1 or NULL on error and in some cases + * (UI_process()) -2 if interrupted or in some other way cancelled. When + * everything is fine, they return 0, a positive value or a non-NULL pointer, + * all depending on their purpose. + */ + +/* Creators and destructor. */ +UI *UI_new(void); +UI *UI_new_method(const UI_METHOD *method); +void UI_free(UI *ui); + +/*- + The following functions are used to add strings to be printed and prompt + strings to prompt for data. The names are UI_{add,dup}__string + and UI_{add,dup}_input_boolean. + + UI_{add,dup}__string have the following meanings: + add add a text or prompt string. The pointers given to these + functions are used verbatim, no copying is done. + dup make a copy of the text or prompt string, then add the copy + to the collection of strings in the user interface. + + The function is a name for the functionality that the given + string shall be used for. It can be one of: + input use the string as data prompt. + verify use the string as verification prompt. This + is used to verify a previous input. + info use the string for informational output. + error use the string for error output. + Honestly, there's currently no difference between info and error for the + moment. + + UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", + and are typically used when one wants to prompt for a yes/no response. + + All of the functions in this group take a UI and a prompt string. + The string input and verify addition functions also take a flag argument, + a buffer for the result to end up with, a minimum input size and a maximum + input size (the result buffer MUST be large enough to be able to contain + the maximum number of characters). Additionally, the verify addition + functions takes another buffer to compare the result against. + The boolean input functions take an action description string (which should + be safe to ignore if the expected user action is obvious, for example with + a dialog box with an OK button and a Cancel button), a string of acceptable + characters to mean OK and to mean Cancel. The two last strings are checked + to make sure they don't have common characters. Additionally, the same + flag argument as for the string input is taken, as well as a result buffer. + The result buffer is required to be at least one byte long. Depending on + the answer, the first character from the OK or the Cancel character strings + will be stored in the first byte of the result buffer. No NUL will be + added, so the result is *not* a string. + + On success, the all return an index of the added information. That index + is usefull when retrieving results with UI_get0_result(). */ +int UI_add_input_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize); +int UI_dup_input_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize); +int UI_add_verify_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize, + const char *test_buf); +int UI_dup_verify_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize, + const char *test_buf); +int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, + const char *ok_chars, const char *cancel_chars, + int flags, char *result_buf); +int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, + const char *ok_chars, const char *cancel_chars, + int flags, char *result_buf); +int UI_add_info_string(UI *ui, const char *text); +int UI_dup_info_string(UI *ui, const char *text); +int UI_add_error_string(UI *ui, const char *text); +int UI_dup_error_string(UI *ui, const char *text); + +/* These are the possible flags. They can be or'ed together. */ +/* Use to have echoing of input */ +# define UI_INPUT_FLAG_ECHO 0x01 +/* + * Use a default password. Where that password is found is completely up to + * the application, it might for example be in the user data set with + * UI_add_user_data(). It is not recommended to have more than one input in + * each UI being marked with this flag, or the application might get + * confused. + */ +# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 + +/*- + * The user of these routines may want to define flags of their own. The core + * UI won't look at those, but will pass them on to the method routines. They + * must use higher bits so they don't get confused with the UI bits above. + * UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good + * example of use is this: + * + * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) + * +*/ +# define UI_INPUT_FLAG_USER_BASE 16 + +/*- + * The following function helps construct a prompt. object_desc is a + * textual short description of the object, for example "pass phrase", + * and object_name is the name of the object (might be a card name or + * a file name. + * The returned string shall always be allocated on the heap with + * OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). + * + * If the ui_method doesn't contain a pointer to a user-defined prompt + * constructor, a default string is built, looking like this: + * + * "Enter {object_desc} for {object_name}:" + * + * So, if object_desc has the value "pass phrase" and object_name has + * the value "foo.key", the resulting string is: + * + * "Enter pass phrase for foo.key:" +*/ +char *UI_construct_prompt(UI *ui_method, + const char *object_desc, const char *object_name); + +/* + * The following function is used to store a pointer to user-specific data. + * Any previous such pointer will be returned and replaced. + * + * For callback purposes, this function makes a lot more sense than using + * ex_data, since the latter requires that different parts of OpenSSL or + * applications share the same ex_data index. + * + * Note that the UI_OpenSSL() method completely ignores the user data. Other + * methods may not, however. + */ +void *UI_add_user_data(UI *ui, void *user_data); +/* We need a user data retrieving function as well. */ +void *UI_get0_user_data(UI *ui); + +/* Return the result associated with a prompt given with the index i. */ +const char *UI_get0_result(UI *ui, int i); + +/* When all strings have been added, process the whole thing. */ +int UI_process(UI *ui); + +/* + * Give a user interface parametrised control commands. This can be used to + * send down an integer, a data pointer or a function pointer, as well as be + * used to get information from a UI. + */ +int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); + +/* The commands */ +/* + * Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the + * OpenSSL error stack before printing any info or added error messages and + * before any prompting. + */ +# define UI_CTRL_PRINT_ERRORS 1 +/* + * Check if a UI_process() is possible to do again with the same instance of + * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 + * if not. + */ +# define UI_CTRL_IS_REDOABLE 2 + +/* Some methods may use extra data */ +# define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) +# define UI_get_app_data(s) UI_get_ex_data(s,0) +int UI_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int UI_set_ex_data(UI *r, int idx, void *arg); +void *UI_get_ex_data(UI *r, int idx); + +/* Use specific methods instead of the built-in one */ +void UI_set_default_method(const UI_METHOD *meth); +const UI_METHOD *UI_get_default_method(void); +const UI_METHOD *UI_get_method(UI *ui); +const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); + +/* The method with all the built-in thingies */ +UI_METHOD *UI_OpenSSL(void); + +/* ---------- For method writers ---------- */ +/*- + A method contains a number of functions that implement the low level + of the User Interface. The functions are: + + an opener This function starts a session, maybe by opening + a channel to a tty, or by opening a window. + a writer This function is called to write a given string, + maybe to the tty, maybe as a field label in a + window. + a flusher This function is called to flush everything that + has been output so far. It can be used to actually + display a dialog box after it has been built. + a reader This function is called to read a given prompt, + maybe from the tty, maybe from a field in a + window. Note that it's called wth all string + structures, not only the prompt ones, so it must + check such things itself. + a closer This function closes the session, maybe by closing + the channel to the tty, or closing the window. + + All these functions are expected to return: + + 0 on error. + 1 on success. + -1 on out-of-band events, for example if some prompting has + been canceled (by pressing Ctrl-C, for example). This is + only checked when returned by the flusher or the reader. + + The way this is used, the opener is first called, then the writer for all + strings, then the flusher, then the reader for all strings and finally the + closer. Note that if you want to prompt from a terminal or other command + line interface, the best is to have the reader also write the prompts + instead of having the writer do it. If you want to prompt from a dialog + box, the writer can be used to build up the contents of the box, and the + flusher to actually display the box and run the event loop until all data + has been given, after which the reader only grabs the given data and puts + them back into the UI strings. + + All method functions take a UI as argument. Additionally, the writer and + the reader take a UI_STRING. +*/ + +/* + * The UI_STRING type is the data structure that contains all the needed info + * about a string or a prompt, including test data for a verification prompt. + */ +typedef struct ui_string_st UI_STRING; +DECLARE_STACK_OF(UI_STRING) + +/* + * The different types of strings that are currently supported. This is only + * needed by method authors. + */ +enum UI_string_types { + UIT_NONE = 0, + UIT_PROMPT, /* Prompt for a string */ + UIT_VERIFY, /* Prompt for a string and verify */ + UIT_BOOLEAN, /* Prompt for a yes/no response */ + UIT_INFO, /* Send info to the user */ + UIT_ERROR /* Send an error message to the user */ +}; + +/* Create and manipulate methods */ +UI_METHOD *UI_create_method(char *name); +void UI_destroy_method(UI_METHOD *ui_method); +int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); +int UI_method_set_writer(UI_METHOD *method, + int (*writer) (UI *ui, UI_STRING *uis)); +int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui)); +int UI_method_set_reader(UI_METHOD *method, + int (*reader) (UI *ui, UI_STRING *uis)); +int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui)); +int UI_method_set_prompt_constructor(UI_METHOD *method, + char *(*prompt_constructor) (UI *ui, + const char + *object_desc, + const char + *object_name)); +int (*UI_method_get_opener(UI_METHOD *method)) (UI *); +int (*UI_method_get_writer(UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_flusher(UI_METHOD *method)) (UI *); +int (*UI_method_get_reader(UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_closer(UI_METHOD *method)) (UI *); +char *(*UI_method_get_prompt_constructor(UI_METHOD *method)) (UI *, + const char *, + const char *); + +/* + * The following functions are helpers for method writers to access relevant + * data from a UI_STRING. + */ + +/* Return type of the UI_STRING */ +enum UI_string_types UI_get_string_type(UI_STRING *uis); +/* Return input flags of the UI_STRING */ +int UI_get_input_flags(UI_STRING *uis); +/* Return the actual string to output (the prompt, info or error) */ +const char *UI_get0_output_string(UI_STRING *uis); +/* + * Return the optional action string to output (the boolean promtp + * instruction) + */ +const char *UI_get0_action_string(UI_STRING *uis); +/* Return the result of a prompt */ +const char *UI_get0_result_string(UI_STRING *uis); +/* + * Return the string to test the result against. Only useful with verifies. + */ +const char *UI_get0_test_string(UI_STRING *uis); +/* Return the required minimum size of the result */ +int UI_get_result_minsize(UI_STRING *uis); +/* Return the required maximum size of the result */ +int UI_get_result_maxsize(UI_STRING *uis); +/* Set the result of a UI_STRING. */ +int UI_set_result(UI *ui, UI_STRING *uis, const char *result); + +/* A couple of popular utility functions */ +int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, + int verify); +int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, + int verify); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_UI_strings(void); + +/* Error codes for the UI functions. */ + +/* Function codes. */ +# define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 +# define UI_F_GENERAL_ALLOCATE_PROMPT 109 +# define UI_F_GENERAL_ALLOCATE_STRING 100 +# define UI_F_UI_CTRL 111 +# define UI_F_UI_DUP_ERROR_STRING 101 +# define UI_F_UI_DUP_INFO_STRING 102 +# define UI_F_UI_DUP_INPUT_BOOLEAN 110 +# define UI_F_UI_DUP_INPUT_STRING 103 +# define UI_F_UI_DUP_VERIFY_STRING 106 +# define UI_F_UI_GET0_RESULT 107 +# define UI_F_UI_NEW_METHOD 104 +# define UI_F_UI_SET_RESULT 105 + +/* Reason codes. */ +# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 +# define UI_R_INDEX_TOO_LARGE 102 +# define UI_R_INDEX_TOO_SMALL 103 +# define UI_R_NO_RESULT_BUFFER 105 +# define UI_R_RESULT_TOO_LARGE 100 +# define UI_R_RESULT_TOO_SMALL 101 +# define UI_R_UNKNOWN_CONTROL_COMMAND 106 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/ui_compat.h b/External/include64/openssl/ui_compat.h new file mode 100644 index 00000000..bf541542 --- /dev/null +++ b/External/include64/openssl/ui_compat.h @@ -0,0 +1,88 @@ +/* crypto/ui/ui.h */ +/* + * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project + * 2001. + */ +/* ==================================================================== + * Copyright (c) 2001 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_UI_COMPAT_H +# define HEADER_UI_COMPAT_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The following functions were previously part of the DES section, and are + * provided here for backward compatibility reasons. + */ + +# define des_read_pw_string(b,l,p,v) \ + _ossl_old_des_read_pw_string((b),(l),(p),(v)) +# define des_read_pw(b,bf,s,p,v) \ + _ossl_old_des_read_pw((b),(bf),(s),(p),(v)) + +int _ossl_old_des_read_pw_string(char *buf, int length, const char *prompt, + int verify); +int _ossl_old_des_read_pw(char *buf, char *buff, int size, const char *prompt, + int verify); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/whrlpool.h b/External/include64/openssl/whrlpool.h new file mode 100644 index 00000000..73c749da --- /dev/null +++ b/External/include64/openssl/whrlpool.h @@ -0,0 +1,41 @@ +#ifndef HEADER_WHRLPOOL_H +# define HEADER_WHRLPOOL_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define WHIRLPOOL_DIGEST_LENGTH (512/8) +# define WHIRLPOOL_BBLOCK 512 +# define WHIRLPOOL_COUNTER (256/8) + +typedef struct { + union { + unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; + /* double q is here to ensure 64-bit alignment */ + double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; + } H; + unsigned char data[WHIRLPOOL_BBLOCK / 8]; + unsigned int bitoff; + size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; +} WHIRLPOOL_CTX; + +# ifndef OPENSSL_NO_WHIRLPOOL +# ifdef OPENSSL_FIPS +int private_WHIRLPOOL_Init(WHIRLPOOL_CTX *c); +# endif +int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); +int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); +void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); +int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); +unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); +# endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/External/include64/openssl/x509.h b/External/include64/openssl/x509.h new file mode 100644 index 00000000..fc613ce6 --- /dev/null +++ b/External/include64/openssl/x509.h @@ -0,0 +1,1328 @@ +/* crypto/x509/x509.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ +/* ==================================================================== + * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. + * ECDH support in OpenSSL originally developed by + * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. + */ + +#ifndef HEADER_X509_H +# define HEADER_X509_H + +# include +# include +# ifndef OPENSSL_NO_BUFFER +# include +# endif +# ifndef OPENSSL_NO_EVP +# include +# endif +# ifndef OPENSSL_NO_BIO +# include +# endif +# include +# include +# include + +# ifndef OPENSSL_NO_EC +# include +# endif + +# ifndef OPENSSL_NO_ECDSA +# include +# endif + +# ifndef OPENSSL_NO_ECDH +# include +# endif + +# ifndef OPENSSL_NO_DEPRECATED +# ifndef OPENSSL_NO_RSA +# include +# endif +# ifndef OPENSSL_NO_DSA +# include +# endif +# ifndef OPENSSL_NO_DH +# include +# endif +# endif + +# ifndef OPENSSL_NO_SHA +# include +# endif +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_SYS_WIN32 +/* Under Win32 these are defined in wincrypt.h */ +# undef X509_NAME +# undef X509_CERT_PAIR +# undef X509_EXTENSIONS +# endif + +# define X509_FILETYPE_PEM 1 +# define X509_FILETYPE_ASN1 2 +# define X509_FILETYPE_DEFAULT 3 + +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 +# define X509v3_KU_NON_REPUDIATION 0x0040 +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 +# define X509v3_KU_KEY_AGREEMENT 0x0008 +# define X509v3_KU_KEY_CERT_SIGN 0x0004 +# define X509v3_KU_CRL_SIGN 0x0002 +# define X509v3_KU_ENCIPHER_ONLY 0x0001 +# define X509v3_KU_DECIPHER_ONLY 0x8000 +# define X509v3_KU_UNDEF 0xffff + +typedef struct X509_objects_st { + int nid; + int (*a2i) (void); + int (*i2a) (void); +} X509_OBJECTS; + +struct X509_algor_st { + ASN1_OBJECT *algorithm; + ASN1_TYPE *parameter; +} /* X509_ALGOR */ ; + +DECLARE_ASN1_SET_OF(X509_ALGOR) + +typedef STACK_OF(X509_ALGOR) X509_ALGORS; + +typedef struct X509_val_st { + ASN1_TIME *notBefore; + ASN1_TIME *notAfter; +} X509_VAL; + +struct X509_pubkey_st { + X509_ALGOR *algor; + ASN1_BIT_STRING *public_key; + EVP_PKEY *pkey; +}; + +typedef struct X509_sig_st { + X509_ALGOR *algor; + ASN1_OCTET_STRING *digest; +} X509_SIG; + +typedef struct X509_name_entry_st { + ASN1_OBJECT *object; + ASN1_STRING *value; + int set; + int size; /* temp variable */ +} X509_NAME_ENTRY; + +DECLARE_STACK_OF(X509_NAME_ENTRY) +DECLARE_ASN1_SET_OF(X509_NAME_ENTRY) + +/* we always keep X509_NAMEs in 2 forms. */ +struct X509_name_st { + STACK_OF(X509_NAME_ENTRY) *entries; + int modified; /* true if 'bytes' needs to be built */ +# ifndef OPENSSL_NO_BUFFER + BUF_MEM *bytes; +# else + char *bytes; +# endif +/* unsigned long hash; Keep the hash around for lookups */ + unsigned char *canon_enc; + int canon_enclen; +} /* X509_NAME */ ; + +DECLARE_STACK_OF(X509_NAME) + +# define X509_EX_V_NETSCAPE_HACK 0x8000 +# define X509_EX_V_INIT 0x0001 +typedef struct X509_extension_st { + ASN1_OBJECT *object; + ASN1_BOOLEAN critical; + ASN1_OCTET_STRING *value; +} X509_EXTENSION; + +typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; + +DECLARE_STACK_OF(X509_EXTENSION) +DECLARE_ASN1_SET_OF(X509_EXTENSION) + +/* a sequence of these are used */ +typedef struct x509_attributes_st { + ASN1_OBJECT *object; + int single; /* 0 for a set, 1 for a single item (which is + * wrong) */ + union { + char *ptr; + /* + * 0 + */ STACK_OF(ASN1_TYPE) *set; + /* + * 1 + */ ASN1_TYPE *single; + } value; +} X509_ATTRIBUTE; + +DECLARE_STACK_OF(X509_ATTRIBUTE) +DECLARE_ASN1_SET_OF(X509_ATTRIBUTE) + +typedef struct X509_req_info_st { + ASN1_ENCODING enc; + ASN1_INTEGER *version; + X509_NAME *subject; + X509_PUBKEY *pubkey; + /* d=2 hl=2 l= 0 cons: cont: 00 */ + STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */ +} X509_REQ_INFO; + +typedef struct X509_req_st { + X509_REQ_INFO *req_info; + X509_ALGOR *sig_alg; + ASN1_BIT_STRING *signature; + int references; +} X509_REQ; + +typedef struct x509_cinf_st { + ASN1_INTEGER *version; /* [ 0 ] default of v1 */ + ASN1_INTEGER *serialNumber; + X509_ALGOR *signature; + X509_NAME *issuer; + X509_VAL *validity; + X509_NAME *subject; + X509_PUBKEY *key; + ASN1_BIT_STRING *issuerUID; /* [ 1 ] optional in v2 */ + ASN1_BIT_STRING *subjectUID; /* [ 2 ] optional in v2 */ + STACK_OF(X509_EXTENSION) *extensions; /* [ 3 ] optional in v3 */ + ASN1_ENCODING enc; +} X509_CINF; + +/* + * This stuff is certificate "auxiliary info" it contains details which are + * useful in certificate stores and databases. When used this is tagged onto + * the end of the certificate itself + */ + +typedef struct x509_cert_aux_st { + STACK_OF(ASN1_OBJECT) *trust; /* trusted uses */ + STACK_OF(ASN1_OBJECT) *reject; /* rejected uses */ + ASN1_UTF8STRING *alias; /* "friendly name" */ + ASN1_OCTET_STRING *keyid; /* key id of private key */ + STACK_OF(X509_ALGOR) *other; /* other unspecified info */ +} X509_CERT_AUX; + +struct x509_st { + X509_CINF *cert_info; + X509_ALGOR *sig_alg; + ASN1_BIT_STRING *signature; + int valid; + int references; + char *name; + CRYPTO_EX_DATA ex_data; + /* These contain copies of various extension values */ + long ex_pathlen; + long ex_pcpathlen; + unsigned long ex_flags; + unsigned long ex_kusage; + unsigned long ex_xkusage; + unsigned long ex_nscert; + ASN1_OCTET_STRING *skid; + AUTHORITY_KEYID *akid; + X509_POLICY_CACHE *policy_cache; + STACK_OF(DIST_POINT) *crldp; + STACK_OF(GENERAL_NAME) *altname; + NAME_CONSTRAINTS *nc; +# ifndef OPENSSL_NO_RFC3779 + STACK_OF(IPAddressFamily) *rfc3779_addr; + struct ASIdentifiers_st *rfc3779_asid; +# endif +# ifndef OPENSSL_NO_SHA + unsigned char sha1_hash[SHA_DIGEST_LENGTH]; +# endif + X509_CERT_AUX *aux; +} /* X509 */ ; + +DECLARE_STACK_OF(X509) +DECLARE_ASN1_SET_OF(X509) + +/* This is used for a table of trust checking functions */ + +typedef struct x509_trust_st { + int trust; + int flags; + int (*check_trust) (struct x509_trust_st *, X509 *, int); + char *name; + int arg1; + void *arg2; +} X509_TRUST; + +DECLARE_STACK_OF(X509_TRUST) + +typedef struct x509_cert_pair_st { + X509 *forward; + X509 *reverse; +} X509_CERT_PAIR; + +/* standard trust ids */ + +# define X509_TRUST_DEFAULT -1/* Only valid in purpose settings */ + +# define X509_TRUST_COMPAT 1 +# define X509_TRUST_SSL_CLIENT 2 +# define X509_TRUST_SSL_SERVER 3 +# define X509_TRUST_EMAIL 4 +# define X509_TRUST_OBJECT_SIGN 5 +# define X509_TRUST_OCSP_SIGN 6 +# define X509_TRUST_OCSP_REQUEST 7 +# define X509_TRUST_TSA 8 + +/* Keep these up to date! */ +# define X509_TRUST_MIN 1 +# define X509_TRUST_MAX 8 + +/* trust_flags values */ +# define X509_TRUST_DYNAMIC 1 +# define X509_TRUST_DYNAMIC_NAME 2 + +/* check_trust return codes */ + +# define X509_TRUST_TRUSTED 1 +# define X509_TRUST_REJECTED 2 +# define X509_TRUST_UNTRUSTED 3 + +/* Flags for X509_print_ex() */ + +# define X509_FLAG_COMPAT 0 +# define X509_FLAG_NO_HEADER 1L +# define X509_FLAG_NO_VERSION (1L << 1) +# define X509_FLAG_NO_SERIAL (1L << 2) +# define X509_FLAG_NO_SIGNAME (1L << 3) +# define X509_FLAG_NO_ISSUER (1L << 4) +# define X509_FLAG_NO_VALIDITY (1L << 5) +# define X509_FLAG_NO_SUBJECT (1L << 6) +# define X509_FLAG_NO_PUBKEY (1L << 7) +# define X509_FLAG_NO_EXTENSIONS (1L << 8) +# define X509_FLAG_NO_SIGDUMP (1L << 9) +# define X509_FLAG_NO_AUX (1L << 10) +# define X509_FLAG_NO_ATTRIBUTES (1L << 11) +# define X509_FLAG_NO_IDS (1L << 12) + +/* Flags specific to X509_NAME_print_ex() */ + +/* The field separator information */ + +# define XN_FLAG_SEP_MASK (0xf << 16) + +# define XN_FLAG_COMPAT 0/* Traditional SSLeay: use old + * X509_NAME_print */ +# define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ +# define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ +# define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ +# define XN_FLAG_SEP_MULTILINE (4 << 16)/* One line per field */ + +# define XN_FLAG_DN_REV (1 << 20)/* Reverse DN order */ + +/* How the field name is shown */ + +# define XN_FLAG_FN_MASK (0x3 << 21) + +# define XN_FLAG_FN_SN 0/* Object short name */ +# define XN_FLAG_FN_LN (1 << 21)/* Object long name */ +# define XN_FLAG_FN_OID (2 << 21)/* Always use OIDs */ +# define XN_FLAG_FN_NONE (3 << 21)/* No field names */ + +# define XN_FLAG_SPC_EQ (1 << 23)/* Put spaces round '=' */ + +/* + * This determines if we dump fields we don't recognise: RFC2253 requires + * this. + */ + +# define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) + +# define XN_FLAG_FN_ALIGN (1 << 25)/* Align field names to 20 + * characters */ + +/* Complete set of RFC2253 flags */ + +# define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ + XN_FLAG_SEP_COMMA_PLUS | \ + XN_FLAG_DN_REV | \ + XN_FLAG_FN_SN | \ + XN_FLAG_DUMP_UNKNOWN_FIELDS) + +/* readable oneline form */ + +# define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ + ASN1_STRFLGS_ESC_QUOTE | \ + XN_FLAG_SEP_CPLUS_SPC | \ + XN_FLAG_SPC_EQ | \ + XN_FLAG_FN_SN) + +/* readable multiline form */ + +# define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ + ASN1_STRFLGS_ESC_MSB | \ + XN_FLAG_SEP_MULTILINE | \ + XN_FLAG_SPC_EQ | \ + XN_FLAG_FN_LN | \ + XN_FLAG_FN_ALIGN) + +struct x509_revoked_st { + ASN1_INTEGER *serialNumber; + ASN1_TIME *revocationDate; + STACK_OF(X509_EXTENSION) /* optional */ *extensions; + /* Set up if indirect CRL */ + STACK_OF(GENERAL_NAME) *issuer; + /* Revocation reason */ + int reason; + int sequence; /* load sequence */ +}; + +DECLARE_STACK_OF(X509_REVOKED) +DECLARE_ASN1_SET_OF(X509_REVOKED) + +typedef struct X509_crl_info_st { + ASN1_INTEGER *version; + X509_ALGOR *sig_alg; + X509_NAME *issuer; + ASN1_TIME *lastUpdate; + ASN1_TIME *nextUpdate; + STACK_OF(X509_REVOKED) *revoked; + STACK_OF(X509_EXTENSION) /* [0] */ *extensions; + ASN1_ENCODING enc; +} X509_CRL_INFO; + +struct X509_crl_st { + /* actual signature */ + X509_CRL_INFO *crl; + X509_ALGOR *sig_alg; + ASN1_BIT_STRING *signature; + int references; + int flags; + /* Copies of various extensions */ + AUTHORITY_KEYID *akid; + ISSUING_DIST_POINT *idp; + /* Convenient breakdown of IDP */ + int idp_flags; + int idp_reasons; + /* CRL and base CRL numbers for delta processing */ + ASN1_INTEGER *crl_number; + ASN1_INTEGER *base_crl_number; +# ifndef OPENSSL_NO_SHA + unsigned char sha1_hash[SHA_DIGEST_LENGTH]; +# endif + STACK_OF(GENERAL_NAMES) *issuers; + const X509_CRL_METHOD *meth; + void *meth_data; +} /* X509_CRL */ ; + +DECLARE_STACK_OF(X509_CRL) +DECLARE_ASN1_SET_OF(X509_CRL) + +typedef struct private_key_st { + int version; + /* The PKCS#8 data types */ + X509_ALGOR *enc_algor; + ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ + /* When decrypted, the following will not be NULL */ + EVP_PKEY *dec_pkey; + /* used to encrypt and decrypt */ + int key_length; + char *key_data; + int key_free; /* true if we should auto free key_data */ + /* expanded version of 'enc_algor' */ + EVP_CIPHER_INFO cipher; + int references; +} X509_PKEY; + +# ifndef OPENSSL_NO_EVP +typedef struct X509_info_st { + X509 *x509; + X509_CRL *crl; + X509_PKEY *x_pkey; + EVP_CIPHER_INFO enc_cipher; + int enc_len; + char *enc_data; + int references; +} X509_INFO; + +DECLARE_STACK_OF(X509_INFO) +# endif + +/* + * The next 2 structures and their 8 routines were sent to me by Pat Richard + * and are used to manipulate Netscapes spki structures - + * useful if you are writing a CA web page + */ +typedef struct Netscape_spkac_st { + X509_PUBKEY *pubkey; + ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ +} NETSCAPE_SPKAC; + +typedef struct Netscape_spki_st { + NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ + X509_ALGOR *sig_algor; + ASN1_BIT_STRING *signature; +} NETSCAPE_SPKI; + +/* Netscape certificate sequence structure */ +typedef struct Netscape_certificate_sequence { + ASN1_OBJECT *type; + STACK_OF(X509) *certs; +} NETSCAPE_CERT_SEQUENCE; + +/*- Unused (and iv length is wrong) +typedef struct CBCParameter_st + { + unsigned char iv[8]; + } CBC_PARAM; +*/ + +/* Password based encryption structure */ + +typedef struct PBEPARAM_st { + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *iter; +} PBEPARAM; + +/* Password based encryption V2 structures */ + +typedef struct PBE2PARAM_st { + X509_ALGOR *keyfunc; + X509_ALGOR *encryption; +} PBE2PARAM; + +typedef struct PBKDF2PARAM_st { +/* Usually OCTET STRING but could be anything */ + ASN1_TYPE *salt; + ASN1_INTEGER *iter; + ASN1_INTEGER *keylength; + X509_ALGOR *prf; +} PBKDF2PARAM; + +/* PKCS#8 private key info structure */ + +struct pkcs8_priv_key_info_st { + /* Flag for various broken formats */ + int broken; +# define PKCS8_OK 0 +# define PKCS8_NO_OCTET 1 +# define PKCS8_EMBEDDED_PARAM 2 +# define PKCS8_NS_DB 3 +# define PKCS8_NEG_PRIVKEY 4 + ASN1_INTEGER *version; + X509_ALGOR *pkeyalg; + /* Should be OCTET STRING but some are broken */ + ASN1_TYPE *pkey; + STACK_OF(X509_ATTRIBUTE) *attributes; +}; + +#ifdef __cplusplus +} +#endif + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define X509_EXT_PACK_UNKNOWN 1 +# define X509_EXT_PACK_STRING 2 + +# define X509_get_version(x) ASN1_INTEGER_get((x)->cert_info->version) +/* #define X509_get_serialNumber(x) ((x)->cert_info->serialNumber) */ +# define X509_get_notBefore(x) ((x)->cert_info->validity->notBefore) +# define X509_get_notAfter(x) ((x)->cert_info->validity->notAfter) +# define X509_extract_key(x) X509_get_pubkey(x)/*****/ +# define X509_REQ_get_version(x) ASN1_INTEGER_get((x)->req_info->version) +# define X509_REQ_get_subject_name(x) ((x)->req_info->subject) +# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) +# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) +# define X509_get_signature_type(x) EVP_PKEY_type(OBJ_obj2nid((x)->sig_alg->algorithm)) + +# define X509_CRL_get_version(x) ASN1_INTEGER_get((x)->crl->version) +# define X509_CRL_get_lastUpdate(x) ((x)->crl->lastUpdate) +# define X509_CRL_get_nextUpdate(x) ((x)->crl->nextUpdate) +# define X509_CRL_get_issuer(x) ((x)->crl->issuer) +# define X509_CRL_get_REVOKED(x) ((x)->crl->revoked) + +void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); +X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), + int (*crl_free) (X509_CRL *crl), + int (*crl_lookup) (X509_CRL *crl, + X509_REVOKED **ret, + ASN1_INTEGER *ser, + X509_NAME *issuer), + int (*crl_verify) (X509_CRL *crl, + EVP_PKEY *pk)); +void X509_CRL_METHOD_free(X509_CRL_METHOD *m); + +void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); +void *X509_CRL_get_meth_data(X509_CRL *crl); + +/* + * This one is only used so that a binary form can output, as in + * i2d_X509_NAME(X509_get_X509_PUBKEY(x),&buf) + */ +# define X509_get_X509_PUBKEY(x) ((x)->cert_info->key) + +const char *X509_verify_cert_error_string(long n); + +# ifndef OPENSSL_NO_EVP +int X509_verify(X509 *a, EVP_PKEY *r); + +int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); +int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); +int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); + +NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); +char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); +EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); +int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); + +int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); + +int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); +int X509_signature_print(BIO *bp, X509_ALGOR *alg, ASN1_STRING *sig); + +int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); +int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); +int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); +int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); +int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); +int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); + +int X509_pubkey_digest(const X509 *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_digest(const X509 *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +# endif + +# ifndef OPENSSL_NO_FP_API +X509 *d2i_X509_fp(FILE *fp, X509 **x509); +int i2d_X509_fp(FILE *fp, X509 *x509); +X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); +int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); +X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); +int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); +# ifndef OPENSSL_NO_RSA +RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); +int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); +RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); +int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); +RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); +int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); +# endif +# ifndef OPENSSL_NO_DSA +DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); +int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); +DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); +int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); +# endif +# ifndef OPENSSL_NO_EC +EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); +int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); +EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); +int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); +# endif +X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); +int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); +PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, + PKCS8_PRIV_KEY_INFO **p8inf); +int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); +int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); +int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); +int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); +# endif + +# ifndef OPENSSL_NO_BIO +X509 *d2i_X509_bio(BIO *bp, X509 **x509); +int i2d_X509_bio(BIO *bp, X509 *x509); +X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); +int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); +X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); +int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); +# ifndef OPENSSL_NO_RSA +RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); +int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); +RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); +int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); +RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); +int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); +# endif +# ifndef OPENSSL_NO_DSA +DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); +int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); +DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); +int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); +# endif +# ifndef OPENSSL_NO_EC +EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); +int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); +EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); +int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); +# endif +X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); +int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); +PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, + PKCS8_PRIV_KEY_INFO **p8inf); +int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); +int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); +int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); +int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); +# endif + +X509 *X509_dup(X509 *x509); +X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); +X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); +X509_CRL *X509_CRL_dup(X509_CRL *crl); +X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); +X509_REQ *X509_REQ_dup(X509_REQ *req); +X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); +int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, + void *pval); +void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval, + X509_ALGOR *algor); +void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); +int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); + +X509_NAME *X509_NAME_dup(X509_NAME *xn); +X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); + +int X509_cmp_time(const ASN1_TIME *s, time_t *t); +int X509_cmp_current_time(const ASN1_TIME *s); +ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); +ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, + int offset_day, long offset_sec, time_t *t); +ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); + +const char *X509_get_default_cert_area(void); +const char *X509_get_default_cert_dir(void); +const char *X509_get_default_cert_file(void); +const char *X509_get_default_cert_dir_env(void); +const char *X509_get_default_cert_file_env(void); +const char *X509_get_default_private_dir(void); + +X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); +X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); + +DECLARE_ASN1_FUNCTIONS(X509_ALGOR) +DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) +DECLARE_ASN1_FUNCTIONS(X509_VAL) + +DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) + +int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); +EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); +int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); +int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); +EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); +# ifndef OPENSSL_NO_RSA +int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); +RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); +# endif +# ifndef OPENSSL_NO_DSA +int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); +DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); +# endif +# ifndef OPENSSL_NO_EC +int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); +EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); +# endif + +DECLARE_ASN1_FUNCTIONS(X509_SIG) +DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) +DECLARE_ASN1_FUNCTIONS(X509_REQ) + +DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) +X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); + +DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) +DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) + +DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) + +DECLARE_ASN1_FUNCTIONS(X509_NAME) + +int X509_NAME_set(X509_NAME **xn, X509_NAME *name); + +DECLARE_ASN1_FUNCTIONS(X509_CINF) + +DECLARE_ASN1_FUNCTIONS(X509) +DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) + +DECLARE_ASN1_FUNCTIONS(X509_CERT_PAIR) + +int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int X509_set_ex_data(X509 *r, int idx, void *arg); +void *X509_get_ex_data(X509 *r, int idx); +int i2d_X509_AUX(X509 *a, unsigned char **pp); +X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); + +int i2d_re_X509_tbs(X509 *x, unsigned char **pp); + +void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, + const X509 *x); +int X509_get_signature_nid(const X509 *x); + +int X509_alias_set1(X509 *x, unsigned char *name, int len); +int X509_keyid_set1(X509 *x, unsigned char *id, int len); +unsigned char *X509_alias_get0(X509 *x, int *len); +unsigned char *X509_keyid_get0(X509 *x, int *len); +int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, + int); +int X509_TRUST_set(int *t, int trust); +int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj); +int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj); +void X509_trust_clear(X509 *x); +void X509_reject_clear(X509 *x); + +DECLARE_ASN1_FUNCTIONS(X509_REVOKED) +DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) +DECLARE_ASN1_FUNCTIONS(X509_CRL) + +int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); +int X509_CRL_get0_by_serial(X509_CRL *crl, + X509_REVOKED **ret, ASN1_INTEGER *serial); +int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); + +X509_PKEY *X509_PKEY_new(void); +void X509_PKEY_free(X509_PKEY *a); +int i2d_X509_PKEY(X509_PKEY *a, unsigned char **pp); +X509_PKEY *d2i_X509_PKEY(X509_PKEY **a, const unsigned char **pp, + long length); + +DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) +DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) +DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) + +# ifndef OPENSSL_NO_EVP +X509_INFO *X509_INFO_new(void); +void X509_INFO_free(X509_INFO *a); +char *X509_NAME_oneline(X509_NAME *a, char *buf, int size); + +int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, + ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); + +int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, + unsigned char *md, unsigned int *len); + +int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, + char *data, EVP_PKEY *pkey, const EVP_MD *type); + +int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, + unsigned char *md, unsigned int *len); + +int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, + ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); + +int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, + EVP_PKEY *pkey, const EVP_MD *type); +int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, + void *asn, EVP_MD_CTX *ctx); +# endif + +int X509_set_version(X509 *x, long version); +int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); +ASN1_INTEGER *X509_get_serialNumber(X509 *x); +int X509_set_issuer_name(X509 *x, X509_NAME *name); +X509_NAME *X509_get_issuer_name(X509 *a); +int X509_set_subject_name(X509 *x, X509_NAME *name); +X509_NAME *X509_get_subject_name(X509 *a); +int X509_set_notBefore(X509 *x, const ASN1_TIME *tm); +int X509_set_notAfter(X509 *x, const ASN1_TIME *tm); +int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); +EVP_PKEY *X509_get_pubkey(X509 *x); +ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); +int X509_certificate_type(X509 *x, EVP_PKEY *pubkey /* optional */ ); + +int X509_REQ_set_version(X509_REQ *x, long version); +int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); +int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); +EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); +int X509_REQ_extension_nid(int nid); +int *X509_REQ_get_extension_nids(void); +void X509_REQ_set_extension_nids(int *nids); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts, + int nid); +int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts); +int X509_REQ_get_attr_count(const X509_REQ *req); +int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); +int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); +X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); +int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); +int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len); +int X509_REQ_add1_attr_by_NID(X509_REQ *req, + int nid, int type, + const unsigned char *bytes, int len); +int X509_REQ_add1_attr_by_txt(X509_REQ *req, + const char *attrname, int type, + const unsigned char *bytes, int len); + +int X509_CRL_set_version(X509_CRL *x, long version); +int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); +int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_sort(X509_CRL *crl); + +int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); +int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); + +X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, + EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); + +int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); + +int X509_check_private_key(X509 *x509, EVP_PKEY *pkey); +int X509_chain_check_suiteb(int *perror_depth, + X509 *x, STACK_OF(X509) *chain, + unsigned long flags); +int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); + +int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); +unsigned long X509_issuer_and_serial_hash(X509 *a); + +int X509_issuer_name_cmp(const X509 *a, const X509 *b); +unsigned long X509_issuer_name_hash(X509 *a); + +int X509_subject_name_cmp(const X509 *a, const X509 *b); +unsigned long X509_subject_name_hash(X509 *x); + +# ifndef OPENSSL_NO_MD5 +unsigned long X509_issuer_name_hash_old(X509 *a); +unsigned long X509_subject_name_hash_old(X509 *x); +# endif + +int X509_cmp(const X509 *a, const X509 *b); +int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); +unsigned long X509_NAME_hash(X509_NAME *x); +unsigned long X509_NAME_hash_old(X509_NAME *x); + +int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); +int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); +# ifndef OPENSSL_NO_FP_API +int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, + unsigned long cflag); +int X509_print_fp(FILE *bp, X509 *x); +int X509_CRL_print_fp(FILE *bp, X509_CRL *x); +int X509_REQ_print_fp(FILE *bp, X509_REQ *req); +int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, + unsigned long flags); +# endif + +# ifndef OPENSSL_NO_BIO +int X509_NAME_print(BIO *bp, X509_NAME *name, int obase); +int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, + unsigned long flags); +int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, + unsigned long cflag); +int X509_print(BIO *bp, X509 *x); +int X509_ocspid_print(BIO *bp, X509 *x); +int X509_CERT_AUX_print(BIO *bp, X509_CERT_AUX *x, int indent); +int X509_CRL_print(BIO *bp, X509_CRL *x); +int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, + unsigned long cflag); +int X509_REQ_print(BIO *bp, X509_REQ *req); +# endif + +int X509_NAME_entry_count(X509_NAME *name); +int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); +int X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, + char *buf, int len); + +/* + * NOTE: you should be passsing -1, not 0 as lastpos. The functions that use + * lastpos, search after that position on. + */ +int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); +int X509_NAME_get_index_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, + int lastpos); +X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc); +X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); +int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne, + int loc, int set); +int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, + unsigned char *bytes, int len, int loc, + int set); +int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, + unsigned char *bytes, int len, int loc, + int set); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, + const char *field, int type, + const unsigned char *bytes, + int len); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, + int type, unsigned char *bytes, + int len); +int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, + const unsigned char *bytes, int len, int loc, + int set); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, + ASN1_OBJECT *obj, int type, + const unsigned char *bytes, + int len); +int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj); +int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, + const unsigned char *bytes, int len); +ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne); +ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); + +int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); +int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, + int nid, int lastpos); +int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, + ASN1_OBJECT *obj, int lastpos); +int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, + int crit, int lastpos); +X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); +X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, + X509_EXTENSION *ex, int loc); + +int X509_get_ext_count(X509 *x); +int X509_get_ext_by_NID(X509 *x, int nid, int lastpos); +int X509_get_ext_by_OBJ(X509 *x, ASN1_OBJECT *obj, int lastpos); +int X509_get_ext_by_critical(X509 *x, int crit, int lastpos); +X509_EXTENSION *X509_get_ext(X509 *x, int loc); +X509_EXTENSION *X509_delete_ext(X509 *x, int loc); +int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); +void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx); +int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, + unsigned long flags); + +int X509_CRL_get_ext_count(X509_CRL *x); +int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos); +int X509_CRL_get_ext_by_OBJ(X509_CRL *x, ASN1_OBJECT *obj, int lastpos); +int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit, int lastpos); +X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc); +X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); +int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); +void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx); +int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, + unsigned long flags); + +int X509_REVOKED_get_ext_count(X509_REVOKED *x); +int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos); +int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x, ASN1_OBJECT *obj, + int lastpos); +int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit, int lastpos); +X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc); +X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); +int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); +void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx); +int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, + unsigned long flags); + +X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, + int nid, int crit, + ASN1_OCTET_STRING *data); +X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, + ASN1_OBJECT *obj, int crit, + ASN1_OCTET_STRING *data); +int X509_EXTENSION_set_object(X509_EXTENSION *ex, ASN1_OBJECT *obj); +int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); +int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); +ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); +ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); +int X509_EXTENSION_get_critical(X509_EXTENSION *ex); + +int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); +int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, + int lastpos); +int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, + ASN1_OBJECT *obj, int lastpos); +X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); +X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, + X509_ATTRIBUTE *attr); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) + **x, const ASN1_OBJECT *obj, + int type, + const unsigned char *bytes, + int len); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) + **x, int nid, int type, + const unsigned char *bytes, + int len); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) + **x, const char *attrname, + int type, + const unsigned char *bytes, + int len); +void *X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE) *x, ASN1_OBJECT *obj, + int lastpos, int type); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, + int atrtype, const void *data, + int len); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, + const ASN1_OBJECT *obj, + int atrtype, const void *data, + int len); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, + const char *atrname, int type, + const unsigned char *bytes, + int len); +int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); +int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, + const void *data, int len); +void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, + void *data); +int X509_ATTRIBUTE_count(X509_ATTRIBUTE *attr); +ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); +ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); + +int EVP_PKEY_get_attr_count(const EVP_PKEY *key); +int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); +int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); +X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); +int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); +int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len); +int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, + int nid, int type, + const unsigned char *bytes, int len); +int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, + const char *attrname, int type, + const unsigned char *bytes, int len); + +int X509_verify_cert(X509_STORE_CTX *ctx); + +/* lookup a cert from a X509 STACK */ +X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk, X509_NAME *name, + ASN1_INTEGER *serial); +X509 *X509_find_by_subject(STACK_OF(X509) *sk, X509_NAME *name); + +DECLARE_ASN1_FUNCTIONS(PBEPARAM) +DECLARE_ASN1_FUNCTIONS(PBE2PARAM) +DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) + +int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, + const unsigned char *salt, int saltlen); + +X509_ALGOR *PKCS5_pbe_set(int alg, int iter, + const unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen, + unsigned char *aiv, int prf_nid); + +X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, + int prf_nid, int keylen); + +/* PKCS#8 utilities */ + +DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) + +EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8); +PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); +PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken); +PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken); + +int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, + int version, int ptype, void *pval, + unsigned char *penc, int penclen); +int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, + const unsigned char **pk, int *ppklen, + X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8); + +int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, + int ptype, void *pval, + unsigned char *penc, int penclen); +int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, + const unsigned char **pk, int *ppklen, + X509_ALGOR **pa, X509_PUBKEY *pub); + +int X509_check_trust(X509 *x, int id, int flags); +int X509_TRUST_get_count(void); +X509_TRUST *X509_TRUST_get0(int idx); +int X509_TRUST_get_by_id(int id); +int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), + char *name, int arg1, void *arg2); +void X509_TRUST_cleanup(void); +int X509_TRUST_get_flags(X509_TRUST *xp); +char *X509_TRUST_get0_name(X509_TRUST *xp); +int X509_TRUST_get_trust(X509_TRUST *xp); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_X509_strings(void); + +/* Error codes for the X509 functions. */ + +/* Function codes. */ +# define X509_F_ADD_CERT_DIR 100 +# define X509_F_BY_FILE_CTRL 101 +# define X509_F_CHECK_POLICY 145 +# define X509_F_DIR_CTRL 102 +# define X509_F_GET_CERT_BY_SUBJECT 103 +# define X509_F_NETSCAPE_SPKI_B64_DECODE 129 +# define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 +# define X509_F_X509AT_ADD1_ATTR 135 +# define X509_F_X509V3_ADD_EXT 104 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 +# define X509_F_X509_ATTRIBUTE_GET0_DATA 139 +# define X509_F_X509_ATTRIBUTE_SET1_DATA 138 +# define X509_F_X509_CHECK_PRIVATE_KEY 128 +# define X509_F_X509_CRL_DIFF 105 +# define X509_F_X509_CRL_PRINT_FP 147 +# define X509_F_X509_EXTENSION_CREATE_BY_NID 108 +# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 +# define X509_F_X509_GET_PUBKEY_PARAMETERS 110 +# define X509_F_X509_LOAD_CERT_CRL_FILE 132 +# define X509_F_X509_LOAD_CERT_FILE 111 +# define X509_F_X509_LOAD_CRL_FILE 112 +# define X509_F_X509_NAME_ADD_ENTRY 113 +# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 +# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 +# define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 +# define X509_F_X509_NAME_ONELINE 116 +# define X509_F_X509_NAME_PRINT 117 +# define X509_F_X509_PRINT_EX_FP 118 +# define X509_F_X509_PUBKEY_GET 119 +# define X509_F_X509_PUBKEY_SET 120 +# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 +# define X509_F_X509_REQ_PRINT_EX 121 +# define X509_F_X509_REQ_PRINT_FP 122 +# define X509_F_X509_REQ_TO_X509 123 +# define X509_F_X509_STORE_ADD_CERT 124 +# define X509_F_X509_STORE_ADD_CRL 125 +# define X509_F_X509_STORE_CTX_GET1_ISSUER 146 +# define X509_F_X509_STORE_CTX_INIT 143 +# define X509_F_X509_STORE_CTX_NEW 142 +# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 +# define X509_F_X509_TO_X509_REQ 126 +# define X509_F_X509_TRUST_ADD 133 +# define X509_F_X509_TRUST_SET 141 +# define X509_F_X509_VERIFY_CERT 127 + +/* Reason codes. */ +# define X509_R_AKID_MISMATCH 110 +# define X509_R_BAD_X509_FILETYPE 100 +# define X509_R_BASE64_DECODE_ERROR 118 +# define X509_R_CANT_CHECK_DH_KEY 114 +# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 +# define X509_R_CRL_ALREADY_DELTA 127 +# define X509_R_CRL_VERIFY_FAILURE 131 +# define X509_R_ERR_ASN1_LIB 102 +# define X509_R_IDP_MISMATCH 128 +# define X509_R_INVALID_DIRECTORY 113 +# define X509_R_INVALID_FIELD_NAME 119 +# define X509_R_INVALID_TRUST 123 +# define X509_R_ISSUER_MISMATCH 129 +# define X509_R_KEY_TYPE_MISMATCH 115 +# define X509_R_KEY_VALUES_MISMATCH 116 +# define X509_R_LOADING_CERT_DIR 103 +# define X509_R_LOADING_DEFAULTS 104 +# define X509_R_METHOD_NOT_SUPPORTED 124 +# define X509_R_NAME_TOO_LONG 134 +# define X509_R_NEWER_CRL_NOT_NEWER 132 +# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 +# define X509_R_NO_CRL_NUMBER 130 +# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 +# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 +# define X509_R_SHOULD_RETRY 106 +# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 +# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 +# define X509_R_UNKNOWN_KEY_TYPE 117 +# define X509_R_UNKNOWN_NID 109 +# define X509_R_UNKNOWN_PURPOSE_ID 121 +# define X509_R_UNKNOWN_TRUST_ID 120 +# define X509_R_UNSUPPORTED_ALGORITHM 111 +# define X509_R_WRONG_LOOKUP_TYPE 112 +# define X509_R_WRONG_TYPE 122 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/x509_vfy.h b/External/include64/openssl/x509_vfy.h new file mode 100644 index 00000000..2663e1c0 --- /dev/null +++ b/External/include64/openssl/x509_vfy.h @@ -0,0 +1,647 @@ +/* crypto/x509/x509_vfy.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_X509_H +# include +/* + * openssl/x509.h ends up #include-ing this file at about the only + * appropriate moment. + */ +#endif + +#ifndef HEADER_X509_VFY_H +# define HEADER_X509_VFY_H + +# include +# ifndef OPENSSL_NO_LHASH +# include +# endif +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# if 0 +/* Outer object */ +typedef struct x509_hash_dir_st { + int num_dirs; + char **dirs; + int *dirs_type; + int num_dirs_alloced; +} X509_HASH_DIR_CTX; +# endif + +typedef struct x509_file_st { + int num_paths; /* number of paths to files or directories */ + int num_alloced; + char **paths; /* the list of paths or directories */ + int *path_type; +} X509_CERT_FILE_CTX; + +/*******************************/ +/*- +SSL_CTX -> X509_STORE + -> X509_LOOKUP + ->X509_LOOKUP_METHOD + -> X509_LOOKUP + ->X509_LOOKUP_METHOD + +SSL -> X509_STORE_CTX + ->X509_STORE + +The X509_STORE holds the tables etc for verification stuff. +A X509_STORE_CTX is used while validating a single certificate. +The X509_STORE has X509_LOOKUPs for looking up certs. +The X509_STORE then calls a function to actually verify the +certificate chain. +*/ + +# define X509_LU_RETRY -1 +# define X509_LU_FAIL 0 +# define X509_LU_X509 1 +# define X509_LU_CRL 2 +# define X509_LU_PKEY 3 + +typedef struct x509_object_st { + /* one of the above types */ + int type; + union { + char *ptr; + X509 *x509; + X509_CRL *crl; + EVP_PKEY *pkey; + } data; +} X509_OBJECT; + +typedef struct x509_lookup_st X509_LOOKUP; + +DECLARE_STACK_OF(X509_LOOKUP) +DECLARE_STACK_OF(X509_OBJECT) + +/* This is a static that defines the function interface */ +typedef struct x509_lookup_method_st { + const char *name; + int (*new_item) (X509_LOOKUP *ctx); + void (*free) (X509_LOOKUP *ctx); + int (*init) (X509_LOOKUP *ctx); + int (*shutdown) (X509_LOOKUP *ctx); + int (*ctrl) (X509_LOOKUP *ctx, int cmd, const char *argc, long argl, + char **ret); + int (*get_by_subject) (X509_LOOKUP *ctx, int type, X509_NAME *name, + X509_OBJECT *ret); + int (*get_by_issuer_serial) (X509_LOOKUP *ctx, int type, X509_NAME *name, + ASN1_INTEGER *serial, X509_OBJECT *ret); + int (*get_by_fingerprint) (X509_LOOKUP *ctx, int type, + unsigned char *bytes, int len, + X509_OBJECT *ret); + int (*get_by_alias) (X509_LOOKUP *ctx, int type, char *str, int len, + X509_OBJECT *ret); +} X509_LOOKUP_METHOD; + +typedef struct X509_VERIFY_PARAM_ID_st X509_VERIFY_PARAM_ID; + +/* + * This structure hold all parameters associated with a verify operation by + * including an X509_VERIFY_PARAM structure in related structures the + * parameters used can be customized + */ + +typedef struct X509_VERIFY_PARAM_st { + char *name; + time_t check_time; /* Time to use */ + unsigned long inh_flags; /* Inheritance flags */ + unsigned long flags; /* Various verify flags */ + int purpose; /* purpose to check untrusted certificates */ + int trust; /* trust setting to check */ + int depth; /* Verify depth */ + STACK_OF(ASN1_OBJECT) *policies; /* Permissible policies */ + X509_VERIFY_PARAM_ID *id; /* opaque ID data */ +} X509_VERIFY_PARAM; + +DECLARE_STACK_OF(X509_VERIFY_PARAM) + +/* + * This is used to hold everything. It is used for all certificate + * validation. Once we have a certificate chain, the 'verify' function is + * then called to actually check the cert chain. + */ +struct x509_store_st { + /* The following is a cache of trusted certs */ + int cache; /* if true, stash any hits */ + STACK_OF(X509_OBJECT) *objs; /* Cache of all objects */ + /* These are external lookup methods */ + STACK_OF(X509_LOOKUP) *get_cert_methods; + X509_VERIFY_PARAM *param; + /* Callbacks for various operations */ + /* called to verify a certificate */ + int (*verify) (X509_STORE_CTX *ctx); + /* error callback */ + int (*verify_cb) (int ok, X509_STORE_CTX *ctx); + /* get issuers cert from ctx */ + int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); + /* check issued */ + int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); + /* Check revocation status of chain */ + int (*check_revocation) (X509_STORE_CTX *ctx); + /* retrieve CRL */ + int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); + /* Check CRL validity */ + int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); + /* Check certificate against CRL */ + int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); + STACK_OF(X509) *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); + STACK_OF(X509_CRL) *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); + int (*cleanup) (X509_STORE_CTX *ctx); + CRYPTO_EX_DATA ex_data; + int references; +} /* X509_STORE */ ; + +int X509_STORE_set_depth(X509_STORE *store, int depth); + +# define X509_STORE_set_verify_cb_func(ctx,func) ((ctx)->verify_cb=(func)) +# define X509_STORE_set_verify_func(ctx,func) ((ctx)->verify=(func)) + +/* This is the functions plus an instance of the local variables. */ +struct x509_lookup_st { + int init; /* have we been started */ + int skip; /* don't use us. */ + X509_LOOKUP_METHOD *method; /* the functions */ + char *method_data; /* method data */ + X509_STORE *store_ctx; /* who owns us */ +} /* X509_LOOKUP */ ; + +/* + * This is a used when verifying cert chains. Since the gathering of the + * cert chain can take some time (and have to be 'retried', this needs to be + * kept and passed around. + */ +struct x509_store_ctx_st { /* X509_STORE_CTX */ + X509_STORE *ctx; + /* used when looking up certs */ + int current_method; + /* The following are set by the caller */ + /* The cert to check */ + X509 *cert; + /* chain of X509s - untrusted - passed in */ + STACK_OF(X509) *untrusted; + /* set of CRLs passed in */ + STACK_OF(X509_CRL) *crls; + X509_VERIFY_PARAM *param; + /* Other info for use with get_issuer() */ + void *other_ctx; + /* Callbacks for various operations */ + /* called to verify a certificate */ + int (*verify) (X509_STORE_CTX *ctx); + /* error callback */ + int (*verify_cb) (int ok, X509_STORE_CTX *ctx); + /* get issuers cert from ctx */ + int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); + /* check issued */ + int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); + /* Check revocation status of chain */ + int (*check_revocation) (X509_STORE_CTX *ctx); + /* retrieve CRL */ + int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); + /* Check CRL validity */ + int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); + /* Check certificate against CRL */ + int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); + int (*check_policy) (X509_STORE_CTX *ctx); + STACK_OF(X509) *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); + STACK_OF(X509_CRL) *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); + int (*cleanup) (X509_STORE_CTX *ctx); + /* The following is built up */ + /* if 0, rebuild chain */ + int valid; + /* index of last untrusted cert */ + int last_untrusted; + /* chain of X509s - built up and trusted */ + STACK_OF(X509) *chain; + /* Valid policy tree */ + X509_POLICY_TREE *tree; + /* Require explicit policy value */ + int explicit_policy; + /* When something goes wrong, this is why */ + int error_depth; + int error; + X509 *current_cert; + /* cert currently being tested as valid issuer */ + X509 *current_issuer; + /* current CRL */ + X509_CRL *current_crl; + /* score of current CRL */ + int current_crl_score; + /* Reason mask */ + unsigned int current_reasons; + /* For CRL path validation: parent context */ + X509_STORE_CTX *parent; + CRYPTO_EX_DATA ex_data; +} /* X509_STORE_CTX */ ; + +void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); + +# define X509_STORE_CTX_set_app_data(ctx,data) \ + X509_STORE_CTX_set_ex_data(ctx,0,data) +# define X509_STORE_CTX_get_app_data(ctx) \ + X509_STORE_CTX_get_ex_data(ctx,0) + +# define X509_L_FILE_LOAD 1 +# define X509_L_ADD_DIR 2 + +# define X509_LOOKUP_load_file(x,name,type) \ + X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) + +# define X509_LOOKUP_add_dir(x,name,type) \ + X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) + +# define X509_V_OK 0 +# define X509_V_ERR_UNSPECIFIED 1 + +# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 +# define X509_V_ERR_UNABLE_TO_GET_CRL 3 +# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 +# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 +# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 +# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 +# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 +# define X509_V_ERR_CERT_NOT_YET_VALID 9 +# define X509_V_ERR_CERT_HAS_EXPIRED 10 +# define X509_V_ERR_CRL_NOT_YET_VALID 11 +# define X509_V_ERR_CRL_HAS_EXPIRED 12 +# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 +# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 +# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 +# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 +# define X509_V_ERR_OUT_OF_MEM 17 +# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 +# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 +# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 +# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 +# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 +# define X509_V_ERR_CERT_REVOKED 23 +# define X509_V_ERR_INVALID_CA 24 +# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 +# define X509_V_ERR_INVALID_PURPOSE 26 +# define X509_V_ERR_CERT_UNTRUSTED 27 +# define X509_V_ERR_CERT_REJECTED 28 +/* These are 'informational' when looking for issuer cert */ +# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 +# define X509_V_ERR_AKID_SKID_MISMATCH 30 +# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 +# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 + +# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 +# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 +# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 +# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 +# define X509_V_ERR_INVALID_NON_CA 37 +# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 +# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 +# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 + +# define X509_V_ERR_INVALID_EXTENSION 41 +# define X509_V_ERR_INVALID_POLICY_EXTENSION 42 +# define X509_V_ERR_NO_EXPLICIT_POLICY 43 +# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 +# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 + +# define X509_V_ERR_UNNESTED_RESOURCE 46 + +# define X509_V_ERR_PERMITTED_VIOLATION 47 +# define X509_V_ERR_EXCLUDED_VIOLATION 48 +# define X509_V_ERR_SUBTREE_MINMAX 49 +# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 +# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 +# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 +# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 + +/* Suite B mode algorithm violation */ +# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 +# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 +# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 +# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 +# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 +# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 + +/* Host, email and IP check errors */ +# define X509_V_ERR_HOSTNAME_MISMATCH 62 +# define X509_V_ERR_EMAIL_MISMATCH 63 +# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 + +/* The application is not happy */ +# define X509_V_ERR_APPLICATION_VERIFICATION 50 + +/* Certificate verify flags */ + +/* Send issuer+subject checks to verify_cb */ +# define X509_V_FLAG_CB_ISSUER_CHECK 0x1 +/* Use check time instead of current time */ +# define X509_V_FLAG_USE_CHECK_TIME 0x2 +/* Lookup CRLs */ +# define X509_V_FLAG_CRL_CHECK 0x4 +/* Lookup CRLs for whole chain */ +# define X509_V_FLAG_CRL_CHECK_ALL 0x8 +/* Ignore unhandled critical extensions */ +# define X509_V_FLAG_IGNORE_CRITICAL 0x10 +/* Disable workarounds for broken certificates */ +# define X509_V_FLAG_X509_STRICT 0x20 +/* Enable proxy certificate validation */ +# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 +/* Enable policy checking */ +# define X509_V_FLAG_POLICY_CHECK 0x80 +/* Policy variable require-explicit-policy */ +# define X509_V_FLAG_EXPLICIT_POLICY 0x100 +/* Policy variable inhibit-any-policy */ +# define X509_V_FLAG_INHIBIT_ANY 0x200 +/* Policy variable inhibit-policy-mapping */ +# define X509_V_FLAG_INHIBIT_MAP 0x400 +/* Notify callback that policy is OK */ +# define X509_V_FLAG_NOTIFY_POLICY 0x800 +/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ +# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 +/* Delta CRL support */ +# define X509_V_FLAG_USE_DELTAS 0x2000 +/* Check selfsigned CA signature */ +# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 +/* Use trusted store first */ +# define X509_V_FLAG_TRUSTED_FIRST 0x8000 +/* Suite B 128 bit only mode: not normally used */ +# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 +/* Suite B 192 bit only mode */ +# define X509_V_FLAG_SUITEB_192_LOS 0x20000 +/* Suite B 128 bit mode allowing 192 bit algorithms */ +# define X509_V_FLAG_SUITEB_128_LOS 0x30000 + +/* Allow partial chains if at least one certificate is in trusted store */ +# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 +/* + * If the initial chain is not trusted, do not attempt to build an alternative + * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag + * will force the behaviour to match that of previous versions. + */ +# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 + +# define X509_VP_FLAG_DEFAULT 0x1 +# define X509_VP_FLAG_OVERWRITE 0x2 +# define X509_VP_FLAG_RESET_FLAGS 0x4 +# define X509_VP_FLAG_LOCKED 0x8 +# define X509_VP_FLAG_ONCE 0x10 + +/* Internal use: mask of policy related options */ +# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ + | X509_V_FLAG_EXPLICIT_POLICY \ + | X509_V_FLAG_INHIBIT_ANY \ + | X509_V_FLAG_INHIBIT_MAP) + +int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type, + X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, + int type, X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, + X509_OBJECT *x); +void X509_OBJECT_up_ref_count(X509_OBJECT *a); +void X509_OBJECT_free_contents(X509_OBJECT *a); +X509_STORE *X509_STORE_new(void); +void X509_STORE_free(X509_STORE *v); + +STACK_OF(X509) *X509_STORE_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); +STACK_OF(X509_CRL) *X509_STORE_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); +int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); +int X509_STORE_set_trust(X509_STORE *ctx, int trust); +int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); + +void X509_STORE_set_verify_cb(X509_STORE *ctx, + int (*verify_cb) (int, X509_STORE_CTX *)); + +void X509_STORE_set_lookup_crls_cb(X509_STORE *ctx, + STACK_OF(X509_CRL) *(*cb) (X509_STORE_CTX + *ctx, + X509_NAME *nm)); + +X509_STORE_CTX *X509_STORE_CTX_new(void); + +int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); + +void X509_STORE_CTX_free(X509_STORE_CTX *ctx); +int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, + X509 *x509, STACK_OF(X509) *chain); +void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); +void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); + +X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); + +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); + +X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); +X509_LOOKUP_METHOD *X509_LOOKUP_file(void); + +int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); +int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); + +int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name, + X509_OBJECT *ret); + +int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, + long argl, char **ret); + +# ifndef OPENSSL_NO_STDIO +int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); +# endif + +X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); +void X509_LOOKUP_free(X509_LOOKUP *ctx); +int X509_LOOKUP_init(X509_LOOKUP *ctx); +int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type, X509_NAME *name, + X509_OBJECT *ret); +int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type, X509_NAME *name, + ASN1_INTEGER *serial, X509_OBJECT *ret); +int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type, + unsigned char *bytes, int len, + X509_OBJECT *ret); +int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, int len, + X509_OBJECT *ret); +int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); + +# ifndef OPENSSL_NO_STDIO +int X509_STORE_load_locations(X509_STORE *ctx, + const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *ctx); +# endif + +int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, + CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); +void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); +int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); +int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); +X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); +X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); +X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); +STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); +STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); +void X509_STORE_CTX_set_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); +void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk); +int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); +int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); +int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, + int purpose, int trust); +void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); +void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, + time_t t); +void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, + int (*verify_cb) (int, X509_STORE_CTX *)); + +X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); +int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); + +X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); +int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); + +/* X509_VERIFY_PARAM functions */ + +X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); +void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, + const X509_VERIFY_PARAM *from); +int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, + const X509_VERIFY_PARAM *from); +int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); +int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, + unsigned long flags); +int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, + unsigned long flags); +unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); +void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); +void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); +int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, + ASN1_OBJECT *policy); +int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, + STACK_OF(ASN1_OBJECT) *policies); + +int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, + unsigned int flags); +char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); +int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, + const char *email, size_t emaillen); +int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, + const unsigned char *ip, size_t iplen); +int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, + const char *ipasc); + +int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); +const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); + +int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_get_count(void); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); +void X509_VERIFY_PARAM_table_cleanup(void); + +int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, + STACK_OF(X509) *certs, + STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); + +void X509_policy_tree_free(X509_POLICY_TREE *tree); + +int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); +X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, + int i); + +STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_policies(const + X509_POLICY_TREE + *tree); + +STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_user_policies(const + X509_POLICY_TREE + *tree); + +int X509_policy_level_node_count(X509_POLICY_LEVEL *level); + +X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, + int i); + +const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); + +STACK_OF(POLICYQUALINFO) *X509_policy_node_get0_qualifiers(const + X509_POLICY_NODE + *node); +const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE + *node); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/include64/openssl/x509v3.h b/External/include64/openssl/x509v3.h new file mode 100644 index 00000000..f5c61560 --- /dev/null +++ b/External/include64/openssl/x509v3.h @@ -0,0 +1,1055 @@ +/* x509v3.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project + * 1999. + */ +/* ==================================================================== + * Copyright (c) 1999-2004 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ +#ifndef HEADER_X509V3_H +# define HEADER_X509V3_H + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef OPENSSL_SYS_WIN32 +/* Under Win32 these are defined in wincrypt.h */ +# undef X509_NAME +# undef X509_CERT_PAIR +# undef X509_EXTENSIONS +# endif + +/* Forward reference */ +struct v3_ext_method; +struct v3_ext_ctx; + +/* Useful typedefs */ + +typedef void *(*X509V3_EXT_NEW)(void); +typedef void (*X509V3_EXT_FREE) (void *); +typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); +typedef int (*X509V3_EXT_I2D) (void *, unsigned char **); +typedef STACK_OF(CONF_VALUE) * + (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, + STACK_OF(CONF_VALUE) *extlist); +typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, + STACK_OF(CONF_VALUE) *values); +typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, + void *ext); +typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, const char *str); +typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, + BIO *out, int indent); +typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, const char *str); + +/* V3 extension structure */ + +struct v3_ext_method { + int ext_nid; + int ext_flags; +/* If this is set the following four fields are ignored */ + ASN1_ITEM_EXP *it; +/* Old style ASN1 calls */ + X509V3_EXT_NEW ext_new; + X509V3_EXT_FREE ext_free; + X509V3_EXT_D2I d2i; + X509V3_EXT_I2D i2d; +/* The following pair is used for string extensions */ + X509V3_EXT_I2S i2s; + X509V3_EXT_S2I s2i; +/* The following pair is used for multi-valued extensions */ + X509V3_EXT_I2V i2v; + X509V3_EXT_V2I v2i; +/* The following are used for raw extensions */ + X509V3_EXT_I2R i2r; + X509V3_EXT_R2I r2i; + void *usr_data; /* Any extension specific data */ +}; + +typedef struct X509V3_CONF_METHOD_st { + char *(*get_string) (void *db, char *section, char *value); + STACK_OF(CONF_VALUE) *(*get_section) (void *db, char *section); + void (*free_string) (void *db, char *string); + void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); +} X509V3_CONF_METHOD; + +/* Context specific info */ +struct v3_ext_ctx { +# define CTX_TEST 0x1 + int flags; + X509 *issuer_cert; + X509 *subject_cert; + X509_REQ *subject_req; + X509_CRL *crl; + X509V3_CONF_METHOD *db_meth; + void *db; +/* Maybe more here */ +}; + +typedef struct v3_ext_method X509V3_EXT_METHOD; + +DECLARE_STACK_OF(X509V3_EXT_METHOD) + +/* ext_flags values */ +# define X509V3_EXT_DYNAMIC 0x1 +# define X509V3_EXT_CTX_DEP 0x2 +# define X509V3_EXT_MULTILINE 0x4 + +typedef BIT_STRING_BITNAME ENUMERATED_NAMES; + +typedef struct BASIC_CONSTRAINTS_st { + int ca; + ASN1_INTEGER *pathlen; +} BASIC_CONSTRAINTS; + +typedef struct PKEY_USAGE_PERIOD_st { + ASN1_GENERALIZEDTIME *notBefore; + ASN1_GENERALIZEDTIME *notAfter; +} PKEY_USAGE_PERIOD; + +typedef struct otherName_st { + ASN1_OBJECT *type_id; + ASN1_TYPE *value; +} OTHERNAME; + +typedef struct EDIPartyName_st { + ASN1_STRING *nameAssigner; + ASN1_STRING *partyName; +} EDIPARTYNAME; + +typedef struct GENERAL_NAME_st { +# define GEN_OTHERNAME 0 +# define GEN_EMAIL 1 +# define GEN_DNS 2 +# define GEN_X400 3 +# define GEN_DIRNAME 4 +# define GEN_EDIPARTY 5 +# define GEN_URI 6 +# define GEN_IPADD 7 +# define GEN_RID 8 + int type; + union { + char *ptr; + OTHERNAME *otherName; /* otherName */ + ASN1_IA5STRING *rfc822Name; + ASN1_IA5STRING *dNSName; + ASN1_TYPE *x400Address; + X509_NAME *directoryName; + EDIPARTYNAME *ediPartyName; + ASN1_IA5STRING *uniformResourceIdentifier; + ASN1_OCTET_STRING *iPAddress; + ASN1_OBJECT *registeredID; + /* Old names */ + ASN1_OCTET_STRING *ip; /* iPAddress */ + X509_NAME *dirn; /* dirn */ + ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, + * uniformResourceIdentifier */ + ASN1_OBJECT *rid; /* registeredID */ + ASN1_TYPE *other; /* x400Address */ + } d; +} GENERAL_NAME; + +typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; + +typedef struct ACCESS_DESCRIPTION_st { + ASN1_OBJECT *method; + GENERAL_NAME *location; +} ACCESS_DESCRIPTION; + +typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; + +typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; + +DECLARE_STACK_OF(GENERAL_NAME) +DECLARE_ASN1_SET_OF(GENERAL_NAME) + +DECLARE_STACK_OF(ACCESS_DESCRIPTION) +DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION) + +typedef struct DIST_POINT_NAME_st { + int type; + union { + GENERAL_NAMES *fullname; + STACK_OF(X509_NAME_ENTRY) *relativename; + } name; +/* If relativename then this contains the full distribution point name */ + X509_NAME *dpname; +} DIST_POINT_NAME; +/* All existing reasons */ +# define CRLDP_ALL_REASONS 0x807f + +# define CRL_REASON_NONE -1 +# define CRL_REASON_UNSPECIFIED 0 +# define CRL_REASON_KEY_COMPROMISE 1 +# define CRL_REASON_CA_COMPROMISE 2 +# define CRL_REASON_AFFILIATION_CHANGED 3 +# define CRL_REASON_SUPERSEDED 4 +# define CRL_REASON_CESSATION_OF_OPERATION 5 +# define CRL_REASON_CERTIFICATE_HOLD 6 +# define CRL_REASON_REMOVE_FROM_CRL 8 +# define CRL_REASON_PRIVILEGE_WITHDRAWN 9 +# define CRL_REASON_AA_COMPROMISE 10 + +struct DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + GENERAL_NAMES *CRLissuer; + int dp_reasons; +}; + +typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; + +DECLARE_STACK_OF(DIST_POINT) +DECLARE_ASN1_SET_OF(DIST_POINT) + +struct AUTHORITY_KEYID_st { + ASN1_OCTET_STRING *keyid; + GENERAL_NAMES *issuer; + ASN1_INTEGER *serial; +}; + +/* Strong extranet structures */ + +typedef struct SXNET_ID_st { + ASN1_INTEGER *zone; + ASN1_OCTET_STRING *user; +} SXNETID; + +DECLARE_STACK_OF(SXNETID) +DECLARE_ASN1_SET_OF(SXNETID) + +typedef struct SXNET_st { + ASN1_INTEGER *version; + STACK_OF(SXNETID) *ids; +} SXNET; + +typedef struct NOTICEREF_st { + ASN1_STRING *organization; + STACK_OF(ASN1_INTEGER) *noticenos; +} NOTICEREF; + +typedef struct USERNOTICE_st { + NOTICEREF *noticeref; + ASN1_STRING *exptext; +} USERNOTICE; + +typedef struct POLICYQUALINFO_st { + ASN1_OBJECT *pqualid; + union { + ASN1_IA5STRING *cpsuri; + USERNOTICE *usernotice; + ASN1_TYPE *other; + } d; +} POLICYQUALINFO; + +DECLARE_STACK_OF(POLICYQUALINFO) +DECLARE_ASN1_SET_OF(POLICYQUALINFO) + +typedef struct POLICYINFO_st { + ASN1_OBJECT *policyid; + STACK_OF(POLICYQUALINFO) *qualifiers; +} POLICYINFO; + +typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; + +DECLARE_STACK_OF(POLICYINFO) +DECLARE_ASN1_SET_OF(POLICYINFO) + +typedef struct POLICY_MAPPING_st { + ASN1_OBJECT *issuerDomainPolicy; + ASN1_OBJECT *subjectDomainPolicy; +} POLICY_MAPPING; + +DECLARE_STACK_OF(POLICY_MAPPING) + +typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; + +typedef struct GENERAL_SUBTREE_st { + GENERAL_NAME *base; + ASN1_INTEGER *minimum; + ASN1_INTEGER *maximum; +} GENERAL_SUBTREE; + +DECLARE_STACK_OF(GENERAL_SUBTREE) + +struct NAME_CONSTRAINTS_st { + STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; + STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; +}; + +typedef struct POLICY_CONSTRAINTS_st { + ASN1_INTEGER *requireExplicitPolicy; + ASN1_INTEGER *inhibitPolicyMapping; +} POLICY_CONSTRAINTS; + +/* Proxy certificate structures, see RFC 3820 */ +typedef struct PROXY_POLICY_st { + ASN1_OBJECT *policyLanguage; + ASN1_OCTET_STRING *policy; +} PROXY_POLICY; + +typedef struct PROXY_CERT_INFO_EXTENSION_st { + ASN1_INTEGER *pcPathLengthConstraint; + PROXY_POLICY *proxyPolicy; +} PROXY_CERT_INFO_EXTENSION; + +DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) +DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) + +struct ISSUING_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + int onlyuser; + int onlyCA; + ASN1_BIT_STRING *onlysomereasons; + int indirectCRL; + int onlyattr; +}; + +/* Values in idp_flags field */ +/* IDP present */ +# define IDP_PRESENT 0x1 +/* IDP values inconsistent */ +# define IDP_INVALID 0x2 +/* onlyuser true */ +# define IDP_ONLYUSER 0x4 +/* onlyCA true */ +# define IDP_ONLYCA 0x8 +/* onlyattr true */ +# define IDP_ONLYATTR 0x10 +/* indirectCRL true */ +# define IDP_INDIRECT 0x20 +/* onlysomereasons present */ +# define IDP_REASONS 0x40 + +# define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \ +",name:", val->name, ",value:", val->value); + +# define X509V3_set_ctx_test(ctx) \ + X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST) +# define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; + +# define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ + 0,0,0,0, \ + 0,0, \ + (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ + (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ + NULL, NULL, \ + table} + +# define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ + 0,0,0,0, \ + (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ + (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ + 0,0,0,0, \ + NULL} + +# define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + +/* X509_PURPOSE stuff */ + +# define EXFLAG_BCONS 0x1 +# define EXFLAG_KUSAGE 0x2 +# define EXFLAG_XKUSAGE 0x4 +# define EXFLAG_NSCERT 0x8 + +# define EXFLAG_CA 0x10 +/* Really self issued not necessarily self signed */ +# define EXFLAG_SI 0x20 +# define EXFLAG_V1 0x40 +# define EXFLAG_INVALID 0x80 +# define EXFLAG_SET 0x100 +# define EXFLAG_CRITICAL 0x200 +# define EXFLAG_PROXY 0x400 + +# define EXFLAG_INVALID_POLICY 0x800 +# define EXFLAG_FRESHEST 0x1000 +/* Self signed */ +# define EXFLAG_SS 0x2000 + +# define KU_DIGITAL_SIGNATURE 0x0080 +# define KU_NON_REPUDIATION 0x0040 +# define KU_KEY_ENCIPHERMENT 0x0020 +# define KU_DATA_ENCIPHERMENT 0x0010 +# define KU_KEY_AGREEMENT 0x0008 +# define KU_KEY_CERT_SIGN 0x0004 +# define KU_CRL_SIGN 0x0002 +# define KU_ENCIPHER_ONLY 0x0001 +# define KU_DECIPHER_ONLY 0x8000 + +# define NS_SSL_CLIENT 0x80 +# define NS_SSL_SERVER 0x40 +# define NS_SMIME 0x20 +# define NS_OBJSIGN 0x10 +# define NS_SSL_CA 0x04 +# define NS_SMIME_CA 0x02 +# define NS_OBJSIGN_CA 0x01 +# define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) + +# define XKU_SSL_SERVER 0x1 +# define XKU_SSL_CLIENT 0x2 +# define XKU_SMIME 0x4 +# define XKU_CODE_SIGN 0x8 +# define XKU_SGC 0x10 +# define XKU_OCSP_SIGN 0x20 +# define XKU_TIMESTAMP 0x40 +# define XKU_DVCS 0x80 +# define XKU_ANYEKU 0x100 + +# define X509_PURPOSE_DYNAMIC 0x1 +# define X509_PURPOSE_DYNAMIC_NAME 0x2 + +typedef struct x509_purpose_st { + int purpose; + int trust; /* Default trust ID */ + int flags; + int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); + char *name; + char *sname; + void *usr_data; +} X509_PURPOSE; + +# define X509_PURPOSE_SSL_CLIENT 1 +# define X509_PURPOSE_SSL_SERVER 2 +# define X509_PURPOSE_NS_SSL_SERVER 3 +# define X509_PURPOSE_SMIME_SIGN 4 +# define X509_PURPOSE_SMIME_ENCRYPT 5 +# define X509_PURPOSE_CRL_SIGN 6 +# define X509_PURPOSE_ANY 7 +# define X509_PURPOSE_OCSP_HELPER 8 +# define X509_PURPOSE_TIMESTAMP_SIGN 9 + +# define X509_PURPOSE_MIN 1 +# define X509_PURPOSE_MAX 9 + +/* Flags for X509V3_EXT_print() */ + +# define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) +/* Return error for unknown extensions */ +# define X509V3_EXT_DEFAULT 0 +/* Print error for unknown extensions */ +# define X509V3_EXT_ERROR_UNKNOWN (1L << 16) +/* ASN1 parse unknown extensions */ +# define X509V3_EXT_PARSE_UNKNOWN (2L << 16) +/* BIO_dump unknown extensions */ +# define X509V3_EXT_DUMP_UNKNOWN (3L << 16) + +/* Flags for X509V3_add1_i2d */ + +# define X509V3_ADD_OP_MASK 0xfL +# define X509V3_ADD_DEFAULT 0L +# define X509V3_ADD_APPEND 1L +# define X509V3_ADD_REPLACE 2L +# define X509V3_ADD_REPLACE_EXISTING 3L +# define X509V3_ADD_KEEP_EXISTING 4L +# define X509V3_ADD_DELETE 5L +# define X509V3_ADD_SILENT 0x10 + +DECLARE_STACK_OF(X509_PURPOSE) + +DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) + +DECLARE_ASN1_FUNCTIONS(SXNET) +DECLARE_ASN1_FUNCTIONS(SXNETID) + +int SXNET_add_id_asc(SXNET **psx, char *zone, char *user, int userlen); +int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user, + int userlen); +int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, char *user, + int userlen); + +ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone); +ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); +ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); + +DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) + +DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) + +DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) +GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a); +int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); + +ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, + STACK_OF(CONF_VALUE) *nval); +STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, + ASN1_BIT_STRING *bits, + STACK_OF(CONF_VALUE) *extlist); + +STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, + GENERAL_NAME *gen, + STACK_OF(CONF_VALUE) *ret); +int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); + +DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) + +STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, + GENERAL_NAMES *gen, + STACK_OF(CONF_VALUE) *extlist); +GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); + +DECLARE_ASN1_FUNCTIONS(OTHERNAME) +DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) +int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); +void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); +void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype); +int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, + ASN1_OBJECT *oid, ASN1_TYPE *value); +int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen, + ASN1_OBJECT **poid, ASN1_TYPE **pvalue); + +char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, + ASN1_OCTET_STRING *ia5); +ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, char *str); + +DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) +int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION *a); + +DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) +DECLARE_ASN1_FUNCTIONS(POLICYINFO) +DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) +DECLARE_ASN1_FUNCTIONS(USERNOTICE) +DECLARE_ASN1_FUNCTIONS(NOTICEREF) + +DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) +DECLARE_ASN1_FUNCTIONS(DIST_POINT) +DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) +DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) + +int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname); + +int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); + +DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) +DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) + +DECLARE_ASN1_ITEM(POLICY_MAPPING) +DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) +DECLARE_ASN1_ITEM(POLICY_MAPPINGS) + +DECLARE_ASN1_ITEM(GENERAL_SUBTREE) +DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) + +DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) +DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) + +DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) +DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) + +GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, + const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, int gen_type, char *value, + int is_nc); + +# ifdef HEADER_CONF_H +GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, CONF_VALUE *cnf); +GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, + const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, CONF_VALUE *cnf, + int is_nc); +void X509V3_conf_free(CONF_VALUE *val); + +X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, + char *value); +X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, + char *value); +int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section, + STACK_OF(X509_EXTENSION) **sk); +int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, + X509 *cert); +int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, + X509_REQ *req); +int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, + X509_CRL *crl); + +X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, + X509V3_CTX *ctx, int ext_nid, + char *value); +X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + char *name, char *value); +int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + char *section, X509 *cert); +int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + char *section, X509_REQ *req); +int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + char *section, X509_CRL *crl); + +int X509V3_add_value_bool_nf(char *name, int asn1_bool, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_get_value_bool(CONF_VALUE *value, int *asn1_bool); +int X509V3_get_value_int(CONF_VALUE *value, ASN1_INTEGER **aint); +void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); +void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); +# endif + +char *X509V3_get_string(X509V3_CTX *ctx, char *name, char *section); +STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, char *section); +void X509V3_string_free(X509V3_CTX *ctx, char *str); +void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); +void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, + X509_REQ *req, X509_CRL *crl, int flags); + +int X509V3_add_value(const char *name, const char *value, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_uchar(const char *name, const unsigned char *value, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_bool(const char *name, int asn1_bool, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_int(const char *name, ASN1_INTEGER *aint, + STACK_OF(CONF_VALUE) **extlist); +char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint); +ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, char *value); +char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint); +char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, + ASN1_ENUMERATED *aint); +int X509V3_EXT_add(X509V3_EXT_METHOD *ext); +int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); +int X509V3_EXT_add_alias(int nid_to, int nid_from); +void X509V3_EXT_cleanup(void); + +const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); +const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); +int X509V3_add_standard_extensions(void); +STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); +void *X509V3_EXT_d2i(X509_EXTENSION *ext); +void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, + int *idx); +int X509V3_EXT_free(int nid, void *ext_data); + +X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); +int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, + int crit, unsigned long flags); + +char *hex_to_string(const unsigned char *buffer, long len); +unsigned char *string_to_hex(const char *str, long *len); +int name_cmp(const char *name, const char *cmp); + +void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, + int ml); +int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, + int indent); +int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); + +int X509V3_extensions_print(BIO *out, char *title, + STACK_OF(X509_EXTENSION) *exts, + unsigned long flag, int indent); + +int X509_check_ca(X509 *x); +int X509_check_purpose(X509 *x, int id, int ca); +int X509_supported_extension(X509_EXTENSION *ex); +int X509_PURPOSE_set(int *p, int purpose); +int X509_check_issued(X509 *issuer, X509 *subject); +int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid); +int X509_PURPOSE_get_count(void); +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_by_sname(char *sname); +int X509_PURPOSE_get_by_id(int id); +int X509_PURPOSE_add(int id, int trust, int flags, + int (*ck) (const X509_PURPOSE *, const X509 *, int), + char *name, char *sname, void *arg); +char *X509_PURPOSE_get0_name(X509_PURPOSE *xp); +char *X509_PURPOSE_get0_sname(X509_PURPOSE *xp); +int X509_PURPOSE_get_trust(X509_PURPOSE *xp); +void X509_PURPOSE_cleanup(void); +int X509_PURPOSE_get_id(X509_PURPOSE *); + +STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); +STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); +void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); +STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); +/* Flags for X509_check_* functions */ + +/* + * Always check subject name for host match even if subject alt names present + */ +# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 +/* Disable wildcard matching for dnsName fields and common name. */ +# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 +/* Wildcards must not match a partial label. */ +# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 +/* Allow (non-partial) wildcards to match multiple labels. */ +# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 +/* Constraint verifier subdomain patterns to match a single labels. */ +# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 +/* + * Match reference identifiers starting with "." to any sub-domain. + * This is a non-public flag, turned on implicitly when the subject + * reference identity is a DNS name. + */ +# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 + +int X509_check_host(X509 *x, const char *chk, size_t chklen, + unsigned int flags, char **peername); +int X509_check_email(X509 *x, const char *chk, size_t chklen, + unsigned int flags); +int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, + unsigned int flags); +int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); + +ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); +ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); +int a2i_ipadd(unsigned char *ipout, const char *ipasc); +int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, + unsigned long chtype); + +void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); +DECLARE_STACK_OF(X509_POLICY_NODE) + +# ifndef OPENSSL_NO_RFC3779 + +typedef struct ASRange_st { + ASN1_INTEGER *min, *max; +} ASRange; + +# define ASIdOrRange_id 0 +# define ASIdOrRange_range 1 + +typedef struct ASIdOrRange_st { + int type; + union { + ASN1_INTEGER *id; + ASRange *range; + } u; +} ASIdOrRange; + +typedef STACK_OF(ASIdOrRange) ASIdOrRanges; +DECLARE_STACK_OF(ASIdOrRange) + +# define ASIdentifierChoice_inherit 0 +# define ASIdentifierChoice_asIdsOrRanges 1 + +typedef struct ASIdentifierChoice_st { + int type; + union { + ASN1_NULL *inherit; + ASIdOrRanges *asIdsOrRanges; + } u; +} ASIdentifierChoice; + +typedef struct ASIdentifiers_st { + ASIdentifierChoice *asnum, *rdi; +} ASIdentifiers; + +DECLARE_ASN1_FUNCTIONS(ASRange) +DECLARE_ASN1_FUNCTIONS(ASIdOrRange) +DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) +DECLARE_ASN1_FUNCTIONS(ASIdentifiers) + +typedef struct IPAddressRange_st { + ASN1_BIT_STRING *min, *max; +} IPAddressRange; + +# define IPAddressOrRange_addressPrefix 0 +# define IPAddressOrRange_addressRange 1 + +typedef struct IPAddressOrRange_st { + int type; + union { + ASN1_BIT_STRING *addressPrefix; + IPAddressRange *addressRange; + } u; +} IPAddressOrRange; + +typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; +DECLARE_STACK_OF(IPAddressOrRange) + +# define IPAddressChoice_inherit 0 +# define IPAddressChoice_addressesOrRanges 1 + +typedef struct IPAddressChoice_st { + int type; + union { + ASN1_NULL *inherit; + IPAddressOrRanges *addressesOrRanges; + } u; +} IPAddressChoice; + +typedef struct IPAddressFamily_st { + ASN1_OCTET_STRING *addressFamily; + IPAddressChoice *ipAddressChoice; +} IPAddressFamily; + +typedef STACK_OF(IPAddressFamily) IPAddrBlocks; +DECLARE_STACK_OF(IPAddressFamily) + +DECLARE_ASN1_FUNCTIONS(IPAddressRange) +DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) +DECLARE_ASN1_FUNCTIONS(IPAddressChoice) +DECLARE_ASN1_FUNCTIONS(IPAddressFamily) + +/* + * API tag for elements of the ASIdentifer SEQUENCE. + */ +# define V3_ASID_ASNUM 0 +# define V3_ASID_RDI 1 + +/* + * AFI values, assigned by IANA. It'd be nice to make the AFI + * handling code totally generic, but there are too many little things + * that would need to be defined for other address families for it to + * be worth the trouble. + */ +# define IANA_AFI_IPV4 1 +# define IANA_AFI_IPV6 2 + +/* + * Utilities to construct and extract values from RFC3779 extensions, + * since some of the encodings (particularly for IP address prefixes + * and ranges) are a bit tedious to work with directly. + */ +int v3_asid_add_inherit(ASIdentifiers *asid, int which); +int v3_asid_add_id_or_range(ASIdentifiers *asid, int which, + ASN1_INTEGER *min, ASN1_INTEGER *max); +int v3_addr_add_inherit(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi); +int v3_addr_add_prefix(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi, + unsigned char *a, const int prefixlen); +int v3_addr_add_range(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi, + unsigned char *min, unsigned char *max); +unsigned v3_addr_get_afi(const IPAddressFamily *f); +int v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, + unsigned char *min, unsigned char *max, + const int length); + +/* + * Canonical forms. + */ +int v3_asid_is_canonical(ASIdentifiers *asid); +int v3_addr_is_canonical(IPAddrBlocks *addr); +int v3_asid_canonize(ASIdentifiers *asid); +int v3_addr_canonize(IPAddrBlocks *addr); + +/* + * Tests for inheritance and containment. + */ +int v3_asid_inherits(ASIdentifiers *asid); +int v3_addr_inherits(IPAddrBlocks *addr); +int v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); +int v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); + +/* + * Check whether RFC 3779 extensions nest properly in chains. + */ +int v3_asid_validate_path(X509_STORE_CTX *); +int v3_addr_validate_path(X509_STORE_CTX *); +int v3_asid_validate_resource_set(STACK_OF(X509) *chain, + ASIdentifiers *ext, int allow_inheritance); +int v3_addr_validate_resource_set(STACK_OF(X509) *chain, + IPAddrBlocks *ext, int allow_inheritance); + +# endif /* OPENSSL_NO_RFC3779 */ + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_X509V3_strings(void); + +/* Error codes for the X509V3 functions. */ + +/* Function codes. */ +# define X509V3_F_A2I_GENERAL_NAME 164 +# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 +# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 +# define X509V3_F_COPY_EMAIL 122 +# define X509V3_F_COPY_ISSUER 123 +# define X509V3_F_DO_DIRNAME 144 +# define X509V3_F_DO_EXT_CONF 124 +# define X509V3_F_DO_EXT_I2D 135 +# define X509V3_F_DO_EXT_NCONF 151 +# define X509V3_F_DO_I2V_NAME_CONSTRAINTS 148 +# define X509V3_F_GNAMES_FROM_SECTNAME 156 +# define X509V3_F_HEX_TO_STRING 111 +# define X509V3_F_I2S_ASN1_ENUMERATED 121 +# define X509V3_F_I2S_ASN1_IA5STRING 149 +# define X509V3_F_I2S_ASN1_INTEGER 120 +# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 +# define X509V3_F_NOTICE_SECTION 132 +# define X509V3_F_NREF_NOS 133 +# define X509V3_F_POLICY_SECTION 131 +# define X509V3_F_PROCESS_PCI_VALUE 150 +# define X509V3_F_R2I_CERTPOL 130 +# define X509V3_F_R2I_PCI 155 +# define X509V3_F_S2I_ASN1_IA5STRING 100 +# define X509V3_F_S2I_ASN1_INTEGER 108 +# define X509V3_F_S2I_ASN1_OCTET_STRING 112 +# define X509V3_F_S2I_ASN1_SKEY_ID 114 +# define X509V3_F_S2I_SKEY_ID 115 +# define X509V3_F_SET_DIST_POINT_NAME 158 +# define X509V3_F_STRING_TO_HEX 113 +# define X509V3_F_SXNET_ADD_ID_ASC 125 +# define X509V3_F_SXNET_ADD_ID_INTEGER 126 +# define X509V3_F_SXNET_ADD_ID_ULONG 127 +# define X509V3_F_SXNET_GET_ID_ASC 128 +# define X509V3_F_SXNET_GET_ID_ULONG 129 +# define X509V3_F_V2I_ASIDENTIFIERS 163 +# define X509V3_F_V2I_ASN1_BIT_STRING 101 +# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 +# define X509V3_F_V2I_AUTHORITY_KEYID 119 +# define X509V3_F_V2I_BASIC_CONSTRAINTS 102 +# define X509V3_F_V2I_CRLD 134 +# define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 +# define X509V3_F_V2I_GENERAL_NAMES 118 +# define X509V3_F_V2I_GENERAL_NAME_EX 117 +# define X509V3_F_V2I_IDP 157 +# define X509V3_F_V2I_IPADDRBLOCKS 159 +# define X509V3_F_V2I_ISSUER_ALT 153 +# define X509V3_F_V2I_NAME_CONSTRAINTS 147 +# define X509V3_F_V2I_POLICY_CONSTRAINTS 146 +# define X509V3_F_V2I_POLICY_MAPPINGS 145 +# define X509V3_F_V2I_SUBJECT_ALT 154 +# define X509V3_F_V3_ADDR_VALIDATE_PATH_INTERNAL 160 +# define X509V3_F_V3_GENERIC_EXTENSION 116 +# define X509V3_F_X509V3_ADD1_I2D 140 +# define X509V3_F_X509V3_ADD_VALUE 105 +# define X509V3_F_X509V3_EXT_ADD 104 +# define X509V3_F_X509V3_EXT_ADD_ALIAS 106 +# define X509V3_F_X509V3_EXT_CONF 107 +# define X509V3_F_X509V3_EXT_FREE 165 +# define X509V3_F_X509V3_EXT_I2D 136 +# define X509V3_F_X509V3_EXT_NCONF 152 +# define X509V3_F_X509V3_GET_SECTION 142 +# define X509V3_F_X509V3_GET_STRING 143 +# define X509V3_F_X509V3_GET_VALUE_BOOL 110 +# define X509V3_F_X509V3_PARSE_LIST 109 +# define X509V3_F_X509_PURPOSE_ADD 137 +# define X509V3_F_X509_PURPOSE_SET 141 + +/* Reason codes. */ +# define X509V3_R_BAD_IP_ADDRESS 118 +# define X509V3_R_BAD_OBJECT 119 +# define X509V3_R_BN_DEC2BN_ERROR 100 +# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 +# define X509V3_R_CANNOT_FIND_FREE_FUNCTION 168 +# define X509V3_R_DIRNAME_ERROR 149 +# define X509V3_R_DISTPOINT_ALREADY_SET 160 +# define X509V3_R_DUPLICATE_ZONE_ID 133 +# define X509V3_R_ERROR_CONVERTING_ZONE 131 +# define X509V3_R_ERROR_CREATING_EXTENSION 144 +# define X509V3_R_ERROR_IN_EXTENSION 128 +# define X509V3_R_EXPECTED_A_SECTION_NAME 137 +# define X509V3_R_EXTENSION_EXISTS 145 +# define X509V3_R_EXTENSION_NAME_ERROR 115 +# define X509V3_R_EXTENSION_NOT_FOUND 102 +# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 +# define X509V3_R_EXTENSION_VALUE_ERROR 116 +# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 +# define X509V3_R_ILLEGAL_HEX_DIGIT 113 +# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 +# define X509V3_R_INVALID_ASNUMBER 162 +# define X509V3_R_INVALID_ASRANGE 163 +# define X509V3_R_INVALID_BOOLEAN_STRING 104 +# define X509V3_R_INVALID_EXTENSION_STRING 105 +# define X509V3_R_INVALID_INHERITANCE 165 +# define X509V3_R_INVALID_IPADDRESS 166 +# define X509V3_R_INVALID_MULTIPLE_RDNS 161 +# define X509V3_R_INVALID_NAME 106 +# define X509V3_R_INVALID_NULL_ARGUMENT 107 +# define X509V3_R_INVALID_NULL_NAME 108 +# define X509V3_R_INVALID_NULL_VALUE 109 +# define X509V3_R_INVALID_NUMBER 140 +# define X509V3_R_INVALID_NUMBERS 141 +# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 +# define X509V3_R_INVALID_OPTION 138 +# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 +# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 +# define X509V3_R_INVALID_PURPOSE 146 +# define X509V3_R_INVALID_SAFI 164 +# define X509V3_R_INVALID_SECTION 135 +# define X509V3_R_INVALID_SYNTAX 143 +# define X509V3_R_ISSUER_DECODE_ERROR 126 +# define X509V3_R_MISSING_VALUE 124 +# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 +# define X509V3_R_NO_CONFIG_DATABASE 136 +# define X509V3_R_NO_ISSUER_CERTIFICATE 121 +# define X509V3_R_NO_ISSUER_DETAILS 127 +# define X509V3_R_NO_POLICY_IDENTIFIER 139 +# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 +# define X509V3_R_NO_PUBLIC_KEY 114 +# define X509V3_R_NO_SUBJECT_DETAILS 125 +# define X509V3_R_ODD_NUMBER_OF_DIGITS 112 +# define X509V3_R_OPERATION_NOT_DEFINED 148 +# define X509V3_R_OTHERNAME_ERROR 147 +# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 +# define X509V3_R_POLICY_PATH_LENGTH 156 +# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 +# define X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED 158 +# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 +# define X509V3_R_SECTION_NOT_FOUND 150 +# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 +# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 +# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 +# define X509V3_R_UNKNOWN_EXTENSION 129 +# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 +# define X509V3_R_UNKNOWN_OPTION 120 +# define X509V3_R_UNSUPPORTED_OPTION 117 +# define X509V3_R_UNSUPPORTED_TYPE 167 +# define X509V3_R_USER_TOO_LONG 132 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/External/lib/lib.pdb b/External/lib/lib.pdb new file mode 100644 index 0000000000000000000000000000000000000000..faeec5425afc8fb732dee00afe5fcb445fd19ad7 GIT binary patch literal 798720 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
py#8)%f`-tBSk@wnKQJAV>ns=DXjA5__W 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

SpSWPe&~F@D>HD!kQ&j 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

M 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 aBw!?9Bw!?9Bw!?9Bw!?9B=CPMf&Tyx&S1a* literal 0 HcmV?d00001 diff --git a/External/lib/libeay.lib b/External/lib/libeay.lib new file mode 100644 index 0000000000000000000000000000000000000000..d25650a5440cf17610ee008388c82bcacadf8f96 GIT binary patch literal 12372456 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

  • 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

    e}$uR(gbrT=q0=A8Zv@Y?5A!JQq*X(OE9!8*u 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

    Pj%exftA@SRqI#Yq-^e+8LwSeS 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

    sEWA}S( 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%0DsGy^onq;VEshqL(zRRM)fRW1#nBQ| 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 {w(SPoKz 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
      PPa6C&`{qihfjpIXy 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 z%0A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

      +mu?4;Hh(d7_jLk61o{dSI@@4q3 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

      sHZE&i($L=0(Ac(gnDf+& z3Xp+GI1_VIFK4M!t^_3OQ-EAH3{s4v*d&4Mr#49s=Xem$CMXc}aMW-t8woT_pK;{T z6LXSI0T_}`0j{so+Oe#)MTN+;ua2L-U&GiLGmdVUKIO0@8k7Wcuwy13J!R5yIjDOf zCm{=@|0zdIq97t+#5PrE`t2LMTQbev)xpCObg9WXsAr$#vcQBUjXlL~>$?|k7aO~` zU>yu3xH*>~B>!G^@k;Pn6v=5&J=Pg6=j>`t?rZFR< zI@N;i%he4Z79DzM!}u``_2a%eX6oS+CmlX@(u6UGjy!a@8~-?TxP?^2jes0Fa^9hJ zW5OLrj``Tl~=mT+WTK!woz+1JipJE`k13Q>L-gft$Ze0@ z+ue{OXi=$j(>d3c{FO?%Z#U%BDBQ0ba#Hgj)eSi{bWiSvoK*Q8-H_8KyQCX(8albL z8*+-jA9X`cpW?A@$Vu`4MmOXXzIVGJr}Wa*4LPO1YK=eSTw6*9lH0i(athy&Zpi8T z9?}gteYdIIkke4rN!^f>zir)+Q@84zZpdwe+{N9HQ~0jyhMdyXz1@&gJU`kEIfZY1 zH{|5r-@75Fbf7thx!0D`i_&wYMq_fWEy<}o=+jNPy}Kc&@^5T6z zt?GuH;`y>}$SMAA?1r4mzdO4jmqPB5ZpbPA-s*;&{QbNea(a*LREgwVTS^CtzX9El zlb1ugA*XykwHtCu&&PK|PStpGH{|w4?woGODW31>hMdZSb={D&eBKQ?xu=bgbFVFZ z4}IURZpg{KzNuW-w%mTPdZ8O~a_^9C$SMC$?}nVxUvoF)RA07tLr(F$svB}jr&o1D zPVJ`qx*@0c{cSho1|aulH{|qvdq_Cv+EO}@zdLtBPVqdl8*-}85AB8=P5NkhH{=w5 zE4m@4{C0Ua>xP`-D5C*0y-au%Y!sho@(=U+0M7ZYm}U`k~T$9}pc>8>KXnMsK_HL^oYV z^zi0+%Uar67PO}Z9ldAj$X2vZ&8MS=N{wgYX7l2vW%Bzy?j;HB9oxJ1iT#A=@`|nY zWep2Dmd{bnwi9|8`?=HHjmCdg~E??z(fz zKW@M3n#v#S_FcMncwCdX;+Zdw{mqPt_s&>+!TR%FzWLxN`X~N=ra;X*V0P=WmXlGS zrxuV{+ERm7>_2MH*{7l_Y&o?pwWyiYIjnwm^U`^XJLWgRl0t{o@4Nq~q4l#nh?3cD z?em*khNl159h%p|Bx2(D)c@@+nuF*Amo8{N`F}@9m3sbnxD(zu>tIJ-0WtqS6%YlJ zwb^1t<;1+GZbp4-=(5J?jO5Krrw&flH8r=U1kSOCHuo?xwKtDeCTN(mJepd&9n%7@ zhu7F@l`ZrXS7}GstTb#L|Kcib*7XrlpFT&N`=?vqAAHOBD{i}C=I{qk{`0$}r~hdg zx43!k(AN2LqbSpJ0FIMcJk3U+?jZ$0LtN z9>3J%*L!-mrztNt&C8APwBF+<`RC34d99}@kFWLaJnQLe-uyNHJjOrQ#MIln+tW)u zZT05UJiXr2yFInYvpLfiFO)e(DJzXG_w*W1&-HY^r>A<_Ixgp5o~;PyOe! zyd`ylP9LP?HZIA(Dy?#=8@JMdxejn@9+lg^5yH!DhJ$*&Zay420BkWFX%wyV#yr^a0b_l0p+!X)8gZDog!>=r^2cQ4QyAK{26i;zNI#Hi1MU-Sw0_FCh`B8u z*JvqiU!Hc^s8@%y^i8lMHff-4Yj`Y~XBgP*&VPYN> z&(&~FFtp5RwT_=Og*i`oVP_n?-c1Ogt?z`6p2*Y^KV^c+OAgf306*m=2WX*>uryc1 z4`F9TY$l6;)clJqn>*RUp?Q-vg3ozqz7sb7ZnGKUPuJGGq?O)PL6UJ31)}MPPhtK5 zY0xK152$M#X%c}?Q7I>$audhgOQ+I}ZKK%RB^K{A^8%PQl6}y;o2L0G<~yXC+ft`4YoUkhXKnc@ z1hK45B1tW1Y+lSUB$5B#%`Hn)=K21@Y{Cf=od&oPQYH`~NTg860kh|4&NvLJJq+T!>y zDeR{5!L~LF2{S*?C(I|x$=X@Ba#$BKjOI5jXzW?12v zgq!iSJvFyw{%IkS3rrAhTy~n|Lu@&B>0jogr7a6+MhiAWLDZJw()OAi5)o-PGKUp zG9#tJz`tq-_Y*f6^M~mEh&pBp+(n&OEETTyD*8hn4ZHrcE7pd<}^iPoKfIF3G;f-Ohbb z!2wLMoxzy>Zb$y?%1G0;xFs&Xz0$1>C6_yxJX1^a*58FY4a9Ch*=Zo&*Jex(EI;W4 z+7h;r9)FZ>yVxh7+dyeT+I9d>K^3-VpuM5{@J?>)dvR{-dvTT4C2-jNUas>0;DU3_ zlTy59uiP0@rNCQUaBgLfvm@K33C)jcfLs3JLu%FgD|Xpr@}{2mK%z8J?d8sYawdS% zk*@6=v3M=XvsI2sX+m8>>fE@8Rzt$Ko#CbswHkF1~4m9;g`qms$D zRbjUJc=L|i-={4e`=xG;F3IHE>IG7o*hPk1_x$T>dfBlpbvtxPCf}BFN_Hat=Dx4c z1C4EcBr9B!$+uMnQp)Zm?)v9@_b8Fd4J2=TIp>`Cf`=lY{hB5_vxq1$=XtvPM2iz zZ7CkI`Ro1Ge?OA7rEZ-r$>iHoTFTn`R^q0PtgU~0TawAQrJR+0uh-iTxG-xgr6Pn& zGWoXpf@IU-&y#=2@oS2=C7FC%N`cuFb@YHfOR|0~^|mCFZ>yi#Qrzk~>cBP6XKj7U z+mcMaEv1TV2wxp@oj^+2F~?m` zmF#|X*49?O7?n)EE!C){iTJ(tp1CL|S8~*pU6RSSrP3*zQ!beB(Xm;-8oe#aiIr1Igy))@2`jmbJByw=Szi?I7uRFb8lF7FV5nS;4t1nWpGe5)B#aZ z5dnEKU%0RHdgsn{UH}!j3^Ri>Fbw0&fLNxZh>C;xlA4+&m8q4PmYG=@3aOQqsg;?P zuSMC5nlDrq|L0k2?{m*N_s)Qzzt8`>;mlrlowe85d+oK>UT2?u_8DG4|Ic*i@eiGl zEj8DaB8|V)vA|^g#>ROouFsZQWJ;07Uuue!vcC7qb0YU-ORYDhNTXVI2QZZwGpIDf zeNn-2!pDwik5BpE-)tFdH(~gY#(#AT%&2o2{xa46>!>%frT%70k;Y%@cwn*-$baKU zdpzXP3_XxY<1aN0nCzJQ%oT+mZ8_bPB8|V)bSY)!^X!s4Udh&QqbWrif2kQ#%J$%6 z*F3g9Tk7kk6lwgW(9NhJJq**a|GqGqE%l5kMH+u8#>!d0`rZ-Sj?9+Yw}_l{y4_!D z7O>f|Y5iGM?b%W%m{O$imzpi5IF2xVZpuj1N;L!P1WhT@_)EuFJ4Z0UL?Vs9)Jec(J^xiRuZAL6X`E(Ck;Y#NE*qt+r7Sw*wZCUe^_xVe7n!yi1~ye(VmdQ*xt{!$H6%GU6q=uH@! ztPCGErAXs1)hMNo!e6G}g#WuPTk1_yiZuRGFbq!((_4=FVYbwieaT55`}#}G2Nv5Z z$yt00`PVnXwb&XiFr`T2FSS5QjWwl0otL#{OI>A3k;Y$Yp_H0zO5JcJw`{Z5ddQR_ zjlb0CQp(D3?8f7!WJ_%~rAXs1b%vC(etyzJzq~eE>S)vXr16(JQ%ZdVf0_FGwjPr$ z)o4nQ#$Rd?FxhcA@!z`FvZbytrAXs1b(WN}Ui6MxH@%Q8^?g%{H2zYHrIhsm7jJs$ zi`i1|no^|km&!;f>*rtm$x#E@Qb!oGBaOe*5-Bwff0_0kbwgdYRN9nUf;0Y7&A?>6 zX#dkseK%X`VpEDV{!&Y&)c*L(bnSb|$FrrrWlE98UkV0~YuR2-p19?TY^j$_Dbk>n zXT2$u6{U{DUk22la|SNY-Ab%YXx_r#y>KwKy3juMf=(GYGfm3D%r=--p-JJFdG3s7 z&UWRec`G&@j-@KAYa9z65LEosEQ3l@+mgIw@41XWf3X%5Y^YS`mp?ro#E3 zf&0nJ!-?8Rb#){X4d;6{?k7%%>yj1GnwoT7SRarM_RQR0tR`GpS6f$J9ZzM81)rt+ zOH_p8wH0;AbX~2dgy(sOkGd`#OPALrAwn;4Pp6M4S{+W+#cFD5E0P{6_feTVlJ^%# zK#+AcQf&f){sw$mMRapVqbp}2vR4!Q?tEsH1v0cf^>G}g7 zVO_X9SyNFRbJ>~4(LSPRB3zw{rxWF|h^d-yxq_b-7p$zTi==9!hSs}`!ADvbt}c%x zp`KPQ=4rQ&s5Tt0N?~=1D;0T==_83k6t%H9)DNUE|fZ4Jl2cEV2_4cA6%%j30`rpehQ6@I!{xF%7Vu8O7;UP683=ckN@Yam3d zQnB4kmill!B~?+8OeE`E znfe!s_^4Ci+IYOYx*}z3q6QVuBxpKYp>7J zWjga_xx=ZyZiq3e>#9?=@U5nRS-^w($)-hq@>saMvOI<*U)5o=C}Q3$F1|rEf*vAT z9R=dTEenrO6SMM& z#<6Ubueq@F+GxBsQkM*S>nvNVSi6pd%hMQc%TqBQO&(Fl!WD2Xkz}e)D9tJ+n3${{ z@m&};5lzRU<#o_4UfHg1a*35abPKDN{3UC`(duLzjxnJn?b@e#v$*&P>ZnW1{DmsQ zu^8+xrR{XrORpZK>7&va|!b>PKRrgRq5I!e1nHC zYwwq53?o5Rd0lNJW$A{pz>0Vx9jUE}T3YZM!enD`mbK|fA{nU&n}ug)Y~a!}(+y%C zM(MKBhZ{`QR;S~2v9L$tdG$XP#*Rwyx>O<|q?EHqgUwa)7#sXgO=WF)1wv3>0_)dM zkarAu%`8?Gu0@EGKop-P59*N}F3`3W*|t=KE71+Lu}BR|(pAY~x5527f|*2ZIiyw* zmSu2IPDUwtdO4a5*QOIu1jw~vT?GeP_#7^g^NYc2X9zGVDx#5C1#V??OJVsOd`E}h zn~GDbh@}&Csk}vGX`Sogd>2cE5oKekZ#sgKvgXdE%j;<2v~i!0O|o3-tmXO`SB0bT znyPqpssf}QYqs%L?&wqmuAr%HuAG;>GaiAZ1?73%p&bRY*>bEJFy4Y4BgYKOw!Kw06Ssk z%<0)Zz^2F^U|(3R-+#p9P2N4g-s04dH|5y_?Dg^ZK3jk;Jjfnke>&XD%yERyGbhEf zoS!>slAkW$JJ78KcrpySdyi1sVq|;=+B?U^Gs8f4*pYbK$xJ14vNRvR@Nm5D0-C>J zwv&mo_xbo?;?;TjSW;wDK7Rb__YTkZf4=s10)Jr`-?GBN#F@%`{Klhx zheYsg&X|zN+O~ZBZpG=JgQhF4bbAlNZzlTVanQV1p>%w5n~&e#XvaI1(1j|cqg?XU z?@93cay6a_rj+imLHMy-zg~y^N^mftS$X;0iR*3$&8E|YOx7sot6vnS_r*h-G!CZ0 z`hzcbtp!aZAG#n7)*oAO?pL6>xk<=mwQ|1pE<}4@0L@%Jwm=%p-cG`~L-CN}bUvs+ z8mzr*QNNX-d6kbQkl1he+FJ(vJUocV@L>cJish9bUw`WW%^`e{fHYWpFUGlBK{FvE zWHOtcuf6@K_*tO&U9-{+W*-;e^kqw-$1O@Xm_E-0zd4{;(WZ3t8~NIME${`)uty^f zrXn2q>bDK;eHk=AX&16V^@S@+Pwar4mn+@DgYbJC{rl$?@XxE1ZZLhm4X6LqjeRf9 zQM$qEcOTmOThLt9r*y8pdA8c-8RGFtWMAT*As8g7+Hc_K#}VD_y)ousn~9}+yfp^v z@!}X(cVx+U!RGzIuUEkq!Nvp z`Uu_=jMb$Y>+6!4L@E-+t`##3@vtF@Ya=+xBZnlHrezrWHaN$i#JFG!@G@Y&1{}XDv|i@iSmaY<9VcFik*%oY7J&5)5v=ts zDw&1{alL)b*wMAOFSBM9w)*}Euph&~>tbc+ah0j;CGv9=Z*9lU=Y8#~T4m3W0rGB$ zaF1k{B3_xPO*B^4#S!cjmD~i1Xextg))c18D`b6>u+7C80vHcJD^X&kEIa;l3pLalVu6u8TxlIOsSl?LHh{5&3QF#FUe7H0VD zLwNpUGTy)DuGDx@l%y*cXw8thki_tcB}R&(l1^aON+G-bdzI}akCdT9hzZ# zj@NQqUX^N0R3z%9>gT}Aq?;B%40!7uJJmo2Lm8f`I5(yNp_9Z@q)Zw`J^S5okD7@% z*W{ig#%(8eUzUEj5RZD(?73tjl4?q4D(dT+($d23;!IVFFVAWfspRZMv}_buar2yX ztTIwBvZm;l;y!rwN}fL$=f8~NwN1&!s#v6f@qBS(!&> z8C5$JG>4)dZEL!*i!=7rm(ADJ2HA!~aQ<5G^=fq@HNUDJZgT!~spq~posMa*(G9eN z9jw-w0JsYprOK1DeK@%v1rmBEPbUX`llC#INl%|?YQWy-kyvBZe7f;;eWC$oo{+8> z!>(XIi!OIVZ9VVc#>H?SMpcvP1r3opxcX!yord93$6dj|X~3S7Rc9pPjkw*G_IdY5 zqWKI%o0N0*(U{1(3>_9dy)ohU5z#82U0-1wPiAHY zI$Gjwm}tSLDyZVDS6tL}B7U{Io`-WwZLN47)7G`7trJrj*i&9Nf^uu=(P!$b&kcJN zmQ`jMQFF7y6~Mv8`L7K`{OoQR8KVwZ5!J|do4FESlkJ91ue!W8hDz+>Op2G%Nl6zE?m^n7O*iR z6yBxh>-}KB0h9XX+B$F~j(}M9p+`UiF-D+V4N`B<_{;LFH+4Y9j-IwPt5#?~P(0UB zkMR^gr8ct`ETc{3Xt54LWsrc>CvCmmM94Fl*3PDNuR;mG^b!jj@$D7FW7yzKJ&9Uf zRYOA)odDkZhcl>(BoPM|mHY`6;~Cw`0KPU|hjxeoA8xe@8--Db9RIX`67`LlNYg^` z)Ei9qH&oT8lL+oi%qU9!dsIK`Y~9$v9qrOhQG5dfuN@SXY|V8s2o%Y(k)b8V73{W< zaMhyK1O$k9XaHrXYLg5nv}yJ>mv@+ehl2zOqL{$OFeN_W&x{@fBs@)#Wvu9M4LNT?z_4f#%_ncUrZq4~@a|K-p7{cCf$I zGVJ0}E0yMb(E^btJASc;jRaF-63eVQU`E-R$&Vn`jAxMGP`(wiVkPGCHe!B;A3c#x zD|qg_9PL$s(iOV=;h9Ar>EbIfav>~`KIHi8#-d^+ro(Ai98IYtus^D~>+j4+W!xT3 zlU`h1iat=YLeKF9;;pFCbObulYh5?52&I!)3f98vyCG%_-po2_iKj%NK3W1v!B56& z{KH;TWBFWDIR?6nB5e=G*T1yPLxJlwWb>+lE0VR-uV^S%3R*J|K*eQc;mq@;@ zUNki#I6~y&QZQo$#wTmr14zyn(u^60BYxg?Nd2QdoB%7p$+ z9RMR!nj~8>H^WC`^3@}`$-~8Y|G>qfIZ-`4JI3^6*1>ZKe9ne8ypOUh*o{;H=`USx z!e&vOPeNN|2uar^t74~vS*$W4QN;7$WCf?+bg|JAdxVZm#qNt_C_WC6a;0wL8c9!& zW$7i9(-GGf4K}5!7=}cWM$IU8_E!GgGugS;!bQe(jJ%ofI0Mtje;J22M?O+yzBwe` z{VrIfuaV-{7`uo9pgbJ~RLIexhV>;kqj8MpdR#GcSlb&tl}yKEc;WB;IoPmzX2^E? z2Tn-6?qIusvgHj}r1|I0lS+qWOI?yGkka&Mx#vha_(bJ^&ExyvVhwKa9qjb)ELa{SNE`WD>kD?*>U zrztnZ$hSx7YQg93QTnLhi!XZmjjOI&yz=_4Df31icgy*B)G>^Fa`#5%H(~Sbjrx$_ z%Tp}}zr66RDSLO1f8oMe+kb#<0WbwRy5OmgKmDT}Z(sG+c>{+X_|1)H7Gf$}@Yk+y z*#6)_8?T;rf9CVWD^7XJalR<{SMPo9nwut<{I2oUf4oIV)C6pJ$3BV#>C3qB#)tF_y`{etz`Nz0x&Ab5-38GS9?9o?wP zr1!J&@cSVyn>6DD*}-^b*>SRq@%y?|PH7-!3cI&yhJ*hqV~XT9g1GtOOxfn0nBb8!X)93|OfeVV5epTS~GygSm^1voc{glOTkdH!s84lgdjF4_-MkwUmY|a+T z4!?@~j*I)gfkMtNUEFV6+!WM8`SD|rT6V#}`ICy4J3HoV1DUgKYZ11l81cbq%IoE)`&bKj(aiV-`y6=MkG>_FX!bz4Vmh>QS(z0N#gb7sqYJw5RHx~(JD zztgvDpq%A11L1|p7A{!sEFU(1$CK-}j$XI@f2&8fABxEOwet0wFDz+49AG=^(|$ev zymr!jxkCHV7QKAbk zy_Fj(wOFdjMNTa^N-m{arLwcJ(y>Zs362(}C8#6(bqNlexTuY(NHei7qDU*J0_XpPyAEp; ze3cb9SCVY`BS!M4{$iazFJ~dV*fc>&gylesfjE48olxx2Ty>M%7 zO}Bea2d1tgC9D;fy6`*iCE(M9<0m+FX4jZ~1Ql=DaVs1tDFuV^!saFCB#7giSQbGR zY+641W<_vEiPVE?(KFEGE)vW!=68YfEBSqZIFg_95|{S@adCe)P{*>4_9lkM$r2V(U*lZLc)4)!O)jtXFUQjimXbazm~AuZf9_~V&^TNJF2 z_K~905bGQWYx2bnc*5xxohau+Qk3GdMXl&q$)HIap3GpqgB@`4?+x8b@P;_P?HTL2OI zj9wtf^o}*27-zpre#NupZk%I?gmfU~#yR_4a<_6RZ9fl}YsU{~dFaZDqHJhVy5WNH z2z2(^(Ko3~uOxpFXW^1X%CKS-VjzS>fRq#;iY zpd~m;pLnlK;H1v0jQRpZU zqwwl1ssj89#5xjPqd^hv+Bz@7n$+)g35(XV@f?I#qpU2cl^d_&kDnM2F;@AGa5^6D zb(nZf26V3r?jz1@1W3HtU;z>Xqd6E%u7N9@iJUIYpehn4#bz74JuD5nECe73U!`CR0^ z$YaR+kS{?FKhb{y@{b|E2>AubHzB_W`Mt<5M*cnI2qXG8BfkXsW5};U{y6gW$i<~1 ze;&UFkiUlflgJqyk&ecBT&J?P?o?Bagr;t(P_x1wgn3<^fr{opfFxGK^?KLE zTL#vYu6wj--Koy%qom-5Lfr0-Z=d6qhy+XU277e-M_q#9S5~;Ut_$2TX*}5MtHTWH zB7WTZ{k>6z%dnRmUG{Ehr!$PbiFoA>j1<%XC`|-=z3crlA!D5HGy{SWVxg9N0M>9 zco*0A*%^k3uTK&0HwO;O>v?Bl>G}Kex-3rDxl%4T3%7Pd-%Ik^_fI8p?+VxJYl~Om zYgYvr4hvvZ_J&jAU%JbEwJA z|G=eOgJzaW4EF!prJMngoDhiSye?($ye_4u6B@M#u7q*XA1Bif@$*-^<4N{Ao~rR7 zd6Emt-nS>=yi*Zs#8!=!R_Wa*rLm7Il~u4FOtO~^?{SF!~8 zo#r=P$%Q!7l@L-_LMSAku2bBjhA!m1WT0Z1MpZg=v~Vew55g&~%*9PIP>4>=&_!Gv zYGrVU7zGMByj9ifzTo2KZ^MP1f!8r#eLU_RN9k{wp6?qwpBN!f#E5}M7jLl?2p$&8 z2V}aypcLw;b4sPMQTyeBn~A@x1hV6P9KURuXMiG;^Og(sa&Ng#37q$i`)}afAs{|6 zV1(pJ9;f2iH=hx@dyDu@@qOGk4RxPH^X79K%=~t^k%G2wHda9wU<5xyo+!OCS?9C4 z%Ia0X!5b0E%cR^JkzE~-!GMOe#4ut;`EZEX8+juUNKlJ@%Ipuwskkp9KLq*9$QgOO zihMfqzaXE19OF>`Nyz_tZ^@6V}c1>A^c#VHQel~dwl!cklyO*%cb}KCHTI_7wv2Tm;gaK6 z9}GYCo<7Xq&IDXxEV^~@Al90V4PqI%@)+7|a_q#;h`NtfWwfD)J@{44YVbVcL`~{ODN<#W6l;k&l)J?>~L|z(GI0M#z4gmXZIAx z**!wVPOXb$Y^ylNwuC~?CtTb`E)Fd>bf0r^ce}W6xVR@>+%ql?509PC%XN=5P)I(_ ze39Tb0Y?arYZ-TpS`e7uJDl@-hqkkk?Kl{CobC65XEDBL7+5=EpnWu!J&nV%rybL_ zk#@nrvnRYGkObWq96n#C>&$7aeK~1MU*m#uLo(u|*U$f*z~WMMDa?lQ5%8N8=0_o( zFwI}^m^>^nrLaI|^=RvK5y_vKS$x(OI^rgKWetM_uXOF4hHaPDL_Dn-X9^eNjK)M0 z0jcxlaIemnZdlJQ1jM6Mep3NU#qsJ{DxRLb4A7Nw_FDX1ED+VcRUnRq8d*IA=#zqb z%EkTB#k~$l>+&B!S{FL)w{hHt!zRw!FcoPg4xY1Sq~$3-JYurvFWrleZg^Im^j?AU zTXB9bLrp%^1SVU4|3dy!CweNN$M_S;p6`?MG;e);#A)Z*fmn}qChsEVgAEY!x_h2E z2jTCW=Ggg1HpTjOZ5A)B&tlADC-ZQ<1o%pxbcRc0$ST{Cw)!kN1|E5t27LNni<6PiNf>0uZ0d$#NOpOD`NK#11!)9Z8aVQfGT#}CZ+qLT)2 z>-O*5dB-*5tzf?>-TS1(0 za87-q7-v{_8>=$^8G4ehPFnbI2;qhU^?4NI*yHfq=J}pWsUpZlF$U$twRRfCJefjA z+4TQdzHrbu2tVnPnf~tRpz#*+G58I;=pT<9`r1E}1aR&rA}d4wQRMFePkr5v zoSg{g-CvI!_R-&h9J<&~Vc}Z+YYqNV{UqXHW@;i|uLY2o*OJXcMW4ViQic~o#m@5v7jkHsievi;g`6W? z+|e$McT-A-2_-|9ad9m!Zk>y}%*EZ|;xH(hvfp-b-*s`1xwxOWxK~}=pIzKOuy(Br z)vo<>GSgm$x6VdOSuV+zWF#!j5UY|LxY50~m7_ zZ{c*$-Von19Hn@T5X;X5qPKwB7@G!wG)ptrodu_M7>_Vne-XU3{V&c17Y30hB;-&n zOM>o>n{sBB^{m4FBH5Sd{Bg0hU3g}svncG)+b!~e%X*Z#$k!i-*ic-Rb_47iCFEOomqT* zG9nLDZv>7X0S?~I__Z;x4m4+E;k^s5!fK9nq?&eUSpt+zlnr%rZ{&>z*^MEB^6EuS z-CK?P5aj4JnO6K5@|pO3A#&{+2|f?AxHBG{+|o_&f=eg zmUpy+%30pEyxkk#FW#~a-gE*yD5CJu1L4wjYfG`*`Gn0I%Hc>w*#%nOqQ%?u6;E&i z2Ftoet>4i%6Rf~yN4K388L@8r*wu#)q)G>>N_U)7x{bBKFH{bQ$0DWj`!P(mEN^=4 zGwc=h+7ke2I80qS3rDH5#Ko;}alFsd5_bSviX;EL$X1+T8m(E*qk9JDO!mCj&Nu^O z?bMzR&WpT*9+?)fLtYbTM2`r)q2!v(6esssM*n#N-if~F^*?Z?qi`*b1vt8KJcwf` zBemfr9=fe;9nwZ+Q7CFt;B+?koGql(UmF_})}%8gd=nZ~u%r}$CAH!p0k6-8cuU5)pzCm zFa)$`lyHc&;VZ*Y!qZWSpf90kFe%^2X2Vie22b}OK06h{28~rQ+0{`L2UZtQ96IUo zCTL#3VH5j17`{S(`l$=$$l1V3o zuSZV02IPy7^EQ-tz=Ef>z!LgEaH87!=3HVp=xt;woL-Di?

      z3k%F4zp#?H<0n8c*r<)-34%kldVUkH-)P# zf`3~)5FWk7hacCsjX~%BXrwx$V_gW!k`r{E1RN93F$D*G-p4T6^Im842Jqj<5nLxk zo@keRkaeG+v%yPayBcoJg2jy(($9FKNZMP_)@-d&nS8e9nJ8Qc5}R0m8VxNK$|(um zC`PjxId4=SL4Fu=bgHbfJ`Xle8rqCcJ4Ni zuA5Q1pSid))JSoY41@_mjI%n7;blOm#fAvy#qge2sf?Ff=#yG;WCx;2_+?X>0a!mK z_B|6b_U#F{POxvwfM;Uc3xj=&CAZV$yGfZKG}1akg)+5`KJ;RE7B+H2va+QEnO zw4L5S4gnM+ueGJGVGb2}5u(BDv?=CL%i5c4+4if+AXt3ExuZmX!6}6E>c=Jk;;>LC z?`d*iDHZEnArOD-S^n0u)Z@2twBoSoVgt~&nW*!H$VrQ4JN-DA?0Nb-?~--Oipic2 z249^02+le3n!LtEIL73$8MAGcKLoS4D^wcn=!NiO=#Xnan9TEH2f7It3_z#ds)fNE zx!)PekQe|iI*!C`EixlG4&bR$IEv_^5chV&pmuiNP?yt};QYQqa}Fp@cA6oW;B)7J z19xTJc+Oqa{^l-$53W4=e0f@3a7Zlo%ahk>s~UXHvTIfI)9!42XX@{qGsN`e5KdS)yl(s*1UIm8>qNWn>SY& zfEI6v6zK@0_h5t2m{DqPlvNuq1Ef}bEFiVwC?HB$pM5AqYo%q!aoBW$0jy;PBN>h- zO!j;*k~taD2u@#+C(tsR$hiSc=C%o=o!!CMZ@T^^A>FbhB#GPnp+-DDisf7dZf@qt z?y5q~y4r!v)>{X%Tr<>hHI22)BVp?ka?FtP8hbvs!6&Y)3G2#r&01GGy>X+F5Hre- zR>}LajYJ^9QpGCQBPae+aFVdNO$`m2y%g}f2@O~_A2 zPP#LYUyi&L`3B@Gkwg3Y*CHp~Cyz%GX0GC^gqZB*KTf3YK zNbQo|@N7BD-;{o-a~}Sx{ayk{=|%tw+Um8yF;SD4g0{-2fXSW@+A4iwaFiuapq*=Q zjLK)Lx{>8jrn(W&rV8MSiiR{*4wU**)=uU&4n?@hai4c4d~n5C0sBH#z6Vy6lu7wQ zP&?>qIQJsw-3qj-e;)F0BB!7I9`YFS zZz1RCcRzC46Q0J%sK@iY_zex}A24{zn|Rt6Z{yXz2&sJ$3OQdgXN#RL8%W`a{BG3i?<>2L~iL%B}kFYFo4qX2HkNlkf1GLK-L!JxEyQBME z@>`xCYt5SDWL2qak9lfJ8^X39)1-u~XxQ(PPv`O|8k|Sp3V->&GXvMp`h%S7_Z=T7 zdzf(z?Y~DI+Hp9`yD@$1d9!u#mi>4~m_LmKTK&TzfZ*$4UNq2d9J=hRMW8hPo+D5v z{x%E5ey7HjI&8nvebI&3)5`g2Ks`80d1qzl{^g$Kn!eR?_9#HgWfmYU+W?4`QtGt0 zXFm=|J=vvz)RSEYh$CDfmkCLI3dN`2EI9gfj5j!Y8z780fbInJ8G&fqZ{vvLunCKR zBv~&P^n!RT(04xQ1+n)7?kD|gS;>>dnDdE-CQrm7k0bI<_8uX$bpjrR ztgs*D99l36O&NMqABxZ1tn)q}&Q9)j`EX;Xdk)Ui9>ihB!H%f-yok=a788M`RTG_A zSfofV5_g_(=HhwyG$&bbsB>XK2y?k-$ZP^%PW}00eTnr+u&q>MD^tqf<_9A8l5i@X;h^AMgC3XjNk7=z6SaI$Qchkfc#?Q4km0GNZLSO}$yh>+QqOUA<${dX#Yn=9j*9 zn%*f6q>I)+wYqZoh;4ELF);R^;&8d)w4&FJ6PhBWnPh2%fRFl$Hl&MQ+uQOf#WpLv z87;c9x@cYXsL_izm|Ic~?s-P5y>UTmajERXa~q&SnXPLU+(P_S=sG~K9Gs>ghKT5a<a=Os;HF10Q(N(dP~Vz1Tt`fCcmZ|SpQg69EnR)~qy}Q)7qJMC-)r?J zL(@nsISell&`0F`s_F=#8Dq|$e&j}s&S(+7Ae+6`UP99fbg`iuA)%RLS zwHRK&8!M~N<8t^MEHqL4rJN7Ge%l+le5f_U3!eAL`QRKrG|=G%Tk)6L-`@MkZMl37 z5gL9&)!N1Q96snC@Hq*8*{)OnJMR~{d?=OS1#3|s_65_SIef~19bUk{AamBXoc)zt zJ`-?ec)@+1c9rGunJ6?D<1a1$;eYJ?om@VL3k?Pb*DfaJ@R=ku7vL{@@~oaTM8%qU z{m&6X!$8sM;iMcsM+(ig_)8D6_PG~;2=X~fXtn`u`~AoqK9hxpw>;ENu|jhn+GXwH7~z9;@)>-x4`-Rmq{mec{TTX` zEQY1JSNFDOF@&sV%kr_lHH)EEX|mU2a%eu2gZWwx=D{4yqd6Gf z0BN!{e8D2z8uB(slcm{<0+(blN9JJWeuFvK#r()%N?pwF4Q8B+`H#UI>0 z#hha>V_eLD!4$ff&l}7{7xPVnImX32Y%p0Xcq#|;QV!;yIhbK1v|U*~`{ZE8=U`6A z!Bpj7&hTL{*)(G|E_GdjPUsAGfSJi_PryO%S4hkpVwQR_Cld2 zDJ~yOY+;pN7K4eXNi*g+oDwlK#7v)#TTu`vFcH2%rPK?ly#F^y9h%_p_7?B2}CoMJA^WAFt*Wm@$ zqd)x8apyS3gJYSD=?l^fbMC<}dTo5?ZFQSKSjG;|-`VM8%(r#9C06IEmK9DWQC|=D z-j{)NR`oa;_oG!AE`8UZ`t2XQj?o5gLSQhhtGoRO&ft0qdO!B-EsoD?@l&`N?t{p$ zP4oTU8JuQyfAn@K4CD;1dd-;6`^gls{NQ3eeQdV$JbuPkNz(jUomSNS(wtDXEo)xg zX-mla#KI+3m99iZlx_CwTjm>3+LT~|Z_VH-D9*0T1?UqLeW zlVIKx`XN&<2H%OTKRw;(MR_Xbt&J?M&gezCV!$hf;CeX^nfWxbV^H2be5FH`AvH|j z-LZthZP-kCLH9s4wVeI%vZv0LmA)Kr>GHlIWKOa*=9#L&1lM*NG+Db_XxJ)vTZD4* zA%R|d($nAeoIT}Zru%W2%XkWTM8sN}#Y48 zMJ>t9nKv&J3umT9tHTwQ(Nr{^jE3jUoHs+~FXqjV2@Ga3gE4Pr%e+aENZ2`k#Ckd15L{}|(E z=REkEgW~hnaT3848tuCmAgU3u^dCTX0tYgri8#W}=%{z@gZM@qmx=G@FHJ({@z%s{ z!mY<|LHF@fl;&b&VJ95+dUc*D!f{oUP&S1}Ps^d>o!+N+k?wQ5KsO5fzO)N;2ZHY2 zU7+LL;p4kN$LszgA6;MD+P+CEyKq_(N7vth?qx%Zf!iq?onGRdw;*93j=zDXImTZq zPoWF+2k!*$H8etqKl$X$>)yW$bnLh9?IPXQU7(}Z7y#WhhIX)au-`tDk6)l2 zykEO3A6=g7eh+ky?Bu%aw9N|0Zk>;4@yZ|wrz|3EXM92G!v<&uZrzMv`H z1-e5)Giev-rh;bXF3_C{n)oizr9jgdr1LxzV*8%Ku^2QnD)>uhxWl6nhvjMSTF_iz z=v=u3_&p0AmxE>rZ?%y|;>gF3{d+rT9x!yn@LS@D06%uX6QFsb3Is?lzW^N{K#r+) zoR@GgxpaYc(63Fd!Lm^tOoLtbah$6L&6uQ+IeQ@+tQ~RC%r|s{@nbudgJyZH@^kAK zXb1b_9?)Ep3ee?g$B#kttf3q1x@^Z^L33Z7@*Aohe+12TLpK<|5opJ#H0Ebc3)C;r z4(h>t&`hll(B)}IA80N%bc0>@39z{VG)v{lsXl2KtUs;;&FzM6Fn(;ugP?h+F;Kri zJJ=s1njmK!Om4sBX~&`S@j)aUOoLsQ{SgLD(E=eGQm;M=nxvr{jNd440?iYdK>Y&! zA^vI!`1kH$LN;eq4BD7;1Xv)qG)GtpvmVxHf z_5fX;c3c9QYYp9C*Jc0S4w^L`%Fk^_;JT!{6Etg=4}IM+IQx;nf7^_n^7?9ObtUvV7wQpG}PKfxY2i8jN2z_*H}E!Cs{+Mm89~ z$$hxDz`-;azdrDr51JpZR=T11&0PaI<6s($A6F181I_QxRl1@0CD(!$2h(8u__Xw6 zpn2y!r5lQ0>&Fl$;$Rw#AM1B5XhP>J-BA42g63L7HyFQu@Vgx}M_#aVe%FEKZbLU1 zKi2ON(0sIi=lt#j%_D|xFn;XcUxB9j;+^w*05ne-y21FdKmG`srI+lS-;<#Ei=i8e z-~T}Ku}g>McK}Xr1I_;o-C+D?qJCp8!`#p1%8&CH`Rs%IHi71TLpK<|lfm!Dpeej! z=lqs{W{sg6ir*EWd30ds{K_`MAK+jbj9(b_s|L*#S1R35?R^C_|2A}k@nd`U{Umr^ zwR3*Af#yL&HyFQ4@cS8P4!CCL{JKGNsi7N;-(2v!88lB_yK{b1J_Y}WgK02+l;3>N z+;E-J4JE(VK~s3W(hbIs@;ewb^KaNWzk5LQsG%E-AM5uVXb!${=luFWbA_QBj9(o5 zJ_nkYZVK=V#0TF4gOhK@ec3HacMvkMqX6CW;P>Wd(Z{zcojbnep-XSVeaaX7ba=!w z0+=^&T!bU$6qJzQ{eG34kDHo%yQWX&6XuUPCzm*7jBWP^t1d*@Hm~hy=~>mgYFS^| zbmqwDOl7*^SKbmAcy66y!t<}%=CvIw zvAXIAoH|%eHKsGMNHQ6X#A-6>`l`D6s>ahZRjK)rWK|p-MwNW|VDe<@o`W5tKJ_nO{Eq|Lbg5uoWlI?qMw(ctnrJRg+0 z9E&SWz?BM|>bfW&_9tSEnN*@NQy*zeWMXxx#`?M>o^wZ{Np35l#8`$u1aWO-VI~?$ z#TQh?8!PcPu$CDyWSMwFES+hLRN(b@B_BB?xpY{jJQ=BIz`Bf)CF6oEsH)4`fa7K11!y zbo8~Yr2Zc{7!?$~s{C}9Zf~ckJ+rc{uYDEwvM(wb z;I$eetgK5Buf#PPE9>G|5nWVr6DXpoOf*@QidUs7u-a9tvUK$_Fv8ZTeOS0!RPqBQ ztAPBXQf_}#Z)wLWS%HvgSt>a0jt^e7FtJRmaiLWBX*e>eXH%+*Rv$^~x*jP&u1mY{ zRpzdirM%K%xY8PL3$rT@paAu!W6gX~iOVrsn>M@-@S+o`rrHE;J&spqio{K3@_9+A z!M9L@p5A7W8EY`k%gMX62+PrnN}hvJve6)9O^$~Q%vz_!!c08U7!j)LDF$dqQ?1Cn z84Z$l#Nef{O1h||6PUI5P`rFFFarZ2!~Jn$wI$`s2qM|#D~{t=-dlR-WFRKH;|5Q% zgIB{H_VjjqtSzHe`Yx}56`{b7}X*LOv07EeiY&cXPY zZdw3QW7%7gxYnV3rMfUSlV+n!y%M$QB%Lp=Ol5);on&3AB9jJBnnW)!eJe4*6qVd| ztSN-+B_g$%NPPv1QN1UkSd&|h7*}3glp=k{FBGQP+sQ;E)s)Uu)YmnoMN;3znW|JK z5|7tQvuJzlc_SeXcv9I&(?a4#fjzeuOvfrC^>TT3>r!kKyjqOnV4VLlSk^Wr8>?cG zhDNA;JdtTUJ)IEtt3VA~pc$~Ac=e7hjIgae@_Pc>a&Aj|a}WBBm)bGK48qbi1qa~S z;(WA1R*p#z-bDu8nU%fEIy(ChCs6;c#L_>lGkUdA#xs1ey@b3M)YZrR)>0LjWvt~8 z&|C|4UZa3hud2s@Jb$`WZ(p2F$F$SwsM^sQ_z`CU;4Ubs>Z4i4lU4qhG| z2@YMVB8P&I;Z3FqV@@U#Ypj~j*d<+`Xn>bVh*-w32iWCe9^J46^}rfiAW|tRc^Fkq zrWZ6s>fm0Ik#rh%PqT4#89oc{AX#-rBHma9HDPzKXV)}mIy+Eds_HPbNjYbSB`mZr zDk+03qo+3}QH61(!C^-@_~8O1^3#SW8Kt8Ade8gVFEO zp%}26RH5l(bZJwjZLRD!Lr!!?G=~PXD$^*!S?LN#2QblDx5m

      I{7}T<%KjJ)CLj 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�Ax3sdliDks5 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

      hHuzuG;WL`%Le(TenA>op#y~Lh}3m+35lPW^3XX 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

      TT;D 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�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ℜ!RTq4rfp-=zZUqGQ9g7_KL$;9qA(Ijf5Cbw_}Vc z=$-7aLWkYtuv;AV9fy6-VLTx~{d?45e|Oj(hw+2}rQ-2H?h%FIqkVV;igbs2jPHK%4yp^6LNUg;_nMGz+NmT}u zN~-xVsibOz>0&(5^Px)dX4P_IuL7&u|q#Ebo1Z7oHWAOuXcatEhNkS@^|^`kImu zN;0X)4vQ3>_+d*>UJgu$B`RXrsb`WXN98mlk)ytD%rX-PYUCA48Ezh^Cjhkp-4*f= zz6eD|L;pDR9O&mmp8@?7(Ai~=K%WQwLg;5gzX{4nkGz zM}{uw{oa@|WH_yKqYyKtJH(iR-YE_%av0AxQo5xMTjj8Jhn?#%q(NK+y*nIsm&0~A zY?s5Ha@fxu_OioXao9H0NR7*OW5Rii%np$z6eRtO)pP%CWA*<+glET%HHxHgbgX_> zQo-?I>fW%^!cC?a>9ln6G8#SH=l~7W`MLDNK2T?8LK+6C>5>b5_Al7In2X0MmNhHB zf2@v^CL-(!{|h?DH)x(^tj_oG=A9KEgMX>ux5B978JcuFLz5oXrx-`=itR8aJ*-c$ z|8^MTr`SP=mAd7~MzNzE#%ned`;^0a9mcV`y5(41>0-y~xd&*heg(ojF|PhF�)A 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�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∨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�~w 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 @eFGkf0 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�(s)dpvIjok5{-@nf8C0bM+=!_# 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 z zsC=^Q7!&*__?P*GKO-`^L+8)fPkCcA07exjIgJf>o z)7Ee2EYGqonhCuRGf$^V^cVe%-Zeq|Kx;yFM$rqd3L@xDXiKVH!U)jzF%qG^HKeuS zc~8JV>W#ZUKJ7&=qhA4$5l{ZA>05AWKW*uFRE!m%C69Z=j_S%nnFM5HhR z@h>N9z!|km@;aePq%qt7Q)VH>d$bs%^0X5&ig(ev>xhV$wBmXh4Nu-#P^B10me!ebHzLk@HyYducmhwe4`}vQT%3$@0a*hx;Np&t_Wg`M~!jo zGTE5|pK^CBfKN-X8a_>rTC~Oq9rbOVAigc|X?oP)p{ZO4AGZ`kN;hu8o$I){O2^Gf zI`VW71t8EpesROe)8QV*u^eBIicg*nmqTM1d{;+>hx2sQBb?{TbZ+|5JRQ$q_cAYv zr-Nl?w0rS0n7hH^ROts~dQ_6&H7*uvM8tjyid4%RmZNfP3!DF9iG+;3B|VP55nqr{SKBY6;*=faFX0A3*Y>d<=Ld;6DLZ0J4lL z0kcp*q%FocR{@@Z`?Y|V0y6w7fa?Ko18f4k9gyY!Az(8gzhU09x$`V2KEFx=s2G|i zW@+g2(gvBqvBy*#4a_NBt;NAep25K!o}s(e;=W;VcUm0Fr0M;b$0$8SNr$tlSt3KU#HeI{2i;Dd$NnpNZ!0IPaZ4&QHDpb&Cz;Nn|7k zLJBZF@krpa6GxiJSnTQ&!SSf>p*wE=dMK~$21}aASnQ$_J?!o1{J*#n{fk?|? z2t~$Xubt@O=TG<7>#xPDaAUozNPO(kd69=C5d*inDV`bV1Kn6;cBLatWM0grCw>f0 zw&+L`8EXJAp;(a|BlArx(nQ8$2i+6L$XXMNGzrd5+{N&ISVcNUYon^yF-mnHpiXgi zTBDGK@Us`6U*n!DXlE5pspOU zW=zb9=CCNvpIcHkYi{K%OJdj)3THL8f&U@9uv8E^!nV-J-#Jlf%*%(kW6|8g66nv7 z2yWLRwBdXX6H1CI3Jd0xgHVd2KVeFIVi_UqgC7KUg*ULiIdA+@2!*#a@(lW<{c%y` zj?bM4W(qiRQ5+^*6jP58b(eU%@wq6rqQi}FakwaM!mNTejl-RAM`*8A?c(V8pACAH#<0v5$ChK@y z85AM>Drj!aRyuwu@whVBH;)Zj%0Y^n#AP-`%~S<8$2G3%bKW_ed}3$ZYdcFX%Wf{Jj@+Y@Yq` z{e-)C?SM=3>^OAz5Yd8Vhvx#o{Dan7WI6!w*G|uJ{G6F`Z=ea2Vi(S9sB78Kx?xqo zKW4#Le?>FI5gX2JXj<(r+_1hGTlp=f932=_zTiUn_i~}c=Q4>J;&Pg;6s0HeA4ift8m*`|+J631_>iRSL9CCtME?A> z5XEX0;(28}twO&Ne5_WXecK0&wfEPFwQ!~<*502N+bNlzSbKlff{(TLcbnjoPPy^& zU$6e#MW0-Ae!p9%{q+IZ^b>q6_uh$Ec*fJNbfMtmYax1ryR3(#285b*Tn3~sv=Hr+ zUG58IKVK;O=`B~K`$_eI89weL9U?E;f2#Vdw*RY2h?FDjV42)vbOc2vXW8KTP6^Te zG6=D~SthpwWZawJX9SmV??AZ-BV*eNuoe71hPhN+u!ooRp}%L2yLFfY94yCORgLi6 zMW{qtn(gmMGzy6-^Hn3z8kECP&bf|4S6k6qr@J-DAQPeU$bn{~w@KKsR}&12)&5AC za*+uxEC5+Gr)wgyLG6!ZcjSW|EzrMGNp`1&MFkIC*j-2B+Ef-{XauffjnB1Z=m%Sy zszTb`FN_AMyay!55&pbna-o>G;4=|^1|Rg^xOAJ~%fpo{7SJ@09k|Do z9VuUiUoFd5;hTgj*|`?KN_Pi*N_RJWELpPiQyaPqzUhK{%;J6vA31T7otN-C3YX7$ z3%}%L@QFRHneZipB~0w;!PgC+=H}%rSm=hr$KxcQb0mBv@Fk0u7Nt7@xM31X{+GED z%0p}oEr3tUOsz^5XCXbGBbzE0pItNo-QbxQ(TMnWQUSLxD7;&KyIo0a-Se!0r4w)9!seFXctSE>Wyl)rBD`=2jiBa1AZx(3<-v?|3+zW`k z5YYy;5s+0H2E!1Dm718xQ^{(tPf34B!5**|_K2_Xb9i39;f9WWp& zVjzGl+RRKcStrSu1rX3NBm)FO60@)<$|zvfh_!BY>!Q-uw%XcOEwwHvYPI@W>%O$s zTHB)5s%=HBOa9;QbIv_;?@WRb?7RH_J@dKqoco;TIs1N|`y9Zt0KDg3Q{J>yqZqEI0RIdtV^1jBdpZSw=U1v?|V7C@|i1m+j36er%i%C@lg z9ZfgB_n}iGyAXt&G-FE&Hnz`Pk^IhsE!~=o|FME&-_BOA?i}`tjeR>BAaH5;XAh2A zXbeYB8v0Aa9vqn=w1lj^G`9P~biUCiTx5iYVbj>|SBSfMW6eAUo*bXh12ateeKMYR zy!aE7&;v)7cc6lODTkea$HL3rx7~k_Jiz+t0es4($`VUm+jWR ziSz(*tAy~e2lI`^IZWPs^i#*-c@9y_2YlBH*#f}Ce#p)fut4V679?hZMl(VEc0+#$ z@k%_lVP1KWS($)KHL?V)k@;5v$dbi)AEO9Q2rwV87La9wl8^ZSYXCtjy6PGLPr^I% zo^)*0hvQLqiPEO-5~VHEdQ!U%x1QCuOzU3;_o>0L-&DNpZ4~cJgPUV;Hyhlo1~+YK zQ|E?`?)IfrBCmz5nyjK|XLrl;mZrw;sJ9kpQLwbMw|PVOxZgVk!}L+mv}R43)3qRq z!)-W-e5x&-3VeB2S5LH4DNe&{s1bY(9nJ7=p4Z9*raHRbfvK*+^%R*FJoW+~ZKI!E z76Zm1nAZ`RE`(d%E>TK!nFg^~n7U|ZOJl3IS_H!x7?CuNWE87-NN{c4og18i{`07| zUH=&AT1|;Zjq}Pp((aLnv@xpXIx(D=C_@^NqHK#|sHCyEj#RG>%=9G8{3J|i5(YB` zZET<8t=h(%VUw89dy_C%C1HM;gt<>+(v3e)YfPHKyyoI^3KO%JN`#t;2vx_2g;yrm^2ZHgS}q$@eHo8aEevv4KR8x!R{8jhkyYFmd&B^B!(L zIv&=!nu|1UF7|Ax9*VfpJo)%b82aoOKA^csN!v`S!*i4j|rI_)&y-Kjhl;ciwiD4a{E0`#kp!V7irvF7(T#d`|egGw??B$pd76tfDc0?HV~?Y*IF1z6o*b^P(MtAs%V}4HAL^^lM5*2*wyC?bRpDeciMvmO zwY9tvH3EGl?VVPnWk#ct(6*(pTyLU=PhlwBVk_#S@;{^SPu8nlwn9*wM6hzw*xnXx zZD~Wy+zVSys}fM^eL+DaKJsbrwD5GG)K^?l>947(f&#ypg)`K6T{wdScHs;Wk1m|q zZf?Rm8x~!xmSmASwo`tjGgJ9t-4(3YY8v~)ah;;x_^gy|8-hM6^$rNyD@qL7bs4_D?5D8(N31*$5FA=y;oLyi^BiWiuR zKTzfi7Ke&UAhxe(Fi?INpHFom^7@`yyMQZwWub7WtgNKeR}H<2{d3Js ze1P`DS##8+Oa4DgZhvk;{_%=j-M&lhhcgf3!bO>Vy?r-^9(Ay{?~Y;L<}f~LNlcKl zKM0-YYS5jdN9$uj-=Ca)7?ZCetOzd~uRP>LtUoz>j%T;qvou9Yx+JZJ>?rR@qDz*G zXV3ZQAm}&-JU$3IhWo@I=$IXU8YJCEgP`M3orCgsn*QX@W$`o!I;QuSLC|r^du%^+ zsGBHJkzAMHSo=|`zw!5nXXn$ z!C1Q@O&Dk*jXiRUW}^JLt=LEU zlxk#kKM!l5aD6yZD8S%A79$`(_(_`?!I28`I#Of2qjEAcVFdJ_aO)bsx?C9=i4eFF~o3>gQs4UQGMI1 z&KLW;wUg>w_Eko8M?C`AjmNs4e+3UfGh&!xt4paDvUzJ?)|MCG{pLceu3;r9vbNy- z#p(^^b^p|}&7YzqSWglsExCDo!CT_t<_DnK@$8B%$#;0B%y?;))zEjmCd&wKgV^S( zu##GV-Kzys`;HIVKF!~~@eW5IP!hSGw}Fm=rCUWzg^p`AH{<&jAfmO`;)_Za)u zQnzdF=1n84?j_=d)1|j`M8Qj7o;&vJX?L?sa9JtzTi%g2HoSwcS;Y^k^r|cYc@b|L z9lP3W;$BTz&nzQkw%V|4L;neM-%2tMVp0TBi z^d?XIa;e2lq$6`FQ6}f_>D0I;GPk)R?aH%DCF9D|zFd)PDFWTSD`%*n~KZp#`ZRBlkudBq>-Zg1nS| zgiXb&%(zmilHzTI%`3drd#QLkVLM82>tR!&QD#)digF55#q~<#y4|>bAGYJfm9i*` z_detL1Z*?Jl}&J#*r@GI(Y*_sS8(sc#_i%6!r!Y%Sw?Cc*uDaaX=E52&-w>HnMJ&eW*B zt_Sf;yf2k;W*l)0YQ65Ig+|M1>D`RIip#1a;CDTH6WyXnRxv{HSlBcakt`fshzJpc zL4}ivw6##G1Tz{QQ~@Q-<*~G0EXs3n?_fUNQ3npfJC6o_A@7+`5tas7s0FBf#iDA{ z_SDXEdKy=48JC6qIr5IO*^~*Re+#sKQTWC%sqXSqp-GWQt;!=odrLERq$IGL`}+D0 zKx{jNad}H8_NeF?3;#sH6?is7+Z-dD2G5=n+_BJ~b^%1igAg-aECEvhmf~a7U`fGP z-V8;%jidWuX>3|s112knZB(_8x1txd`xQc!wNZY$xDiKxX?Az~=x@0sIi~RKRS+B?6cW zcp6|HAi|1G25bWK14aQ)14O?Yqc+}^fE|D>fRv$M1xSh7)qvD9*$Q|gAbRH*_3E|( zJ_y(jNV(JwK(@OsKxQWEb^rP>2YY`jFKVPO!$rj_ZJAcY;F`28Q+7HO-4=tp#L!XR zR`D{{ijHHL!aZSdPaE7T2KSo5{nOw+Ft}rpTIJt#ZOgR$1{XBAIjJ_?3EGwkNx-AK z>N|V7x*@FB&=rM{9uU@42;b2K@_J53$ms!D8(kG`a?>kPmxH49x3)BPX<5RfyKrxz zx4e0tm$$8U;l9;H|Hivkd4lXV`zEr-CUq=4O36R$w`wCRS>q*7jX5~eD3QH=7quIw zyurVhwHW3I`RAXF;oz%`jX6QTrx_YFV{J$ii8QTT-PMgYL_>^IkS!g!frQJ@+{BQ^ z%{3I5xG2zTzrXb%QYf=oL(;gp*yE*oQ2)eCzV@l@ajttcmNagzVZaO|y7i*wB8{61 z)!Pxn7yfa^oAI#zp}9!o<{B^eq*)Mk@2ov+kS_=lX``B8{7i^l@#UO&?r>lW#kQk83W{xVf@~%cgT{;QW{7 zB8{7iBU)So=Mm4{c2_*CQQ9-oDC=z7d%=|B%^?Ct`7YD|s>OeA3CBCxqV5p{~0(YT8#0XEN-S0ur z2pyji?a?kSp`aO+!P4qbbydh$m`{-@hwRdT@>}cStS*vS`%ED!pw(e6D35Elew-IL{OYvHnkV`sV z=?8^G2h3;5B^At(%UMB5xugowCpzX#%i4o_Nzmsfv)* z-8aCktgAJR?WNFlLXf`E#;8Tiy@_<$$?`!MV60t(r2FL{=^h;<-LD5p_tYTio*N|H zOa0Ngvrj%+{XOWiI7GvYz~i&>cREKm;+cP6)--&l=}#_+biIS5`^q5cF6)mjK|YNW z*sp z?_v1YT#e0=T1CfMV1NEGU#qdAYQjSU@B8(y7!GSd^JBfJWIFou?*`<{@CM7e1*3~1ut>A!F1M_!@X&DH)}Mcuqr-a{G@UI%CYw(E`L_hl z<5yYMIy^K3`IimRV;-fwx`F&-eK{7(@w?Y4I#XW~`tdPvew3?ahv~0>IRNgj4uXzD(K~~nV?FvP zi7r_Vm8*)6ljxGi8Kz_O2K+fpf9XK6SyKl=$7SiXLC{IRJqSAXi=jc#vA)$0f{yW9 zG6*`Rcg-N^=wJIF=*EHWoI%hX47zIuK{pC?w+(`BBItfO2s+mD*9Sqz_LX)9{v4*i z`oh)J5rd#({hK=oI_7hD5Om`~w`>q}+|xaK5OiM9Z5{+2>&uOUpkqD#_8{mE2Hnkr zpyT@Op+V3wz0VASj^+E}Am~_MJ{$xcx>GCnO#C?v>kB68oKn1tXA_=%zxAF6&HF8; zE%Epr^721&+W)h1+S%5KoR5yO>&lw;He7v@k#iYlQ^jT2q0Gp+4%XT_KaP$va`Mp$ z8tKoq*eJ)Idq&Q$LD9St+DW@twm0L@AtR@k>~;P~U3saYC@!-#Nm7*VYEa-pkU*%s znks&AG?9^Wufjp^Yf(UShF_D5lZ^%8NEn)FBSrO#umziubFreTs)0gj;#_*16IG*A z+vQzT9Fey5&(<{r>T82MHc{c?GLjY1wx(s2(6t43MTT;J^{F#}+Y#l?u13ir2C%;} z?G$vpg4s}BTHR13IoycuK}qsL5h#wA1`v85lqPnj{}%^q|2le>t&VPBtSO7kl%O)$ zCHa3Y(dSt>yW&T>pPUh}1e7}gxYv8^&*?W4`&a$YM+Q{0!H&J{_ ze}C~h-YJTH7$Ol}+Y#Z7uo00tR}GR0_?+_nZ1yYR9hxu>{xWjLVlGfo6No5L?+Er7 zYyI`XND-P~ZA~ar67rYUK>zECP%`;{Lg_mT zZ@se%h-)SnY5NOxCsUUFVP*FG)tCMv~6uj2yS<*YB&rR7l3!M5+zInS}tixkN?66RP%3g7UND7>)FUxN=)LjG_# zSd5OKDjW*d>LAZlx@g zY+<%9x5sjP*H52`qeMj{p5+o+vOay5_5(G zfj=Y_l?y=oOBeQb9AM0BOzN~QH|9Hs3zjvayT3~OnIT+6f3DAHI1^z$t2vvlK>w59 z*8D%Ev!A)k877y0ktS%xXF0Rj`9V)8yr2g6Mtre~{5fM`P3~CT)HR24Tx%no*VqdA zr@;AKyK7))(GZT5qVM4+b(m~~%$If2ct)Y0S=Q37xSN*A1fL&C$t(#F}TMPRGXC=k~5zeatz{_n(@%z_R{= z{hVx1@^@Fqp>p*1-BnER$vXV^psJyMiTQ&UTl?78J{fQSz;h1w%>VP<(tpo)OaIaB z{~z7{{{y=HIqdvLxxY6r+SQ@;#~2l#uOElG(>s_DK%?$5z;|iK zdQaWw%3QFopUkN!8+H@tg8j>by?AJ{dFB_CJjB|1jz^EF&pOtMtI~~K0_~>sz_qE(r za`xgOf>4!hKf9FA6@<~H#&k--v_vI!JF;&;t&c_H2g84vCR4!6A823`Jm@9$gZ7OZFY^;_qv z#tl|QPaB?A%ipuYs*845HBH^nrM=cFjy560&u=DyC0$~R!vxrvu4BYTL9A(F<9eK8 zap~C3Ro|JWi>`d))8$qfY+S+S#XrS+(&a9iablyd6un8ersAJMBYdv*%XE(c5Y=Dw_r z`LQz&nAUUjwp9n*!_)(H_MvxjH)LCt=a^?M^uW83@NSsDWLsM1{9kT-Ysuz~c~j+5 z9cu^3kYD$OaWz6NGI&Y@uS^(^X9}KtJahVHZso^`D@loW^&R`>2c{N0vUO+HH}8v_ z+I!zAn;#gvYt;cZNxl>pZYRPO45x})I(RR{gUf^v#cN7(Be;7sHT_{coctlydhCGGe2ixi9;f?{#9eJyu~V3UO)y`=MGcHI{k{+I z&t6!>#N+@#OL^G0h3oHtd1C{wQ1DpG_I_gn2}feP*JE|B!BL31CWo~G-|}H6HXz@W z%B%ID=LBmFlxqibKyUJgtnrU^DHEgoxJ{Ub;60G@0V>Ab^8Qx`?Mg%YsDt*OpnY22 zpFytK*F>yXqppeIL5<3*e8i5Q8GDdhG#l_0*m8XPq+)!6;4bjQW2QbMW(m&`x5+wm zkM%v|Dt(R9cA1#*LwSAxPJeeJW?sHp-$pog%$7%5qiqrwN*l79LVfd`=NT&gsVjSy zi#xkD(%>2(&&8fJM|c}dcpJrCh4)v4w^iPKk`Cq9TJeju0Y?Tf-}FrIvgF^^M<;dsQth}RHd5K_KWF;NVO6vGn zneE*+Y$IMg%$4723;F=9?qrt@t?jnP`#Nd!~+CTPtDhv*;Dh#GU;dt4P!o6s4e>S)` z431w8Dms41uXy>*titgEAcf$I8r}i-Ug*T3-CY#)Foit92?$9iASi#Pc`Nwa( z2i7S`uA4@mdP<~VC$+GI9qLz3l{wle)XfrE;=sq}2*VM*_wc04Xx|K5u5~W{m5sB9 z3k3HQW8)Z4j_r7CbEmf0<2~mC{O*Rd?6I%LQ;)}Xe;*F^)p?}*YJ&T03PWq^qhX@} zvXlSI;;!Zc)8N*V;QofV$L9m+dy+10Vw@TF_wc;r#h(~8AAk@KgiQOJ25`L01?9m) zeFZKf%R=52OLuFJ>P)pVYE)NK12yKb51$~8+n^rdK;dPs*t~WQxn~4wY-AU|Pad|WK4&+vvly08_Y(iffyyT1*P(1 zS-|Ptig4lhgH1Y+Lp;h zU`B6Q+U5_(^bEtwEaP>g#M=DfSjSs@Au?jOxN;$~ixm}LhM~G~oyqPxSM(^6Bwh3r zH4Bang?C8 zoz73Gg!A; zEz`Qi;C^gyzcILH42}~h<)2U6GOZm9PHGM+TQ2W8#$Llq*mbyIX&x5bnOPUj1g&$s z;rW7{%a=pN+7>Wkp{sWs4j>hG9EQMx5j0cnILuT#4tIR;X>@mpp!Y|<^9Q)aS;66e>yAHWP_p|Gehn<3J| zuy%OtU-=skj{R%yrqTB9!u`(Og`YDyTVL8iz)gZ}=e6QXB<>ZA)w=_EfK&Ts-g4Lb z@f`x6u_Vw(#a z8y!@&!L|~%T#K7K^f4VPMSGsWw!wzH9gl7JJuyv&0D%rX;Uz=2 zvTWel>p9&Y#mi7l&GvX&g8TT9j1xK33i0Fw_f2rO*S$>BkI~P~N$5xzXT}lZiL_mE zpkm1$K|?)6)Xn`x`_`A(>-q!4--#H@oO=W7JkMk9wfC7od~e`-@k6aFxeEQhyx;1W z0mSzPq*mz_IQJ3m6WXhhTlNZ^djs~|hI0Zajq>SC?LSN0kCOHBSlGwO`*?ZJ zu{^Tx#GGbod9g3|p*RnW&rRZc10Hcxso<^!XJk-dpAlB%IJ7Js>F@yRo%(2^}8MCu@2h!n*P`HM&~AL@ALA0 zE_jpI?5aKr0dmBc{amv@VLXyKjtl_Ip$9bnztE9$%??F*F}9Vb0hzNH?_-kzp9d@e z#5ywO1AGavLBDg&{yV&L*nSzX3lPczWj^!@Aam*ufSd>Y5s>xnH9*#>KLIi~{sPGU zU^gIh{jY!v0RI8V+VCzQ=5E&C0om4wXHId_pyp4ssreIanbs&!Dcl%s%ap766plTX zqVpNLVuM>`a7zuY+u+t49A~1!VQ^fpD;(GBv}Ib~ zF}Uv=9M|iLj_Y+r_oTr+YjA%vIIi3k-KPeZf(enrQ6oUFlrNQ@(Uxg-YuDk{dPBE^ zjcYd^D4bix{qV8BEY6b#B}j~Nn3bk&-Pw}{ji|dYgXuZY-Z4*;g)h-{4bYyNyI|qA z^`73}Uzip9@VFlDg{7Vo{2Rxeuz1tx3rkZ@II;Ucyk_DxJ+>+J#O|~$kMzvyegBw$ zEU0U+Lz@3k&vDRmA^!NtmIP|grtsTYDXSM*e#DK>Vsr-_YQXw71~7XSamlWtvaa1X-v zRl%`qXu*>!8+fOQEe-!{j@$9r=51}UJ1EYx*=3Nn1kbneWZ<#g^M>O^56`8r-H6BO z-X!kCsCnqu6WnhTcja3Z+?Wa{{}^#nT_lHRHk8D9KI6sGS{Jgk!uYq;H>2)pJjTEu+9nm64kx zqT*}9ioU?%uNrMRQip}-Du>%Lj9LNFh{`Ob@>RWS?0 z=N#2?^iDLhd9=#r1A$_8b>o3HP07yqE%r~SP~@NG??t_E4t0Albg)i*49FyW0(dmw z)D*Q9(1&*pb=X#jodDng^lNw4;~{uwwv7Zl3ve{xIe-TNUII7{kVD-OfL8%x`!se7 z;NgHj0h|E%Q|*2`;3T}?3y8)qx;L@48hZur#{jb4GG0vWxp>r2N1GbzXj8Y(D_jQB zs&GuT!sQuUrNPx094D}fj&kgZ_X>l%+TgJ1uIaGduIZjJxEBoWb%T4$;D)8xyvQ@n zi&Sg>jxxA**tSX9y0k6R+G*$>FmyY{gJ?G%>Ccqr@UhZuPsRE3#=QKMbW?Z9qesU{ z=*5R1GQB|#3LUB|T{)JRcZ5vXUH@>X+5-HAJFH!9EjqUA7 z+YMsN4ybQ--`Whp;4l|zyK4|mzk!@RO9FV+<#mRPZ5%bQuRGT4>W<%KM?VetDQdCj za7{-9F2ti$adS9GmsQ@gVw-}0hLUUf@XtN3T-i=gg9;l+L~vckm5qf>Hdpq_iO;pZ zi~kq!q|2s&^6vq>pN1zFeTzC(O1C(JR<3`BP5JTxY|57rC`;uF*QAP$)t=2O-Qr%E z!uesl0JvO>P2n`LQ3r=7mL!8uZ$m zx;k2#2im7*k3T`E=Xegnne*O;K8`S)cX+JzGMX?q@CxJe9OlUuUPjg)-z4JVu5?$c z8$avH{L|Mo3o#FRIq-QU_nM=f;%zQi775$GtXHuOz|mO-JS2{NUw;GL*Mm{t^~*T&D8? zc7zuq2`D9jqj98(hj7RAjPKOBSP1lUId9uJ5$R;(Bhy=rU) z;K6|G6UGBx3wRjdw*YZY8oNus-w!wu?+*h`0elhg7(j~b90$mqxqQGw_4^Tk1$gIK z?kvE0fOujo+Btx%?|f(LIS-E-ENN4NC2eY7UE#RSRJh67HeC7&h2#E}qGKCZIPNeh z+;W5C5UFrqH@I62j>D$n#i_EU!&+P8uxi#gtdBL0(^%yn*L#ZhNNpR=NrA>4Z*cPs z?iScCmh^J3iZ-13q}u-R8gb>HUL9p)VUfKXR2D92*fkPx3!b`%fqKcOSCd025?^$I)wR7cd$#Cx#44e1z-{(6>7G(u#c^+zxJ%>x~62*|kUZ~r{8 z)x>9%`Ef=x71bD!mzJGBQ6!2a%K@2IGytiDTVYqb;+$24bBU4W%5t%<{JK*8+_^nTJNjr82 zbAuPGjD-vyB=E8q_MT;3urbfOXP2iZf7Qs9aJJN3NDh#*ExIl@JP$AT>`LjG zg853H5-1D%)P%=H%xTfZJP6;jD=lm5d+>hMK`sKB7VQFoS{nC$fYoj9(9IvDWnIKE zxn~4!DcNJivbLOww{te7r63n%-&^{ptl)iN=lw6J#SE|u{`HQ*{`Qku7oP>bZGI1y z{Zn?#gMDs&-jq8z`_C%AKMc=tbxDSbxSeqEBA;GhPSiVQ{;xLP`{q1*E}5p|&@=4) z=OrF*4iOMODIp?~@;A^3F&#zzX7n6{spq;3I}l0tqj27{E4yc5);+~}quj9&0&b|F ziEbX+8hTAW6Jhg?YfK^qyVbtgV+Jt*dg9Go711tHvhdX9JH??e%5% z<=e6440_9sy!SN>eV}P>?;N`g$_@dQ3SYq_dBN6WV*vfvCYf%}x(TVo4!O z3mg$;?7|D=NoY$))YQUZF>IIPNw-eJe>0w3s}uiU!;_AgiH*AywpKj3aa^#j=0`Q%z0#y5+N zH&fm&bQGylv7ZGSJF|3)!??m#!S)Nm)frqXZ0+L9*|6Osu3L=jH;n78u&FTaFs{FW z?LOgn4mK70cVIhP{QDPdDt;qUZC;8>sklsq?E&GPVQ>_XQu$H}+b_kn3O40)6t>mk za}R7PE@#3P72HLzZ4%oxu<4S9?N{QU){5;u*m}hF5^Re171;hu zc>fHW;{6yl)~#HN>Yx_azDL&V5m?MXD3r6Zb`z!o472 zX2v*k6#NF@AHA@Mam>sj(e;?HIHZ|*)HeoHMMAkSts-qW>g>Qfqx~%p=L+w#w1%`y zte%_)nYH~+=CToiiQvKR>YC-PjVsi)K_X3jTCOW%)-9C4g@43`EA!UNql`_uy zHcm$FN*QWBizf%+Du3J7BwPfg5>Rh_NqfyI3~BqcEbQ18VIyn42UAjby~A^!Ri9E~ z{V3&9t0{GYbxrCx>#@{S>yN2JtxxdS`@I#yzbK81bai^#7F_{Xl^N=+RLPhzaoZ#z z2Vqnh0%>E^B+iVXZ6&IXXUF2@QnXXv@kTFr?EA31r%A>8jgT*k??nHOwAlT&iLa8( z_XzPEEOfCO-Xh!K^tqbv)|b-00*2z$c~T@i6e+g+{DhSM0y4zaIkZQ@CI zAm<}4ng!LH_I<1@j)L9Z-JXaI4=&yLeuY=r`EKK%)wr($-f(!FkMw^6&I!r)Mgkpi zxd;PG6>GQl>n})W?qO(zI_!fS@J-M#%-8YkeaAgXawu`-ldJdF+4ivIuG=1W-C3m+ zR<$Xvk^T-`SqlENVc+6K;g{h31dYdd5MzIX-dp5|)&fq!`#Qj50WlJZcpXND7)QBt z09jqP0A2)$l~3$S!1Dla1H|G$M8SIjpTRqpy0KRPF9G}z5Pg1ZB;s%_;3U9r0CL;l zTYxL|d#8Tq!R}XqKMU|u!1DkxYmS`{csU>|@)dxbav~0~%K^Uz$XV)l0e=Q~6CjuM zh+FJQz}o?Nn7adzQu%iRa-aKdz!`w|09F9*1Y8DqKj4{w4**^U_z)l$^A7_)2>2-A zuK*td{4?OM0f(Wr{049W;M0Id0U|GAe!%Admjb>3$b-_C051f58So0g-veF^_zK|n z0RI5^6TnviZv*@z;Jtva0kT!T4)`MA8-VWt{uOXI%K2?TE(YHLoC1it5Ss`1K41Xw z1Hc7<9|4{U_%Yz=fPH`)0MY1U7XxC;Cw4hthTgu}0w=Y7Lz~*Zp)J$m3Q*xV$5Xh8 z1~=K@xUs6}0tQ!Wa1e?sqqh4ZE*J)+$RR-K{+bAL$qzU zb-2MDV{peA9L3>P7_|m>s=+NYIL`JI-6n(UHMp-B+)V~|v%&2&xCadGX@h&-;QnE7 z?;G6sA$GW4ZOhcBKnBbr|fIvr|dZY*v0SbMqshFO0ClH#xL#U zQJ96j@9ZWk1n7DnIyJHjxoI`xfo?whFB2OFAap30oE(Aw7Qu1qvqEf@_-E$i@^U_$ z)zX%R|M&1TcVZ_3qMTzjfbc5@TI)1GmObehu^67A)>YazT%_oU z%jCc#uEROxh%HkDt?4@4`o!SaAuAkD;b_a0b18*mH>_|ShK|Fr!m;yJbXDjBXY>Adv~90dg{Gp+AH1j@p7fLvqjS^KQx6_K4c6fYd{#5-zY$l9mwRi( zA!)=ZR&~x^8mi+cV8Di|jsiHlv3wG$`eS~w31YC(pVX+ESeeIR)KfOOlK|P|_|AOi zJDb)ycvRD(O*JjrGOfq8>u~EyZOfD^&lKIi433RQ;TCIKro}m}!f`)~woK~@gL~TG zcBH{+Hy(bnF@jR`V+;25mSx~nU@Rpl#zF={#1(LE;FT@DWA2kr?X?vBj=2~AanAdH zyYF8qz4za@`|#BJw~g4@`%vm5$K2O*gx>PC_c^(RxU8YU`C5mAi}63#p=YN)n|lBJ zT|4-i6?{1Bj+B$!q7&GVKYK#S{C{k`Fwy6-_n$w666(GsC+pqElO21H>>zK)lP)_? z&9LQ);J|XRZNdLF;)=OG=fj};7XDuq+jsEK&Nf$08dc09IuQCnEH zG;Gg@0+Kch&m-DyyPt+}gM;Cuy&w*i6NKR>)(?<( zdz%HY{i;ve;44zCHVo82n}>JjP7qpZKcBkWhwl?m%NKy$1(=M4*gFaAs921)!PLPvj*iNFrfpw8t-g(8 z?%H#TZm^l_ryc#*dfPidmOuM1W>l-jpNJJ0rxbobCaMU~2UrZqX+{vR1F#fu6JQ14 zj{!-?I*4&6_5|QbfX@Jy0J47Zo#8NiwX&m4t?X!n>R7}?;V90da8nF!s=>iWO^2{G z9s5GX%f3+Yay_STZ3fqCa9qtRx*r(aj|}dY2KT7J{l(yTu%&p1ViKal7_M!Z))<33 z#NduJI3D0DUhelR-a>=hX>gQwQ*`n3UY^}%vs*H!v>97>ZW>y!^HiR?NWa~8ynR4J zrwn}ID{g(q?b+0c&~53nAy(}_;lara{-bzut?Bs3 zUJ-1ZN1ZMyS?iAQR563%c z3E8`|f!gjt`&W3L_2N%VV*lEYB*bCp z-Nt~J0|$?SMk6BA@od5K4Lp16Y}r*Fgs#g2wb3h}J071Ns)dc}DzCwqFckST1g9{2 z|0I#UHg{pgBk9!G|6MClnt-uMiApiQ`s;AHch5eE+N)PY+FIhDAyo=?j2;I(au&#( zj&n3?4knWyD#iD>fgbKsUeVf_Q9%PC8lPIt=N)wPub&=oS8n_&UALn%o=8(AW>CwBr%K`n-fDns}wE&(5$TrsqcrM^Fz{>#X-`4=6fZqhf zKAK256aQnpuK;Ad=Q}fE10FTsrA^IuY0H$Ek;46#rpuJpt8gD0+(AgG!X2z_7}O1p zyL@!bWC}DL;;wNU4K8MI-!Qlv434KSDh%%KD*sZ^vK5ZKy~6R*Y=vWQuW zcD1y(&GSxb?eR{@Uq7jJ{ZWdDgmux*mc~|Zb9@ab~`${X%k*4onKt&DE)mbWc$M`{^22iDKaFIu`+ zu7Q7aYG`X*)*AJ8w|iUL8=D>c;GEN?lHhGMbuO)0{3Hz6-qw%8J((c%$pP zqixLDuB52d6xD^jD;v93(i7Zk9Z#r^9!|2nPNI1#LzPc;_Vn57OhEuq?rvEV_2S-* zo~Y$5t*W;sb$KVvX!atA=6U9C(zK(2Ze}6%=d7HjdM#g5`(TnRPKk4=$+KE-ySX^4h;xj zEpB)vl>H_&ma~*c!YLlsipc#X@vyjmK|>mM3=aS%&XqOvrtikN{z?`Y(zv-e9g1^p zp1178I9EEWHVkRpT-m_Hxi*IIO$8{F@oFy8fXi{AH|7E0dJyg`@5a2GooesQ*;2R& zO!e?O@A<@|uG-J`IFoh5^D#;(ZqYUkUgthL|q4Mh?Y{W(}@c>VGru+fZ5@`o;|9?TYGIelk#2BMzm58HjJhv$&ot)Mw1 z$sf9;dYDV(UVP5PmC62Kjt3g7WF^jcfq(38oaJ@6(C`eq9JUu`$K1WWyh} zG@2ul{Fwx7s^>-gv%k2Z^_DLu`!iW+<{+P$3pA6G{5cZXRL|r1r$5imDetG;rwEO+ z+>aE0fTn=HHeTHdDZa0ajp1rOj*0LBueK;Bp)fWL=AqiynARi=Yq>Hu%{fV!ZAqA~ zC1Gw%!fVx%>X9V!;zfkq|2|vKw)!j*IcA=a}@xS3RS7fv_8J;x;WP(nu|1U zu9?DRrz>!6RaTtqubPWAZZ6IsQXv7U%!Rw({#Tr9BBw+!q;Yd`&K}Rhw{IMRA;tD% zzUCs0o9lStvg^ji6=z~1V{^4>F4DNU<_Oop_@^0qLMD=EbKRo3NaN<33rwnqvpbr) zs%i|aHrG3vi!^SodBCK4CXxl_+{2#T5a&8l7YJ$GT$nn5i*20d@z*)Aa|EH13_a?=;4&ihehBR)jVqoH} z^2FbIo{e+O)Lf)-a|MM9g(POn9}YMo&b3f;k;ctc0!*q04OqMz^ZR`U zUtU~NS{5uS_d%Jz+a(kz^#@8TE8)`Wb}28ZC<&IA`h8IR?{+CIE%Jx`6-7Q=2jF%I zRQYQv1O8$kE(vhERD>&PN~+8KK3pB(cB!iL2dZm|N`1Ic!0l2|URF^SE)V*kzTfRq zRuL#JDyymTL8-snrKY&LB2bA~L)E|AB^0a)l~z@ReYgNXxkQR;PY&1DMAkI6wzfA} z_UrP_Xw;I~dsk$6ORKiWvFot0r;!~!-Cc@Q%diVuQ+H>p!pa%Raw`(7t&M;-g6UCv zr+)2h!Hv~|fEO(@8Y7~7P2D7JsTW+Y94y71;VYuu8spZ@rl|VY>8{)yirf^!rSO&a zmPc^S=L{ZA$jfr1BZ89;d~1(07(|Ts+7`F0h~i#OvE!1y>B<)71-dF%%;mR|UZj+} zqYf&$9h6>M5pG~I0OuinB2t|!Ay1l>3pL(oPEmf--WF|bX+sf+XULpLm+T~~jbsP9 zMYe_`qT|LvtoC&i(TFvL{1u%_NOV1=2Avr5>d?ZY+~Wv-gW}|IziKC!LIXuz6s)a} z_!|~!EeC>JPypZTyL7!twzp$WiwyPP1d=>tRaG*NiE1ac% z-0n{z%P*=9R|ouMMLrjIpu&fKC>$uME`>u;i8&#F2eXK1?Gad>zh2(>Uy%?4BraI& zuMSk!_)Q$_xTq6_!da>&z*A>0IK86AUll5=3Hu7?x*P&Uz9MvXB~^%?ibj_+F0|u7 zV!#Mh`N{*K;>x13O2u7nA6ZD`oiRARDi92Wf>mWcrm3g|2Ls}{D>k#kH6{LRRrpKF5lwfQ!n=?kT|sdP!qlZ|L;EBp zk)^^{6AV?9`m2&SY)+i16wXq|Evj@K15%*U7c2@?lvP(rWD>%3`5?zKz(@sgdQt2P zheH)*p{nAfDCm=u{xYGc$X8WXQjUwiQ3wg)+HAAbNlD=>obMFQ;sH-#ff-8!Azw*J zbxkl>&blpS=pr}gCdn}l`%0^;YpTjZNVMWq$3lg(y4wq9@nERX6?8%=mHL9!Mdd|h zRd(CaMLkQM8zH8}$zhiHLZQk)xVREk8)2GLrNX^(75R!oW#K@eD&$iqPKC4L-H@xc z2C96al8VwmMQAVi$>XNNSv-_Vir`GNyUI{$MTxHMi(I}J`F$Za%#w;4R@#K}vhy9? zcHykOgfYD$R30uaE<+Z$dxY7cU`0{5DuhamywOb!P10G-Dt%?ef$B>^ZY%6cl(}1~+5E!Rwtq zrvR7Q(VUhU@*HN3dujE;!?DKflF2X+5IS)?`P!&{m7~1}^p=Q?vofrIz(2ZO7^RcQ6>y;fhhP>I~)0_t!q$`8NV$j@hDBsjp zzAqc$CipjM2tGFgO%@hJG!1zA^Y0=|`x_@))?3_@fmw&AKmV2he;IZv{>I%37_No; z^KT~B7BjK@UCBKI7;ednf1QrAHsH9#enZp1D#n+c?{glm5lK2oZn{i=bliSBXb^N< z`b-!E9rOQ)B)aUR_^}xBlIW7t!L1ViAm|vs`a#f51l@u`(6Q>R9|Rp2sFw|bE*o?| z83Y~6}k5?jY!x zF9-KShmMTB&bxT9X<_*+PY%H6zM0Q-ppe=-fyXas(5#|urzm+U!m5_0&i1bM<=x&X zwMThtIxzIKoYB&@!dnEX3oK|mLC<*n8Et%=H8f{Dwz5*KaQnJwX9HGJRgLRg*7U5w zLCMgZgT<*n94YdLLIHnKWh7i%UQ=6Me{!U}dVxPwUW~KIp*e?xEX69Ssf{cM*4CBR zR7a}(6?~h4tNn)NOn|e;s;CKYjTtPek5mWiBenkeV5F#~y1uq16bV-QF)_AgXyTN; z5?A>bMFRfn;)UhK^<@wnQURpxm8ZC_C>*KxmqOW-A|JX}a!FdGB;+rxvyKMG*u)gz zY_Gor95)zRr{}}0jGW6bh7_0KU@{};I#_G#{E)iK$jL{!c6B#meb?0;S=){!dN#1X z21WDA2&D$wDV&&*(@XX`f26Lw)KCRU5x8qAZ(D4 zbFac-^PngoL>DVW6-p#hRKG}YBwE&n{fD-uWrzhj^^BaSaO^Kz6~XF;svt9=7=vI& z&L>l#@s6we;G+6qH7fxm5;LR*Mf$5i62R>UptGw{lEVPTIs>RFsz*IhI~I~7DRvOG z!IMz`N@_4lW#qhwvRT&BPIkuQIAojN*a=(>>Q?dCR6m5jReUrhQkdDkpM{BXGkm9 zTN_Zdjb(!bS)m%-%M%7GYe*L`xXg^@&+((dI1*!$BKsuF!ATq{vzePjM3Wh1~yogd+%GJmZE#VlKft(u-SbUzsG-vfJ9L#V#I z$X{0M$=EQcGK;vAMZZ-X|d5>zY)FUxPj| zZs)O5V^!4E5pA-L0D_}PZM37cu_@YB)ZSUv+=+c0?CdoaN3nSr?UFdt?_#MWtVJd> zbyQhQtO~9k$59tpgUBO0l3m@{gI&Ssu%kMURm53^%B$<@{VZE1iC?{h>&j|s>!k}| zEI_MAJ3(Ebs+8R;um>N99AeL;I%@{R_UdK)u;JX;%6?`HFij{x-K7@Qu!klolgHwV zuI-43fHiO|2}gHNGDhxlmU4Azd38`K(Rz3nXedEUswBWYa2D^wcH^9g)P%w+8<}P8 z&Ki`^iL*m7eY@EOV9;#lT&0LVvu8>Vae>aoy7H=U2;;k+HejBin(lgz5RKi)`DH!b z(Jniorl$=z1hB7+BmRt>2jEpg1HycP-qv%5fj+ICDQ2E9@0;~7f>DuOnHLdjkgkjb zED6fv=s}S&Cqba5hFzpo|1)*W?I>eTB3+2&Fngwkc=6}j1A{+QT2m|GrLux7sKJDY z8QOvfnIoQEkc#&1j;-ThZXeaRf{GY3y5TjFIG2YWsu`3||3jGSpqW~8aJ+io|~ z+hA1YIm2fXF!LtZ{g*yqVYokGiI;~XRdprhq55F0R3$bZT+W6zE2Ey>VMzSyXHR!T z`*3(E{YdwQ4w*u*qA@=r5q4{{XQC9DlBW?20tm{y!(^~N$#LiUg7P}-CENWj%ZGCa zHUdlp*k>|F?Rq7M9)#C`?pme_q&SO-Le~^#-q8nE%#f;?>}$*%inXW(dz&nJc1ui- zN~Jxbld}x-Y($*|Z0a)ekRgsUnsaqnu6YL9JUY!#yy-LhN9mqW0&H3)!vc#$@(LBjf>_p^EHiq}PSNuS zFKa@irJZ;Gx$0G*Dy-AU`qF_oN~5=DWFflB7&Vz5INL!-J5CYtk;P}Ys(UnI9wj@O z?Rjy<$%`Hu^P9y>{#iBmr0KynwcVBNdE?fJD?b>w`3K)U^vA)9vh+Wz@20Xnb5>3K zL38!hS9yPV|8b9>ay#1QYlvjF=h#zQzW(k#&wul=$9_HX*AHA0#)qv4Bil3loTuLX z%2!TZb4Az@HSD*MKq&-vV&!2w$;#aSplJmRzKmFtV?(;`ZM|uVS z?XNAby)Esn-`#!V3x7IfTK>f!L&WOOg1>3q+A~sL zx#7Sgp1yn9)P{-w!ZswTOtz=yXE#;Kp(_U=FA^o4g{trBFa*v^D-qMcF_7$CtYrH&s?($AqKWFw) zOV{D_w0&KdcXdm5*V5_vOIzBST6>zKuujXLHa&mVoY~Xzm-e8CT-t>1Ti8>sQ`4Ji zEBDXKH4M6~dw;!=n6ab$B0TEqZfwW4i5eUl_BVT>=rr!S`dJDU{d1Wg?qB3&wWJ=iPj zTDqpOdu2$ zc!;i|YesidM@t8ymRFzeoz~e{7j5ipTIoH}n-^{A@Dh2dymYCTncidY`nia`c{B3G zqZu>3$BJ+J$qo-^C=ciSyF5e?1rkKTjQ_qM5a>)5=is)Qb_&#-Y^9sNk@b zdNCMYwh{kSJKtslWV$#-!R*Jf^XOwF46mHF#F*Ys0Y?B*d|h1|K%2TYfVNEQE82B9 z6;ujcru8#}`-Q=cMM#Qwytd)uTn4clkK756*So7>0d@ehEZh~4BHlWCbnhan<{uTf?++QN56^#Q z7V1q*nQFBgR^*yv+;sMp+kc0gc4R6)ACQA$u^FTIFpPsMg53_#~Uf zg`H38*1V}&v-~?$*s;f{Szb}wJlSs^jCPs5K)u_VKXTtpqaRS)o`Ispq^n=LQ4<`L%o*0h16NUf=TvsD6nksldb_n>wZ=Z&4aD6Ko% z>&xgJ+v`h1IQcuqA;4oE>U{?k-sP7hmgVLTJXu>`LO|79_iTDql4ob56v$3EZT@If z_wk!Q%I%)9`J;onj}@XfgMA$tIt9oZgp|wR8-SIBAWE;VhXw~$(7uAct_<7P5%W{C zwyv^Mrm#U!&&TbOXGs!Ve$1pF-Kf1w^SmXme-rmlvk+PHP>}E?Yil3Urz^&8meN~U zTmA}^#L|(ThJrmhV$9o%*(+on?z0vsRtI(O^O`P~bUQ((?gI;}xT=?}JEfiOfGfIz zhfflIJBiZlz6_UD92e%)*?0upGu{!BgyYDX+{D6xim#%E5+Os%P?;{OQdv4vd{I$H z-XSYcAA07Z1g4?@`a06=Ako-*Ca!!RaS;xv_T1o7?J4(I=Tc3Ws58So1-YUt3`1v0aIN@1L2#Y;SGe}qyv2ZnVy@K-+eEQ_6}Bm2yB@ZH@O}rj zQ^a;NY|58=Ve<;zKVUmeTt9?O&{c%e9V$%`3J7*!Xo>u0@T?tc~ebA#BQ*GT7P$R}Gu;g*ORs(t$fR4Ba}|Sbx*4 zvkcvNuuTxUOJGy!y%IK+2isv&v8R^6$-;XNY}jQ4{sq`DZ-DI$*k+6Cd$1iQI9QT2 z<53Wc#@?;rG|-E8(hettJHxZx_rQS)k7y3W^FFLj_gSFFCZo7>qmrRJ-Oq#jNNiHl zc=7xt!ToiKj|z>`&#yidmz+tym8 zF0W_(+AeO#qy8(UTqjA;-6;iDo+s*=t??e~4hgdsm=~ZGFI}Qa)lQ23{*<^DD|1r= zqc;ZLv)hGqm*+~)9LY*vSop4F<(SmdP~abVUa+!K(@`}2-MsKi;m$RQxl+Hgkf}cF zCV5|-cBbcRo_=m(U<7WL!1f+E%SyUut5aRHz>E%x-#2>}qZ?W2@ktz*;i|k2m5Rnp zs1mw|(uSp+CUNMHcXQFg+aO^dhJ9V!4f3U&4_OhRtF;jPrMea5)YX})WT0ap{mF{ zsM&m93jH=Gppx3Prm4NBjj;~oyyGZ&=A60D!jAPCRgKVumPjCM1J#F}W5}Il$k5@|`A}NHY-OUh zh?{?aL<{yJ_`$@e5QEuI{JW=0i((Ef5d?ujnt$ySDNIF+9T9Ic~9}= z;+mes0$@6h7k8>WMH^r#;^JpjJaj!;T!-S~gvB}ec&A=XKGdtp=LR$}C(gcE<2kQ# zPrO-!s({Hy$g^SUiTkalB`^J=t~lG>ekbkkG@b26e_jNRd@pFX=QVr@ki4W_54vaZ zPA%iqK?k%kK-mVt9%u~#tr&i_)rP(gL!QB5BOblIh+0?!?o&`79qZ0SJht-jF8JKP z_HhvX9nVct+OWXL7>RPLh5b5>Uur4sb1MKj=UfRm6%aF|*mS@Sz>@$^2jr}&3veso zTEL3|*8$!DxB>8ofM){k0)(Vz>~DbQ05Tru0v>>{w*ck=VqP9Q0q_Dq3W#3_cpBhE zfM){2@7QI4mjHeb5Zfm)t^+OyybJIOz{dcu1f<@MuK_*>copEQfL8;uL;gD8CxG7s z9E&s~t}zZ*Hv%39xE+x9dVB|vSMz=skasj7EwS?fe+2j~z#jwt0`RART!h~S_zd9f zfNbP<1HK4&4H05Jr_3IHDmoCkO(U?t#PfJ*@B&uM_a z0z3ooF~F^WPXK-ekaXV!B;9sE#`{jdX8<1pd=~IGfX@NG0QfxM>wqr+T4|{AfI|Ua z2FwF|1&~eh4}jAFUj<|X{v+TifPVtyiTs}d&jI`k;5NY50j~$7zdr-~DZeh>)HbW=&M>&M4emOF`ijEp#lz$wI6ppo2;Vv?`s|=3qT+!_?xVsGQX@g@O zR&=i!+-`&W*x)SGAw`#~ZNsgx26w!{abHZ)u~ySI+@jtWh3hf64F<>Bt>`W=IBIxN zINp7ucy}1wT?WT>o}zoq;NCU3_Y7_rYM`RynojvQ&fs{@oWh-8a6W@uWN^HnP0{rj z9Ph?axC;!9?L*nbt7|cbvf$ z8eEaV)filz!9@(N$>7!*+?fV>yw=Hh?6*h=xw2dd40f% z&eJB|PH`|Mt*Ed`*Ub2Gl24=TECV?vg7z$r(?{18Gs&k>D{^0Z3k@@Rv5F@Rzns z>q+f8TuuNL?q3G?skUYEE_v}~IB$^`Tc$PB;N}<{2Tc_QuewnFB`Vof;sTBj^1ZcD z=!os=cI(mwS6O503JFma?qDeV`c)Yfl=e6@Pq#{7Bt`ASo+<;CYq zJw_+4oQ`^pRIup8)#;2jdxJ&+0z7Jh+5;#XZndCOxQm|6?)o=sljX;vZsYt+6a%W& zuQpl7C!OqCK1;tN+fb^9^Z#Kwu(Txoh3sjdw+W=ExYkeKJs-Ux7+jyXqH_ifKMY+5 z8%=tWKWv9_y^PymKJxx#e;A8Y4?hSUNl#!h#Ggpl>IgmtQ79B42w<2(Wo*m=Hp0*x z;==T=8SzLL4PT}wVNOWGlq6x$0cc~#$L=c7dFVK=wn+@;tR&3ENto-CFh5MfUw3*a8aEdPPjHPQ3yfQr+uNFpG;S^o&W?1sHQP;Q zmj*)`H`jr{45R_BP;-&S&BeG4qya9bxk%&Y$`vlPxr|AiO9LEN_cWw&b8+xb^)S6O z1zX;^jTFj!sJTev=3)(u*NvyIUxBRzn`^S}+DPN(;;<0cD0XIE<+3NuGN~0G;S_VXX9LMt!!H~7irvF2Md?o@1DEv#Vg}seO+^r#?3|gR1fhq z70cduG|u(3<|2)oi<9tFk3Du--==y1I}b;2aDyR@n~SwQ73U4g_*PvWiF0ukM?)Gn z7pMO5od51cfoPnoN^_AW#afLwj#x@(J#8KB9a>=(KLz?6%DuiYgEfFY-tIyJ!vIJ{ByVYqlvS-|CRUfcw-BT1ui+{)^y1!h+#tr(vjDymM)sOxw z9w#P}C8IP+Jd%u+`tYM)Co|8p)nI{B=Ubk=cbqq8uF-f^3MEVxP%>8pH6;CLyuv&> zQQ=jf)K?NJEw8AkDRybRnx$u+P_5!tz%xkIR|Be<8b~KrwXX`w@dA}0D070UmL#26 z(A^SOj3vrk_M(g`uy1OS2Gk8z^nX`hlHXTZ7J{m<3S0G2d_~ev*%m=dQcakuxscmX z%+;7*SdgEePz7d|K<8CamG)88cR6$gO)m;Tfm%f+ldA6HTRf42!~x(PHXDU|mXBNl|xH!aV++mtj3 zY5Fc*(=?EjHc9hieY3WADQY!Os`fQo|R0|liB{CEibs^YKz z@AsUU*?aHqCTW@q`p~g4d zs;sLjE3wrppl)bpS=s6HD=N#N4oS3aQEgDL3e2d20>$deO4ZhcxtIDse#Z1UelGnBc>WrB>`=oB49MSFb9QrVJ>NM$e`(y{lRG5&b>h^gZ0gMjOm1NNE^AC;%d`9Se z6E`}cZ}IBT``^hC01W$=bh>j&(A)hPG)J)?hT-rjo$eeC2_7>vq@$s(5%7YY>#KM! z##1^(-5^w$*x5zxN_(apgy}d5L)#JEAZc}#_|a0+!d zj(76V?Wa*k-B`!!842qi>GvEcBMd7h$#9%9pf$m#uVgqClaOJ%t%8K7O?y$z{=Kw~ z{3q)c;i>(@(I+@{3vx6$sk!0*XC)&n;vY8kc0mPJ??)7ilu;Mf+oD*6NAZ~%E$!#V z*F#xz4>!sNrD}u?=k9A15tSvV7@`{>tp*V`X755{HW)o1Ov5`_*#~tveAX3p(PqTb zKM|j|clCcT6B)6|R--3}tnESERx1cIV}F|&)s0Z_LL~tkK#|lF64nVq#ZB9>rc-}< z`NG-M-?lhT)!m{$i{W$G&aW?ot)T0nCD(UbUkF*obv>g?foVJve?@x)#O-`~M&7Ba zKmr4bw_oo^FS$2ZH6JV_yQ$5Cy&KC&=Q+*Yv$@W4ZX8;5oqmwPEBoLOFNOjny=SK> z#Vii|fH@P5oSU>JgT;o*px#=7%Bp%u3&hAqaw zFxH(14DCO%n&Kg0Jry?2HE@3nMmw3Z{0vht%%p&5^T< z^!>om+()kCQ1mrC8;LW9e5?n5nY-%@t_-6PTFU{+u?j$@xC)SY2`SaYF@W;`X8~3N zmI8A0QVCcK2wJZOunBMh;2MKxJQOxj$wb;zGLg0@k5`Cm9?lV|Ey^Pb2KN_-8;caH z-~Ej(Dhk^aH`U=N$EvtmhvQ*R#ogg>JOH3L$}-Xx^@0+NuKg?7Yd5}g(5(*}yiemDzHTg3yP*g)Wg)=G3h!L1x?h9_lXPooKoT zyG!_8R(_u;;cjARm+&mOk41&=Wu=EgxwmRlgT>(#uv3dOxd0JH3*5 z|2-tES_3Pb_p6g<9&xZUn9ZQ!)bh@FV~E%45T^*iU{$(v!I>&=R7*BP>On|$&t>2p z7B+t2J60G92L%3|mBDIa?|1uTn3bbvRD{kkY$i?Swt4kwCJ*dT(EULSVJgeH)g&9n z{plqqIr%?K%ErUeBn5`s^^;~+~lBRdZNnjMFch5eC*{kLaf zzjs8HH}rZ3Re1-rI{$Y}SI5$=@}Gr{YL8a=Bb#>S^qjtFXHU6sw&1coR{V2!Z7AA78Yt!5Hqd{_L&!>Aj%dB)5^RxoD&81D!-nNr3~Xpyg|{yK zqe~E_1I2*WaCwM^%gi+XWqvNx{}a#jkUDAWhij5QiQy$im+9rwoA4?<71?pL$pm;v z5N=&WQnQiB?BQ9dx6AEZVt*2=+8>9w`;+5S&-qLI`Wnn~yKi~D)901nA48UMiENF* zpYC}HTDd$t-fZ@UmaBL%~ZR70A~OXJsmVcZ9kOXDaCVsh{vMde!Qm&RR< zigU>tHxB8=;;dtW!9{@qOh>%3Jc%%8e9GpPEU2uVcX~N)Do?)@-s_gau@XM*gmf$6 z(|kx+-CfvI=A58TTnW$hCg3jYr8qBdIhSrFyb<{kFlo-qybtwgNr*`I}CB>&VLb+q<&vTRHcyi4ET>db)L^ zv@7d_ygqH@e2u;0m#c4F@)ZQE@{~XF;`SM8-jGWP_UQmevxbLLW zUcQ@mxOrY+xN12hj$0<+oMqu zMt0CfcFx-D>t@3|5+r=-a4ASX=iqC^!waEexBQWK73Yh*CK>?s12|c&fem_ohH1Z z&AWQv-THap#6b^>J&M1{U1wa|IDPAiZQ(;^xD2%CS>DFEB@1s{W7#um%anNE4{_P! zw(oPZN@J3E7A?d!b+NrJasonJv5hJ?DV|p(*ZS#p^lA97Htu?4Ukifcs0?1smfzCa~7w8CM-TwslEc1`? zJSVP6_bLu1g(n&|FA$j>+Hz-_>31id2V;1NNwAkH?d|CZosOG>wHKa_(~G`5?;)Wc zgVblfHjl^Iczz|qb7nkN#|+`Ns^|R`H}OQgNAd7#tX#qI#T)PRcDp1l0;z*jWwSrx zt!rsNyQftG!+tzYU(vjT{LJ=#gdI<&hCH%?Sbi}Lyl}5a=%MIAuEt`Ln5VM^`#mIW ze<)zxj8IQ4>}9s&8YG)MmKO4vSBU+SMa*k!M>vuaY%0nQ9IhaQI=j)h{rO$OC*BVC zMUoJW%FCt?yHwy6*h&trp80PXq7K|T)3%panJ`ct8 zdMZjSoR7^$9unkrRX+rtS5-+6=H>h2lU!g%`wt2-1LdIL{^lMka$>yA2z#kE*##K$&S!@bYp&UZLo?x#FB7J{f6#}s3WdhF$JUpDSGFT%yw?CLh} z>M7|v0UgPSeN_eMK?>~6)Y%VKNl|9MQDl2FTov7W;@UG?!FWB;{5;Bo=_YaUbnnmB z)`{ENoYqgnA=!gX--;e*TVGW^?|1GiS;?3dUWxn8&seHJjBTup;s%e>GXw9ZG;OVRrsx~0;?w~X3y!V2jDx2GG2%(j(O<8}-oy5mwufO;4dJ=S2K3rbp`W4uTwrWJ zMY|fkYBkVnGAHFjyn`a=gCBpwV=t6cPsv`B4Un2Ny(T*nwC22o59R~7;b)elgzT~@ zv8*HGgMAhy?wIxLig-BpRIsfD4gOE@=v_Mz-Yo+&I;96?vRHsH>cO=Hp+oLW(p}}Xz&iXtAFv+qBESm( zF9w8L0$rttE;NCzkE(wY_W+&+crPH@q{I&Z+W;Q|TnqSfz;ghZJ6(Xk1MCL;BOn-< z_%mQH;9me4&kKOpD9PalH_cw>*jgy+b@n~r@ zJl@iwxTy}u8`l+A>u?PYx60vGI~?!sL(vCcwi;X1<9(7E$0TEmdM7(viNggI6u4EW zy(fi9DZ8Kaahku$H z4l7w!gc5b{VjwVjiO^s#|0z^Yc*ju5X=3tLn_^B#!OTs;EKk9p3L0ZWMkNxHHx6dG1#HKZxVQNZG9Q^6PQm~#RWsO+th${D_U#FJh1m4mtFqGW%ZRtO@q_U*o{jRqz8^W zRC~*LNp%f|p27NhZ;d86sqIH8g!s;^6au;=pcMkA{GbkXZgnlv*w)_G-Rjd30bQvJ zDob&@L5f_g);_;n?2H+)q;VP|GRVcwnmyB~omUMJl#4wHZ2(8lH0k7GZO5V%c&Cwz zEkPk3tcHlW+L629O44YE*cavIGoZU=eODD(5=IR*q|7V#NgXEdySc}=#`OI+3 zv5shnh?kYtRxGKmXq@LA=Z!9$hz!j3a8XAb_qL=JOs!a0ULS8PoeLdBNM;?}2>+YL2ho;O?b{(#Fbod0lN| zLtRb0s-|@ALJa3}3l9Zhe9^+nhInatWA)uRx-pIf*^ z^C@mrJdbFIs9jv$0N#*$6TvQ{^m{}@1PW4heSE>fs_L4?$_6Pr9G;A5h>$jCjI>4N zi|eYj4cgzfRI_Ga5hu6sGPZ0~V%y!>(hMAn7nTOBtQ-H1XoxucCs_|X&_3yj4PV)L z_1GtIr7>oU1(8%8(_Mm3)iJ$Q@ToecqZn2fL{fE3_pc%1k>`($Z`ts-`)AxVdd0WC zS@pf)m2Vr-Nxi1yyzbbDeA|e8+vL_g7xa9m%D0VZh&UxhL&R=MJO#B%dwb;D$tpSV zt5?wpb8(JxN)Nbt!`3#)swTEwxlS3} zcBOube7n=h4cz_KE;H26e+bmp2@*^>Jq^@@F;(?o?6>vYcWBjV5E?P@>cB(8i~4UA0X&c)7p3 zjqAf>@f67dJ{PfaJZ|7{(?iv3aE-f&Y93@cKgU}J8&}MVxT#`rSYpM0KDXe_foPFv zLB=o(wx8pzA^!n34f##jFi3+dhGw!=y9Ur2uF%ntf`(hQ7)=N*o$^BN+^UU;tJ2xk zLhC=Qi~9%gA6D|gI2lJi;I=C77@EfaJ;#+{-n}FP6ybG`c@NU3n zz{dbl-V-|jHv_&7cq!mN0kLP2h~OKTo>71w1k3^a5a1ZVO@J(;bZ5S?2CE)&+EfoY zZBdW0DDH7%iwaj1_lm=D(^qjt#uoMFINT`?cb3Dgb+}6$?sA9wBWx%jNXws%E$USu z3p9>-#uiqIe#8%gA)nHv?_l8n0h;lq#mE%iMkM@b(0rkYp|OQc zA0CRFHx^CsyV(rGWD4(OghxT5UV4CGpU?E6$g}>xiYI}mY=}2tZ;ZEZoH=FA9xJzJ zI_Bn5lp??IX7Wl*ZDr%a@>1-=FGU>j?v@Slo*r5K^Jz$iD53An@S@skF1DA}U|Xab z+ZKUa1C@vbRQOD_T0ipk=!+{alNh={l0E&tm$sD zC~hycfyjj*d05(r&nR2eSm^?(m}j>_(kbWRRhsAf)1jf%%<>mJU|IbKqdP$(wX# z!FM|*3xMx{K2`nnpj1j`Se@5Q@^7$!bZ2^)Y`HTMx7W8c_wZUGMZbudg4vJ8yOWD+iOYNo7T4wNlv)iaXWig<46V3%)`(H2Z4M+ z^{t$XO&LaZtK|-uQ(wbzTCo(BWToA^Hm4i(h6aSMU}$;^m_T3 zDwi{^5MIh}GP^3Sag}1E3xbS>JK0r+(eiOI^tVY3_~cnLoTWrzr@5{I4K@9-_=Rsv zCUGfT=G&8b}4SXnFkuPn?g8(LZ_8ye%Ki3qTQq_cb?U`W&WvQRBS225yyu5W7zd)R8u=JG-NcAHytTb76JblbyZ( z^h&g6*~FaNw2r=*fewcplE706m|#;_C~4;CBGV2bOEBw-){M6Hvlt^Q;7K+W^>sDX z<;x&)P(DvfX)l6He}^nH=8mJ0F~KfcKb*NQu^qz)jcsL9!h#a@7?X$1m_vGgve)!RSAKiXcy<7nXd~x|x z2mR)O&Cle%x$oCrKCGrj4)Fk=diyHFD~P1(D(CPjov!jL1^>Ot8@~Nw`}*Lv|G z*EQr}E#a>Shlg8+V*!3mTgPy$S88cQ}~0JmN^dd^Sm46&4nF~&C{)lH>2zfbyXZerWh7Q8pdZ0aj1=AIIW;zdTF>E z#i>z_Q0Q00@Sn4!9IqH}&NFi4(m;Mwj#q*=dLY7eE!kOJEiH)q z)WWZ#k>kNrF1a#PyX0zPq-zw5sf_q{_|Wj_4-H-3SS+>IAu?2+ama4@->F zcA+yDGY``=^8Q#nqq%@7wmhD`5L?vyn8SU-;huK5XC3Yy*t~5?{_;ECz*9`TF`P{M zO_-}2;5aLEoY(r{1o+;V^&R4BTTg%dnO_K=xV0j-;aqmyh6OAoVhJ%e;BZ!3CCVTC@whI8BdsBwq(5*Zpts(lwY(( zWy42tx8uL!gg23u~isz$D4u~h0BBW16F(Y#qbg%TKiMW!(bY6 zo;cKdbUS)``YjN)CjNHN*=(D9<|;o@Z@^_dY3nM#EmNLOhMVRoZJMXFX`U*Md8)YY z8e5+CeTO>~xu$e6V~g%ZwfJ1zwj&87fvH&2vby)|;zruBje_GmV&&g}Veh0Sh7kOV z(sap+RN&3__>KKfE)$hEdqXqx*v@t@%L4^IDLMfi0f^Tv&O{q@vvkaeJW9B&&=G$kCi zfBIegn%lNboSGWWzC!a5-jPgtXUb^yO9_Xg*Q^L@ z5W}fG>zc2priY`ytO)0C-13 zv1)9{JRBIr9G`+YHGo-we`Y<_w_wI$QasS=*#&cRU&5>fW%Z@=OY0Yu=s^6mVw@1O zhsI{q&zp}^2G!*y9G)8|JNzm+ZR%;K1%qzuDJhv#GRJzaE2*fhsH!eqFux=~rvZhM zB?smLWWG~#0leM@5kdw2%2&%uQd8M;j2 zC6MsjL31qIIv9R-y71Ttei}4iH*}f8t3Y_$L6b{{!?4&$cp<(_LIA5l^Wh>P6Uj2t z`SuebHsh5HaX-;jMDIlJALkSwjFz{A$ZtVnMc;GcW>QVo7ml4wcaBka1@(Y z@o;FtHSh1lbj_PRoUVD(7WE#$o1^N2!tIk!L)TxRD8L6_O5 z!Ipk;hN+{m-}V!JnEB7Fy%kSsXi?Mp;Y9217+zwMi<*HBLuUY7w);F9-QizvXQ+0) z9qD)tPfXIIFQzrT*wToVMGg{Az@v*TwCQ3CZBfzUskqM@I+eav+$#=u4{W;RuDm7} z-@sE$yfGY?`c0U_7r^nf5QnWFjwQbtv%WKN81ut^_9g~edk=Grafdn9U^sRn+>~Rq zDaUAwdgK#%kVox@VvBnB!lravjm<12+IlHVh{`#}Iu%d)Qfh|Ga90!NVJFZfAs$*k z9KL@mrvC658Agh`zXl)X8{-S}&6c!Ta8tg~rhKC<>U|w=#ocLa$>rAcOYjGPE=RUG zro)z=UkAg5#!Q90Fu$lCE6gwJhi%TCG5V$nF2M(CHd23T;f;f+)bEJ3cqVkW*5bqY zOa5fa-`Q}}{H0Cvm$s;EL@Dlb_^-Ha#+K(j=x{GN99vzbdmnO1{jM>#WZ6hviq~?% zQaA%o`f@=U8rxHa%f+*B3zrM)hke#vF}%bCm*P{)#b6ryy}2fDyM^>?^5MMYH*UlO zHiL6&8cmxw2Y)qhY16!=P4iZ9%v;56H?}+xq*q)qf>pXn#-_s`_7oL(teI#m1qS+a zhc%fa1RCqUlgah6`I2GSMfgA2t75n8j14me%s2QFlaQezXSd@}hkJmFco2x_YU*k0 z(CspYYB#|&26~J@!tK<;c2osuUWQ~78lwKyO^!#YiFoLsNXT!nVcM37&eVLIg-9Y^ z%f_azvxS!5Xld>DT3Y5U77nN@?3mvIr{y zx%xEMlr;F0(@paMW5Azo@El8ymQZNR^DdOP?L8ECr^9hOO>w_>xNMXR#pN1X)SKdP zGaRno;Tj$8X@`5(;r5<}KdzSg@(Eus#0@3iY9qtTicG{CAK;z$<4>VcrH#hc_G~YP z?JEB^6vtj!k(GF}G%Py%n#};l9B!b{i2X#oC*V`Z%7qu$t(`(ChqAj| z18q!kAvY_+^;)KkW{jlBzcIy9IMBuv+lH*jZ}7I^uuUCkV@hgzB!TZ@>S@NNgu_O6ppB_A+4Q<||3LnWs)T+P+k zzicphg1I06{KpGqOULy*$-Se%=z&7rzU{7{n^~qc`(88V)-R~2np-))go+yjyIwQr zRaI2Yuc(ntukL<#y@D}>w!g~emCT(B@&B5d%98Xm2eT2D+?v|`ohoXGsfG3^w=Z)(UK!zfe5kH3iM|%b+{rAjQy&?2Y+^4d~K{XRe{)e;T0+?TuXz z{AWOS0{VCwwiN01#@POBGc=^5Nw+t~mhZ=dpktkWd=PZ(51ttW9pim|kaT|?1ReSC z&vbOY-V`L#U*#QwnvaKu)n4}QLUe5L4gt+^hK{X7x;;LQPk0!h@=y@KknidCs2&Ht z4>a+^Nadpo#mn!w2{hj{beZCP2y_pE=A))VXYY`1uZ`bvKWKh#=rV;zMmz_a=Z=5} z8225a^f7;ri$Q1#4~^rWuO}d$-+M|7e4faEnZx7vE&)x8q05v$e((99DLs;*X}_56 zdszg!L35>{%M{+m2+lKt=AdE;PWs18;avurFBrQ1!n+GJ#~sywc$}|&1~hjVx=i6w z2;>3KL?&r??03_pkKwHV%?3l)UwE5AbN|u7@O*ou7sI7=h^h{7*u+SsRM5$>K&PW z^K@bT>80gX3WX;-zwR0h*8_p3+L9cG*p5JKqrCFE2CFnNzMynI|4oDBsVaGm_;p(% zprCTg%32<*gy5+XkLs6rLFv-}7^Sn^{PmxU4Q-{SY>Ng?r0(Il+04iId?#wto}gnY zeaCEv=R7Twlm1j2_k#abCvCZfJOv|lw}pIe2Q(vafBj!{c$PW57Z1oXKYQ4YQGa@W zCt}I;SOR^y!-@SKP-RUTl78ikGAV2_@QEH30LSa0XE=1K z6DuhY9?$?Mg;~6q;R~VCAl``ieMoNTT|lt&ZfNOT*VNq7 zUEa|(Z%tP%&e3(XHCMFYj)InMiG_hwh?Z*}*ZmkWHc*EuRUdGC@l>g}Y&SyZi&^z9 zwFS*;$F9cF;6Z9(PL*(CDG8rEX6yY?4B!GImGsAsSqP6r0j{an?_z}#uU1%#<25#J zBz%|sd?=-5$=+hVWMMT|6XeY%l$2~{6g_9YF|DZAT=HN<@)$7`t z2PRArnBL z=|ypZX7ZY3sbX{Y;ZUhAEtd${>!g>3WBM$EB|fs4OPQ+ZoDIK(=_~F{&9=P%TPSLl z^Wq6i1M$Oo?q8q1Z0QdV{OR%)uP>N$#?;DoT{0?&{N?LMw(dM=(``2&c1Pv>c{zW^ z^it?&uRZd%HMQ4$D)!(Hj(_CLyD%tvR`99k&W}R`>CTb&3cl{{TWWv5>nqhS|JNrz z6}|1C=}ya_}L~V8=@EFJ2M*%yHY>-}>NdH-7s=Hy-g7l{2KO$32%bw1?0k9@qup z;5|JlzkcO;ZSCzndm0RHPjBW}cQ^tXHc?7y^cao=Ii3$gfZb4i(z1qJm#dnFHF?9v zIQzlFsOi9b_v$7n&g)*Yho5Z%LltOR2kkO@7@8^#m^PV+7Xe+v>^)z?3bs{0VBRT5@!6TvJu2J+8l2U-dweZmI}O?iX0K8 zm?$=MxUw0WLzS$;`yB66u)SMcbyn_S#<`BygSP~x3>aLYNHsNMXmxg6v;)!B-qh3E z6(p?o?m=iOCW<+aNr{)D6+_+l#b@A2FTlkyGmYgil`Gr-ufp;LJaa;Vkk${!b+^Ru z5|b2!)Wuw<7UMGTZTQ7>8R`IHx)eUa&xvHr$6$h`VL2WZz@kkBuxN|&B5!fc2^3Ane+ypVm#L5Sc`#SPIdtwK9z3$aGU7HnDOWnDOFAmzc_A~GxH2*Si+Sv zv?*t3iwZwjp7LZIOPgxKP&$@JrE7&Ps0l+$A-|NhDSavAc9Y+PdB;%0x>>9r*4dk5 z)_1rR4v!dam|wOeQQSuPMVs=AHr0foxZCkxal)IFT6!ehRj7XGwe$vr5$2D-mVPA$ z0x<#pR3~NWuR!(8`mo1_Ci5uI^cdO*wKPbtlx8p)N^VwiNLzr)X17(Wbg< z`0c8@hBmFSN_P+bD_v@hRgUdhjXfLThg&;;jlDev0x==p?S6$#;TPk{RI(c3ru?E! z`9+)7SjDl%D$dr}^n&w6pi{wll-mp~+re<5VZTEYZrKh%zJ_bA^>YyDZ;H_uO;B)N zdIqHW)WXXLQFGrB0`pAh9t+He^VPP*E5ISmSK2gRY10-%acnUZ_g!OCJtvC$lfyml z=$0aP)Gu|{C|&<$LhBCOwxO4af%F;uR}8_6NhuT6QY5bYcPSD~=x!B>l)BEk5-tUI>~Pf=bx>UOW>yYN1Ns!ZCWQ4$2zIF?;4x7(~4vMDIN1qaeMFh00l)k zc1)U~9Uq{7t~jW%;?3`|2#*-QkU!(hid>I3%icb}y8a1AD#uLuPiO+ZIFC%~tQz(6 zZ=y*VWjxjzNSa_=9O-36qQ<@8<>|*IeVt>lq|uQ2V4H*|HFgRoW<{)+`TgIX@v!v+ zr6O>nA&rLfOV}##q=v(GFnLtrr{`XZv!M1XUW6MBX@Xxd2AJem?0iqr=AFceF{y8P-%Zjy=M&qA{a1!{Jn&vzShj~TwiAR0_flZs{btZPwDDG;5;fx6B z@d zK?$x5Wknvso289LHD>wK%rVkHX=aVdig>;>k4rfy!5%gp$NU=3*h>aAlNF_e!&Ymc z?>bOu{NHszN;ngQhT{_Eb$ZQY9NA|@DD28IK{FvG9ELE^L6Sp+#vjhXDd8L{H2gZI zC%uLvsF5i`efSt7?h3R!5z)c^buf3Ar8%Tp#bC* z&YW3t{zhN!6wXv164t3xrp%fJ!r9ZOOi>q}!pZdxeCnJfccaZ<(?XN(6b{dO227e$ zI1iy!S`wlw$)L&Z2)3&}BXquwlTPh;xz~M{(49;aYU33~xZex+L6w(b z$!gGI;{6_-pdjOJ-;ERyLmv2^vfY|J>O(QfiKwgd>&keTwz9mD zooKMCY9(di;8ey5xA!ag&X|HXJiQ}j;aLf&6q&a}l~>o#t85S<_{}IwN!G=2*I1oM!BcSDUAWbcOno3#;Tr&% zHzCcOEJNuJF|nW@i6k3Qd=|gt@fv$wTtKPk5QOtt|6Qo&#Ln9!uurD$^$W$w)N7cP zwR0&y&tl@2=^yB7F|i zieGtS`islnDMth{-Ig|#qXVf21>7BJ=H9e)hX+_K&bRHqtF6u_Z&za`vzfQ&3j(() z25*UEkK;n)h@A56%*oVy*jRCyTP^2y#+%zZTU)y9g`O;9T>Ua971+zTF1Ea(CUkUx z)V>QS18tMy2Z08T;SKY#2l6+phd1p}h`=~zfSWGa=8+qj6!``^d3zKvkVV0Z zFUc?V|2!Ro!)oL%*=LVm3WCE8)K64RLlHQ4!5C9+$YZd+!x$`9!SjWdU>J^P@Z`|1 z{ev!B(paX_U(?5-;BVl?ex|NdHB>IHJH4_Ze6WMr!!c23SKGPN9Br<<Bl}^;3P93bLTE%l4(&GLw~~69LM(Bc__;fg0WojKz=s zE*tFMRkb%Kuxx-IPCbmAA{pLOBtQM)OMl6)dElr({I?nEDS|2+L z>ixT8lQzztbu>?gtm!zfJJxT)Moy88oFW-SF_H3X>-sR9B9SHAx9t?k?i@LZ6;GQU zqlX!><6^5~r^L`|22P=T0T?v1X>TKaA3D0Bo-SG3hxSm4*ky!{VxvuUu?q4UbT%o@LccD!TLA)3_L}0 zZzlJdi$vun2JEoa;LTmtB9SKI+@Q#7!CP(Q!y9-i@L0p`2^zZ5P!^Q^KmQZ1!$V`; z<#eO@$Gw3U@yrOF#bB89yB^PHV|a;4$VwJxGD!*V9*l4zIH_V4oa)YeE55V8+e%fL ztLL?eKkn=6{>2#cAGaJzjH7TSW_cl{M5x$ddJI?7;Q2hBJMf=R|H@PC4TntSc%+ib zPhUf5m*cU9-%7cn{QxgCNXY*r`2EWP#{ixQ7z1nqECyT)cnsh#()cc}w&GWu&Y*CRURJtEH z+^-$o?;P$g4);F}SA)+|zx-y6V{N5YfMZQ@&ELGW_mH)76ZGu;oG8@kdJAgC)8Aw~dFVwD3n^V|Euw)QUR_|2f)EFUAO#2TWMh zc?(>phl;QD^FFv;AHz$GulRDalcH@b7s!nks>&^u6Xh%gl&U-wC3ruSJ#4&tT%dd+ zO<5CCeL+#LD%KUTwaa}jOiQ?Ul_A?nQVB?IQ~|R3&jmaVa30|CfQ^7t08a-z0k8%T zqfT!DApClDfWYwxOrins48Uc8uqWOJNdL?#?hvYY9BnEdM_bg}WL)#S%Zx4RJ?wCg zIo#yX&C{lT*?SUl+{6uys5>HZsI7bY1n0)Nr^pn-$@PEp0S8PC`X$g5azi3A0*_#S~kFXE9S#FeND% z6boalFSapiEM~3w&(n!4%TTOmFxi6fO9!&DCYA91=E!egw^sdl9;+D*X-0Y9!#iHy zu&lnZj%sgsRns{Rp$Bx`Ulk&#Y-oUvi=Mcgr8crG>LQ&Ar_sK@_1G=(|Cc^TBosnj zkP#Lsn^#g@URPT`f9|}J(`KADO|MBmZ5kD~oHlJ^oW=FD8OD7+RFZwAwC7_j}O%DNGlVE4Um1ybPN2*aX3_kd}BQCH^8q zJU{jK$?{5+$RC91P@23K2SG>SwSNqPj`8M9!^>wx>uHEDhr@k;&`mY8EYj(;fOg}1 zD?xJ)dvusWJSvv~1ucTn7dy?>Gd%ACJT&axpp|v2ztJH6SUjHs&2~fQ;tlbcRq9DY zLw_{sw6~J(=|Rx33ED9TI`aADLDKzw5Ohr6J~Q$1nRMT=AKdp%M;FSs-y=T`0o~tc zX@DFfNPdL)#|HKuc8@-jE?$m3?i~aj2Yf$FM;A)pIM6)`x<43Nm%l#IS4k4S;|}hd%Dr5Xyik2ZyD=O-0-F0yRt))+F1!-pC!B(PZ#*=a(pL|Mb)dQTG^JzvkS@H{ zz&DiOwii4!{El?;Qcoj&e=b4Zm61w?VAF-ie49~@Q5PPXOzC?IZp%TlxI)O1`4-9# zhIc(^zG~?D3-1S@xsO9P7}nEt>Ej458$-e}JT#fY%ZI~a(5#-PbeZ^fB%F5|8l_Cn zzlXrTgR60a>HPk~V?E!P9D4|Hy8NJq{RHT);1Cri)AzDJ`Wa}RG<5KmHh&)m{*R#f z>H=6`GKI(b@j7Tm)e2cg{%wcz0igM{q03Z1I9$uG!;Q9hXfowTF%mu#G|Mm?r^!@5 z^5OPPLnDNErQ;uu1$-ZLqZ^beQ+Nl$xyjJ<7hVs-+X%WBO^s&%nXddD1blm==Us+} zCR2VeeOH6#SBsP`Q~FpxrZ48^vC?JYA0t`@nq^CrE>r$8yw8K?4nx;pcn^T)fu*7F zLhbHjaL!xic~9Y?$rLZk)x_nVcRU`NO!2baEeB2B3L%sBO86X#_nvHM%?8aIaiu#9 zARXPIi0Hs3@UU6wI4((-Z=V4Ex1i}>qjZ_t$rlmcO`y5@Y^7uQP8S{zm^8Pdk84vp zet)`hdIi2?1?CygwJY6m8Nxdl_**-%9Ds)=6aP99?-QVz+og0Ir=&|C!@CPKj~cp6 z;qf5DGoV?~GjMo60?jjqE>n1{NB;|&bIuKg7s}u5;LEQ-^V#<+-O&K)@^>l1JK+P+ z?tW1yyih-L0G$5`n*Axw3zI2*vk~5VKod_0S;lsV;e8u4j~cp6;hjwWf#!%0!2?XD zdd~392hB$fU4P+y2{gaoB*A42?;~)Ya|src@X#O`Y0KYAMD$b89Cw+J$+%tk92zGw zeNPw~rDT2typkLYp~?%zp~m*&t(qITTiG+z0-vqbT>Dj3{q`7 zQ^|{_)wqxt$)RvcYHN2+Cj1cz@I8?Lr;Nk?C}FGHI%H*p7p(cDz$qAUka1>-=~zQi zBfnTTDN+@SQ{IKSDRMx(ft&(|7aZb~3=tO<5bz-(8I^hmdq5B~toWWP zV(&%ubmBBd3@pBIQCVX{Wu?Ru7Vl=}{Cb?QO2o*W+~mNL+?2@qC*l(xRW5C;tX&8- zz9NURd+Nn0A>`t%D{q8gvys}Q{0vja@&-mR#^I9prc7EX+9J!O+R_D;jDvDa6mi@* zbIKgKs-E{X(Scd#M5WuCAZ`RCOI|M;p}ivqK6t6`VN!(7TH?Nu9KmMG5LKhIQ2XmN zxn%{GR9!k5+Jzjbtf;OpZD?F3@i7I1*P+hx;X8K1+@QAhOe)nW1a)P)8X{3M#Y2%O zr+n?ZDkjRPJQ^x0?#t{r5-=n{sxFluZJ!ld`>WTi}@~<1pZ?7kN2Wi~GUC zke+T4U9*|h)YWr-t*HQk7HL=n)+tTA(Vt1lG>bglhfSNhpyHh>!_I>JSKBaJaYnXX zX^ug$>-!IqcW2KVI@QHWHwr~BRlJ-{LW+Pqv$v)F-1vGKJFrfE+>Q*`5M#hW_I4n^ zjvmM-+j7WuBZhLz4W*`a6a{6Im?GiKC>ds0Wj=|oMV3jWzl4qHe#CxKbz|iMhRK%8f3{6N2W^Usd+IqLAjR%V z^`~dMwCS$nZrRw=(%y|*acwf*h3-r)1AzQ0M@6Xzsj*$$VUmosqB{%lqvH)A) z)^saA!dXOe; ziMDs3s7tr)FH#cs22dm~C~&6-`Z;&N*w{b%$3zQdP|R^|{psZkXUB2;XE8r8d5Xw| zobFr#`v-Q8_Lz|#Z1>4Mx5AN`XFm2;`x&Sh^);nnOh9bjq|6KtnckEtF7*wA|9|yS z1*Ve|XB{}2IkV1y_Wbe&wpoKZ#lZ3zIxfnd#|^LlBM&x^^=WD#%M`1|zy8bvSA^JTjAR^$yb}_^-T!0af zNk4BG0vtIDF>)5-Z8!_TZJB?UqYzVqMBb`qsGJ zsg6DJjZe{U8|tS76O$60JA^WI+7NlA$r~>3NY6CMx~a2egbrSp1x;Uxm!^isr;vNCWC2!GZZzV$yFe4B+JbQFeMQ)!9W6vhxpB*_(MOLj6Xh0<=+3w(zBm{&Q2PDxS$;v8F*vq4Ro{dUM#i>yjh0zwyDF#){6JBV&jRosbWjuts!3p8$-(R zuEBee*lxu81hL(MH>B#|%F=S8*zUz!Q}8fsrwHybhkF{f5&9KdP3v%H@amQ>91A-ayAVBCRIh-l3ePREck9xJ z-4g1nD9+~fJG-Xr>df8MnN8l>yNZgok@KYzHWre+(TJ(YyNAVW2ObZ8ix>8-ERJnK zAdC94c6AmBe$#dwH0_<<`W?_qcx!Xkj!_?uruAN*W7K#nzOte?w>}wA-;Pb&bGNK3 zF5djo`MGCK-@0Pc_6ghivKBA##dOk+u~+_#iRmexJ@yDNyDw{zb;gIC+_!Vr2`2c0 z&0EKA{xWIn^85a0^N)I`;Q;M8Mwe^Py5dA^ZyUaA3Qod~+A@3k)=d`|*J!ATtCRlvzMN=2=IxpY+&)qaTySD(mTx1al>^8VpSq~?@a^a&) zF9KRud~7AY@K~E<@D5*e#RhLh zEMV%&!lbTe!^Y;nNDh!bF1DNT{)O1?#QRyXJ%M*rV#~u@=?;NS>5hd>U0IOTb-A;_ zYg&^J?7Q)36EIP1MR-pV8yKG3=YdOy_Lbn|a?kip7Zzvl)4N|QTs?b!IrkpK;%z$! zuR_>zAPNSlS3E`Dxh;@==xDc>#CdJq-My#+>zcZI7Ior+;ufzR<=8aNevlfSGTSuY6vjr%&rD_7c zAZpxEeo3-+d6InX(#2bi;BJ8(I2cWNWi@>XVH@B zyZTxu*doO;w{YPS{oD8CuIa{i{wZ8Q6MyW!HoZR^XO9=nHLlqw?Y!_OFC2Ud6Wp`^ zrk%@s_B(~q_b?uIX)Ek!WXI2x?5L{fD?waiFS(Pc-1V4LZLLJpx31dOM|Ykgk6O2$ z9eq{ILjSRIG9>wb*SY$syUv{?$!bN&-mY^?Od1O$n^$f70?`jvv9SSQSpkrq@WCo} zw)hvjIDw;mRTU3b%~M2)f?@@e2ux_l!uk@PBAm8WMKeVnYYR(wku;y<#J1YuHaOcR zXS)@)$MK*M#9Qmb{jj|#xZmTgu453^{u(mg`--g@@3CTQ$NL%aajvtyAGZDQ0RjeQO2^Ylh5|gm0k-fO&$@*V{`@?^C8bjsXIQArb%%p;V>0>{NA2LV{8m2@( ztZ(7bBgC}n5n|f(h7`qp!q7#%r;SbTPE$H^Cd|d~*eT3K7NP#`N?RWTftU~%q2M~K z8NgBk&MyQH@(X)801+eN22|qhJH#C`ZUjtcm^1IkwgWlC@rQDTHsuU$dRH3DlHQd@ zo8FbCbgTeM*9w~*F=THe_eq;0vF?B^{lR$p^_wv7*ja_|hp~S4h1>Zt>pR3dp0kbO z=sOeghw-T@7OXcwd+hx+*ke9C;|cT2mZX2cP5DKe@{2aTD@}2?1!EeIn6zAy&9i-kOgGug_>VRCmr-G9eFbm~;A?>V zuD_a!{0i*Ke%h4%v_)l1qqr;ZUvak>Tb{=(QQS_4W5rfn>oZ7(l;gG9G50;RX?s2f zh>>l~!7ZiP92aaU%>~HcQkoA?u%)!1@BRlPEN0tS!F066qRDt;+5b8>RCXx+Ajhg0{CaZBLSZSGPSY*BBn!=3JM zNS&cWdc+px6fhgZ=1mtBdA$X~jvWXW3W%~X#?_JF5g4K5yFomLg8MyKRg3`a(5#i? zA@RDlwDnft{n}bqNqec|eHMjZ;wkcu!TZ-@tHxVv9w+sG5F9g~U3CQ>YdEf>$yFdV zk4q_}CA2wa-8T_wT44@|IEFhZ)b27&k~QJ^U<@xY$(jk(5>w)Kwn2R@f1bor&cR%N z)smF23MKpsB@<=qi%lRyA|*#e6gEB!6s3g+!akY^=>9ng6ywklVyy2KqqKbvr8%7* z7_z_^)E-`EMhw#`#a=Lsm1!E!Wd;8*qtki?BtKXKxKy#m;IVX(pmi-E6LtYjOX5Q;^X*j~Nu7R~kN(`O0V7l+Uz9y({?zg1g$-l+TKL z+Tj*1>ASEvzb{^~>HYa$&oSV*TePdkp9woiiS}Fm^p)o?;iSJHzG7P(>u=kb@0{Hh z;T#=WQ?appGdFFWht)fkFBsNU8kYT0fTV>dQ5gr|+~0&l#MBhh*>R%vKSSE%TzZiS zYB>T4x5tc=ez|~qNenMB$vi!~rDsZf_4#t3M%qrTL~M`Qc1{4f&gf=fO?gzmInI`M z^wCT*wQuz|YGN6p_AqLhBOO1;w&nKY=xVifT^;khYw?83k$yTn%K$rbE6r4~m8Lki zj%*k^wa4w}%_*EJ0bsZdDjCPHj?Xhl0`ib`oQz<5OtTqfk9@rpa4g_ufXtshz!L#K z3`m~yKR+o4{zrSCGPXSLdSi=vKXJH69qt8(;~0c~b@Pcf-F#BqDNL2%N{ub*-R5v# zbGYpe_mIQ&)f8vN`!s}q zN~ry|ekQ{2rkD*WwG8S~eVS6phKY&su+)1XYy*uH23HElq7?oVbvNRfi2Eyw;i4z0 z(O16%gk;g%-xNJYIo?Le^2fznnvCU-{0o=Ai%_oU30sW`&Yly1hXZ~H@Cd*U0+QeS z&%D|P`J!zkZQ4fCrfsC+*hVVuE5?@R-QjRt0av=G9FC&_#j({>zh^rf#x(|q)ET-< z9FC*pzLI%qOPQ_Mn(3)aajZQjhf10C!x7aLF}%bCN|_u)h-2-$DOAY%D^RCdDqfEo~W#HDBaibU+G$5vtw6Xo+Is^F3+t-7~!$2e|hc$F%XDJ z@@xnzb17q^bW3w~Y{U`0@`^U)6>U-PM!Xewi?Qj<_1pM|ZKtu74{hP3#FL@@Bv^Et z3Y{cu>59~NQp3=VCS0Vx30!HYNLfD|LR}uiOH7hI-7P(FtIt3WZsHWlsiN!vt98_U zz%`LV_|jMlk+#fQYWuIsg=UsVO$u0`W8iK$FvX;dfN2g_=AW6${BuBl%M+%k{txWR ze%h4%wCNhV;<(1HxUU*pp7#xhd)?u7I-E3}HCTL`m%jP5opUaH(1dg1N#MfGr}e{$ zYF`X5F~OW5Pj@3Rd%#zQ%Lvzb0_oYj-ij2(9<=&{H}0ry=ijm ze*yWuJ56rA3cKbOZJJxOY16AXHoc1bfwARzKXf=QyC~hE#)e8|2U^%_@5$MMf4iQ} zFuLMW1&w7(IO7=f%up4wez=zQp%`9bk{M@K=$H?|vHds@YOUEHwW$BGJxA=1qF`fe zKdgDk@i;%0VPk|Y<8h{o<`_F3*S@Yqkow{`GgH|U%`kZE8zyKy4{$%gjerQ%J0Fm| zxd4!b;jef!lWEgTrY-7iHm-Tz7GsNgH#yv`4)@;<_fv=Cj<|+*n6X8@84fqw;ZSw4 ztG`S3)CqSW1k5aRMXKbFu&1BS+c9FMg25%gSzc8kL$k*EnE*s0X0ci@tZtd+^}2NO zhe^!afoAll7AoE9e#?MeVwrnH>Ws~%0?@Z5!ce(`X-k9tU#-orba(#tm){kx(W{ZU z47(YS-`ip`n~S8H*|ce9(-!rv0+r&fF}A2|U@PukhhvRa9BZ`t#Z)P~6%=*|q03*G zQi3mB>K^*?*XQ6nygO>^12gyB7+zw6`DmBGbd7Ylm%wzDb9a`&mKy%QiL@&JX;c2w zru*rxhUuP`ew2e#c1wRj;;oVg0hrI5M z;Uy->Yqt!h%pR!H=>Fi~m%)_TyRi(m*zlU;1LZYs%4^zmSgbe>ixu~@u_><=M^3$g zrx=elcF=GChr6UsIE1?->xa$rIWg-q$i=-qS(uMTkIg;nqjH5d%qQ~X=Z8t9biWc7BLBKls2!% zXjN~wh4?&L~Pg1in&F`>b>Nhb| zu7%ohbj!x3uCpaja>&wJZjqK#q*W}WlyL2a*V4iR@aJY?aKQzKg8!IAJDkO}2=@Dk zfFLcYix3D|NzH(E;E2u@i^2!M^+4dcV!>(7=zpRkI`b$4GY2vviC8-qX3@;-%o@Jc`oM-!g}d>xSEihlyK{$SFdxC;=umSCoj0(=M% zOCyO#0kNo;_$45g^AcQMBK=>?f5gG9js$QN6HJUo+6w>=0Nfw27_bO%8X$yo6FeO; z32+wR!GI-z5SvZR2Rt0`48S7*AxY%L0Gj|O0%B{_I}#9EpWeFwF?jb7b^^=l-g^MA z0%W*X13rQD-3$06;5NWt0sa{9*ML6-dB0-ra$KDTs)&itdO=m*?^-hDnf^f z8wYyD%`vt-kBjb#!>ChidEQwL_YsHtn8SU=;qGv_pE%s34)>J9v3zJ8e{(o25E|SO zXu&jn?=rTicZ$Q6I^1ZiH!5A8u|>TD9qtf^o8oXY9FFbT8+eNGSaYng*a{Wy)2=`Y zr-WKo>*u}jyDnx!l9m-4^#6{nE9b&0VZa%SHf1^TVWZ9eh{t-%9>vauCZaVCH%mgI zuf5PL*|iY16xJ{=*y@Z1tT4zX)DBu#1M(}@0J0%Qiy||rb%6Yu7C`1j_*}!P71OuIx2;-Xq9#A1NJSB^0W#vzD`5Kto+7y?OIkg->a~G z5s{o4s_je@df4;&OiFcRo!MQ3kToQNN3DeVW7l9in!1zv1sg^A|N{|bEk zKJo!`(Cd5N*)8p^Ifx4dWj@(FM7;Cl{}>$PT3$#lUlU7?W~@EjJS0;=;pWukPYzD_ zO=QY=GKD1cq!Y-bOwwz>-Gav&<`G)~&ULw(NpmgwMCRM4Oy77NAQ}2;K#YgH+W`@e z_Zh(H=0D5O4fxM(?k@mV0e%T^G2o4WXi>bI0M7=z8IVk%`xe0e0=xo{;eHhG7C@F6 z{^vJf41w0=9%IY%xE@1X)cd=`{hz}f2p78Macp7e(Ayi_dmV1B!=3JM8yv3J;jVNz zjxRJ`Zl-G--*mX|I~>OyN>_p2SLx;%8`hPWPdo5<(zYyGyreH{`b!T&V3xSP&Z5Oz zd_pET#WHQtVj=H)1&6S?HJzZYK_WZQj*;2+ji?x~r$`gQpiH5DE@PN$Y|G zS-IOby}!iUf|jqhK!Vv)Uc%!l7$|v5c6FBs4rIh_V*)6-Ta}Nf4rNpvJ0_zlKvV@1 zRqwSpYl0(KyIvT#M1okdrAos`SbgW_F2)DN;8(vCt!)evGbcUtfs(7v(BMF}X=Ao` zQK4J*%sz$R)qCJBL~Ww9-Y)#{3#0LASOerKwxUWKgq#HX?f=P1u;d5ZV_~@>c8rlH z+R^tQDUahRlGg4QVynhGUtHO?k|9O15{R)PYpToxfsYphJe-hg(cx!lB2tmWc znAaS1VR=*6Drd8;_Komq%{sW!(2a&;DAq*&&%<*j+;h!;0PkyPbw?X&7MDdK_y2+W zC^I`|zr8Tze%fel@E8{3IV0r$MY#KC$KM9SXNFpJrkQ?Q0XgYXBdt0&=(I)e4mIYS zDHefptWYnDtingsMY7Q*mWeQ>2J&76tYX!cA>me+;T!;BJ~;dtIRlMAStROfnb#r= z6^!OGmgkiq&PgsF4qCAB7~!P2gl(92Hm(bki7cn6b;O{??uWcS2kj)A>VoWwt-zmv2bi2oCXVpar-7!es~(by6b z+$agX~f+dnSSEf$jne(HOJIqPj>0llO6BTOq36dl?fj@}|@94c`sed$vdr?qo zDP~K1*AbrgF+l5XXY%~d{*MLU8WwhA(n{D^vB4e?jmL39nP=-(QGtB9dS=;WZ-ghCrYr0q9;o5GtlxS$d{`D8vs8J$Z~KEAbYW`fa?K&0Js70(}3>>{0tz% zWN(`21N=N79^Uks_%h&)fZqeW3GgAnuLAxQ@HRlULAL`w1NaR<=JB0?;4GJ55*!JB z3y|M*Hz0GB?y~{E4R{(L)6aHcE8r?XrVl$H-e&<>XZfGKDqAa^@zSOUhuh+C7$=xGFaj`sIhWUXw>lhW#){+2 zSmSuX;a+yQeMeb3Uh}DR6CLi|4mZ`|W;z@%uhKXg9j@Ksx*YBzhx?GjUGH!=INY5M zcaOvU!r^}9aDQ^R=N<0CESr{uv6*#fE2T%c16hh4kpd1rjPUh1*f^U?zb1V!TxeJp zXu|V%ma(t^i}iC5=-(fsFPg-fX>D;U_#;j6(HH~|w1dbo{BKa=QiDd|}kxQwO_yVZu#CCnpOk2@55 zpQREA^T!5a^NN8m?a8seJ;8B@gm4d(JLJKa&TnoI+>dcS_8#%oBmcR1XD3`7>2mic zALVrgM4~M3lyaBMjHqrO!+K7r*v{|39A>h&ppZzKOJf*pWF@xc?UPrWlbt^4PG>NvNhl|jG}ZqR?wi4k zldnu&syjlclS_3c$p0~zPSh42gXs(l=wvjW7lF;k8Tb(Fb_!F0iG`iMu#{Sp%oT1r zrY_$R!?H8L0Rf&GU{JcsXG#XQD#>bcA5wGVzHj!U{LyrvOn|I^4|;cbmiE>r7f6cDNTE?iGiN zVvMh8-p|;g-r){+q{Eds99IQXNUqw6#O0{Z;iY(+D!{aL*~%?iDONjgnBw!u?_^B`D;>{1f)Y*=lq@;; zdo>_S{6suDMxaf{2((3I|3`6`8@i}>gR$jFPp@=r1C;JzM>i>AamN~4a!#3#IfPZ! zmG7HRvg3LIPx|>JTNRpI1u65%UjiSVPg+0Y;dWunc=Qr&)7Av%lYgEx@brPb-DyRn z>*(!Yw%q3KZxL<(xofA1jGwat+fFkch>IW|ZEC}F0Dc$q7r&Hw;V2+AKWWqaq)q3A zin|K_6!$G-%af%x#Z3UU(y@J0Tr21}2TaYoQaI$G|J#$idkVh8^FM#yZH$3HOd#)) z^S@ud%^Aq}`^mt;P2cxs{bT(7WM9f0JYD^>b1sfHH2-MR{G(0h zT#CB}{}uNgW79df;+TI*$NWpO4x4sB7~xI`-YQosVloNTEp=w!@C49qo<^S(UT*@F^t zcY(&b`(-jYFFOVyA0L{RF--c!s=0{j0l*}%Bh=d&Z(GwT18!}`DLKeadmIQDC1wWw zcG@ghJ5T_yP>68olM^`(S`mTxWJ2u($R?Wf)ZfFwD)#HwbjCZ{*PSokIU~stbglUx z@h+18qY$i$Xn!J>+Baxog)nW;Z+izO7K?~TY_fNFOuXrfykhS_K5sYp<4o^A1(0c* z3W!d|n-0j)5LVa|#ek5VOK{AEnTd?kA&Hha9{*1S#EyXM$(I6_ z<9`|8T)+yz1%Q=+X8>ZKGO-MBF5qgwd4OvHs{zjgoDWDIVSQiZ2{B@p(FtXARLux& zs%C_?DEB=)#eK=xqM~J4acm8h?pKcPw+_d#q|*J(;n?dbj`dIdaulODj$#ydg~MIt zaFbUycb(ta)3K6Q{j9|ObaG`tNpr{g&dF_S+Rx06?ApcASjkx}O+AyROySr|F_YJH z;aZ?`TaXMCD9S~0%oa40eHVjchz*(vG1dK+q%$;)#4v=ch**;Zuub+|2+p#W6=6wW ztm8(#{<_-m$5a}^7)lro$4_dA@rSby(3!&FJdb7{31_nJI&H?A6}cQyv&_wDx~qqD zYECjxXgt5K(QwJacBPueXVx8x(TVw2Zy;%qLSJ00uvrn#J!!U%EkH4}zHGFl3Hstp zJS)N$hvtsEmZQnHzCNu;tW{auy|A5(CpFD%Mv`eRS+=3c`cXAyaF(Vf$W_Lh6*(Ml z#`)a;9d=MMce21Wnmlk-%gX)+;{g*4hvWOK2zDN`FMb2eK zSgvT6eD&}nlfJOpAcizSU+jF6<>&Lio4+FI>sjNAG(lhNc#^*Uw(L`vCw=9Z;zydG zuOjhfxv}}!c@0TllZ-FYsI>~;aDgu zB0Ht9b$_f3lR$o;td};ghK;l4m?=viML29}lezp^V9+b2Ne}z4tO#2wnvGk(dUrBC zUp46=O^_Q>ZXvRv=B)fQYTW^_?*Fm(Er4|u)!I8vNJEmgNlBrFLQhL5 z1^RC3gF>6v$)nBVkVhX-dI)Js0&NoVC`A+kv`8t)LqI^h@={Pld8r7Z#TE*_K*1{t zTv5>53!;FC)rF{(zUC2QAb#pwVGy$?S4&vwP;YgaErac7T!o2&~+sak{T)>q( zqyb8Ad*|VhwUG0^`2r#mI4|OEaSl=(Ukh^n*LG)J?%OtgMq*x+Md@kJ;LaTAj!d94 z4$$;8_D>Ya`|Iu(w2Ur@PkRmJv9kW?1UknEj%|yhe?1Z7i#7D~d7|KOTvEG zIzAiJvGa@8&F?4DsS=znkhe0kGJ($GLC{$uI2(L)7AMfD9t52l!C{}b<*8OWzP?c_ zINMQoN>94n1e`iR)6kvy9 z63*baJ#lLr!GVTkbrz>14u^3U#zB~BO?$`cSSmug`g+=85QeTuNY&HX-5ZZ{OB@d4 z?n!_=k^tG30C_$E@~Z^MI|&f}h*O=d`=|uS2?>y*1V~*1WK{yBBLVV>1PG--e0gq3 zfZSyuvs{~QHIVTR@-qV&=OAwx$cYY;Zl>5N4swKn%yp2-1`_K(rx?gF4rhshEO3xB z45Y|GIt}C$2f5ThsvYD818H=SFB-^^4)QGnIov^hWFU(j}D0tc?rL5?zzh=WWvkZBGw-$0Ibkcfet;2`Y=a-4(o8%T_+*C#-}lmPi|0_4XD zkT((_|44uo*lF06XHo*BI03TUK;|Qr4x@7nWT}Jn8A!QIpk(l>=xhYfz0t;Xw1sv4tefSz_A-0MU& z!r>q`Sx@VE(cWHf(V}Q+QFMB3QC&@4W%-iQ#YKLLQHu(Ti;FByq^Po_tR_-cTUEr5 z`(uWr;;^cVs!B^sBh^bvi(>Yr42CsIQM72rqDAugtSwD@Z&A_wqWLzf+M>lJktKD- zWwk|qG$ligXtI?zFUPg^Rke-big3MD-6EK8qoC})R}zR)GpA6EUr!Ozxmr&K%*kh5N+XLSOR9@d9-17AW5?XOlFIU`$_ntc{p@J-+Oy+g=Y)%^YOCsM zD~j~fmbl33A~3sjadA~mQOs&l0HdU)uDGPKZb?zhm{AK0d)lRX{Hy?x!S1C}sQxOs~!%1a_;#j&!PVih;k&WJWv)r4b1p}4xDPP>P6sqpf~ zaBTy4AHxun@EjlsU}=s+!!u1MHDq*jY)cxfaGd)PC4qa}&@!dQnfCP*Y(`zd|YZVYrwGA3*wNm#<(pPbnK>&6`}AJcz7S>CySZ{KC!FPk+&E=F^gjqKdlW zNMv!=qSP(`KJIV^%2UX3U;5XU@DiGiS|+!5Eq` zeL5mSp_w!1z|bq*nc3B8v%JGzK6lv}*a6=r%LN{q#9rVL#3f6vJqt59UUpvG;R?Yo zVedBrc>l?hRXDDii@dxNa|pwIoj3+Y@MP8J1kd-1i&5KgwE*wf5T9^-hO5XcD)KLU z28a&%Rc zhkg*CM?QZVIJX!)Buh%~MZoU@&iO|VOpp9~0ysY~ctcXqdj{}d0q34VrN17faMC9#J@&I?^jP02;M5tsf$F;gI8%-tm>%of1Ds0?UaIo3zBdBr zj7dr_Red`UeGPE_Ztz&%WbJzuGUA8ePo1Fj_oB>aQeNCC*W|Y%GZzb{TVoYJiUfXRX!e(j>GA7 zHBYeNkSu9?6oG$d0_S#~V#5u^m5hIEkKX|&pC{RH1JOGMIITR*hD$|{-Q+&t{M_KB zqQ_&}w}5kcv5=D^$zN&{s`OH|2kAWvoYxKBK=l3soX+sT z^e|m|uL9>!1}_yo9+wU+hpx5?rN<-KWc4Mz&jIIQgEtVp9l%M)oKI)zVL_0A$9Hk{ z<0|pe*pv3!lKO_|h7+gHZ=Q;UJ$}%Ba=sU0lT%1^oPl5E8o#E!rMt7Ib4_n(QvGqE zx~|^#b?qN(?>IYDiZ6`X*TT{+%kgc0YGs{MPO!tP*RQH?*(A@$4~( zI$WX}Bhk|0>gtl>(k0PIeU&cps%n=OS67vJ<6+tI-^PNRI9)P^>l>rRP0O+7lw*t| zL1`Q)4e?5`$y*w(mz`Zr@nSyB^d^A9J#7B~g-CH#y(Mu1NQ?)GG;eWT3AZ-k(#B|Q zxG~BtRkXCOwz0mhIvTDmE~yUVvu;HmG9YqI@$zU%ac$YMs8I4R!4MQCy$7FH$<^Z z%m?w!O5E&6@jX;l{%ruEiW2Q(1XHlkH-H!6+KQ^$Fy41%iRV7W0VMnB_ z(iU|jQrvmgRc#seK*ELZuzc8}N3e0yO`PtvrSRk>b46XoAiZl>!%oAmLlD)A z5hP7sQdd_UF0K`Ju(D_MtwEvJkwjeUH_n;iOFj-lj(ebJ?*(10#3fCaT~lMJwAu&& zzpHgX2}(=i3$?VWp(@shWFx6cp&D02!dT~K<+EAAff|fj=|^mW3m^altEw?v6Adqq z2qyDE2Y~vjma|x(all-U`owcwcC2BDfED=tM3xAxXfl~4B)<-l-KGsmax_x7I@Xmo zLZML!e=Q)C)MC3TisLuS z&OVFEjV*!fk9}x2oKAkMHLC6NIG7>yy86yKxAg*|vHP*;=;XFD#kGz(agx%VhnXhQ zv<%gNs+la2n*&Krl}{}7muw@T4Iw)0!N8#F~RrNTNTslMO4M%jORQY@? z&?()0d=AQXWiw?4C){XL1J1*XF{GCAz$8*1Zops)OQlD$(&Q*U63EJb64_KomNgXD zL5f%7*dkme*^@Qvo1<&n!73I#gzA;7fY^x>3mPEVqm9y1ZbUheaXEWT`?}ViuGSXsXr$nZpuV+h zZF5U&Pibd&5%obp6s01p~fWxdt8F;K5aLvj^_*QPlvD7xiGRUbtM=(cH z3!+7wp;7B7=9w?6zy@et-xcjLbqs2Tw+@XBB712uJSG%Df!%ll%2pjw zrjP-hNF6T^-RZgDAC1Bb_MF)=*-Jlku>20t3d`;@cRwzupVfvg*EMUd%mobn!G zpQwsNYZ}U{svE=gGD2CUXq570&TKRbi}E7yfT07LQzCmLrZ2LSwXtJH0DVZ06KNbq z8;nmd7mWD`E5mF#$7_G!t4MSb$_aL)YVAq(u@YMfWXg`gktZA!SidS z+^LR@IW`JwE@BHiJ^bRs_R0meFGcFAt4dcOO=+dpkToz%2o{A5Av?efR@gSVl!Tp_ z@=L0Nns6L~A)byU#vY7vR!2%@i17Ik4j9vA*e;($_Y-bYnxh*rM;4%=u5?MbQ69ZX^?);j zytKm7m&d&F)TY<7J{b13KOR|)57yQQ{DSL``a$|rPjyWC`FZ#6x^Bcv&}|^_^4gZe zUtj+I4h&myZg`Aynn%#afdy8)#*4-Tp{r5H#O{fY|K^H zPX9*qj+}E(`6-Tf1^(Lye|g<4lk#6}{OzCq(tE|Q8J_pHz`yXBHT92Vy#4AEcTL=V z>kU`j1&N8q&P#h}Vcp|vif;R2{wsg|?UGG@{2Goz1^)Z1LZ6+oz2n16-n;u-m)hzU;5G5;HI`IMpBISIY&!@KS zAIWvhx}$f0$w3& zEnOcDDSKApjc!|eYv0P%oh{flbU(f?XPfd90r!+Kd>=ro9ZD3=_uRIxqx{IJnosUP0vQ*6qg+jAtu3X!G*3_=mXUS_Dkd1R! znvOzYxoS(raxH>wTO zDH00d&Lvr<{Nhz%v+>M)GsW0CXWUFN1%8->u#k{n$Y**h5yF-Pv1j5QlF(Y**)o~X zrmOm9GpU(XsAr0n>B$m%JMPCy=x*E<_5ecT1-2FU6C~8z-G_x^cPrPX9%N8+kB1E{ z4o*9J+i;W;+fLv$fVZZz`~2qa)j;P*c&)xz*=)3dB6WqNvZA&T(J{>dg~T?Fn;<&N z=^vN?y?1flj%!}PB&AJ5?iPh`6W1SCV*MC}+Ih;bOx}~G3HuxU!JAPdRqBthx_CmS z6!cg=uAuPmdKp$z{keGFj7xPzFr>O77*e|y3cJbRWqYrgkXlhwyhj03^UEj#dILH2 zXIzE2tmCU`zYB8pJVXYyci1!>A4@_ub%3k*&}pnU(hdWQWPKPC7=<@MJo8XzKZ6uD z0rVcOkVeU!c?LOks^Jv-wsMLg3i}G471oAO;)tCDpxT(+h){C=*wM#+M;GMJ9e~XrV8oslVk$Zx zf8<4>d~nAhyB*~?@I#hV?T|(8LEf@nLEdgReeqL>Q{FP9yk#hxI=nrFea3{cWf!Wj zoemZowaR01Z*NC!H_`-qo`2LX4FN%1khA+YY=fLiHfq0TICUNJS57gcoMI^3BY#-; z9O^Tdkd9i#BYzaH4Iz(=bE8%{#$5M()RJm&9vRL|;5cemgcza=@@_ANEp)gfn-7>z zs-AT<;*?(uDZd!fQL8YHT7@lhdepYSOh*Q6XAFsMTM7dfxtl)dExGKX)m~pg9RD_# zuZF>(Nn6&h2EzEuF3RxwR1e$c@(e_bShjn8hT(PAs_3?5CJecM_yjGeK)ddhgv*tR8(uXrjnx|FBR-R&5NY`44MbH#i=eDdK7@cI4IJ@8M3|0VcQ6MrWB`|#WjA7e&rDKH&* zMd>rtyV-MmEhXN7TVu94rrG)X+1bY!CYSGPaa((mfJt_23-}J$_l6p6$)p0zskXdSoabpAoaXX0{-dlgsE9JWovsW}qDO`I77+}Gpdo8IYhQ`?@VvR>q; z#xbl~y+eiQ$N{IeV3#r_p@+F5RhMF3F?$%m<#Ka56B)<)u~U&J)dqG6It7E5!XF8L zBYe)&o8TV>|8n@p!pHKZe-eBw9Q(;1KC?63fJ>KM4C%6qp=|FO6PqJTdxc>VkrX-J zgC>;iJ?mgUaQ zskdqya4S;^_o*t}kG<@otk{B%y=@d0h4#fnsy4R z4H2Kt-+yu5J|nLGQdc`<8DMmE`1CUkBvLQWXq+pAqQJT%eta`O zwqA@+zLHzP5@DHaS8^NWIXzK^&&w%Gu|O+Hwm`Eo{PYlhsetR%(TR&QVYcL#Y`|Fy z)MNxKI+77wps`A;CI4b3!lA^@f+b|`PPqdD$gw3^|(|aBtxnYlA&y|lBTeG3|_Xk z&4hBi9S-&f2Yb)KMx!>GmdYQM-W&&m@=F7Q8cTx*g_Q=DF~q{MOei4ubCU}G+>cQ3 zpBh5V#Oc71qul=o1^<=k9IWOR_#@$84WEMlQ}EgOAihQLUkiT{p09#W!Ov%QrW>3|6+;#Xa)c0z?Xppe_aTL5a;i|`z`os;UknmX^j^f|C`1B40QIX zxb|M`TSH`I19b@RpV05ZIASw(!>7>ifzNT*2fq;hdiWIj=fkJa$5KLs{sr(U^wG;i z=zjt}g+Ajq!v7e23Vl9vG;j>6&}T@6K0_+>6-J@2FbaKzQRpk|_YU@sgB^-qsCb8) zP_{SQ!R9$wnS)Uun$pABg-J{CuP|BH>56XLmLi_0jmGSTsd6XpvaHM6Q3S?wMOT13 zs*P?)fyLn#J76!vlXX)}K$0OG+(_H?zKsvAu|AJ9!DC|5L`~#%U{eSIaXQq@30TWo zyaoq;8Hc>zacL8hK@AJ5YA_fA>71iBkDoN|J62>jarc@1wEE8*oY6H zkyvJIoMgU!2>y|Hei%OMfrgPrycuB~?+j@pGL-Fsf}Gps$U8oTkqwH+MpT%L#Z4dd z@$7nA%AM11(9Aj%j{x0F{PM+~XR{^#jH?Wnb?jzzwv~dd$Qsbu_~207inu8Oz4oL@ zj*we5A>73E^9Lr_r^gLIyUpRK@Vtp&(7@ZA#IxQ*>^S8MN1pQr_vp6dppTc1!9BWt zn-P%$=#AxPD-VTld9@U+$T}^9e=z*z@N?ngJg0vc{1xzzg?~DH)|+s~--=6Hogr;? zhO*^kRACfn3d6vckXpV_SP0oF9#>uplfmmY!a+->+U}T2d05~R!G(CT?r;-e8R^*W zboAcE#S`G5h_z|hqsl_KiHlh(EVbY2Q^c;H#7@vGOA->b`%9A#AZcL7KY=+@7L+ed z?JD9G%whwWGeyDQ!xh419r?okf`4#ZU4v==EAgnSafWm?&X8I@QP_=mR@h@Eq?R)j z_J)J)ba=~=m8M;3LNQB3dN>m76R0GbV*mOC*A~GyjQ&2cEQCzN1^R@1LBme*)c=-F z!Gi8prx;A1*lzj+58$*uoi*1`VE!PqAhk9|VZwjq|^ zKqOi?QW-HE(U;?jEz=5_!ni|?pJn`@jCdLFpp39-AdJ0*A(PN=oyspG_?B=_GJqs)B9Gx}_TDTM(yh%8<4xLpshC#&NE&$4yA(yux@$qj(_`ijC>S z_Cx=~c;3JEdj&LtapLph&N^m+;)#E( z|9dP|HIu**Cq5NdWU;(P_m$odOV!RKaKwpEMfnv=^__1Nx5QFyViGvw#HZpaFP7?s zIp<@^hi$RAJB&{pg<-2EuNag+jQ%xm;z9w+*?_7pcSe6F>y=|H6CjCAq#u4_TjT&5vj*}XpB#%#h%GbU+S3syzNTCQ#!@}>y%pG>+EizlRK!u(g@D|P zr^MX34vtx++4=pB1vU-7b})2^GsNg;!#7*vLWc6w2FLRV@hgj>oQr8?Pp(aUgy49f z!5%=DsF^$uP;FCYm0TM?w)?<&5qC=`Px`OFJR=2%r6Ny~YvboWI^Md($OJkCfNntU>SFeHuI+WUbs@GwH!!1Hb?jFZhPf9wR3$}D(HTo0zVeI(G(GJs+$lkp{dguS%9iuf;a)pEjVh$ra&%)8 z%ELpI^t2Ns7O!7M9Q|w}opFM*0pvMC=#EOD69N=Ao^WS*@(!xNv0Sh`;{|7E+!_>nIt%@7wMck@A3N*=^U3pXHo*4;{|83q4Sr*%=Sb&%mwX^ z@=yxX9iKpl6!xU~pS4a;^YeLf0-dRYpffFj&eQ}toDcV;A%BM8ob0RD^aMIH2SI06 z0-c#c2Vn2t*|_3D(o#@q6$eSKk^Y@H93~&aW)^4Z9FhPzJ^@ma09lp*S(gC$cmjm7 zBR==f#z928EcLXCvnBkp!5QgU$P)%ayImUmiGfUZkT(oux`X`1K=K^qU@p7hMmxxn z22$W4GYw>_gOnS{Ob0p5Kn`_~bp{f0kc$kY&_S*-kfR*rb_1E)K ze`6q%9M1a&GEpF+D2C^FaK{6Z?iJ$8$if+OyfXozfi@#3n=k|H_mjnnfyXK|#iytb~a270LZA!}UZiM2~A>+pN^aFP7XCqAyU zwz8(Ks;;z1-WbQnl~jb6R8&<(isUCjCeHq*qsS>4cjdL(qqTA|y#lP7sYG2-^GlS6UjTVs8FqY2eb! z?+;Oa2){07OCW)u%R@RoIc?Qv>-P~pfMUp(a#}3k7ZeJR&&A_DDD}bPKO@%&|2r9l z#Jy^RUgB9ZLNVv`5>Jo87;<`v=ggR)QPfL(l6NTd60d2H_h1k!$@LN!+Sy+)a7&_> zcsZofvB10dXhq6`SCm38@pA^pk`uguUSgUgIvQ)QYq++88;`5VD=PADrU~aJ?iXBJ z`CKYJy{``fkBiQ?lHvK5%*-ki*E_)bz~G{|s^>FM5Awm|y3Xg4m5-aYtU=(hzM}?# z#|7lLLEy1zCk_IS^_VsYJZ@R%4g!z$STG2@9N>iqi5D3J9`ijt8D5}${|dZT;H~0% z8;+ZE(K8#s6{(?|Ou;2#2K*Kx$s1-|GP^%w$A6*Yt3y%13(7 z1LrpeZyT_eEo=+0GvB<@I{w{D;fVV9eH^tWBH7WE>-zB&nyJamrqf=RP?@z z=+O(I)CU(G`I)T$eFY2oA&Wfkt0jU4^;W6N_eQDb{R08Mn_bl9hNA)G4PVL2g`R* zHE?m!r7GV%ly4ev&aP3sROK6w=qG{m8-tgM-c_LY0dOv@Q+kenfpPvC2)qNF=j#=3 z1U%LQOD9fg@8Y@`SMh%7Yu;~l%~Fovqih4{YvzyVzsl|}PS)Q1k>F^6ABYDVwakN5 z@Vp1@&HvKO91Uvv^lN55Jh4?up(K_&edrj?&40qIAFK*K#+mk^;x(TxV@yG*6fyfX zE>n5j;PfU_k=v)yGh{o+FNj*s!m@gAbSYD_9J`!Qpr#LMz56Fro6K^?sVrvI2d9O2 zKuy{t6I4-5{yROTd)BV~FNMY67qv6~KcKLf-N8Q`sI<|lJ5(jcRL#2qBc7I?Vy2E7 zWZWD$<;Lt&S0fjz;WFws!GsskiK>s;X%`*hS9L8XCvh5)<2rUs+xtJaqU5;Y8`M8f z0lU{)l&LZHq&Qab;EDQM*|3h~vDOv+n}gN699Q0;N_^@7|Cdtc|4T}lZ$xVjUMaKR zq5!*NXHpkux2pgxE^oyg8cpH6;87NN%}m;F_+=-W;a-*bgZ)e z3A9twhR3)4Q>7gs4NWDD^piRX zK49vb4}hBLcwOTMfZ)IMUjIw)_1@~ZKR|k~|36WCJ$=8_UdN|~+UuD@&Z)iL8+G4E zy$5nmt@ezWR{pii#}S*_F?c^2keXhM#RsOoi6u_V0TAUe+TZAI z*LO%+SOQRAdKK0N-$aGi4#FOiV<&;HYWXk-$MG9dpY_pN@QK2|D2~XF>LE<0w zl%K`UwE>^cdIeoU5P)ZXwQt>K1Xzc$766|xmOF&YI{p@o^((Xh`2M=H?dj~Al4arB zTh;Z>7wnm$;g+wERo8pIg!o3AFvUO zmV`dUUGZ{JaeSqK*gS;z8ZuLC1MsT=)E6))P_*0gj!l*7zXB?q86d3+5@T@Xg;d6A&;lg{?e4i5$g+MCzH z>fBjSS&tMQ&AolytzLUiPagoV*44hcz4rpIr%%)LQNC zDj-Xtzc_budBLNo8x%)eT|PRp^qg#o*u8$W@#h);WaF0^zsUHN#;+D1*mQ7)r|nd~T+fv}@|5{t2;JhU5bNBKN`Vj}^#TD>xQLLJ35)J_2CW?Ti*pkJ3z z6Yd-q1>PCBe_2AUxZfh7b+~^+LVdWiwF*Q{#$yuNggZrMfv7S5mV`csyXNs0LN^Gk z4fjN)Yp`Q1B6QIWr0GM)iKzXQ5!=X7Pgqyg2{p6J|apeUH zf0#WFJ$FyP#I=eR25&-uRINVp_mFo;3m|uvErO22z9Vf39~)Ltns6t=`eRIn^v9SC zWs4$mg+?9jtkk;J`Uph+n~Y; ziv|CHmv>j>_2~+{7tw z_|j!>6%@U(NA@LCdXlKdg5?VG^E%V_ZbzK*lOg3NL)l_%L19#p3sW9O$ z7;TkyW^GGDT#U#2F8MfVO&fs6vqC@+r#yB-Pt~9gtfIvB(LD&g1kEyPHzh$;NHQMd zXimoW7g0v#F+<8@hO%V=r?9K>tT6IeVdSyGpoljE>UndajQ5}|C0WqMtD1T7kg+*! zTQZ?Y!9XW7EBs&wE=DT_ZC%(j{8ix%_!SG`38kTGDCgpJ`qffEcpHVy0P# zOFo9zz#2_QVljrKTqN0~AO@E$NwW~LdSw_^mnI|V%afQ?_0RL5UgHmwbgZmRXDd$Z zfrSvYi?ZOX&nT^rRXECW0;J_sg`>=$8sbHC>0qnW^2wb%@^|Sa#5O16gX|D#Gd#|#0B+**);U$ zhHw+-dZM-eEFD5ed-s5Sj=Cy(L4(Q^H|(K{okn%}-g-39z}+TZ_;zErnlGjkm=CoT z+Ai`Qp3!HVW1ZMThQJ?dptqyt8N9>vfUhB}J%AzY0Ssk}{t1QMfM-x*KkKT3|$b1@C@@BNcp#T_kL4oo(vRM$2);0}0_lY5`|Py?HYZW}LQzn=25irKpe{IssLW|iUq_3er;-#zUnuC9 zv190YD7FQ>=bOU||;|Gu-`1 zq}`Pv?XC=E%RWhATn8v@n+d6&V})^$DBcGSZ#;UG!j3VaZ0}SDYjUs;9gJg2>0#%a z0kxL9r$feaJDahM!|wCAlJ{=1nGUQK7wp}40~$2pVAD{PpB$28xW#(6n=PXq?W;vp z*|}?=>CtwPt1%l5P5}95B=XVUiYz0AjlUJ&Mj-+A{s5n4|08^khevQ}D>9_5$dH;X zQ`oHrPfbNBj4W2XM-fs3Z_Iaa2Ht|4ZbQl`0Xf3Sl}@ZMgF##3^?eQtmL6Ehhu4Z;l)oGNdMu6z?l|Ry@|so>%BDO}WHeKZ`4Q&*W~% z?}GeVg~;Ge#HJaBxS1iFTKTmP8?=PgF6jsPbdBND7Z9g>Vo3SKP_}nF?h4~*Qds;V zg1f5ZT(AoQyQ&Lvfhz0Lfb)$V?R|Tk5ca&>uqyH0 z{9x9o?B$b8?dc_3fS~{NGY(Q(WWiSv)>dRlTah7MfGF$+JS&U~5QTlm!QOB%$_K^c z0jlDyG@+O(wB+gyb%gNFQ@7-O<8Z{#rRp0z1`du8n}*Bp=^>`3bLtII&xQH3261-w zKd0%^w=-oyc^o%LO_%HsAy(Ho@*>q}z6WvI4;a#Zz>uB~DC{acE9^lN%As;x1AE!Q ze&t|1QrEQ1SJOV4foOIWuc2wn+QI@V#Vy!TRw%8yCG2f3D;&KHrbP~-S*R>TaxPIB3m0GON9U}%;jy`-CK%e*eQ=a;mP!uHobgNQ3EhTk*h0K+cRjWpYNME zAEb=(YimR<3;AU3kXa|X>Wo=iPhYW(bhhl+T;l77(A0He6eze3ETLaP=LcFR?~20LtGpGBI5Cl9w7Q_ zRGxMF;|qtfB#O;^HU{D^N4&m((^KfhSXl+nP+4ZC{R*ymA>72dF%;!*a{S}S>IBBZ z2JS}W$rH-d2L-XQ)zt+i7Q@n;Ez)PP6Fvw>2PLxO5_&iiwkvL}Hlb>%iVYw}QO@pd zlk*0ydd^@xB;=tWT!7F?^4twec0;@tTr3&+V~JYMk`(2;yc2>|;a(})XkgX|g_YhC zj2PCNGTrmelXw>4bcwIW%dQ!&=!F8i5}QZepyKzp*hr8nEB7H@ejF(n*P*p)gdQKK zhtSfa=H#XyX6KLB!Bi?q_UloeMXcc$TNIvj5yd{2A({(Jb_?rbdmEZzNns-|xwt_a z9b$GPtgP5%QGV;TnA{izZs@tmdqBC}<_e#EiL!uI zp9BA!@FVcQ1-}vgx8X?Q}h)xjQfuW{g^z|u>cU9ouA2ny5M?`XEecg6E@8l;2$4iD!Q0F zk~gCqnB9}uas!_a$AnLNhsXj76)Ow;0*11H9e&SNm+ZjfSRLHXjs@L|i5;cjxC-I2 zjyws@?R8)Z`O3bob2~#iw=<+W8iieF@UrC{slpy}u-8mTjeKj`MzoCLakZzgHsB>! zS4_^Sy4!z4D0yF?*r&5x5B7zhA}+YTvuVI;`8<~CQSJ7bt3{oS$mhYlCSdCxP%Xv2 zWgGKn>)M0EfR^Hfwq%`xZE1I1_aaW)k|AwNhIE~#u&eN_u!l@2M_N^31!yhB8*M__ zSc%ChjLWW!EeqcoGHW+iW^G9AEp6IKZ_7(~_rB@n4dXYx-FxKH-F^CX04#KF+Im3_ zmS6{OUdRR0w)Ab{@rY5IoJWG%!!nWihH180d~#^S$+_=C*Ch&022_@l9~va67H5!#AE1Q$juGt+W% znjgYVoa=mUVPrd?UE64W{ehcr9~Y3oZ%w^%f6sv5>V|lT|p88 zYRyP~q}bgnt1hmYh70~8RCox|W*}v3l`|uR^-JE!-1L!Fa=sc^!Yl+vP?E+kVd8hq zu`QC0HL#D%k@rxDE-8rK*nS*nTzIcG@E<^Wu)q8WK6~(w;U5eCIr!7y{}lcL_%Fa; z1ph_&rSN|SzY6}#@E60!GC~$De5Me70GBQ<7}CWBL%O(77#9}`3z<-ke7&SFE-n<0 ziwlME>pO)tJJ>}IcBzA1?_gX~Xxcj+?28V@ce+Y%hl9P~U_W=TKRMW69IPKp1x-uc zshUR{YM6XNC_=>kP6$5-jo{+IKOvkD0)n{Mm~@MS!F)0EQO*kX+nN-!0{d!63orL% zlLBO-^sT#rp_2kbIw>%u6THH%!?VJ$oR*M&8LBW&1&TM;gkUZZFQZ-iZAsfvG#ydi z?io9A=Z9nRjYSc{YN96fygr@@;H-2C&g*HQ8#KIT(}a-jB;LeHGj_Kc-F0X6_@;M# zQOpsWA*f?SI5KR7qrw>(kgNkqQNNsGcgj6DBR4xiP6cHXGchiSSy_906DOO1&L*$4 z>EM$G6i=LqPB!rWK$A20EBLI?Yw(AeXLb=jhv5GjKE=*MxU_39q+NrdY}%WZ*c|VZ zCX_AjO%(4g2Ybfh{m{Y6P%6da=aWj0rTH_iGF;aE)dcd4&z8r$>k*g!pA6i_|Ai3} ztEUlP1NESBBGP2qUAU%(a1+xjR=3ah+Indz)Uom!I^^C6+ z@GYjGvY*;cWBaV_G@~#x;pK9#Adju2h6I@o&;@awxRQwSG4=G}k z{JU6{q+w~Dh9mFO6~(wm1N`sz^+p|zgw{o?bIgWlL)?8U6sb^~9E z-pSxH_(S2ZfIk8LTKLDoUk86C{0{i#@HfG)hL4`w&xKw$e54W6e$DVvf&O;*eelnN zzaIVt@Xv>T3H%N4H^T=^P6jT9|5-fur2l33q<00R*nQ8v7sgU8FsXHA2v0_>tf9^v8 zO;2MP=pKIKg5TOSI&cUjj?%e?kK#fGLP@I5LLRXI&qB5(Kw=}v;=GoCW2L7jbo}NG z*lx+p36KP5Te>Wl`v^d~0ExB5QGi_GAbxHf3}}q2r+oLluY0DRIIT34i4)%zY`gR{ z&Qo-audf{&OI2%95hp$sm*uf`|L~%}PmiVQHmQgcpNiu&W|(BzSC5(yOT}d{9dY7Q zv25vSEID26!B_cu3uhrZ;>4$7pN(;2*P0x31nmddIG9w#iBB~`QrQu({_&?*#!~&> zq#{mysys<$N5PMl{TbcJ=9Osz#EDOZIRGUjm*_^nKMh^OrkZF1#EDOZS;d#?!LOf& zrG-sZX#&L2;5qOp;SOf=q+SR z)Xwn;7kDAaAb%=MOenK0RdQ1tTp^{WeTX|pEZr!P9DZ{YoTt*$p2ywdWGRlXgp^Zi z0EU%FZa!p;;B3d;%8pcKHf))X{`JIqt*O5}lyK>3oP}(8QkmJXbduMd?-%0fq%yNH z4w!WBMeo^|SRTfvr~MEO!hS=S%FG7ao$dCAt1tRdBAxMwNl)WS(vG@N0-q-c4s#@( z{B6HR|6$0_pQ8nbnol`q=u(;4Ab*(pfk&r2mPqFq#H6S3bj;%aA1jwcY$n^#iGof*tfsFQS-S0DyQ4aFBflPOh?;FS*2l<78OmdLd z4P>l?{J}sbJIF2rQG+6S*nu4voEq?8Xoy`txKxKGK#og*oNOQyT&e~Gp&<}$x>f@T zImr12GTT8m8A!|s%BKxvp2NA@Kw{=hzGWbV4(BHZ;yK7036Q@fK!#g^=u#CXKo-P7 zqS2PNb9;KvCFe9RHF+|hJ3_ouqP(g_3gtDmrfSIONHx|r=GQJMi&T`96c@RlfW{m2 zs4J-~ud1wAT!b$|`NPnZ20a31JZ9I{ED6`ul$R9omwkTQ9VJzbQDcJxJwT0?RMj?y zE5h|LV=Mt{Bv1?+i;FasED5iOJ%^V!hHD$D>S|*k(LYD(v7Z&jKgIYVN@e4jGPg8R z8d)4!Qe9+z@EXUG+M>Fey2|n;rQnJ0cd&6d^Gj=BZe?+0IoYPaj*W|-6E3c*MTskl z^f$9{k@G4_E0@%jmPCr|FKOeV=Ps_Ttq50C)D@ZE*T%)psw%ClU0l7moR($cV&*TY zsw%E2hCLe16Fi?1$PTvJ|Iy`;F>5>CXZDlILIR4*wliv4oe&`4sRhCk*E^ose_ zrHd<;6qjhPkl*`i`ec7?x@ z)|gnj_#`oGOV-$jF=lLHr1xkyCb2!F*l|o2NF0mpt7>^$7$I)FxtR?O$M#8P5rOsn58%9G@VK^<{t}>zD%5j?;&u}r79oKoT`CS$*m;ZK=eKZoZAiFK=d8~&I8`yFup)~9%GoCoIV!w`M#dd0DKu1m0l1ZNL`MV*f3b*%@+qRu+Vf&nb* z{L4U2d3A9`0~CS{%^!{7nC306E1~7zaA{+L(VK8>aY=O;+Cm0_>o<^dG>qWfLs>3P zHes@r3D-8(udt?YCIab8DUhnLF_JxPZ!grDCCB5zOnt4KzO=530&$EtEdRVoHrEaO zLWSKbx@HaDUnNtiPpcUfNFe&ov02C75O27l=i9<~d{bW=EpMtVZJ-Wrs^>n(Mj}C1 zcY8;#{yhCKL{0ET@lZg17SBu$fgCxjy;Ibf@vE89fE{yeEMxBB6nkLPG1O80OEem3 zp*XbOF%6{60Y!Luw5+(X7~hIy_4$4r)$--9akuEPi0KArUvNr)>odysJM;yehq z#z+(fjEifVBGHQax~7O!=5fSS)kcfU%IfhlQw@QrkrrA=_!44knyMSCN{bsBqcwG9 z;b`NENZ6%p?});pYqva)2V2f>X>0BVTap=9iL;`@=1kgWU=1oO|9WK0(iT@&mlT&S ziH2*JR@LJ~a4CPTl$Af6wJB{{hI2>!JR>XrG_cEA9Fd-hk<}E&FvyYtJHT+&kxe5M zW5LmAQv;4Ii%T1;mhuE5QXg)BwScfNW+bF`gl&M2lCtujL=mbZ%NmO7mWJ!AizAV6 znRNC0(M4k&rnRHD`vP`5mfCM(WfGp}`b*u=$a>b5`;J6pA$6Kz(c1+UAzlp3=_l%GKS_35YY%ma^70IGgDa zHcUYFWy|X7%cPB+g(p1%7Hb}Cyl9Hnv&M6pdpc%-FOUUilRX^5m$Om*$*O9>6mp+q zj9-C88gMeyh?lzB=Yb2}^Q2g0)fgi%*0uJwb*?5=4uud4Bd3`htumw`Kc$aUHHK?! z+ibu%FKH@|)`V*`*(ie)DQ#RXt>?F7!qz<6@&T432C_499B{Xz5P{ATEv>7GREHaR z&W*9ySXHaNECjMmrIp3?Qcc#W1ZLH0!Z;KwlX4Kj+L@r>y)ei&GggFa9Fk4SHI8k5 z2^U#f2UU%%K`$Z)YwW|C0!Z0SIpCiquYKcznXtE3Vi-Y&NGoyn67GZfk?LafX|^t^ zDSdiRRyh8N3~TJkScaV#*zOQh9B?P)$HbHXIFU4AP8PvUj8B-xjMUXt3uD+~)!Jkv z$VX$kf(-Xh6Sl*%Uy212kr9+Lm)aiUm;I2f7+Td%#LC1t9(w^9nK<9ZStdzx#Dp*y z1l-lqyMaJ14KA<^DZ?ndJR;>~jeIjB+clN>3U){^#MAD{zH%@MS{*5M9rO@(S5^bv zf-=|1*4V;GgwQ9^$)Z-00hgR&K^p2xmxLSf5g4t1dKFE`_Y@U zK;hoU#jP0rp%Zq>s`k&l`<<6Q|HB_XH|)9X*G6!pDe&Ju_{-~VnUw!(<8S};m)g1*ge}jQp!T-W%*3>_e@%F1v+%<9ctv6h8mwxh= zmsa=9duxBS`~Ipwe)*=Gv+p|wzjnL?8Rw2syw8GMt$Gq~?rq{DR81}V49$8(D<`wt_*B|wR^rxQcnDq1W?%#FYh?lTM z7xyh5dEOz|j^(A5*R~w~`ttWDAKW$ewTn;O^<8Xl1^&|u zUwC%+pRalUf-U0?d-$r;u@(HPz^~ubu+mYYL6zBld1XM7zZ@B{E|HZHo%5RS=E z|5k*D`ohCa_zJ*BnDCVd{|VPAxw!4ORf_{=@%dV5ylryU(VJ!_}Tm^yvx%(j&+-4}HAcCO?sx)Sfh zd2-XTe?t_k?wQ%!($(H|Aga{TdqGz#25)+V`0^%Z;5f9OMokV>a#zBb0g!zf@2)(F1OZVt!PJPcG4j!8;rKjrU;B=>_z*r378Q_IAJrlA}Dzs1x_qF3=tcA`6`a_PPJ;Ll#N+jP1j_xUz83 zGS1NtteUiW0FT}L@xrWAupjd-I;QOhh;1WE+h=*>kFn1g zCIl|qUNCEGl)u-8O5o}KOYkGAD~$@%40>qO))AkYfxDuVa7I?im=Xeb!GOKAR z5{y2_Q*7vN3yBht5gUJmELqqSc0_iscS_ZI)2pcG0oR^eM8rEo=9jSeo9`8Y;|F#)4fR|Ak_aOxS?47VP}^ zJ=7itV4lEKcbt^E_XucPFWgZs%*F5B3pUS!5|ho@!Y(L78QzAXdoDrSU+^TLb52TN zF%n8L?5e3z3dcBeaDN_GCbV^^&Xodh4MN-yXYx0yqED&7=wfDyy8+{=O#yXUiN3r7 z?=^&;71&$2<7@%3AL7m?F7PtZP6{hPNMYj;x>I7OxY&~rx?N!W#f_#|?qI7BVvYsg zW`y|5flTijguW`U+Yr)vd>Ns81xCHQFg$bFMHyc2;g&%eo3?J4>VFuI_C^=UUAAQ& zxS7YMcdeJ3ws6ai=&Ege!~3Mr9E-b_;$(!h&P&^_L0EZiy2d-yMDs!K{GEvKHfO@t z%v24QLm5r)1e7ex7@FBpo<|(CFUsw0p8hDkRomKFeI;4kb|1pAkpjA-w~%DaV2-QL ztgWlI4F$HcVmLx~;VQuKx>Y!QEJ9xp*lD;c9`m_ZU>D+kyM#94&ZaK#mTkcphWea^ zOSjBL-gE58kw$%{F zD%t~HE{Dc$iUu7Zvwljoid(-m1h^w=zrW?lZ8*8~w&G$gsa=LIikuea!zUfO;Il$w zcbWi-J;g$Px-lqJQKZ24;{?N`Wy=waqs%=L7tBcEUL>Iq?!44&R+faO$eXaW9%y+n3Usl`TvsyJ-QpBI$ z;;pw=i|w>8t$oQI1Nmr-7aHX8pK*~h)=?_@T~G%IPn1s@KpXVIA)C5Cp@{q`Lr~Fy z#fHC6Hhg$c$v$j*d?(J6*+1A~s!xL<)u+Kwws$M;bwn(CS*!NFB!jE4Zk^aD8Cs}elwIU+By|>GoBSjek+WfSz*aIxu?sK4QU5$VJKTH1hD=&qK%0moktXp^N8XlpGS1N?)Ac*sE zbiZbhL`}TO=8($`m%f9%l}ijMml#qDkgPWjmT+fCEkG(Bd!phc&LPSz=DP252Ihd&x5m8IMY>SCM=cZJPFD1N}N z2E@856UZ_?2YedB?8@{j4BW>1)!iM6xQT)IqlXfp*zY2=0z`s>nR$|SC9WevxQX*M z6JGOzdkgd59xH;m1Is_vF?Wz)mO`~)#(?X6YRFSz!#AtgcNWW+MO<4@@(rXtk@+&I z=RvtP6Oy|}^BJFW`c*4(O3BSRG&g;iU5{{g5maku1!7qblw>Gdj>Hu9w86{veq%y8 zv^6McvqiC&;vIxCYg+ysN@3$2j7NbATj*e~IM{0r#vzrvd%Ygk!m`$vmL3NUd!v?O z;gP!&xpMFNmzR#%`j?khZEI-aNmjwqt2?uHRAjI|O`F#ih6IhOqq8=TyX?Pr_YIAn zaXJUtmOgKb^dDI37HjTwLt}V~ zk*nxS>WH^xoi}SY@alx#BB6&q#A1@#_@~2OD12pkT6qP?ObkT#{qC(pMtmbPvfHM( zBJ7oiD;E6s#~*}1867=g61=?4lO6?kyfaQ;we4W|U&d7+Cq`eA5S#Za5;_z2&*IWk zUJZT0!M3~5>n`*GLbu_Ht$OdqlXYxHI@_~@g5`)nykD?PLApOk>R9@2pJ17axZelj zpOknuBQ3Lf-m4OdrJo=L$rC6AQ_B#18s?RAJUGWPvshzs8xykNe*d@0EzKR!&PffJ zKPez`XCJ@iR`D`Ysx(xj6{Q9b&8RSP0$4QA=>$cNQiI5`>NHijr92;o&?U0ETFy-=SWPGjQDU7mLGg{N#xz5$+GC|phM5jVmWX{!*C_Ve?*1s^}eL&q5I&CkCz@cg~N^RENX@B5yeZqY317#hPqMge^k9zQh5 z_oS(S{tA3H!~O6%fxiczefc5y>`V{CuY>;x{6_d+hkqJ;;++m3L%p9(h~uLEOW;2R z|C8{afqxbJAHe6h{}KGJ!G9h;yTDK3KLQ_Wv-=-~|1 z{wMr*;O~TwCiMOb{t)l&v`;XkZzdG>89XbDt*fxD4#uUs!rpW+_5_8kG@+Q4CBCP%EAL!+i=pyiI8r}= zE4h5&(u6Kcy@XS!p93D;RN6FL6Xk|X!kAT^sFM%6FC4fh9B?BFSb$h_AG(KYmQl_M z22AS&+mrQ5HO8MnoVF)J+MW#Q7*`m_xWc|^LTW@oVWZJvipTj`VQs*pd{1n<@rY0Z z82jFKuYyK!Ec@H;pb!wm#SCEh-T)8w1=L5`g7#Ha3Nsjq=WEH@(2mJ(p|0A73~3uO zq+?QH9Fq!T3n}bL2MeL)6jo?Lu#SY!hw$CgvW8i^XML~}sJf-R=oA=98a-m1w^YA6 zI%oGeyQR5d!EzEllA6?Hzo;6E?_x$ar0*)Xi5I-{@$d8F7Z^<9;Qbt~0y!7?HwjI~ zomVDaW$3=5K&`HNEaP*7$S`qH4`Y%rCItM}lQI$Cgp1Cmr}d;E z=81d328oTue-H7rT|mb)r%EUmAGDr?ML3SS<2Q&bGt;ibb$AFjanezFCrS9JL!%6E%ODI&WH%y@*v;7894oKRZ}7vMM6nwkDY5gx=hSADg4@8u zkVcQbYT&!A70e^a#t%CkdE3XYOmr)ohW#SlK{9n7A;WXMD>IiRG)@)2OS4C1Ja~eB z672g4Y->{d->rLaTsShi94F3oou zrbX8b*j^N#Y_nFsn?ytJM-KKA2YbuG{^(#`*b-5LdJP5>!KpWUJlmnwemQw0A=<4j+$9CATU+pm6 z77aej%yz)0)Ybn`(+=1z$T2t8HqstDfTQifkhTXy+49Ay!oG-Sg}rY=Iby9xVX;q} z_0V|ite0oK%@3RTIp3BFzP!n`6KBTeXzuR0J3&RK+`bW;qj`^_s2&cI@loV9iNbt~ z8Fs`*iif4U=elo-aqK(dQ?~=T$Pe-%lAQvA9&o9sFJweiMfzjv@8(F#rtkeok zcKDcd#KwmJ#5b(SA+HTV^GPKeE+ny z7iF=ZCTA?zIpV4_S!;ZrY(KGXyArjKyds+`^m|Nv!HoipM&gN^D{}eybwpPjpvcn{ z?=3By{Zch+*4skBUzt_WEl(-SGLhgJTm|yF>23+}JnVB4s>S{D5?bwG=Od&GlTW!= zjyYZhvRWFCP^P@0q+BZS{vG#+CG?-TZ<7#5m!`--nKd__L2Z}VV-R{Cp-gWoLU#$Q z!o@B{XuQO7SM*hhr9fw!;VVak?hsf8?#zd^vQFkFJTQ)ql9UrTpE9oFS((Br5&0}tZD5-1S5jHGrWv6rdDf`EvN?H_{H*~;cFgRb2T(d zQmsjwg(XrgM0gQ$;Hr;1101lg!*4yI=S7Of#n*O0|2zzWmPp1t_wEr`25bb~gjZw3 zA&u<9tXKK;x4eMOzdydXqRRg%a5#hLDG$e)FVUn)#)b$R$-pg zJgp$DVV30Y0;{w?>|TRa59OL-T!EAdagy|mtB05T7pI72oR-hFfJY+Ha-`W4F4OhyTRcxAi*$k zxGw*S@$H1e!C)Ptti!~g!j8Dzq;u0wOXuV~%!;8*j)zwGh43-<`=`J^8~$|oSkm<`gpaYeAeR<_-IVZ zl>S5DUjd)L#(+%kpAY{k_@}_X27VFz>)>;V`f2!0@Nb5XI(oOlN8a9T@F@dW53>Dx zxOBP9kS>=QQoCXbdaQf7UC zPyvR(Zi(Wuf~$--fQGY#(5&6N`!tcfv%cueW%gO#p>wG*ztpW--r*AD3rNa0@&!Ur zmKY;8UQ2qVT(uN5xJ3b$4;O-5g+b)crEYge7Fbk_b-(F)2lk!q*V0&6^_Fc3XF1F* zMH!%5hy;cD(=nmfh8(%bo@A(x-4V_pXv@<)kr0bGZF18z?J8>0wTU_X~2x*G@5SooEQ@&N^;?Dm| ztDm{pw-D0UcMy6SSElz@-0#3u;9+fSU}F(d*hGY$7rfaB-79$HKyWouj#xV34t%ag zcm%}f99(k|?_X_jHIiObgpidS=GNB;jDY2;O3_N9FzM%yUW?=5N?Pr@{EcJ)r9}E9D_>3T@)}4;9y)WFgBZO4}*tQ zhk@PgVD~!MD-QOWgZ^(jP<RZjACs80Y7~^1EHlgYP52{2q(tYJn6S~i+2hNj$aNa8r$XbAqcHQ5%@gN88?eD5?E=T{X~eAj$uM*N}Gtz z#MESoJz7`xFkX+=hqyUY|a7L#Fhia8&`3frw-{f%1)Q5KV7b+Mvii{RT8e@vpY(~k6h zAiLLmP`XuM$aCzGB#w-u^zpEN=C++5 zoM|DRM0}lhCB_x$_sLvvo|J=W#xsfcGjBTL_nc05)ts$^yK37_IjSfVIZu{KrS1H| zT5?wL?|g@cFouU;a)sT}+MRDXW<&Nc&Tiv@laDJ87iT~FuEhFwcI5drVf1;nvgesG zu&uQpzo~U>YaBbv!>3*7!zn&G;h8u~>g;Ee3cEZTXOzbQaR?w}wL(nCCmOqOm!PqO z6B5D`JMt*$$p44EFM+SCsQ$mNFQn;vp-oB(Ewa3pv=r!)raJ=7+9qu_(sYB;*EC6+ zbV<@IP!{DuDN@6#1wr)ZhCfhH;0Gw8LZM|-6hu@6lq!n|B6~$e`~QCD%*?y*zWb82 z4L{-c?|j~UXYQFZb7who=G?hwW|%hLtI0f=Z{L81%vRG7Y(&0jn}M1Y?H#Dq`?s_P z5{0AenuRL@egW#T|wiZ9cUbLDsh)s9A_H^*J*K=S=?0?_Z^F4e&rdz zwm8@tY8+k;bb9#org0N3Zi>Y%vAEMM?gES3VsT%wxNlh89TxX}i~EDcy<~B3S=@UT zHymTXl=o2W3ppoR+$k0}-{Pt)Zned&wK$&lDCwPJabL8!|FSr4d?|GQV{xxq++Qv3 zix}O(-Jtz1?F%{Q9c1Fhv@fo?G=kQ+a_ymLpyRt98pZ)oa2}CxCj6Ro-Z7M%h0QOO zFCPAs3K#0P5Ox?6^IBc=nS4eWE+r-a!Ni;F-t*WbUM(Txw`);7+9|>)mnnQuAh=>R z)-We#aFkpz%xA!7mJFdO3<)`q@Z|v;+^PpqWUxDNiKh9a{j*W>g2GuzUfxfO@$~p< zk!v@Y6_LFv=jL;^m8|Lo1U=nZiOV?F3nj!5z&ee*5f#I_`W7Ib%=J_1{o}iUxwyX- za1!8cfHMJa2P^=@%s`Cwdj}wkLoqH(H|Ue48}xaotmuBu{ZR z$FJKAR$<5LZe(b=lHoM0G?IClk&(W-PqOMl3~MoNILH3PDzg2FB&>-pBCV#v;tED< zD(rUbbunDVktf*eIAcL#x_@bsJ%FlIcw1(80Fat2#`)OcfY4H7#{eD#cr0KB;PHSk z42ew##CRJk1`Gq10-_J8Isc)6%>Pha(ktncUP)ibc~Xal)ptt4y=igpYF|icKN2?! zWe_^fzX^`>`GSjDT!Y2&om=Rxw773u+;=VR9*euz;(lUrKexD-E$&r|+ih|Gu()kt z26^ta+7}<2Os_`)9co{6YsIKjji702ht+ zUjiic<5V41UmXw0#N zfHwfv0e%^<4G?qT>Z=y!$zx~Z{;Pl&0)7p!2k;w!Y#YX74?)S%LpEt&*f~%8LTc`t zp<%T%1AQUqSxfi4rTe?Zp;xQ)LY)2LdjR4t(7up*8{*`KX%puJgdY~cpK^&@r;f!@eE0Zp@+em<^)~W&l%w8;n)p-&_SeRj zW0fvz*NhAFi=(tYC3_T@F5s+ImW;g(ILyO@@ucO!04iBli%Hg05edv|@z;+|9stb4 z0TmyM{={mKg=`Xn%P=}EDu3>d?gcmd27sa692cck+2UJ4XQB}r9w(UlHr5ieK%guWjfYSC!$LMgAHZ&ocweSd_kDC zi2Llh;~>{fZCtF=A&uZ}1BUI9oDSvTvX=}>*T#5WxdM!|rn z=9mC_Hup>uN3H2cs0>(=&WQjw0K@zUrVL=a#-Q)G+MQ(#!X!!D@)@_>W8&b;w?u|C zC(hmDn3GiXOk)PRL!5|y`j<4uQ5d%*$pKw3@HGAnzYbOX%Ka?zzO)6CIpz=JYNbux z=};vP2B3`FbVeklL-`R;r}?dWUQbSkFFc9q946_wq#sl=&^(2IljlQ{p2b&#V1V4n zJm0)y^pxahQF#gm9>c%kkHeGF;iRfxJ-f?(q@r=x;Sovc9HnTa9aGgIhGjhK1N@tE z9hH<$Bq1IDIvkypP9!OvF^Y!L22JMbr|xncqiCMMzsb*-q;zr>P4D$QR?$#mnR?Dm zN@tv+DaU^ru2Y{0qcWH?cYcmlH2iSLo=-O}DILnhVBknZW#4!e^O-f2957=O!_jJ%zKvUpKCod_Td_{8x{@JEqn0R$la(<>N znnzH9?6GwDN$E@jR^&4t=Y02@JHagUx!awu@xcI9GsB0|lG2%>XiWd|?-w%_4PQx3 zIx~{enWboApkWQ>;WA1qWo#b?=Ds2-`)dLXG5<=!gis^mOv;BPVa6t5rY2#Ek}!2im{m!bjY*h`lQ35& zVZND!xibl~BMI}X1Po8kRol6$!ke=HNz)wV7|d>s8DTMD3TU{)EheHdhgr-FjhSFE z3p6IrVpeKQuEn%zOvGZ&*O=oi=5mdhWHDdXm@yV}v&M|Gn0qwFv6!E0%!$BA5qD|K zEQ@(dW5!!dnjXONEha}}jsQlO>jaINW@+YY%nXHzMjM*fb#|?jT4b!KoXRB#l};|~ zs&c2!P!l4|1jlLEXdoR7XX;KcX8}VKBT5@=JkLjq1{c)K zEvqize%Zama_01sGf6lxZ^Z@k=2zmB$dYnT-awr69M=}5a<;U|-dwce{F17IDlD1p zy@p&#Bxazu?{1cz6rDygUTXD^snHGe@-)!cZpN#&9QxXFZy zFZHqCypOhQXvbe?XFE>JHMd=D>)Xz1>TozND5g+8up`Ew_3PD*T~Qa+r%=m*Vve~L zPSwZJMinQUo5Y|s9c|$9(%M>#KwVLE!8SZsQQh2G8mVa1(^Zn{R-PZfS6wlFtNLO57GH8b1p35q7gMWDcsO5;4lWvL0+kgn zrDOO`bM=#`H+sO_?@h#*A4r@~7s-ar8~e%R>NQ{?z;_ zDrjY>0t3UL&#qgt0`EN>1nAt8lDy|Id5esdycHM9N>J5_yb^OIw}NgC=MCUEEEYIf zMOvlj2&No83pI^K37u;?l6Wf6H+twISv4!&Qxv4*OXxlQpt}HckASY68a`YAmtT6< z0KX74f7Wy?haVlMEdB+W5qfO3bdB|0^$0UA0?%=vDc5uy!V8?d?e0OEv>dv(fab@V zjtT(i3cPe2vtQCQ@G4i3l}yLyyy{2isb|u?3A){y*4B&bb%YP$ga9^;bDm(q;rKFD zkcIa3N$*g+`5mF({!*p)6ylEq%|A4qP0#aOs+k3NBVWn66u8m2)N?&_C*eWg#v9ek z5mL#^upeCvJX(N6w&x06s`N^bUT7R%x{nn)zFhmIN6V?3KywS{7vT7Ur085q81by$ zBF-=lI&}(c&j(C zvZbM;t+Q=)S7dzcagpkF9QE3A4o*{z6yu`?PL1u5d~~8tMmdACkH8Cf(5d0ry9j4; zR@QH7*?$nA{&) zcj7rtX7&_Le<{bdjkd4Go4g!(9#x0NgC{*Fpz{>*JhZkwm;21NmPX7s<2ZO=SGBZZ zJC)UK(S}v{O73^w_z}ReX`_BEtDgQ0LYWSZEFS^l$w*dfT%}8+C53f`5ZrQ9c!%rI z@{M5ennmi=b{?P3cJHm#rG5_sWzyO9eDEj)j78ljtq7XIhL*0DGn+8RH>esx;_Bpk zbp-qn&~^gTwE>^=GqT4ZOdaK}0!IRKeipLE;<}G=SB3Z?LdvV6g(W4m_==p7-OfT3 zmlf7x(j`MRj>-TSzp}ipd~s=X?xL#Vg?N)jwh^^*QAJ&OapA(cXk~RtX|!%xO{q<` zr8QdL*vQ2;s0?K3tcK?Ljwn}RXJpe>p`|^#p%dpgccDv$HO-RhT6U_8?9YL~-9DvN zi_2@PtD=jisPu*+xTaVt`&f{ZMO~HcWl*W>qd>^+9$mDsv^H8;jPkHA*VL9SEXASr zs{F%Qex4nV$+V2@`|+5Hnk5Shs~4BnRutCMl$NN+vzE@RkFIY)Low?S6t8GmU8%Y; zO#^EHFd9Z#RfFLBMWq;ngq=h!ic-GLaHhk1Q|iF@e!t70HfpF)Pwt z(dAX>cB~C%hz4vm3(Kl&>r`QwG-y#53(KpkRQDRCyWEDRuI9Ez7K9ua;Zv2K*@Ols zD<7N8$_;oOKLkPD7$8*@mDiP4niO{DXk<-s-BMNOW004M8YvlB>KIeb8PgQ6PD*}) zyr+{_x9VapEU&D=)If1zMMY6z@dD>KgzZF_r;#C=NmqwbMr*4V)sVdtGp&!xo~cIMO|sFVmoFa8f8zI zF%6|W&21TmR3yim zBx9)pDltF-J;tyW`YT@lqN}@G8}I=pBl|*~a)Mk1ccK4O#F>npek`;s#pFnWuZ)rg zpU&*MMiCa4MMXiGcT@Q)FRXqlPQnx9f+5I2MNP5gibKdFq(x(~)jvaVXJiO)=79^V zix-sE!SW;{n}Z#=SOu|Kqb+T#x>u`OZpX6}1M$I>c@;IRWXg?kq;xlRdmEOy;7s#A zLe=&~F{r2bIaz^c)+}54&|$wg?eupmXP-Kyv{hycvjVT)Hm3RgQJZhR@yOdt=a;3w zESrvJ1!k=sb8} z>8vx)3GVv(@ME6(@uUfh#{5HVfB<~;_iw6te$RKx-}v@5*M@E$`(-S9MuxHi;R}BG z))iN**l>00ggJvJe(5||+6^K;xA@sn&po*1g^b+?-}=Up6&2X1LE+E-+)+ObKKNkk z_}^^&&ihvldm0N!6n<`1!{IM1eRsl;_9J$kKmGmt@VyPHdsg7dbAS2hp7*YJ_w1gd z54+>i)A9bYOyNJbW#RkxjJov7yzfQ77G8JqlQ3yh_?K>f=Bn$)XaBD5rFZ_;b;-d~ zu<%3SzxjpLwRfhy{<|N4W89uEZoA|gU@kOIR^app-#PUklm7mvqaXbIDT|M4z1DGJ z3jdc&BiB#d+4{i+Z{P5P3vW33JC5@X>g^@!>kTI^Z|`VZ(^0=6g2A|{GctbDtQp5G zKMU4TZD(~x*0tbN`YCzKTUr~|cQ-b{i<9Z6BjGHB_(i4f`!C zI`g|4+FRO@k-a&^eXoe^;oJLqu)3T#Z(`ds%J=oi^gfb9`uc=%dj>kh{9Cv(aPh40 ze`2bM+tG0LDy+^5r%%l3tFSzx>cZdN^!9`si$DLZuPw^If6eo!V{F{l^S-e=N=8pv z4nW%0jJrANbHkK4ig!G386fAA?K#~CVUv^5zh(E5VP#Lto^UwOdL(v_ zxoPkZkccyE+x?eq8hrnr;MNLkHS=Uw{+36(LfALvy6yjdby1xJN`X7^~o)}KOGr%bb)jK zA2PN)+ZFn3+KIcLz_Bc^r49RD+KENsM?U%M^InW@dG_?K!6@em_xC)4!XNR;vYhV0 z%`Dq%7qf;|nCgP2r54PktLej;xWg7OAlQ@F3_tg#iEo`f7>EK~a?tM#`0yUpha*>n zaPdG5v7?aKw5Ui|@u`HSbN&?iF@3Z!;|w#@7dS9dg2Q@UPVy<|4KsMAL!OgV!H)3J z?nrRc;5$a)l-hfm`o9|pIYW_;kDn%!OT2cHA#;~(WzPzm*vo00&)T{87@yh4sfn;U zAAuPxzIll=pGi?AvSMhw2?1o@YQQC|5|)7OH0Wo9%K=&WvvG-qIDKLvPM_@5%~)aQ zD*V$IQhV_T-7UBmx_B)`fZMlPYC+6Nz0^{Xo^3~_RnzQOHQ`xraG%3JeR3wJ(A|c6p@UwmR%u)WXxug0Lsq9twRXsayVnj)1bwlJ zr9L$%A2*{m2JbY7o1?Jt@QYM9TV4e8SHT>UJgY#MCkmIValOx;q8#>J#cV03P<&Q& zuxMsA1^wazij*tou}ef7)^nJZvH2?eli-%r>khdLiSPRHjWoyvD*Mh>7&Qh|Y?j14 zSW3mDWp#+e?(RCfU3TN82r#ttiwgjEih9??N)o;&tDG`t6l8{;esMl)cG)b? z;oV$P}F(o!h=*@4p;Zo!%4urpNqWXA-Fd%VT*>zv@Yyg<@xw76!AyVByeS=@Gu+i7us zwz$_V?w~>D8AG%$#Dn_ub4OX+REwKwaf>bPG>bdi;yz_@TP^M~iz^74XOw7Pe3fP{ zYRb5w+LNInB`qBRRn?#3n(UE;CJq&o-5yD(%rN#s6!v@lrFYdno^9OTuG-Ht5dm2i z_8L@@W9kLtZVb2B&qme_uhU$}^2%68pNw_%g`7+AFF10q;K1`52QJsROgu^Gva~PW zDi?vuxC^u=OGCB_Wjug_=X%23;~)D!`yic(?;igmz+)6w&V+l%zmvg7-tmulVjg0+ z{^n_Qehu?9y4hwH)NmzsBw!K5$v7AR!Zi-E7fw{+b-j**YEh($3ezbwlu=Ze5r=+p zK0_1BZ3s;rFdHlb1u|yi%vO0Artx)xPIkPa94_E3w$}BIWE@qNsj$(mk*mF)Uqv}A z8B6T>V7CIWo*XJsqGFt^9!?r;E^9_Ij_rJv!2YlZmi&!T_jV*>{=_bOkWwUaaDSvC zS%v(amJL30Rs-qnKk@qMV-#ZpVHY4ODt6hXLg|X<;KVvi7@TnbHmT0sOcH>5GrTCSpXG|ovXJYUsRm`))3P# zP6X_u92?~WPv(|;nu8B{v{++TlPs*VF*(T(&AfRdA z2Q-)M0AyS3)ZBF_{K8%I33t&aT8!YX#J%9YuYGa~nc#L=+>4eDd!wirVYL^o(9Nbxxu5?uy1t2JH0x9g-Y-B5(mu0zG6aB$HHrzrr90kdaZC*c zuE9S`dh>g=i{r750fsKsf_L&1WBq2;jZhcOvqU$u3*KFJszX2<3`Fpsjw|kztsw2m z;1o^5(h|z1U|<&hS!1uBoBk&N?PhDJXcA(D5fWdTeZoa$*T>tkPRAmRv@f&_JyVBR z3F%O7#23!rbL$y1OdM=1uG1k+;sR>Q?7kNEvL%CoC-BcUpu--I_;+){Fx>Z*4kbe3 zg5_b7j>~eD8Wn0D6*w9`y5vQC9AAO~_CvM-UGgG6a&j;b3&zt)Uc|?dA{Z!frIWm< zkQy5nVx#g|Lb~`uzZ(UC|A=m#JCZODBw(Uu1{m0bZLFs>%`k;=+c#6r#1|{Q`QzaY z@izUvjzyZpEfgpr;~e#ahFw34$D(dWN18!ue{mDCyo$Mq zky|`>edC-N@zn*h@?m;xT%W58@}}j_Qp8+cFkG!JD9Gh*P~!Yn7f=gLa6YRG&O=A} z6X+Vq#BhvKkYaVgS(-)>8aj`aI{EykpxdQs$tHeQ{>=BQpouU79G~k)w-oqkpt)4j zp(FaztpWbqpi$fM!cWPm(sM~;pwKh$H3F=@jO-3ax>TzME&$CB66p%uy^8TE$^M{e zcu%LS&pq`*`Tq*&{;Fwhy|`o+<35G!eb79{js?f`mDRgXdc!dsjpUF7*IRmHK(kxZ z+4MZmji6#r!l1dFpKstO_x!B#`IYo=yh}fMlp=$!qRoIpX(3M5a{=1OV5lr83rYh|4GdO*zE$~l+eBW0K{8x~& z1AF(ho+qYm-}2-huRBUuBHmGkS)?eEv9Cm1my1yC5gfWsYZ0dsux`S+PSU z0_%Hozh3CwYh#s5_0Lv&j5Z`rMl`0WX;X+K1`bJJiDWDVQ4W6Sog;joKOdkE7| zHTD!&?b$vUPq}XM9|s2?xc~iNa0d+ZIj=QIJz*yP^Odgv|AM2@e#YigobIs78+cTZQPJOQ~lLP|M2u~ancPsXS<3oCYT5>6^C0^bx|Im#+uDxn(p zQVH<%>M{_@4@+)qd(PvskZv1$+&W;3l+GK*2BqVN8}gE*MIAvb>jgIr_kz>2BXr<#-5PlIuOg&xlgXh#;M0>mmYO3~?f z7=zCMku=qmzuhc zt)yJ6cp$2(KQ$HAHC3-`iYy{EMW56ZeIa$)1Ir#(c2x99O$i-qO6bTJ@8K%JW!xI= z(Np9Od5A1aT0$zXbSC`o3{asWI4jY(6Fe3nOp|d}<9Z7MRa|UUtDjvwkM^U`qC)IA z^|1U7VEKiZt@ByNN<%$Y(TJ6X%U-_!_VJ`7*O^4=7xxjdg&*Nm;-i!}zCVOR>4P%U z1{=e@wK?ofRoF`+PR3V@;0fWm;oNWqh|`1N6A3cRIX!C-r&-4{>1@Qk*JdSN!6_`9 z{&&pSQFiu@c3lYs0K8U#{`! zSqi@r@LGhEPf15^ptzS4O6ZdlO6Uuz^SlN3HBA?C?$^Gs^Pt83#p2$yINAV8+{3j` zPTCdRT#M_lbZ1)J^%nOPi@OcIPU7CFeQ~?t5jD^2d8Bx-gyeE#m+t1dUhOY7Mo##aQ=-NqUUCg@auBI5wfS0{{VdweaTo_Z4!ChyL z_#U1E5^`TNF5_5UavzlgauD4Ha0~086_8vBZjI5lVIv@oZ#x0`k+2JJEMPa_IE|-v zMErD(C)XW}OSq0c;X3+4>a=;meO=RqxC%nW2s;m0+@CD&HH%}eC2pPe#ks`vBM_@& z69}{T2S+ZUIA(hn=I};i@Vz5uCurakh&5#Py6CM zD;GI2PBk=cOoMqf^rsN!?HMKx+FeZ{N?Me!AC|4N(F&+tcv(%JuKxEzjFN+9xuUX6 zTAZ*6kTMjbaExVM3rJ3&y!E$w2G6L_uydLA$@yW7A?JtD7sA2VhHj+x zeVF#6v?c;GxZJ+kkFu_iUFU?WhW|u-QQh`TI+gt>M=3u2?DMVwvoStnsSz3eRQ99n z*%UTs|FsgzlZizMOqa@jl=>K3^76-HE90?f-bSbGM_sl@M$sJA8t_32jSm+xCJFrFu-{c=AJIurjxQc z7@&m`^+&p7o6h0D1_QKCV!hCbO(%V9dvOueVU(7GSb-78(ATB!9fve@o0Bk?Ct#S4 z;njF7=;X@9tvtV}G1wdfDc^=W7%kGqi8e5a_LTNDJ;5|`MsZnn`MmihMFkS>XHyw} z!>ih*fqw(K$%hIh`(Qx|yT>J( z#-yp}JiE|dg20~~+&G^C^R+pU&;=4L-SSN~+(bX<3X?p{p` zh84R;OnhQpeO2#6w z%WPWJy(V{|VDXQ(cnLHwQ53K50Ml~8VV(Ke0-p!Xl3bOX@Uu_*vTHmDnrAg#s`O}O z{|0DIK;NaKR2@(|&-yOx@V088>^wK3pYFe%=U7-O-pCqPPVHG=SXWnDUbF~1EHA`X z%MHyulw(Y9WcuKa1DiR!cB9^h&7A!V)Y~S^+%eO} zsxGcWGs?*nN!Fa)G}Kb^n1gwxwU~^^$ljQS0c^l_W9C+z6k}@jL=E=9{7|-B{!n*S z=1$h}nkt;GE0pLv$6|73dfx1)?KvOuJ(y|UYRfXOvdGr+|LK$)G$-(5 zQMu(S?os@2OsUyT#TCP<{j9m)tZ92?SZkkb&l=Ko>9gT8S&_rQ0B-BdeO+x9^ppGA z>e)2D`_vGa39}dO&koQuJdWUX0LzUU>eqA6THg(wX@Wfl{V~<{&Asi=%!VODNxpY(Xjp|KXjOSr4|=HOuS9XAb$6Md6fW=gGhmq3P+} z^b`1>hxX_+*lv8EQfzPPg`7|10B!J0#vKi1Mm<9gLs0yZwCS_qR_TK?rnvHWG~z2J z=H?q@0`@r;KGg=%2?NBUI&At55s^@ti^~_5f{xF8anaRnMd9=bp^dBLgIo%p|Ue>;lGX!#+GnQe8o3qfD+OBmODE8H^mD6B!{G{V` zZXD^LZ7FBs@RLePXNX+{$fo)bOO!Varp2jb*)^GSru?8K^f=)bKEdU|$GS>)3h>YQ z-*h#_PD74#bxJPhQPY)C2sPSt^?`%+m(I`II)*wMbP`XF)IJ=!u)ay{!6bH^m~24= z&+ELXhN>FgLpU>K9A{JA&in27Oay+i7n{YG^{lSr#1bE>X5Vn&WiOw4d*4A>Y-A#? z%rUQ24cHtkC*3kUm`%Vclkd3niQOW7A?JGhlRE5tMf*a&dwMQj(u{Ct>h4zvdfta2 z@|HbaEv^l=)3y%YdRCeW-a0P>hQ?Eb^iAvoK5p@zvoh4}=A8^W)L0-J3+K$9hodWY zG&AibmTq^~5EGsjr2#U(t8jikUGYjWd^zfVp7I@s|C5z(I{xPwzOh4mY_|oR?$Spb;43_z{85^bE2AIUPV%_htsdnQ$8C1XQTdoiD*Q+-sck zd$gICjrdGH<04$IrDUUqj;8vqCM0ZjAZ~4GMD?WJd@ajT)^~N-O&T-s5Pt)&Q`Fm7 zKsuC4nT0g8rob#N^YC3vM!;kS9gt=zs}> zvRyWnRC_arHW|Z+-yn}e6(c$C|6hmy+_{KlNVI}7P!zh9=mB}51St)#l9ic0Y z8v`eAy~y@ucjZ&I;i79ocV(Nm0P+LR8bDSL?^#vr09nK90mlPw0GtNc21tJ22v`k> zJjGT5b^|s7o(G7uolSt9fZ%qu^)I$vjKy$&E+F}gbj*DfE-?V2PYi(Q3pu~hp<(A) z?F%^vp%g;L(M{;4SR9Rg1Xpcw3oUM=#dTX;7*)Vhgq>m97jjm@C(mfqz7RL}PiqF9 zvOsbmSauwQo49-^!d<*S=aN!8&REi=2~fs%=Kd{szKUy>N35GTY_C^S_D7z)%pFMC z5dx_1-nydU>=(hHUS`BYi~}YF~PZ~8)N8HM1!fP2BQmIe2U z#oZ0x-X7@SRZcpP#7s}k8ij^E<%N`7+`D3eI_l+Uhvb^_Q%s_|rYeySsVVxTrsxYf ztRM1MSg9!V$+nt8$NCXE#hI))NPsjKSMsT%A+VRfhbtGCaYKzqLvP(NRj&jvaSlcp zM;>uruB0iB>De5LdS^Djp3LWXd$QrIa)e2J(I@pqpB#80xLa^9I8`_3wOQuU^_1nR zC-QMAF8|(ZJ|1&ap!3!fjq1JiWa5kh{h#9XWY3e2e@J8J9XXzoviHtQgWczHNC(57 z-mHnKVX#1Q5(6ojaX)RvG|>yaH<3&DGNU7qQDd{t3~^6Tr5ng&h~OU8@ex0Q#~a6b zN!6|k5GL(PpR_A|BB2FG2`#uEYG2s7&*EOPxIbImQnZdvPy0e*Ru6v2z5HO}pr)Ny;{4E(-xy7NDMD$@$k{tTu$kv5erW6N>Xji( zGyksN%`9VVy=qmKlFu38@Hu{cm1RrSrWFX2Hl599jAzlTFtGtQ)}XcEjtITi&2Ax-$1uPpwh zy!jAe27l5dZVpNL9t=p%i`8Pv zNzjR)7gbEI?_lw|AKEl zE=dO-XAJm4oXPX#1dQ7>l{Fj;JdJe^O_>^v7RQm?oOIW-1yQ z%uyGnOJ#CPQOukl^M`S@$>~ti1OrUo!{nbcZCRLs=LMa717_zirz3 zZgM)5Ex`Z{;n*s4Ba+fN4A@|RluV~;^|srR(;2B~+}q3^W^*=&jjLP)DMUNhMccbO zo8uVzXoM_|G<4iBU!1|LOTwI!gxQ*exi$%NQxb;T>L)(yp(G5q*{6#eDgQ}h4slEl z|EV#uIW4KPq%f#eL&LoW=nk`(SsIgVF$*+C%%5{HIgmSL7T?@eE2TTD5bhb*T&8w< zTh`f?HN_=`<%QJ+YNB$^G|X9QGw30^5iM0L?(T0G!1T)G@tLGP$lrJcd=~F)=?!;8FuwC17tFQfq zRm-^4J?b)eQ1@U#?nKqvy?(t8q@j_ra2Hy2D~8|JY#_=xUkPsMYT6LxYq;x{I=SoC z6aQ-9jE@HoO*-@C(rTGd!s(OkC$gyH=gwLWM2p; zkxb2BzA4(#w2}6vll!z`pFVBYY-Qd~8}_lvhP?)Yi&H^#em3mS8QCQy7!R@%);SQ} z3@P?J=;nPwh&U(~q_AQCf~FBlP3IEO#2a2OY)rd;Or}Fk&?v`r-WYM+IQ0(S#J0 zKOM_)SU>1Ev>)9MIzIO}KRQplQO(K+-7HOO+s#AA0k#ML%uzwdc7e+t;XX!l8Wj#L*|eSE^Fkys?E>-?!A-!3kX`di;>@R-#V|qUU%`Q!sDm|)b?}8?8 zk|#Y+yK%kiXF+pMp3w0%gwKVDPlNX@T%RUtpZBcR0}BoVJ&B4B7>#;w>lyMPk+8C* zp`)#{ZFN^ULPgw44JCB~skBp}l2&QwQjok3D!n+y8Y8M`3}&cg?htqejKr z(o>`5RdcJO_1&8soa~i-dx~(awv6&mg0YW4&~3@F4=jAZB9Y?is=EDI_&{so9*oZ= z3k#zQ%jflOe3`=9F~Ka?wM-)QLI^HE_&lFlrj|Rj!Hb1~#dS-eD!43#%dMe*2xw|E z$Yx>|z4r47#-m;ncV=iZdP+mb+3j6z+*6ecaA|YO$6k)~u^e~<4sDAzbZsKq&sv=} zyIUnI(aO@gvT7dFhvI-im5K_EjW+NYxs2>Dfef~*cnwdeWTs3z(rtJV#c>hkRbuwP z37S>WqPa-45|euw*?GvRvD}TG*@jP=G~Z=6Q_m?}v=nn-8QG8HA&t$^4NYCmZH?+t z%w1z=y+IkGk}`LGuLBY4yr`nQs)Q!1thjrbp~W@PngylHMBmm0WNumgOcj|=us}{U z=T6{-zD%_JY^qsTtcg|Kt5JXrrg5zGcwO%n)xH+fthf85yvS{FQDOlSO{kMCp2-_N zX3ESwSq7C@iB71vmpDEMY_z7SwP6)=e>8AsqCmDOm3XWwtSpU|qVFz)cBMK^RXH1g+v>a(8jzvr(G*d8_o{VGXY;vi8|DQ(ZCELxzCS8UnAnEhri`p<7;ywHx2$gznbq&^a>Qi<$2B@N%DkHoOWeQyLtP1V zBp&xUCES=P``dnTZgHeE^rR!2wU5*{!7UXcLl1a zYy`y;)zw)a8Ak3x2R9AzC^}rU8tYUl3Ttqlld5yRGnS$AEUKte^7>mQU9?M01^S=D zCbg~NW-9ajSr0Y9OPt6*Nz0j7^~_JIB}!Bc26V|0S>6tAtmKx~)orY4K8Y^`yrv(}Eexv}cHYaHbjxi)n3*e^Q{zawM?!WaDVtt+lrvEl0033CQd{L*=tM!@TJ zRv@?d*-_6uxaEb6-3QYAcw1|NUT*2jPU=4G1>%|G?K*MAdRFn|mE z_Qih(^)`)jG6(j&?|ZBI1M7um&Dfg-Dz0M?8e7^XH4hwWUwFuB9f8vIXDzLofA3DT7T(RAf&$3Ig~ zr^&rylyoNsUj$dWa})mYnFPLD@IOuYeuV$=%C{Z=dCK<${`mspM+FG5??p14>8oC^rTXEuBLwM$NjQ$IqbWIfRErhN0UELi` zme93&ik~!P2^MYd6HUP-j9(U4!308nt( zXgV>w7u<^$$C`N$S1vB&(v3$$Z!K;Fenu~5-@i#!i~DEwon#=-e0po9S=S7CUTTIu zsTul0Y8e7~DeQa^|MZF3x6s{=Y8sI9|U32$l)gmQBF0cwjxi$P4r1!(HC-Vz`x*b(!Tg&2mb{y zQb)r>n?Tz_YyCgPRwg_U8p<$D$Y__;FzfW^^wY0`1Zto`CkE`Z#5^^l|!x zC+HJ-C^*VP!QG>MVRa^l;9j)2S1cW0r6uli?TgEY~ao?zigmg7hQ&c zByH)}z~6c?`nO%YFZbtF^uugG z^U|840lodvul-Da+<>}}_M=bQk3Q*-f@6Oa+z+)+7AFdhttNC4?Teq)Q3877j?tbh z4LRC|;0I7}q$hkg15~KYAjFWm_pBtQ$uu}?^6Pl3b>O=n4XK7>AjT^J2I98%rjGh9 zPM`F)YM*D_@C2iP)6QKidRvW}bdFLcp5wO|btuy0r^kTPw5h&hjY^bNU}#Nskb=)= z+d}n22|yyp*Dz_$R}BM+QSQ0xg?IU}sxU>%V`~o88w;=ku*lI?fH`K21sx#;<+4{k zWCSD^mc7z+B|DoLW5!45jGGyf8hL{HXZ=$$a7M30;}=2F)4LRq{d5^1Iq)<_JtfSnUnOU zT3nUI)mq#xi+j=H3L0SWI;o|x^^CN@o;|1yr(iXa3BGY5j1m*I zC`_C?7C9*%>;2VXAXsN~?E)0HCC1`Y;!7V z*3BAA8cFGA@HOK~E-59DEF6T#85M1AF>yq45lb3Lhs)|O!d<)$bAkDi#kgyOc?$-Z z2fBwhehQt^lxsSh5{@*9u}GFH=P@gwNS?*O=7HrRV?O{?t@SND=!{vqmD%y zc|Ll8I;SDIHrVImd9HkG@C7E0qcLvlR_H5P6g?OSPf9cQb{=Wv0o?RrxJq z;Fg)1Jo_)hrQ8h$KES`pbE;*gCLRB>vxg_9Bg;(Pb;vhjzt(Zr4~87jJm$*JD5*nN zD|3wKtA03s1Oq$qPyVC(L{d7`6#H6+dz7MSN1GZcaAZQ%wj1*K)hl~wbLiwY77CJDt$mRQcjBF>s$UNL{c{CNfD z<77fUXI2-L%`GpRH@`rCvP=k_U0hjSUOm5TE<@!*X0K)NWFL>NDJoh}RB3bX&bTrR zjW?PYtj6zMb&|Al*DmH&cKN(ZUgkVN3zu!Z$5$!aoW&O@Ta;&wvcWs?CCYJ>O*%21 z5})7xZ1d{3G3CH3?L!Wh&i2h^HT%ccSIJ*1gk9x!%p!u1mOO+l+_CJ8;R7QZ~ zDDRgZi+LYtex>PBrN@!^&!8Di1q6wvD#)E#F4R%ecdCcpoyGr4}!bIKH!`e93k zjXYfHz`;@bvwkvRy`lH8iiE|C@zWs^*1@>eOZu**N=PHVATr^(-bIiJ4~Q!`i7O|) ziz8`|Zdcjqb1Xj0g?r$N~~HPzJ>DgwV#RLF8Z#^>z-EcIeie0DzKB|{&7_rj{_3vPU__f=f#v*&?TTnAQhbu=|DKdYq`3yj-326D~S zSp&BG&8!PMu!^gxGctbD|AAFpoPPL^t>Ti8rTk3Gl~}*TcNc!z=ah}C#G)_tYN{oe zn%URYR7g0bgDPPi9$^o zj@nhgX>3{31npF5s?>z|u{n7$4yXFW)PDke{>E#hp)+~+8n#}Ku-;72xo3vBn8{6i z9nRs z7<^S|*x6-qcf%(p=u)?=wfAu460aR6MBUC?qw5jan+f_8apNRgqnI%FTJX3Y(fdgZ zZ-X-8qGtZQHB_u?Xez>_hUgO$FZ#s9i)9uQbo#^uUFdGZz0fI6db{phG42@`Z?bT2H9-$uD3 zxQt_cczNHn=M;oVd(tQENuQXf3hqkW3+^uM6BBg7J#TR@SUNsU;?e|N=nO9;n;Q!s zkh3S@^5+BnoyCqOUOxCWVtV< h@8s`IRZfy9VKLY#1v{p5uJ%zPulC)>JQnhD3 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�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ÜoYUc&D9gy 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 z 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 z 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�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

      Q(R&pP-xmgjwqq2=55U4ChmXw=FUP$ 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%0D&X7PR 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%0AaeY;6OV(n1CcdHo%2prcK4 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

      OTC;D(p;xi&qlaf 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%0D^<+SAY9eRvZQ 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
      !0@svk5`;8L9NO! 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 z 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

      h9pmQNMM0Ogor&ZBRRyp0_;lYbCuOIiCr`%Xq9` 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�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

      >7j83Uz1k6)jyoB-D2&$|uAX?0~7 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

      O-*&@(@dMqd!YyTRE1H_il^R5-! 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

    1. 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 literal 0 HcmV?d00001 diff --git a/External/lib/libeayd.lib b/External/lib/libeayd.lib new file mode 100644 index 0000000000000000000000000000000000000000..c360a87818c257e0c159fb041d5cef5a144eb74b GIT binary patch literal 10186622 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

      NS0Gf5eWu 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°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

      p&)Koh=6lbMk^O?9n>w=HfA4elxl(SlT^to|0X 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­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� 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

    2. X&v-s_8eOWp55&VB75n$@cWNpVt~yWcUMg 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

      ~7N{4e24XY@1s@}qH2-h*&` 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�(*6M;aQ%w`u>ant^Zkr+I|!x??ntFlViKL@Wp9^P!dD z^N^Wx0-LUAUqLsZ_j0&g7F+?B&wC|Yb_;eHxj>~)E>P){3sgzFLB$ISEv%CEl%eI~ zj*>{Xx)TgNxMb)g4DXGXnZ-7@$8oerFMi1u0g0BnLZG; zBk~QR8aL${)Na=EaivYY@{Clj`^_K@I>U6hlz5j{`+&aK6~2*6UNzV!z{fH;)BjY2 zvx7^uBV2*_Wv6Ndy=$kr!^;zyViwIgC?`s_50$S+zuNaM(J2d0ad%L)?D?J;|4 zjU)22)qpgPkUvoY9ajJ}nPxcFy?fmUHX~RRI=6Up`377z%Pnw=;NA*%Dcoq+(JLnq&R1@&&Db7~20C+F0}wnRdMLK|nMcisJCEZET5AXS!J-Ltk3FH3wI zz=RW^Jk~f~!VEG|x*&;ZBi-tf_6l7ZLx+*W?b2kH56VU?Os zCK-4=1anT$Do@Xci-fEI<*W8!VPG=Jz%wR$owv?{e1t$E*HO=zWZ>&nKHu9q|Nivy z@HpGTiFtDj&ufVU0lZ zNf~AGc`cTmN!(h*8Jf7YoKCb*vSY$=tk!j?`Jm>SjC8n>uTIT0Wv9|Zs+zHl&~r*; zy^Z6%L5d1hb)yt9W?f1nv^*Tb&~|O~FY_!5WlK0Ojx3H=SA;VOILq152slH&dG4U( zo97hGhM2RGZ{A19Hz%=R0e8@=R9$)iUXKz{}-O{V^$2r%ld?lc7 zL7ac6cx-B~{J1)vFcoz(P3FhBH&cE;N1V}o8Gy-@ALsAG5NFEaGG3eiZ zbE{@d3Yef(R2Yaw3vtn-1 zf<$GgLW=vI19m24&?uEwSDjc~Q&m?jq}3inNVGB$3Wsa(zL}kO6BZDi5O0HUp%#p& z7Ge_2nDXDNo7X~r7Q^=g0mk;+I7c$(Ml0X6@a3X`{5N{ z2-#r@sf!39XE?+x^Ijv(1ph3XHEmB;o|{If#ZzhkVVzzDssq zAy|KHZA{Eg4|3o}p(v=fEEOJ^Y)74$yK>hLwE}F&qinHcMuAq^W%V2)3 zk?fM}Xb-{3OP5te!y@+HdO-)}ZJZA-;sTH*?&?T3fTo|RwyJb#BrYy@31MVB)Q7OW z_#}jXUmp37Xf}M;%MHw5H|6fe${VgP_{ooteEy_|yMfFS^s6qY-S+6dmt9fx{lu*~ z>yP`jWxX%xbzgb;J0JccIQfwONmkvy_Q0PHO&)pqVRBQt5^Zve@?Ql12e1Ni;>#ls zR5WzhWPW{l1GW2iY%)LctpL#}%`M8#3K=C-!(VJX?JB#*4V ziu>}&1;-T(qkQgd;LEpw9|vIvBA-jx%h2R=r}ZtLyYB2J6vb+~nm>=?Cq+J&n_DHY zQa+bkI^Ni=QiRZCOD9bpk%)k!TnI*;hWRfyJD^(ngd5qi52CIL%w#u~ zY4QZLeZ_+vhBjN6$1kXZ7S82_yaR=ES>klzT$a=vm9;`Vg8X6K&qtfEy<&=fy27uW z375NjXTdFidoJ8UxaYy;rs&yli{YLFmu*Kncm0lnl{h#0B+iY#pml)?&7p*$k|4R( z&~7ladkyUYLwniKUNf|h4DIiRM)ae+FHtP=zEccss-fLxXm=PIF<3I~lZMtG2>dwQ z*?TPTb0`fK_rkbwjNbuup=&JYG<;t;p^vek5gh|R%t{~GSA_o8_ra6tXEfPz-9_?I z#4pRrzJnF4k;}zOx0iu<0}~+d4XRHN^W+TzzY!q}&EY|P3h@1|q5aj+q+ISaPq7Kj zZ8FvLH6oYAtW;xk8uoCGNomr#&W;qyeIGY<)+o#5uF(rsjbZ^WM&re*M&}`}tWo;p zD5EcEU4>ss`>OH@2f!9tE3JvXKLtAZV8x8GDLsOE6?7%~i$CZ7QFqk0hC~Fpe zWgqqGnVk7(bnj!&M1jOL-C|f89qyLLJsOdYbIk(GlW9Y+>`KyT-eh{FyH|dJgmF`Q zuX9Dix?}GpFC|Z*sX*^!ed2?N=%v+g@qx}d9_}Q#HE`L&%i$gacNtt!_i)*(*#l&+ zrcd^2`hq+pR)pq={w--w7}{3l3-ath6_2YI8Si65`-h=XcYwUd0m>J&s82-FjxeNuz{1eL;(3LDFtFG+P#T+7=MEPZsw% zB%JSJ+ws3%Puh&RxV2ElZ#UNO7Y8z4f3INd zoZI&bb_Y@}a<$=D&}jJlH>b6s1KIDzY5H!;AqnBKeYlX;hUH}YIA6a?Rr`eDviuR% zF0oC;-4(kE+@zM%CGekE;-@36`din@OW7;FZGIqIP)66~-2|+o&kEsNJ=SVvE|L zF@>>3?S7;vwy51N6~z{{`?I3hqIRQDN7CpL@>L*}GB1siE{<2P;!xDCKf$_vki9Kf zchAPevzFl?y(%BZ8DTwwEA>4-lT_W{4=mMuT+63PGIjJ zq>9YRv?=m(lB7Sa>I}SIE>s*@0|{NGVU?6~)PeI+ZE?8RlFCqZD7G|{Je+(Qr##$I zgO!JyOK~`H-ls1Q=RA>|gOSW;bb&7q=bYSGF9Vf_*Ne>msP zm51|`BHO`2avsofZv;0Xk^bSFSa(6HK#LPVA}Cr_1JNJ>7=0KoQxv+Qv;ZNe6n`;L z;;Pbk#K`gZhjYs1X(^6_4M)l<1tOTdo@ihJAl?IY=L^nBxH@srw!DhyYWLvHvbiJC z+O?*+r90V)*IX$Lvb?G$jCV0dzl(gc5k@}+12rsq8s`MV;Z!&C59h@84Mlb- zIgdICL4vYYh@D)D`GInMwb8|#9w<*hp+_m$B190Tj06j;mUYW|Y)4ipVhxGNig={5 z7LsN{MszB2BxevpF-pXfq74V>7J}FUXY&^1BSeWyBQ^0vsBVRjq&TVosY@M_hMzyd zIo9!HRK_kRCFje-iT>})!};=XhQo;|sfVK#EK{rkIY*s^r4A)|t8o~wU|aQIWGLv6S|Od z1HV4w#h-op(d8d*x^&V$-@EL@QI=5pnj1LcZ|5KY;b+ z;Rbb7qAw4(wzIyq0PnuZu7YVB2YJq9duI}oXZT9f+R(Admxmju5aup*KBxLB?#sgs zuRPpM;LEpw9|vIvA`iC@=AogsOb^>>=b#p?uodwFdF^M{cPC>QCFX} zJlyMe>(49?M_o*VmWShnyaVOoSmJbfIF{6xhr>YoSCWV8>SHWu(8d={9*f@{@j?>MTsHx>YaUyi!97zv+fwlALhL4Oa3VF z#f%K>Ur~Iq(zAEy<2bx}$yhbBO2qrIkctXmmX-QQLm{-yWy=<3fmlt z=Wr{MubiY1IA0!4bbOAH_h7qV`;v#d&aQoLc{sZT{&nQxWSPGJ@^EiVY`8RCz6x7> zki6L$@^IDv^%v~haS`N%@CQYC1|tvGxp3Lf)AJcE^5Gh5416^G$-{l)=tB-q&u8HB zaC+6&GUweh((}PqzDtfR)1h`;Fk>^*x@-Nn_Dau(Q)#MPoi7iEDzUER4~#9xHZ*xS zTdr>B%fsz71_}I)S}^ zkSY%+)27J7Ns|7wsxxrP!MtdTOMx7lFE{jl8nd0$)Xx@xFF7lTQDej zxT2%x&ouIIdE$Jy8xNK`tJv|q&WHOUHmOpK$N6yQW1am3H?x2(qTyno*vc(&ifoe} zhh4AY@R~-%TiwNVgE5XJxS{o0MNiIfou|ckPo(8nRP2^><4f>XS3EDdDoz={Ks=r~ zM?*1RFS)8CKp%GizDvN;upD0b6(hfOi1VETMKmFP?3G_B^MJaN#Z*}W!wJWyc;_Qd6Z$9(UmjV1=)xo6<$Cj6*itJXCeFd`rFO3d{tbAB zVGs`!W!Z)adP2&1X(D?iV>})qvpIze)7aD6x`{8VzS!7KK1R(K8*At$4wTXeU%{uB zlFCE{4y_XhyQG|ER96|r=}fhum=aZBf+vt*bz5R>vaNxG$(jV(25`_+*uB8>M{p3{ zN_;bM$UKx(RI9vr2$T_ph*Z{9;IyYW4uP5o`hH+PzSx*Nne0^Xz3RH)_H#TGP^!}x z8}rXw^UqroAG@pVL$bI4gfs!?0ZLJEpj?6}z##?YpSKqF#m0QGF-*7VYanwdo_(Yw z7g5J!RMkMZMjy#Uxt%pwLtX{UpT^&!aTm%m@hVFdZ#Zo<{zU5sb-$2%$KdHSQaM|l<;V2Z>VocCOX=i+n^(% ztDn#h!GL=4`3L`yp~^Y;#rH11{N&ba+omtt{fL{+v@9yO&kdASHthG-iVvsn(J}GO zbLMV)!t!OtQqE9|&zXJRjGUX#I{&|0*S@g!fAPhBE?)R@19zUb;q--H{lj?ddkl8ZqNREDjE=_DVxE=92^DzaKQ-=?`y@2aD-Rt$$5pWNTw23* z8gAQMh3At-LzKDcDo&2Y6D`d9`@Wp(`_}vJM%L*Z;X06Y%!$Z4?*p1xCeC3*GZd-} zHe#tk?*;X0r8FH@>b0g%>b0gXXkDQ~bF6EWPaY>E-QU zO`u!V;#d5(7ji)VGDZBpn@T2-?DPmjFdAlnCMDjj{j>Qr%$=e0)T^V}x;~4Yz`whU1pKjcrFa66Hz*fWb*dj~v0()aFJ&QjNW zzE!wphv8$&gFWbz2Yb*LwAdvi?E&QrS`(0^q){8YjAz5_3*>lbkw1bhgw=+_ibmE> zI-7kRVQx07)3Eqg^IpQ}aZG4RYAf`|X7>g=9JbsCYr^Ddo$to-s5wnv7SVd_k)}fbk5ZwuhjzP5CX2hR;Cbo;tq; zn)|dXorcf;C=?zw0cxcN0x(YH94XL2%W4*8zqDk<*5H8DKrrPCD z_+`7$C)%v`==r>)W?Avm)o`P z4KUU%FerF2urIi;vnE+icTGlBO)i0(gYc!QCYeswBz>|b>5~U;NZJ-$OWKY*RD(Dz z-K%js7$-uDeIhG>8P{cIIM7*4jiV-9G32GDia3@Nt3?KGr%JBRbEZJ?Ho6btlXAcpl7$bu|n(VZE zaC_v#Nr@$!^y1skrsu;}&kC$SJ}encFfAYUoGgi0g72K%+b&PfXN-tLe3mZH=(Kz! zte7L36YW9&KD8!2AFffe0uvnN*)uJlToH$*Vm{tSRNQe|0r0etjy zVzm-BJWE4H`TDb_xf2){C#5a9(I&W-;5uF!_tya?zP<9&LG~&@Q|#BT;XSy)Q98RA zK$gy)d6Ynk%Ac8Y=FOWof8MP5vm8WtXBHJ90Pf5M3*f+<5{w1LSxa79zr6NPd%f?4 zEL}y0<1`+~(lf!a5{UO2SJyBc!NnPnrCD}I6mdm72k+A9MWExS*YZY|+UI!7$i&Mo;QsAvJM8~c52`Gk-OfCINww8GPOrO^7{$m zympApFVpjq%TAt#S3y{sO!>Wuun^)*#u%c}?TZ1%M|uyo7q(>kk*}TgZH+?)zOo#D zL!aFz1@+3Teb8&7s$@x|G@eKU7H;NDmyR9S~JHcAB4 zryZZB0qEvf^FgnurC9ay+E5kXi?L93HSpyr0Qbd_O2E!z(Gw!!c(fuSYODj(?S}e9 zOEa2*(8dDJx+~)mp+Mds)=Q%1a1sKnz66#=^p$^Bg5c-=Sqbbo=zSVf(=9Y{6ZR*T zO8Uf`eGshyFFFFR7pW|*3P*9C3pyS_g3oiB+|ZHeSf7O2)ov`gvhzZS?4OkY7T4G$ zjty#W#AnIuyryL2kecUnaD>;DmWOJ@_!r|H zy3@f`1+zEZX^=JzC`sk&NU?RT1ZvRApb}>fO$eVp`&MYOLIg25y(M&(5va4KIqj4 zy$%ED)%p-4v=^U#_;t!hy@EmEQ*CZw{<dJq$K>r=VYTLG89j z_r2_jqVFeCP_L67-Tyy6nfk3;|1x>ryMI4xE%u4$VAbt~dOcIn`$oOi9VR#Cs?a7x zz0T*iGavOj5F8_BmsLLM)knR4u~Dz$%eW7ECFqsk_qlye#Os&AS8sx!+u%9YEy@?P z9)^$G)j8H9%9k1OIu83CLr1($91!C5-!NCu(BX4j2|L#XspPZKaJz;FV@ac-Sln`@ zTpk{I#{pi`fF&%G8(7jMw|gv1rM)a`4_s~~&4HD`68a>tgub8!Oo0f^v94A=iFlRq zUNJOELZ7#kgy`6`^jBlukoX!YQ7$tu=_MT9*)= zB6PgI!A}{$PQ0JHCQ+_lkgYbjEJwSl$+_^$nxs$GBz-~ae*8+>L&_JlBu;qZ_TYq% zK_+gT@KK<7S2OoBX;fdf+|^9D=h3cCtJk@Zy6&r`kt=3w&d`@0-Kor4xBdso0p*hxN$``cmG_-pRZJVKe zVrUxmd%?%u3MY)FA3RQ&uoyQ^Sat_K5+6_Egk^W&NIg=dVB>!T8-~@URC|=mj={GO z#-$rlbnX0u0U}g#!-sLT(A9C6C)1X|ekpUuAxtEt^YjN3W+xm*n6T(L#VDgTEH^t2 z7y7I60v)J~`P*+SMvv z(0W4oa;&X}#zvFz3Y0H}l?MhX@-e)uoU14IjOk?M6`ozdHDlU`DN*4zYgvqYNJ9*h z(1!;=+|k7SvGW9)5@oVZfg6Nd50|_z3771=5iYv}ui51DU}cljC!3r;G@A;|5i1=@ zyW7z2Q@)@@CN9&GwaIw>LBrWmy{F@`2%(XcYNbubwlA( zG-UYuC<~`bZCFMQ$1J#oiWo*4&>MlvvX`kgnF+sa6Z&ME&=<76ieE{)QTc+_+lKaz zp*6wh4GUj@0PmV-Z*Uqn1MNUyaUZboOYEBWhJ~xz9}FtoU5hNEyB4FW7MH*!Q(LNP zk-S6JB7L$J>67bCNqY#_lD6X@;RINY#C>eD^C976`ZS!+v-*I9-+f{S<_vUO4P&om zD!v~L3=+=!jDUUnl$-yQo)000S%Ek4%W}|Uf`pSxvkw3E$@E{P=fhUd3KXN5%#kJ& zB%JG*QLyFfLKt-J=Nf~MRA_l7NO&G%(yaW$DQ~9dvll`D^LLad6C_+e*Hia?7t2p~ zd3cws0D+YHxg;dq3B4y@$qMk7_3RB%-&@2XfRZgoGgj2NGoO4=vjQAn%*Pv|K2F4W z6TiB>@{MnQP^BplImnldRLVjX!-k*76=kfYQ?)3H4M@LGQEV7Hg=1)Ji29w9fc~TN zc}h_TKj#x!)~kwQ8OnQUlwd%UbgF_h%3MXsM?P8B@wiGj;Fv?iwF@4p0qO3UOViB@ zrg=}$A!f;{3FZTflaR8a(E&`F8t|EGYZea=T>R|00_QG&d|bR``M7whAog+bUUC3r z>;GD~_+&$4(+DdRbI-z4@7U7h&Qf8U2UW$5h{&Gmqp_%6V*@-3P^FpBE)qp-d3w) zfPe{1;!}7J_Hpr*kwj^=r4BA%)J-28TD(A`THr|#-Z5asu~=! z?Rh)_8N4{T03UBcb*R`H^0B3nmC>+ZVp(Kj%c^iime-7SNX4Fq;_;ejNgYIWxSBHe ztZ!M{-pRZv57mu=B|AIY+M)EHjPX=lFBjN<0;Y`)<_+~NOhMYuz$_CE0V3Y}qkYi_ zlgyeO$bci~rGWQ$M}&nu~7(1OXrCa|7>QR`9hWo^Jc(-1l#P zPpQSFU(=pI@DD;)fLrj-MF;q-;VKFF8(6$)tkUigRt9+i|5(dL&wGEdqNMhQ7#%H6lmPY znJYnaLl1Qt?#N$^w;O3RgqYj5kQw=U?sYSK8dcO zZ`a4gU*uWadh1)&`VPRw6J&`Bvd)4_ga{TJq9*6UFKd!MS(Ehjg^SPM^>OiB3`wIq zwSg^|p1mvM;!je|g~ePi84rP#Q{gtiJp}G*xYN}&2SgF9Y)1NIGtw8dE>@w#gNsMg zf4*_?=V$IX#Ji+)p8jz0?1Y~+E`AL<23`WJX1MskV6B5YOI?@1U5{&a7}ACd7oWd{ zcl4Z`@a;huJ>j?~r{5veJvr$#EdB*)%|WD4N-GQm7eAqZ_%^XWKg`;*H7=faz$phr z01Orvj}h97N2R9wUV;g~1eec#scNd(@XN7HpB&rt4F@h>u<~6S7r(-@3%F*?T^tur zX*9H$kVXr_?Z7qJIlfN|cHRY-?3~veoy4)rCYRXuRf_hniiaoX_JG3}m_x+H3m&PV>h76K)6EN}c~8(G zX344v<^zk9kg}rD0Zv@JEX8Mzix;=;Zta*oYgPB^gapqXIRISz+#&&?xAnyzb*L@( z{YBRokGBz_FTO$PfhY6!(#Osz;V#5^M8(5*L{I(huY>+?h;!G0@W5~i@yd@PKd&K9 z_9VuV9}T^5-N&MQMTpZ@iu!8wJNJzc})XAkGa_WV}qzOXm6q z6-UPO&M$`i{)%|V7Rp!@QSvGupZBYXvsJ|#iEFR&6(hg@Mx4XBDu>CGA4Q!mK%DDT zyiDyuT>RaL^TZ({J1lv;%g4q3Zqpzy4NH?Lzc&$fFyicnF+`)=*P$;SU-Ycv?bjDS z45)aidEg`T*>NfQ;(b(nRf&&^2NY#zq2kBk-jl~$R()67%tZU@b;*Wq0&`N7L)TSC zp*FfU6jMl=Nl3E+&@>I5Nvt3^P-x?gRK{yoqK`XZ+a(p%Djgwh2At!A+kJ3*wZI$Z zqFY=$4j=BD*ZSagoSG5!!R;1NlUJipV19ISqv{%`j>MM?qg=qr8K6-LbJC8`Z-qtwT4)ToQu@(t84vGlU53PCtR zt{>BI@#?w~KwL$|z95GMw^Dqi?>@L4ou-=TXTko|@Z^|oVmE<$e+)+g@y)tRo%ErW zWRwp`J9ojN1Q2^94_#hp=1^WI<&1hdbZBiJ;#g%57e&YPrH(K`&>PRRNb zXcnAmgI2^bHz^JK1wy-%HGV}_L`4-uPI$%--&hWG%=z(}m@SIJZrg)?+SPn|5;6w5 z7gOi}m#kOasfCmV=dVe~t1hbfH^)f;4eS^Z7+74v=OCUqSJxT!9(;>Pc{>s!H=Hpy z@>K~*`3P*w)oqEj$+m{oq;b*1uRL-lrjX7am@;D3r9#w)*L!oKR%4GjTtsO{K1EkY zvH{~!KWA-K>C#ACTvC=I(cHeeXAQQLvhzBSzgTtiW<231#SQM9Uu;Qxm9&Lods5z6rs4ef1fn%B-~8d5Jw$+tDx z+R%Yxoranxpyyq)x*Iy0JBFH*^Qlkk>h5fA8}b8xUUBjGGVY_|iHeus_p{+rU;Me? zt2ee4P`=Fi;`hdW$Ix-{xt`ENmXiikgfPEQ9y;&AUJg6krOQ*N z;dV`8AN&ZTA;jFa-La_n_i?`>byqqpk6YtpmqOMME5>qS$tN&l#J@{q4Sf<>LtoJP zGJYlPO63b$zcjR$3~jh{#k*^IJ??OftERDF6NadaQ#@;0?}v*T9~2_qU5mVzyB1qj zEfSf>GPJ8&oD09KMfzkd(kJyrOWOUomNcm+KKHZ7!@H~aArxu8tBSezNkd>E7eUhK z&TQZcsz>h}G(4NCTo(;4%gm-41@~A*uT)J{1((dG8ZNhA<8ZmXS_@Y^BV6vM7QxCU zq)#>>eL?F&6`Dhgt%w)2zHMmVF|-d2ZJVK`>xf6Q?^;-Rb_&#;MGi+d1nV^01P2s9 zf&-FMyR{i}L!W6&V9(CnX^3%gbe#T>@a%rWhlFRRDTdXCWoD=0!hVh-E=OnJa}al! z3-?60v(z=8Z56KBSxEE7!LvIsG{^d`@&zq!>r2`M<&z4=FO3yuUs9gCg?IFvjQGY& zqbC^m_OK`V&usLEy zLtoIk%h2vszMw^>E#rM+Xv3!y-rauR#68?cw2TFfhTZ+lwDxl#2nR8OhlYH&(#|1b z895ZQ;1--#oZhI4pd zI^plgf95xGg`)J>*D@X7gR%l#xX?#4N~{K)I>tHmW(7F0jDYP+C;aOOXE|v4(+PjW z=5OLNIBuMxqn@pv6(ERm4`u?>pHBGSJy7>hdOl;2QtEQo&()t!_#+;E5^G|2dH9Bt z6(DF*m#06S@b~??05^B%!=aXn>ECsA!taZ+N~5)@AFc_OrW~s%wodqJMX`0luTd0R zCp?jsG&c7A%aY*G34fEK*gE0Arzo~g_@66^Wy}ypk@MLH;e}PL(K40q z2xRho#Cc1_V>^14kAh1%2V*;Is=RBa{J1>43vnJ(@i=LEI5RPZXgCowKMXlO(tEJy!j^77(j9U^UG+m&0k6uk4GW41 zDQI_*y{`t|2fPDqu(JT~X&{;m2>47G69c4jqvE{~9X?W?sFfZtgiZy$VQm{!V@J>G z^-1jgN=2X#;~N>I3^a~r55yz{7z+;{DeoiYtwYcsCSdAaVoMD9NO`H$-bc#kEBwEL zwNf?pRakx`0Anu=#bPC)(xrHlS{ALTs!S}KX#|vn)RTmGkPA&jG9M|AwPdVXC~z0* z#oO_gm4apT)xZlhX8~rllB%j$BvdKDr)QwQrHELl{w7eElM&fh1K+S7qs*2TG~x{5 zay{vD5p_IX{dnS>rg6n)^wC4WM-0<_Y_O_;zZ3Z`kFVg0gKuc%IQFA178h;vIQWA( zs=!Cei}O6N_-bix5J2R~KsJk7sVZ3#DUIWcY<6BDDi|p53@I|8@p&^9XXa9F$0OyxsKEGtF%bOc7x4Ze7*H=h|KK0!?3{C7eDCth zPj0=oZTh0!kGSbfiMY-UlvOtD_tuIJr|;1*@y&DQZhJza26F?yKI6roefrVmA8xvI z(mvn2?8H%)^=FaK5hpj_{NCfQeB-(2UKsPj(^phu!yY%t4gBW=uU>h>w7lQP|MP>t zbzeMYCieFPy|DDPeP4g(g153i9&_Jc4v59@IZDtsU3K6uvYvUSZQ9GH-n;F}y*S@_&B6t7w7$!xM|f9)9r4KihK4HMh>4doH$W=3;T;g?2wn(ECQa zmt)V9`;h=k3AFnHen0ck?mpVxN4qPGzmIlr>*{JbV&;sZ8MB&J$@9-v$(=STc#>bo zeZac}yo>z?Zgmmyeg=5!E$|0nbFAByFK9gqA9w0=tjCovGva+L=AfY?-Y0m13|USZ zOcTO9uRL_PZ*mpvJQqk@Oe;@ZQg4Kp);vD8gCSfnL zm*L%TSyp^*?FaRK1!B#C%@G(S`hwO=hKA*U2n|}pg?e|_wnQf_=02Y>c*PKgc#Qi! zYg_M%L+hHT^+5sO(=cAVpSvboRZXIN14O>xk6h-$=2#CYpG3WG-Z67qDNxN5tO8BItePU?o=yx>zu7!SQ$3Wd# zB9`vbtU7Y-i)UUZyd-c=cv zn;nOX{W*#@bOb!R#4Okx>jC8pS`%;=Nt>vAP6YgfEv!Ay$w~7;J>j^=@#{$Fo}6@= zT!d{(YYw7?(uXi%?QH3>RwNG_YpTKFLBsBiNo+v@eR7k2n03MLqj2!Nh0p~L%@jr% zJSVyNu-fq1*kmm0bVb}`S-tcQ9tnR1Qq6{ylO26Q>nTHfM)`sk8%@S5P`(sa{@Eho z-Ccm|sD-W(NtQ^%Dk}5r0`3`ehja6i4BUJ`?0opp@Ry-RB+8wQPoI=gleGH{jZ9q9 z$l7GQ;X}i_+wfbs+i|Wo919u^yZnZubsvwB9kacMYuxJ`rH8+=`o`^*Hf!>c=-{oM}tO@DXewtTw!} z)3|H@R0M|lK*XPB*Sf1<%D3epJWB}WP0D% zCjt`5XLUXo-;;KZM)c0MjB<2qS&bTWr|{>;@cI)M#XFQ6wt<1YF5)Tf+m4myA*a z*VE=O9bn!y?NeiZ`Bfvo4-qe1C}U+RA73rLjyS(i@z`Iy%E#yZ z0C8qd?K?j%AHR$^-%#;JWXLZc`F#&@e!|Z;Fqxj0On%HX%i0%~CR2WIB8Hw3ZzOn;(5V}6UucIciA5{J(aOaZ)y{5m z<}5U|hhmGXYVgXLoyW34Gax?2v@(kfPA?~4y zh|n2(4tSJ+KoS&LSDjc~Q&m?j>gO?pL@N`aaJWX`Avr)grFL4ah|-6+`w(}*QE$da zo=D~5Xk`S`0p}d{5Fg?WhA-v?AL8C^?Smc>0v{GB=Xv# zOyvwLClU#&rEO_%sBcLooQU>*BXFfWdAz#E=LPbfCfE8!#lW+5edX||gp2Uf`mdoJ z{zHuIUVQq&zmJyxqx@8x8<@Xt%H55XH(X!vlOG@X{7Dak0p5vExVeF=E~wr1=)RX- zQS|-9tvTzD`!zIg3Htd{9@+AC*WDj3{n4C*zj4g-*!`G|b&eNW{tQ9y8!f*S`=Q*Y z1h`6|<&WaGGaoJQqvd_HypNV|>+V|B-jVDREsr+~Upf5A0xQq&``NHW%J+b;-UNRT z)~Or*AzX9!ULrc^%Z!xI!+yumk@BNG!H6s;4WLw=e2yz%=eSTzIt{mL&c(u7 z8VxEI3eFTD^zV3U>Q5i1bZ0iG1zEp498sAGA1~Fd zmh0ldWx3g0qu?H^=#{Fuu!!p=!>NYLE!a3*Zn4(F<#Y0yd#W5nvKi@<%}8I+x=4lQ zSeGha(7MCW?l!b-hW3e}r6c6g^t%>9o*jd4ALMd$L$FTscLs=1$ps(6l^e^+O?{>< zf$hxPafCL=LEz)r2Zs$G&oN#Ms}0M{PQ%4LIULQ<(edmKvtV*))WK?xrc9G*!VnPSFk zVDp!jb{VIT@w@>v#5-~Ea*WT%ZM5NYvANhAIc{k-VeHZ!JTjgWoJ71|rF=o_M~3#4 zp-sRYWju|M*T{Im!arMNyu0}c33bnsP8MG4+5D-qNH1@~B6RLSn zfg42pdbniaNw{R;jd0l&cuf{Q4_2~p`XmddFDMT7kTf>Dq{OS_^DUC7$btH|B!^KQ0eeAo$ zrXnNAb;vf=lG!h1Ogl(I`o+Q*pf_qf zG6mv%b?-t#$H%@)=}StPV5Mcnswx-Hn`8J_9k0cL>u7xZ^Re$jV3JFE)>T5FljqGz zbmMD&cHT=Etw-PgrS<537sP?Ytc1xDr~Ruu{-mPS@4sj-KLU-@jOz;>Z8#gdeWh@?hiGdyf6lJr8WVYiQW_7&bGxD_I35^#QDpeV=#e zs?(Z%?7NSB_p$E-!M^j$xUVNZ4g1~>zB*Lwd+vzgz`kdDLJc*FZzOm=jTuDz5AUu;-pgH! zt*RE=;Ia(usut(MFKdxLS&Q`bg?-Q7^|9|<1WBVivq3889!)GGr8&l0p*&(+$Ap_fOd(B&`B<

      u6edjMwiPN8mU!v_`!LT-@k6S}$}{n{ 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 z zE_qE~uqEE-w1n<&3H{s>7B|wKr9_pY2rzM}CvSnUPRDN4 zjfzpkQ5dnrpzPslYxtHz=8`)q%xgz6gVy*&rkW@>%Mh{-V73@_zx|?@LA0F z!G9b+VDGc=AAtWi_z%H<0sf=#Uxxn}{GISY>wOzOG>dl+{4MZ5f{(VYtmo74TjPEW zF0p=u#QG5u>nAu`Kf&?yLczsqTvv@_Z&&EXYFw(u&Cocv#x2#j3p9>4PoBY*dcuz@ z^#sTFID&ge<2ck3+)oE>wMT#du_B4*sB z8h4MzanlM(3qImB>9~D`;J($kLmJ1eK_xA-O~`5VFA8~F?^#AtNljI4|BBM;nc3^h8)tcrRSs|K2eJ1X$aQ^=;sxlrNehp__gzi#(kKB-?E~hjoaSb^?NWM8mcfy z48&9bh%P#a57aGaxFm=vYu~37+9fbOZ4^x@k}whwU2G7aw!nrty7L#;CsW5l!v^w+ zQ#4f7R=Kwg;zR2j=HNhrd4J&To^J&6VT}lLu-i&0(6tNV(;nC`2URO;$wfJry&BAi zHaEKdC>nC3`~1>(8-n?qiI6Y{4UUzb9zlG1Dw?JI#r4BkH^Q0+ zrl*&p!7c-uPtPDey%o(D_+@=Q`;BM+5zOZ-Me`0G#8RQ_9mJ;(uwf1k{F$C>{=Vyh zU_N~n4f!zjbbW&OpqRmDAAVV%C*0V1S1=!HZ|G+bF!gl(6dyv=O_pn6xa$|Vs~f6J zgiF-{(MW=_FqF6t!&qwlxk6bqY#ZV%Op=8#EX<@J%sD}rc|n-PL6{YO7KZ7v){V?PcEW_`EX!xc{ zoRuDQGn6|`Kb%2*VkDf0|qq)5mb3g}SYQ zF^Kvp45_hGo^q#aOpS@@qA@E>OjnKJaGb8Y#$f*u<$7q$OD3kb#{9#?w9}X`OiWvi z`O(C5)R>c~T;SSk4EI~3>!~q4OpKJ5+g(z=px(1Us8|;9IMOA4@GxTtxKrmv2qtl` zvCttF$;1pA$~^>?4L30Z6V=W_)XFAim@G@BUBzAib-wN?JELI^T6wzLi+(xRFtrb? zkeNc#wD5}swXx|Z^3LmgPmpmf?iBt-nT(JpkF}7pnR}+dsYH?+Wd$Hk8 zFU)aIPE&%B#Mlr@(v&W7X%+Lz>OC3N6&_^Ujw+}{?SrIzMB^%|iz_u%eR=Uf!=0O) zmFBLkFKZ~R!3U0>GDtdqTE06i#f^QMOZAP&&-ao>rBzE;OH*Ua4?+CNh~$F&U@R8n zhC(Vy1uaBSl=vQ#)z()~);25>YX4%>qSs%cqdr=zsglqn%1RpQDm+V|7|Kc(xJznk z7F3ia4K~J(b*Cn|6H+E5Mat%rt zK4iEGn(fSVbT{(%ESNfLzAPez62O?uH}d8^)xjEe-|fyB<2QC=&?9u0qKE zU6K)#VjqDsgyZjLx)Jg@q4SNx8S)jn-_hOC+ox)RV=pnuNZM-Ghr}~!P@#Slt1#cu`p^&Evs!O_C6O%wc9 zp-1i>gA;~Qgsw*u{O$*SdK#XaE_4`5g-qXUq^|%pPfQRxj&(z&uNvulC4jkb8U$tQ@ycJ{Ca^d42`5u znb0*=zFs`26&`+Rh0y8z+WKV-VXrKmnYOu5dI;GyibBvqC8MUR1$JKeDTYIh(^E$j z6`=c6UsP4>DX%DNC`zj-X{aiz_S6^E)RtA(*H`u%*gv6vVtEmEXdIMSL_=3uF{gjc zocZ|PZ4^fw7@9EA)hGDy+uN00>#3-!Sc(@cu2f9T;_$>em5!^O zSp8wNishNsVMczAJ2g2oGbK57k~=3iBRe-Ef4Vy(t1vk;BMoyctzvoHbqgakJJ(&9 zo|~7Eo#mdKJdt;a7?QV&?TTQBF)=&Eot-iqDH9IRmH#^gvo|T-E znU0Tbg}6nt#FLY!xl_>Zn3|E6KLO(ni4)#zoV2{u9Cv>5cq73iZ`CZh%9?vzX7czv ze4W@TmS=hU)O)=-y)il()2PPyAc1sVt6DY3bfIvAv z3Y2i`*wZ)}6%aOL(9omA28D|KGb_J;?8Jn@!8tJnC|LqL@G_-4y6b%jS{KSnvyX-t6(x_%pzkOP^0Sj3e)XT!RJE1 z{E=`k|1v&Oq~5cMP=>Vff8;q_@`Y&V1z=s;|$9D895 z9>X+drYC0=F)gLIq51hHK3L;r)FJI?Jh1YtyA}1k*q}}}WMR4s^3rqN$*K7nh1A(Ox#@WrS)?l&v|*u8et6{+8M_US$;_FWmz)h1 zo|&AJlb)s?&sWw9i(yzG87AF@q^C^J7g4OnD-Ic0sxYgxl$cmNc^T(GaG3IljJ<>f zS5Z|~Ut3m!xt&O5Gjhw+psGH#rfx!MT^6icT}4S+8OB!_NV1&BBuz<*IijTe>Yz60Y*u=FnGhL!p7{`qJFKg!Q7YTF z=py6ffXX&&V}S^U%)=$UOegCX<(4Uevu-D#mjZUII;;swTd5XDEqJlXz)xGDN}#@G`f3K#f1_Du zIg`?->r!KaY$}%7VP=pOrp^+tdK#batJ^F?mKi&lQtB+xlaQLsoK#iryl=}|U=|R| z^ipaQs{y0Xm_;TbFFSQox)dqJ=dP%k)4+v9(6IeCgG>r2VK0b9%#}8jv`Dx@2CqMMx(=#*GVY#4R za@85Hg}v}Xb+7l&ecv zhV8whP4{=6?ccYc+t1jqLD6SFwJGc4BM)T!_ulo_JMZgp3s${iC=%oNYK`lremkmv zz397*f4O*L7rYXirSKojn?CKu_HUgtuQ9YNqhR=6AcVH0y@zT`xU9;PshLptU8Vcw!t^t;{?8bjLO85}tJ59<^ZfF0B4j z_;b2%I@GJd#x!Al z>4{;6Y3SlgbPSG@TLY9=QN5?MqUOXfs>68gL~tsp!Gs_5>Y@{tHjATTh`G?}xfLfg zrB!8BCACZ3^(P|tRAwiFkCo>|CxT&B(W3f9Pf2Y>?Fmg9D)I@aGe}%Tb+zY&q|CFV z_Jl}Z-YH3v`1-&%T~gZAbVomQxCu+2g@Ue{>ev*M27s? z6bD4tA{cUl(i6;3XL)GCiOKS@JOVUQ6NesORs7R(mZ$6J!D;?;O`{ox$1mrjraAZ# zz(|ccUOE5S>Sw0eimv7Srz_i08Ty29oK>soGzULI%X!%GJ=BV=<#fVStEjdA5j&mS z6Q`*~^IPfF5avI$MabXt@K{6qy zF&0p3g-bOdr%?Rt~$f*|cW*P0;WnKJ_ zP2cssC-v&hw-+RCoA>c(NaT;cGiBeuwsem1X~dUX2b})mZ8K6AF8_Vll;3W=xB9w+ zue~#1Yh_)_QGY#9{?*h|=FUCT`-PPq-Z-!KO$8Tc%zUKcfrFR7{^Wc4#gD)L(#*F$ zxNP?6MH!dxYy3;jC%fO>yZ6Pb-fKHyH_}O`Q(9Q3yee8k1I3M~NSu|YcMHpF8E&;#1=!kpfry+0s{^`OuCU?IvC)ny{=J{r^7(+(7jAiO^QRNfT( zPwl^`?2;W%#gBe>z@DD#2M@p2@p1K`H8=Me^IK!P+i&@2-lVZv3x9p&g*_K7&mTYf z$)`V!x^?zVahEOm%gc`pzUa+w=6$tnb&HQb+~4iSX9}M5rXGHC!^m~h+Vx&Kd*7tZ zFHZUBwVu@l?rituogF6?Z~po@Z|40s96bH5J{L_kOMWwCtt^ya%r8{?U+qOK;m9_VN?gJo(F>&kqlI@Z5{Hzq#rA>kH4? z9l8Cy&fz<6?w$8~Sbf%|4}G@u-{I?e&Msd3*nmTOe(4+b^H;kXdM>?Z*7@%~9REc3 z^!y2n4zKzw@s=5##QdLU3s3d_(tX6^*S$J&QQU&GGkTqV&zSA+ zCcino-gD&O9;fHzO<&Bq?yIYp{8X^z>Zk$hH+Sg0|K6Y9{iS86xsQ!F^~Uzs&VJ+J zc~2dv7#_Jl=eO_=Hcz#CC$Rn9D4I<@`3o@wnmuYHF;U2;q3 zzdWYC#lqdCk*og^@$-Oh7ks^|)0w+Ief^f=9uxOov*wKV2c5KM&4Y*TduiXl?p_&v z-DBssj+i<1+%Hx;|GQ^e_{v|tDt)^1$McK@D#?H9{3t{vW?{j_U;c&*PzujFRdd^7WfC$6}o)mL{c?|D<$C8u=gyXe+W zN4`F^|F~J}5|?%D@M>hG=iBh>|2i>iNb7l3>(|$|>izDm&*ZLj6@EXb^ZEzw{IL7X zvgPhK;(yyT_SA|S-!AApbixPMxBOel?OT=^&ySw5@2e?udu4pqWzw?P_}d=5>$c0z z`DMYduMa#Gaq!8aBT)+uoPGD_DVYafykORxg-@*9m;U^es;VLX%04^J{aux_Pr_-b zBmVwa$7}!l&+x&QFNvHurQ1zyN8bHhR143}d8;F{TJ(Oa^M~HXIWO)Q{Cs)WJ3feh z#ge<_-!L#@@GCc}PA{&~gP>%VyX>dogo{BF-HBi`&hp|mR*g=GFySU+B5bwOt$=ya+1qJ+($19#lU_Jy+L5QyPmg|X)y|<8EZyAw`~5FH zci}7lnSN{MsC5IAHa&51>+8o2sGarh55Ie=Uw{ANgJGxFz18lE#BaX3YSN32SC>!! z+paZdI}UECNqOk~K2xT+22JX*^Rw}B7w$RjnRi})y7Kk3193OK@#UT|A9T3voJ$_= zd0qQ~yL+xXkT?I~2OSB?1BUJS_bGX|J`i!uk;BiP{q*RCXEeO>(YP~bKl?A zw(Ieqw-3E)MT`H}PW~^}lOMl*;QD`hUzvSw^6Zt`ts7E)#~WvCU-13U^^^Z| z!Lu>%K63j72WEDhaNkd-uN)WoLg(*Gx6SOa;fDR!r4OBdpJ(qW13&I}IBo3Vwr5q{ zz4(sD4vp#)G2)*y4ulOVU$Xzwt#@2F>6V}WxpMh{OJ06$(t?C9DocN@AN_wUy2AFEgV`rMY^KJ8a_%crlMdPVoeuYB9b^LY2c<%jm2b92dkBj(0$ zTyXUd3wswee{dAdaRZjA0nybG#g3lar)e*)ql5J%Gy#+!gR-wXllbXLmQ9IfYa9|!JhLmA7L&_hshu;C9A zz_rO(0Hz4o7Ff5iNXxu;n4{M)w1jhF+0vJTXg;oqxOiaJ3S5Dkc={5H9h1OG_KK4Y z)46${>=h^X+!k8S(UJRk&?(uh^xxqs$7MOnnR_m|_-^3&IbGro)wmHFH&x@f0gcdc`!$KXK;!mn+*ca6h4S5x%fKO;6T;<6k+u%e3*PpKnX z9@0|#qPi;OVugPLq_qzxt0SvbBrYp_0Fc&smr&qp)to(?b(niS((yS=ojv?h6(roK z&PKo{2C6frnQ>dfzaxY?OVMh@0fl|6>de|2EFPQ<;~f=`DYMiTVR1gS<-neZ@9SPGIV8kr`X+U^TvVg!^d3)WJyRJ4|| zy$ywN4(@NoWhvfyfO+wrO4uhxU!?&%DB*w;%Kdfn9HoO9xhb7YddgJ7<; zipGu8xcM5#j|nC2RT{Tm;~vwvr!;Q6#=WF*do_;RBniLYG>&hr1b4a#MHyW+Zn(zr z4T;e4&C?|+zxSAs)A&`>@e4bl+d>iT$7SRV+EY07vZDAHTyevT;uE4*a2F*&uILpx zfEr;}xL8qq86 zwIN`KqF3Ak#MDC5kPNn2o#++J9|C$=ri7NK11!(EQwwtntez!J(d?;(?2Y=_tW3>R zSud4ju~3OBq%$InvNJhtDv!eJ084Ape%X4^4_`($e)DBG0%FAeNdhGvIEdwABCSY` zFV1w&g3)RX^QEj;Yn$~dM2_a*ic|JQY*qvA1!7AQ=voau0;mR89NUj+$MyiKRJi}* zcY%V~A_eCHB(`k`Ac>m^NNig!pt&jrH$M@mSVOG!Or_FgXWd_t=UJ<0IpC;JAA>%?DIaRV_D9m5sPnVH)+0`Ht|=mYUC({(eV? zbR!(bc_=ofhkJKwp308X#IVAnHHMFExX-m6th=a~%_5h-uW9LrRtr zw)}~}S;lw+V9O{I&(V-&l+eZ2;EeT;~-3M7i!#cjk`zV z?$fw8H12JU`%&Y5(YUs-zLLK7CWN$T+#rqP#!Et1sBw!l?mUgVRO1>o?k02|41WxTeou-oxd3uyW6vqzp7 zMcS)Sn`U8dMT>0YuyDq9H8k8l1WB2LE6zy5uh`B>8Y%`K&!_zllOhNZVzGgu*`lT&Qt#!Y_co34SGf^x(Z-_~7AP2mc}X>)}5PA8`!ySe4ay6h7iWmWG%0koT+r^|(Zv z6B2Ds$VvO6LZfI|6y!8UY8>};7P=CRo2PM&8h3@pQJc#%sLdrV$7X_iN#piu+ z#{{0iHi7eW{gDEWt2oT!V2qQCS{LG!o9N406C+9yQ)9%?23w<+t*vfY{zjN`2~qOpKpL$5@Yn0=Kx9&NCoB0kF%cN7xp1~`QmV#rDLIRCOOAe zIIbaK&`u@G*C>uFj z;cmw-1sSLG=y?iy0>54bZN=~T3i>;KDeO4oU-;$BV;oPaHF21lHgTN2C|04Y=@%;K zbU@1#)CbT!1&skDqcD!vE>^g?8VbjKppD`j1s&TL9c`2gK55xeo{Vr-Kr6i0Nvx*~ zmA6;p1H$JayrpTQT%bt~2;YKmi(4_E|KPIoKh4Q-swGaAVWtA@AaMSXX?7uulMow1 z*r*1rp&drD*3g|013N)DoEOV7SPlo1-V+;03`Swrl9Y(skZwK8sCboSX!%D=K?Z-%pX2+#UrX<;V zIb#^_k_y$AESQ|N>VA~E=ZvPXj4;Ekdmbf}61x*zuTk_b;@&y~p|Xa1hFBJrl@`@T zjor9m0FvZc>`^&=6Vb=P(y=rLAc)s!T-+Apj5hGwVFUob4!Djs{}F_9TOn?DaW2BF zsmsCSZaS$U>L%czX_`4oLCjd784MgAWx?FX#!`HgXFJN1r!g?;%ncCCjqfyuO;!Tn zvmVkGBAM#AM+SM&$XQ#^GQFeVqpf;p!$({6vSqG-e>40`;ok-SGWd_eUk(2y_|PQY z{qWboN9nM*yb>LGQSh&Y&!U7q^-h9+9elRgg}B6K5)zw9 zNDdMe9JPz!Xfp(d5txbNRG#3dU4)J;PjIs|ZlT64)i};}3f+ww_o&7_sd3M1+>07_ zNaJ`mf;^Wi^M&6@Cge1DN`l~cN`lb!(74_j$4y#=jx%YvT1v_w!)#MG`3;SZ#x_& zHi`!xw_bUmp{;4B`f59supOo@Mq4tQaqVD6eGyUD<~UYICgF^qpZYvcD;ZZPf%6@> zajB=9)UPey(P8Zr$7)A14$Awf&#UA>$|u7l+Y@FJk!d|42{&f`lqpZ}nevzr(ty<-=5MtVLR#%q2wd!P2B1=0aXbmk zn5`g||HTSIi{uGi2t^x1qa$_XTY_;-e|?u%{Ky&ioOyM?ZCWI%mSHLWxyVp(az;^dG%Iqr{NjVl&DL*3xWM)zZ; zBc@qH?>oJop&4g{1EPYVkS*8J1XQ~Q zOa((nj}3e`u3-T$R;)Pm@9}Toh1dja?h<#h+KM~N*3gf2hUsXlqU1E=yYbY(sTCx~ zazP7{0y~j1H^NHU%ZdY^`C$cs{M1rF1|>NRFZ~qwtPBmfS{c(!C`!GxAkL}Iz$FyL zE}Wus@t^=MRbeJ?Z>F|PfD&|^Sd$Ks=>Y2c5Y^X`q(K0+&v#OoBLZ<^S zL1HYAk#fZFS>e&wZWm*21z@gpmV3r_H<#UU95M%2oLcu)rl3UpRwyVPza#iQ3h%{RREgrLN zy#otVq0_OEb~6){?G@2j#j*nkSBBu{WZm~^rvPjDOo2^~_PpeR1u z#N}%od-y`fK9a*jO3T|OXB z!l{Ff4EiCu%L>HCob!<+;oGrVh*|JGD8yB4w&bJ)a9qoHIZ{e(P`&$mwVPmoi^@aai#h1PcTRv)-F($wS zG0l87b=W5VmM>fRtDRACvVyy|82g*q4ADH*UF37sW6(9rK`!06j%`j!=7rd)I|Ua; zhejG?akM!lDtxBanvY_9zF;4Ln5UrUN0U>JMDYqVY_?uokYSsL*!GtM=A^%B!L{lc z@!e@om-jjPqTRT{TO#lhS6R+@TiuuuZyWt(8_eV>=C+w6YEwnyn$WCbqm4xGYEM z(J_pUEf0y-Ew5Bzec|?{?6C;T3<$R`WoL;_3<$p>z^1;A@Iaf&G%*cjxHkK@tbj91 zIMR_(SVd_-qneGvb{M(1j@GCG8wMLDHXFs1eaoPRz{+JhGz3ojQE)OIK@xm(eD<2p z`~=qgb5K*6$C>a?f{)(6HyS=h>Z&EU;j@L#hR>G3`&{^V`=o3Z>1djV@t%pR z!zDJ0kk~9jPBlv|xGzmQr&_llxM(Cs=z5w^l)-lbf@6IbI*-O}NdTMuxa{*;JhNK8 zQyMkZ><7v#p~8Z-qgre`5~k=mOSN@z94qil%*5EIsq*H#%gIu@l8w7bx~HM-3>ch1 zO5u-rA9D%|q`}inQxWbmC#I&(H{?A~p1EZ38w8H(^ZV4btv8W@xZCl2zJeaW?*$5a62B`H^elcQ?wf!l^g|8( z8&EN>IJF{NW{%K)%$XyOW9O+*7a&OsD?c^LMqHNbg;2Uk@q*q4wL&?U_nWE+im*wh?6;b@A6JzTCfXMDEpPAYzwqc0RmA+F{u zI2RP?nI4?Dq=-53;r~vB##j=!T``}Iduu2l?_8|Ot|2P?8q5W?#lVLvw?obe`CbTN zIi2b|P(4!P;IIsoA(r5w??BDPSs=ch;hP!0jj_L-;jEDLhQ^vHIuWx(feY8>Au|E< zL6lWfQ$nhbq71Uik6QDkG&S>hzlqC3({cem2R^F?da~YR_!yCR$H7P6K=nz`R=u_6 zJ=;z(?k|B~0{?3GrSR{957~JifseMN=8n)Fy(}#BkJO6v1@J$`eI@+Q;bT0k*16Td z4@dpPGrX*)d@eQqMYyD|LrD5Mgk)|=aGV3Ao zhhbIYS*kwFN?^DQ#D^i*7~J|Wn~8zK^kG>2hxuXt4h%n8_0iBo3_~x)hxwKm$iRo8 zp~&>Zv_! zLV`$?W7ma_H2&utBD1zw(<`6*-52W$GZtz5W6`eop0##!UyxYOy4Q?F8vj@{d%jp# z-}3thzF04qu}I?|3&OX>`sS0fZTZ@3#v+Y>EDi^J&+3@B@}TcoznHN|;~$GXbYHAn z?|bMQU#wHj43Y-1Y$ttD6@@uU@k{v@6gy`~C*FQ)7>W!uJU1*B5M66UZRf)wZJ2`} z6c9SUMb?;LJ~THt6&y|MbU<{c1o4Rh7AH}I4{VR|#X~0*1oL4kaDp@{Xb(ViF+qG7 zJIrxEepxEtoL%Ax=EEt5Fvo19hwYuNO%R_rV8a~MNDoc_%25%I2J=Dx05so#Pgg*6 zaY1|-JIt{GeAsr`{Fb6djC4Tys*FGMcp00|7} z@d4TxXtor?aG|BpB?Vz72VuB`K%5n8t{;X+jPkfkf0}wf8irjQgjpMexjqPUM-b-0 zAk5Q#7^bHL9YbGwh*8INDwLIr7lUFo=x7$rE|aFSme^M&<_wK7%_`cL6{{VK8SWH~ z>1tv+Xv`236Q?oBCgxO)nQUTOYYaC$q>Is*Y7^5*V=gu^zEZwA2y;&m=IJ2J&LGU* zAj}sg#)YQ~_=6u!@Y%v{?01jj3?v&W&FZw_fdh?oz)`bVCkZDQ@8FIa*Tf_aHTYtZ zTGV&8a4PQD-u=%O?gotSY~i*eet*v}YdrKkjXxY|{H;uPV0>o_FZpOQRIpjxM!Fe` zG=iIDVt@eVT-@Q%-QdH{{E>DV-;riE8g4z|yR{u$=8v?|*p4Uj(WuQVe7Ckk$o!Eu zKDMLAd^Bo%4BxHoKrw%$@X;rF>0`qbl?@$0XB`gaPc|fg$~pqfpDNKhTXt~j_$(Z) zlbn;p;Nw?6lOhiQ^`uBvFk1L8;@j zCuL7cNljwW_yN5fSOa`Lp_anT`P8|VXtLmt&^`;QEtMBAodlI%wqH+5L@xXei@*(sB7^l_-ek}<#xIxKl& zW=2k0+JuQoV+Wa)#r_;QD%m+;$e@8Pn>*TB$wSV@LCT7rXC*(a&Pu-NA@o~J6&LEP zQebS3rV>Cm)TD)}kuzBX(#L)t4#W0yp`OdWdG;~T zag;Lk80eVal4GD_KB|s^j{WEQW1yq_mK_5f$CZ~J10CgZ`7zLu-}+;uyCoD|i1OVC zx_eF9rplM)@pveH0ri0C+jMU_q%qgImayAIySdO92>L$PIK(pDTYmVQupm}x}x!L%Ymd$CH7oR6swH=HRHXQa6 z7hO}&Ww~`60b7lWuBqp~jIfcQ2^*=%)a*f1`4|G4@g`kU{K6rZ8K7~G5`Imkk8-&S zG*6jy&GCB;G;d%whEDSfkjrj_wZlx^0bF#NE}(oVmqBCkNf$1c}aMwf{U&xew53SB+Mr!E3zijN4abV&ATRDbNoIB&4HBW`B85SO2yJbTyzdx zq3ZKHz^8(yeHy8nm)}g#EHLSsN+0ESA!sJ0D|SuRtM?InK4|jC2_5?%q0+Y(4|*On zcVq}%J9tf%hi4)_xx+=*RQf208$om9B%y1nzOX#@g62Dut~q`Yndnze4&WD1Pv1mv zCTKcm1<-}4r*lA4Ytl9KT(;j8pvk16gQH$=N-h_GW}Qjb6hF#kBWO0}D0a=((=R~t zt4Y@sKi2!0DVRsj4d53b7uLUXK-1sUbWN4VDWLO!=3p?RsU!L2XT-Jf+ z4wJ4aeuu&4Nzgo4ApDw2AM49O&_ompT~qviMQ|t3oI166er&%*pqXRRHPwFE-YP*e zY+CdDD8CCpv&N)rDt%i)w*fS>rwhO42%5M&6%1yfF-?($pMsU$J#gFMr0nO8OLe~_((-7RN9(^oabYZwc^>cE- zuNX9scodm>?-{B*$S!j^nCO{8+wUgC=s3&^47`F2w8%nl+1s zuDSgF44QUJgs!RdO#r_^pgC`;&^47l=J#FDd}Goz$M2N$un=!q^Zc0Khe7kIN!MI{ zKLSnG1;Ven{Qea*@0)bZrSA}EMthr2AM<-1XdX4`n&bB-XgXYs2yjiwkNK?w%^H)g zsr<4&Zvah)6^fmDKiyP)xdb#DOuDA{vAsPGnqHSQ&yV?C51L0zx~B5WW$|x-=CoD9 zuc`c!Ujt~?nRLzZdk{1~U)DUoQxTlM8hR2JT~qnRCq2dmpn1Ac=$c9&`NgflS}V6D(K$8R@izBcKaJZjQ4#gF-Y5i~8XJUYK3(A1f9 z&GEYgG|yjkbbg($hAziN*AzeM({Z3#e~r*JC%yD`M{)W zir-+Q?`zO>yZ-3>mVxFflddU#)TeiY=Ia}d&Tqnv7$4!HYmQ$XXr8`F=$eyX+|8)Z zxagYVHw@_;1Db`m2wijh-UQ8OCS6nfnBSj4lXBb9`P~efM@_os_`L|4Q*J*xzjDxA zVA3_kkL}|s(7b-f(fRed6SBcY*BrlG&|JPz=$ez?e$f1G(ly18`n1hms0Vi+o!=JF zyl&Dp$L|x+^xqV~FJN53b)u_46Mmo2#lj0^XPyQALD0z2gIrV`y5BSb{NA`9^H&cE zKW(Q2=9N!H@Jf?LDEZukB)lpO$Njgsytq;fY`*~aN6+K*)Vqu8s|WV4nKK{XwT+53 zT%1a43r^KDW$_vP$rUAaHT5-fJ+5B4yxo(dK3u0Qw{)_g`qRCC4Vuf`<*u(bt$*HLY zxyh;1?F7&EvPI6%%XepFjmx$Om;yfzdHKot1$lln9YFJ-{VBQWc{%RlhQ&A=CLsMP z#7uY(zrgf7FwM&=NY8cWrRQcOXId#>9(*z&S!#MN5}9TZ#0L@NWsJ|t$Qmz%=F{33 zkt&hNd07M9$pzEgSeH-S)kwI)A-(RBIrt7CGWMD{!${8>pOKZ0B}tL7iy_^Vf^qK2 z>65V_GBP#+1zPVZE?EE`?u9k@?kXBsO2A@{J(nV5KWYaqg;?8=kuw3gO3j~!<%@zY zTUhHZsi-Z-E|l1tiAjk?2%j^jVJ=rqS*dG_N6o3IaaUB&tzqi;cn2!6jR7Ke0d^rG z>qJc(k}%wzl{`7!ot~ASI~~iYB4cZM;}vy2QbIfy6-LIsjclqEr)L#RPR~uwPft@R z)cEYw{PcWxUOuYZc$KBoMxz_#R|}QAKEUvrsYFtk@c~G5YVP!${A_pnGO8Jqr)Yl(d1oEyx>?a+Tof;;J$$<7bY6@KDwzWpy4mB+M*s#?y5cRl*DM#|<-+ zcNz#5^uvtlf|B~P-DTA!?vk2n4|lgVAER@Hwv#?SJr{==fu&Vw`RS8$G9dv{pM-#V zWXV&d1gF!d1jm9Z5;4@3)z@0w>yWwhw2YkO-2CZ^jz!(i%tS?feFKUbi)AW`D^->1 ziYB+Hq`bJ!?ZF!4$k-!&u~vOjYTntZBCv#gH3y4KBV*U1k?OqLrKlwC%UkjgQy!FT zE##rNy4fO7x-4}orNwogC0VA#DLl=?_{b zY5sL8CBv`gREx+wXfdiTgAXNCENJA+(@?KN*e;WLVy%8+g}Y|1G%>##1>-tn*F|WF;w79yota@QtWle2aDLFBnT5PsvLLBV?XzHNXEz)|)tfhlh63@jW zbh)ZlkeZvRB+0^)$}A5j7dHQnrb?(P^OV=9WU#2&x@$a8C{~fO$-83kCa$ukq`0yS z^^6j9q1^Q2Y`Rn$qSY8O&>Hx-PKfbTqAf;Fc4kKEblL~3SjIzxbWZxT{Pe86jO;AM zFtEj|x@s1=&5kHJS`FS*?y4Oyt0@^cmKi4_XQwGt9MY)7l$<#}J6CC+Q$?&WdrCf< zqPTKi4H}&XMmRFI+Ae2l6S?Wo%*v3dbj<;U1f*vbre|j7q)Y3!3q`dB587^7U0rnz zWXb}WWs9iPo?>Sfc5z8bLtSyn5~~iJjcQ$ySgNZvMZ6?PjFLGv5L4q;)z5QRRMnz3 zDSgJr2B|JA{}vlW}Qk`14AUMdu}DZ*!IOp>1&uxV3T!4c>JLHQ@APEs|M%GHuj zsyj6sS~M$P6*C2*S{@c=W~L`|dw|H;u2yr*PMMgVn(wcs@`nzzsi`g?Rn5h-q*fV# zu83cO$LX4CQ)0PNVr=oK9fsS@7CUq>$|4G=cTnTUWn`wSbm^v9ke{kFnO!IQ^)>uO zSD2BP;nOX&?NrZZTl6SZLD^WTQ1Z(}Jvw!t~s{ z?vSp1kZH0mpsQgiT@!ltOrN`F7}jU@m#8>Gs$*%a&0GezZM7A}QORYgRliq&@5 zFC>=T1vG0vLqZ)#RY`lVp2w1OSJa?Cw#5nrRs<`Fb=XT$=bLSf;zp-Ooj_e!|R(=}!!^sc* z_w>w6*(Ec^vE-^VUJHBSh3a1KpZmb!E2DP{zZl1+MGKdP?Y*N-_jjJ{-?yOK&p2!k z4~TJOKeZ|A<0B7b{P*7V*E{d)aSL|ERQR0(vVYw&sNn8l=iE4=?4!mVavD}=q={}X z>fK`a*Wo%Jq^R9qh0Z36}2uRXQ`Wdxf$&0gWEqu?21nuq!v2#aSD)B&g60Cge1>0_uV*N`28z$jSZauv-Rkdrin`{03;E!Z}c* z2|0NNhT5kxil<;G$jR-)%zeSfnUK>c0z~T(#eF6eeZWXFG$=r@8eNuD}Qt>&yRs?OXq-Z z(~ffnmO~es@tJT14@1mY|Ne2dP8 zQs+bP-u~RnOxnQbTKqY+PG?VpV1j?`e63JBUkewCm-Rf-SZNQHAG=&FI!m82?v?z3 zbE#kXp?pXiZ^QB4dZyFF_p*ftf_xQAXV0Vce0v`4eE*2-guCz8;vM)rE6r9Nv}9?g z^KlW#9%fIU#lxQdz_`bn4vUBVSr)IRWEYqhiwE<>4hc><#_!1ra^V-36;z8~a>r@N_&rlWEAZPSOx83c4S^68Eow1}NNC{Id4o9Ao@qECuKt{0>*pKKzbS(0=?%+{1vzD%`Ic*BU}j zQMedDLf0A4Foo+2C__Q)Ye+tlG#y`oNSgBjNt#OmN#4or1JDHudI!+O3fc`w^0pt4$dsRw zN}3M?qE*8Qr(tUEbU+;dQ3pjBodLNN)ECe?1tkDlsi0ASRx616db3xES`6qW1&x97CmVz?Fu*v|*n%KqJIccR)-qtiZy~xk z6*bj{ZAfa=)>KwtjEi}?>YD13GDFSUVH9ALEyffa$?G|9$RT=t8G3T1^+r`iC1#W0 zaW35U%yBAVAlB0)=Cm1mS%x*7HfrihF`HIB&+yb2leHcrVNimpB!ladjJd@Xl?`=e zYF^3qhy~Uo>~j!}Y4MTRKqfA)1b5Qeqw zccc~Gvf*6|7mh=~U*66ZcMh%yr3Wa@I3pGJ-19w-BPVOV%kb1JD61CfVC*PUg|@_A zqL>8Dj;jJQsjZ1cU%^pNMX32xYdXc8N3GXIg$ZRv;5UPZja9={2KR#jcV^s9%`Dv5 zs-IQ)2nTcsS3EAuVMwPO!{}b4;NW=A-X;b-#*ly=46QgAOB>hs!;f-a+q9Isw4oO2 zWK3+gF*ML}3LsgA-ndkD#@&Z`_rMJVP2Tiu8wiqXJ8-of#qF|DGJT72F)MK?sL>M`~H~IX+oSondDGsI1xYhc+YY zKA~l;zMA(5yBIa7xkKDV*nG+HM}%Drf$-e(?~q0pF3W|Ibz4)`zdXDuhHTgq*4lQ65oB-xG4GoyUdlaoh`?y`_gMg-_ZD z{9yqGAuzC|TX9ZCSntqsvTD(< z;4JbYB=REUR6RJs-H-T!3#|z+L3jjW9FHcv6R}4I)GOA0I%>je{N>{}PpS1`{QpEB zlB?E-fpsxd3q`+F)kSXRBeEqVvL)o?nJ$LlZZILIYL|ke>JvIu7lX8+Pu_oC8*aoi zMl~bvtDBRz)`=qU6Ri_P;Gz?cMcz@Sybo)66B2n7a;lBj1$QIzEja2y!BO6V`!gD` z0kKB}NRqmOjv8@YbCNtRy%=mS_}svj&XZfI8CT+x+DJ&GL&#}RCahCYs&`BX=i=a3 z=s0Q~{vXe7k1s+MN9UgnkUHQK7V>Ril2?HHwhPjF409Lnye1k$%C2 z){eI+86BT?yaPM}>lif;9kt_){xY)nUbS*O<$t0a$yF=IW9q+jHtQo#e3JS|NMuV$ zEVbaSN8SX-)+#u*R>6hVjy`$+dF^;KYt*9|d28h;0zc8pQ3P&w7z67v>qKDtKh2bP z3oUO#B5y)sjRZ$)Bsj`jaFn;;s1sxeEHeHx+R_6SfhW^aYtgmDbwe|fJsxElC@DTO zP*NRDNkwT%5fVuea;np#nD;0(awFt4*mD#*%17veHKj<5PyO?K$oYsJs0Hkr@~mcL z_a_u(P-_mQDXrS&&@v+=G9x6KQgGCig5%k0kw+HBux?>M9lreVsh)1-y`Wi@f;Tb30%KPg`G)CpYks8OvHP*)29ya<75PDjb^B9OP zuV~DQTRuD-j7Dolw05BwWymZ*V{#-8YHf}ErduBwm}Bm4jU!iPZReEIi(nInRV7$0 zi|j|pWFMe7HGTP#3gzUXgcbwh*2i(`*gA>JMkt~8>d?Ocl8KYo0qsy+tmc;njOE@p z0fy0W7=nK_;XwagBH^rXc6+S5Zvk<;*uW}Ao+Nt@SGuo?$y<9YBC^jjabM$a`jTEI zaI8(4*|d4+L_173&qXNDptRD!sp?QO7wy37tvJTh>!UEcg{aA~)N@K3VKRML%l7C+b;Y%{ zcs!%?@t3RUXBjRSv3AB}l>nmnLb`QJ@0QlFt*wFEr{L7W$cjA!137AdwYYyj1~^QI z(YNjcXAFD-;`B@#b6b0gx1A|o>qJcEza8?ghs#@;6w|T%sOp#>Dl0k{R2|C{+sb>1 zN7GXWJNJgq$$z|z^qvjBAN+~%(aOB+s1aWYe=vLs5C`0OSHMSG@?Hl2Z1|1vN5ZFs zM#1N>8jZ`#XEXj2@bTKy%K}V?|1A78_&dyd)-%$v)A|t-*-E9JP?XyAoRFv$!BMRU zjvNH{vc~P!xDPe%h{lD1m&Ao4GvjvAxUm|Ss&P03!=#(4aTjRZ#Tw^AtCqBIVqTsR zx`Q|lsX5-^^U)>}_o32=^V%knb>FaZG@I;+o=7BDU*9muoUj$KUP5Hhf8tgdQtm$h zDV;+?VonIjM55qWuLQT(gk*9{aLSMb4V`_m{_~x~Tk*8!CK5jmEoX533?`pXc61ftRa|H#r9*hLH z*Mvk93NExJ^vU|qYr@;{w7|ifUDlhMl(kldBJ2~b3`N+MG7PH6q2!%r%6pfVHzAQX zA*XshAh_$0Z^2Oq3XTn3aDPS{)*<%U%}gS4-LE*>Z+ophE`=B*nNS)r#gt4(BtSGG zA(0Frr+Vei`V^&Jxf7CMvCy%fCv?FYQEDNd`satm{4XIbVzNJgqc$C0Yg1#3c) z)bVM;+29}8((Rhi6C|_$jRv%85*NFPoCt}W2w~|mQYyHO{~vkp0bWOOwE^$7j4dPs z7RX?_uthP&$Q>K7uX^#7bdlr&7_MbWwghUZfK3&}G}C(tp@kM8Kqw)B1cwqz_(DRG zkDd@h5(tn$LI}x6;{ScmnVGwL_ez#6c=G4}_t9!*-#K%poHJ+Y-8H@}FTDjk3E?BP zfE#O_>r(0kztgoQaPe1S0?E~yK$I`FSE1!tjT=?vX2u^G-TSqxQ~I<{>C@J!7+a@e zY@Ld|?XdJ#Fj>!=Zw0SI8q-tStltVw3fHqUgIdvFwi(olwq|fR_56XU=QmtE)2H=J zUzU8}Pq9l-Ud33?ioNZyq!rY<-5e{(HMi6j?YDyGhHG?0W-zsem{zJLzHe$M%UMDC zw1()@bpw_;TMpgOr&dtuXa$unYz4KZMrH*Y!9TSx_FKXHaGh06I|=Fx;?l3gAd;&!h^h6; z{H5yPca09d=jxR{tylVVcB~j@$BMmed^$T;EWI^M*7fFF!<&)XP_yHA2CZvn6t%Ly zY@?`^ZH;0`kJHsRY?+J=f9L9(KCN&1bat#5XUB@YYkb-AMOwu+#|rj<&rq}DGXpK! zueBpGhM}5CXAK`QHN)|$j&$zus9HEOYe=rCE#7Yp z_a3zFHr*(uw%l|U(Q4AWPLt@<`l3%~$BJ=wtXO)Bcm%>nY7uV$kJR;4wg6sSFFY+! zKlVVqGlxffCFYP^tvN&fIs#IR zJ12_0ZG2kSim~`( zp-*>Gl#V+oN*A__T3aKtj2qiY*(-g$ZMs=RIa2E@on^FI^}f?8`n102Q_H9rEu&(# zwT_30l>0pdVaI7ao2mKX1ntGscuaqEeJ4i1HBOz-k5slp%v1|$<8WQ~s$@O!)ik~z zsvyhrbJokb!=W2(Ht62W<%GAb6BfNBClh?_nGpK*iXe~k<@80wYsb%nNXcAVN?QUl z@*loPJy>D+!S(&_g&CdTHR4ScIg&mzG=Ui!4?vS4z=Yj7i##7I)=8>WM%{^}*nm3J z(E)ubQ~J~@D@LoV7_EY0k2~xghyC7R4d9@3ON}r21Df>ua5mzOL4A!xA8<@AbYR!7 z50{4ZA#hw@v|_*i7Oh}LH$^MLZ9Sb{*aOD@L|v+0(5HGqpB~CojH_3Q{lNILy(b;U z=B{)fI&2v@D7M`AHl`PPJaJ@tF%fB{o*nb+MNwEU{0EgqEtdVas0A~+32KpQ|I_Kj z&c;@ZM&GD9L7(abecE3thS8p<*!PVu+xwxz{@}0=97YRa_!-~EbfOG#M`|lJ)_0s3 z)Cu274^fBXWOV&s(04GSo1hM%@jyC#uqP}226?GI(5L!9pY|P!vF}ifeTQP~I~04z zVeC5;W8a~4)C|R15z1xw^nC~OI8uGs9%-e{M*TM8n2F=A^+Ip z$N+Oo6LActQo4;jM&3WM9+A@zHFsuIT$$>GhMKR}8S+3ys)cMa`<%=~J=Or;ALAT@QN2 zC~U=^a#$Xy70Wli%@Xks5P9=N{1&p3`g1S8h`WXq@yc$I@K455GL$Jm=D;pSmW zn8{CI^64ckEqP-iZZINVWJJ8gi1>d|vnpcxRK)b@j~ErZ4t1y)M}&$!=`e~|F^X8} zS`j+9W!JrDsO<=5iCZJB)SW87W$y{emG8Y^D}4XI#iBE#U%EwyWMqcO^RX&-`c&@p z>FE~5E`o#BbD>G7d`~9LlA+2aP)q-z|WJh4ZgOVMV1wX-v z7M-_r(rb)p{|Dkw(bA`)r7uf&H_*(!~?)0hL z>C=-rit%KQVhS0nCsP`4^>`c&NX>E@4OSD@|`zB=-$t}=LmVnv z`c$;^Y3HmMJ7>k%IV;A_Suu)MF^X2Pp)I)X^^a@}zCF?!YIWtTkUV{7CB%>)_1|L1 znbA!#H~eM5A>-$ zP>l9KF`9bCXzCSXf36r;U=?G3t{62#v5lC25^2xQ&EJu(w!ML@q#jW7_v{0Ms>Y`G z?tVS`3VU~}1;g&$uZM_H4Sd(P^zL6bBIo;8Rpj)k$m!Ef7{#tZJjEzz#nwBFhF`Hf zWc*O$DYa(7(e;@42 z;0H16@rt*Q^6-vVFntye2d*62$<)?I%pVAF3KRq`wGWq=)X{WAy`{j38SbpJi6HokyrO5P$kYZ}D znofq-PBE@@D>k?cZ$v!pJU71${t7%& z&p7yHI5{lC&>4rB|6vg_{UJm+tafP6DrAhZGNeysNS}6-im{ti><7lD=T{V?43&;D zRBUh=>Y0R*wZo0s(UXEQOg)ou;xI%r9 z#=ps50~rGHYT14X8(~V6L>9NBWX=qnJDALe;Bb`jKVl%*U9%*E{%*gZ=)U3*s zK9wnbx~s3)b%>`J`$@%~bQoo-7-gz-gWK5|h&NI@`wQ?$-O=~A)83Fw?T-G$|8N({ z^hai2QM0lV_yX!$%jXvF#SL`CxlVT4UpYG`>mJ4d72}rs-ioi#t_ELZF&w*koN0qSrVaKQS^gAttFoj|Wl5iobrj=RM=`GI zE5_NsVw9j_>@^h|jx0CduBO{#_sep1T3K$YJ>3*hj=-JahPbtgP{dK=A&rc&uv%mg* z3>g2DYd1`PaD$3+v0dijwinBlx^`pt$=^hMtL*4g+0m!_2@)`l%>`8KYem5#DhY;c>Jl;!5z)c-}=L-mgrrsrVr20II+n1()-V46`2h8`Qtbl0KCsecC@N#{N+;_K%9Oe^iXJ zRE)AzY;c>ZJKiH(%Xt%N549GsHYCf`9q-5f!={z#4{lnAV^`6tWUTso)Va!!K9wJR zx)z|=Rj4n;*a8(>?=VVDG0rxWZgBZwt~263abs(7r-tMg*q!eF4^K3h{@}tx{R~Hb zR~z|#fI3(C(WmmGPurhjY=4TeH&pEV4x{`Oqx_U^a9hgok@kykAnnvGWcK~MXj}Ff zRDPS@H~N45{}uL)f!6^Hr*FI&@?&{#fy*-AYUKF|>R07SpURUyT^m>I8qh1o_Ndr; zhf$u2QJzXS9C>bj-}pMx9?G7cF}OT8wSU|cagLyW42W}B{o}nxp5HR^ywAw<&ya!2 zlRlLveY$6?7}~O@7<)y^uD83Q&Xepz=vd=GV~AJc4w z$elYea`*9#?LshOyUQX+iSxG;w`kVVit6fbMx_Zud{O@54lFBBQK^*(m9nxAFlhZyYh z*{G+XH?Qq-FY67P)!pE(yVtA>d~tzwK^hi|Wybpg`jG#e9Oj*6n_$Z34y2rm0DDnp zt8sG-bg}_oHQI-sae(qhiyYVnE-dW;E$eUL?hN-`xVyl86Yd^x--5dj++V?+4VQEW z!zJAzaDNTA5boP>sUyUh>mJ;y)%2-W)0ZWm<5lcTLzm^mbW{!R{2dfzAUfMVWke^9+J|1?lAda%(^if3f==d%Jba-0+VcFejmeyDb9p|KyO#V2S+TZZQ`ynnyeA2T{`ul02P3o`Pk? z#McF%#uy+CwpMe!n;rIThf!7jhPwo}y*M!7#V}qpBlweNx{ndWWy4wB_K9X@H$2Zv zF*D>zvd3|=`RFxZ%}j4gU&4N^1uCR%mMa%KnXj&FArZcV4WJ0VDi^_*5Fc?Nclkx2rhmJ>OBj030$N%&;s{)xNUIJ00)>R<6~o2;-3$f@z=pcvmCer z?$6;~XYlLclAgmzrbl^_o+g1`W7dzZ(5D|=p-*2xqu4!$E=#`Pt{CD=+$`y&6r)aR zTvmZ%XBl6XH+5N4&zkPOu4R3__)9eQc21kxJ&j(Z4Fco*=RhnlGR=x#?&c2$DlaM7#kS zJ|uM^Pk8zHSY)z`WszASgmTo&(y;9(k*Ph+jeU*!%rrA1S0G!=({Incx|b;@}Cxp*i?Q* zJinup;8@%l5#p4=wxd4%RDF1mSCr5l>)De25>NZ!4(B-&Xhvik{O2{X`O}Y+ssB?! zIToim%41@3SMVer&t$<`i zm~&n`efZ&oWULoWEYbvH(TpbL{=maWz;Ic)|Ix%Ejbh{Al;9~WLCP*8LVe)%arSJq zI?HE@@sLKnWj4smGsqD@F!b?Burom8mmo|v(y|h~>E@OHwtPMBbQ6m-!IIMQCUf}u zNsr&1jCG@lMVeqN_C3j16Yjs`hGeYAO)SzNmakoGC$ZAEi`Pu7?OfU42f}T_aINMF zAFFj+FM8~*Wa`d-8cJ^Tz5!w@8JIwtD z3TiU%B}^>R1Y@yhOX}hG+NVU5u}(CxNE3`TF%av6`M3We8S7dTi!{MlJ4!6p8?XGw z#{DE2>roSnG@9#|fpClyuIHUVlWg5jPktEviY@7LiK9mdoqzORjj? zmcjF?O)SzNNnC9}?n#^aWP~Pd)B)8$Lk(ygOwSD;(kONtkmu6!$rnCWqn3PYw@Ee* z#*>B*X@XMTQ(~pJKW~~?dx|VT==}xA$7xgFOZd>f@v0fSGrAYeF>2ma5@{4G0WuDP zqOdapql>+XSaEu>>lgma#__zRh7W0ivfx-DBf{Q?*U>K@wk#Q|*Tf=Cu+3y50Gi{#t6+YJXKJ?Hfe@&+Tg5g6NE&E46;%WKpCwy$bJZ&bYZ?+D{7{QVz zSoZw`sh{@IFaMB?wWonGp)D9mSCh);p?@r~!F3(ZgQ z-)4DAD6JVnV@EG{KeY!KBXgcV&ohPQIs7-x0~Z1a*VWok*$)#M zzy6F3rBx?1Lzlf?X#8cb3-M_XnxV_SNN7ICf2+?8AwG)(eA1VFiO_uE^VZi|&igdnH}wfkAG$2| zU%YxleENZIjL-2xbFz<5e~8Zs!{D=8Xjc39oDkx(W*B@<6dHfI)`a++Gz>l`hw^h$ zh|eiP!+AZ1;NFHOx5j`G1qh5YPZgRtU^^2yCB)}6p&6RbK#0$2AwH)I&Cqf`Luk5v z^?Z7W&zV9qbbihfnhIaJ&J6KcI}AQ&hxn`w@i|9mhA!8+LgO#jIUzph4I@A2hw^h? zh|juV@VOwwXI+TTg+eoQxh@hKf4jIa#OLB+@VP{2{O#i65T8qhW@x!zCNwdh+%FCB zxqKLWt_bnDJjCZpq0yB_tU|23;{I^^x=Lsc@#W{r5TC1u!RH#GiTe0l9pZECF!)>- z;&W|?&-KIL^EILIm+SfvpBsk3=j$OpH-z}y7~pf$-;Y7(iHZo=v73a(Z^v#7@ws^z zd~ONxxjDq=)&QUMa{q?V%=F3Y))1fD0({b!>vo~>+p*h1eC`+qpF2Z*?g;U@E5Ijx zxxOhh2l>i%SBTHu0Y2%=bx$ZicZc}gI}ASG3h}u&#OJ;MpY-KI)5TcAug~{|_&hKS zKHm=Uc_75+!2qB1_4AO>`0dz(AwCZegU=%&J`XD&-`My&LUS_K0dnBul^06uQJ@)- z@8f?K?yfCP+b7%xzbiBq;A6*Zj|v~a-d$t)pI4q)(|at0ybwZO2_f%>kiUcw_ofn; z);5`%b~5$dL&($+a%c#t3L%RPa)e83g+UfOq{|?;I^-mSobHfw4AS6`%MG&DA-5Rh z4u?EokTV_fLxbGrke?Z(&LO`uNUcNuX^n$TEj~XpnUd`NAOgI%FJG z9M^dc+0`I-J7lUs+8k13kd+QuVvzeBa;!lvbjWE2X?Dov206|l-!MprLmn~60}grC zAQwC2Rf8PskoOI8xkLVCkcSWFLcE>5#bw>2*kz zL8dz7NP`qPPNdB`A#IOGL`B(2tK23hK8-Ze;xT%f8&vY;TaLApYIS?}0QU!Z9tcf*-Fq%-hL()X-0WR;VDsAUo$OHTU1qA z+`#XgC*rlS%HqQ-YszZnQG&~gYHMSqg*8c}sInnZ-%wXsQ=Y^sYZ^++OX~z!I;&uA zqA*rotB=7qWh8oAj!X3Qc?%XKild2wxs{b=)itHD;%IAQZ)>8leO1?j{KCSh4Ua{u z4)IZ_@3^F#0^4 z2UQm>EUYMvMVnfB`f!^0xIkzuT3K9N9FHw5j^d}#R+m*q_1J76$1{s7tIMmatIMN2 z7!nAoiB?tD#7e76V$qe2ZSDO%Es3_ym8PXrVE!c2$t)Ni5L-N27OO2RuB;Kw^bwi@ zi4iL=ttqW5j8z^{TGCKiT`JAm9xiTL;V}z!rSumhh1InXbYEj% zf3L3yMkuqYsuxyO*Tx}~u47wl+fNmXB$OhOIaRfV)#Wv@n6|F^xXC=qg6#{VHNS}Xo%RCPH|~nL!z=IC1W#dE33+@ zN*30N*;aB>OSRF8;-a#$(sG+=L`^mv{|g4gCf)b;L0WmgJ+F>dRKylm))bdYc1^Z? z8TG$0EhV=H#VX_FHSzL7HJxoKR;W5!UJ{Sjl-9~fgDKsqUzEGmjtm&dBB zV&x^0OFym2s!`QMO`*|KQDED@u4+LyEl68mONV?fSReV}BK%g$gy98M?tvlv@7aEjQIXwy!^`Jm?6=%;+W~3ZFtb0vZ=49-L##K1wR(ZiZ8$=9l%l;`m^Yx^Jg^` zHd*$={;Y>^sSKDQk%)Z=WSYjqr?qxD;%Of@)+@$2$r5nfMEDDg5#ZV5Slr=C6n# zh$QUrz~$2cfoia*%V!esGm(6TjI8nw!^spvVVX`FI0R{p6Sf9il+F(X(=lYp6dd4> z<4WSUY{`NI&>(+*P%@Dq%9Q+wDMVdeqPxE@(bCh?)#FSMdOUxN2z2>@-xImcpD{uy zu;bLRXi<5zJXTs+RveEmn7LrO{={U#^uAu+@*|T4Gn>?iA2@5~+&tekZRYIRvk#g* zeeQH02=BCl0tDpc&73v6V3q_e&x%D3^BUebcFA(=Pvk^6jpI^z@@FZ0=EU%EGg0KT zTv_7-OX|cPnvCO|DRfb9e33cU)SwadhakNL_DNl#^BwUe%H`2#LAPd_(s1oAZ+v{Y z|Ckg*cqr)!(A+pv=_bI5jz_vF{9?e5o8@`m$IXlDSn2qEih9^;HkK?85;FWYGCjXZ zz^?|)cMTouDILG%;P(n>=FC%mTyIF1zoo!$1I@n--C*T?7yOD3_Po6hRepoz?+FBd zA2cWP+!`*@rOV$T$oRGkuqjm}WZv#@(&g_+;Aa)%SD3hY4VJ%r$YakEeE6?S>9|mw zjvwpqub`Pwu5^RdUo*-(12k7xDBWQ7$9Fw!QHgg3R4E-7CeoER7bj7kU5H5 z(hXLBha>nf2<4j;46ecCaR~T*44VCUehAlgxYOnDao~Rh&Fw5WuEF%>AqeV_<>1*Q zWZuqj((!v2_`jR+Q5c@x!Nv8%boCcQ{>oN*-es*q=5ggH9lw0YH@6MH?LS88CJw@H zU^ITBbu4~Y*`;)Q4#IC2;5!}Xd9!izLN?Oo?;A+B3N(M>c@xCZR<~10< zYryXU(B$_k-C+Dif$lQUTyeb8<-$oXe!R&f-he5}BIb@i0rNf}x7W`_`&|wP0tbc-g0C$lW$${e)&s(+# zYka-SIvV?0+gkdUm2@@rceHfk=lNaT*oo+EKVaI_f~nJ6m-TgY&zR2N>|-ln<=(t(Haqu9bax`_xUztL?@Ld)tXvC(kR!@BG`^TY4lP|D1p> z#~Yio6Y`wlHN+Feg|S#sVe!I5ysomguCn3qL}krlEDe`)+P7snF~h2?lvkCKlal3a?GD2o-A*L(XS#>CVTRMw^~ zz=6Y|^)ufQ5q6PEj(45V(nEn)H?D5$=mlDyZS<| z1~`h63b1LYs4c;(ax!zS1w~O!q9|5bQ-ZBZyecF!XAM$w+>_gsc)d?%4&U#uOKGJw z#Ujqqng$%H(LAo`Uy0;9kSlKwKy4s)j5HS4C9na?%~OoiGjpEM^s$^Poeotdtd< ziB&C~O)HoIirkg6xGtvEM^?v&L?sL2kV)O)cnwNs&Ih)77|qCi0&thXqUyNG8da!k z3SNodP*GY(Hp0LWmewq)#_mu9>WU2hWf{BeN~x!Zk@cS5Mo~g$os~|bl1OJ$M59~+ zwZ6?_Nn+}Yp7M+b9Ed(i) zyO3|EWU2*j>lc$wZA4bjnrOta(cH(_Z0r5#3a}}DVoO5H_t;J*m)-p zH1x{Klf>aTUh0EQ1}_WA6gxYV z8CQeJb_|(#G3>A<;$TKg)(fPsL-JK~i{gp$y4po? zsgK7HQdyHIEGemzOw%q>!%z?75V4zOD6S~1lUiA(DkE=Q0|7P4}J%HqQMhD3F3Nok_taM&H{O&6$PBxyt_A?B#9Gtt=G z+#}DNADqzC+Smh$F-sfvH#SnT#B(OJL&cSGv@2;47p5}+k~f-~d&s^UCpcENwfCWa z&IZOLmekg1(@V;-aF%JiyMpF2#Phc@n9j;NoFZ5}O>((4g5$+1ZT2s%C=~hzZ*Tb7 z-TCC4+S#d?cLO22uEe5xSn$H)hRVep7sRps0qb2V7IYs}c1a~FFkTBq)7?2EsBI}I zYJo_F-=y&M2qn_|euyl_;!ElaYhg2Eh4DCS4UL!;VPj9SF z32G;{M{NKzNK2{f@rjnz3BKxxoT%Vzq4lV}M1u&Y!wILPvK&mM6+5lt(EzC|_KE1G zI$*yNO?_e$X$sC}%f~s6-tLwrZ!!Rm7VBEN+Z&r&dW*YyDw=z0Fs|)sYbt43+1A<8 zD@9`#N<_scAqqzUY9V{kN?V#6JDWpYvdfUK)Mpt%8OukNWwQwMKE8HgdqTeZ3U$Hr zBdij3T4%Gl_?uH@4R+$F=d7?CDsz2BZC!(OHoYo(w{1lMut11!2FTLY9fwl6jzN2# zx|kS=^RzKqYt9Uef|~JA0}qfTb%xnvlVJPtR}gV(YMJSfL}b)0R9m7$hA|vP>}W<% zI!0t9nn?EgU45-BJ+^VtMCP&HV>gym}<+H#*j$GU%~cKQ(jq9Dvf*+SmP#W(&nQfNWpzA;nU0x2 zNm#m)lRI1SiT*50UFuOokxc4b$JBdjaM5J9^WN|cikJJT|AAl6wQ%7!i6&Mq_9 zI1bNCq>`B!rzAF#42ngxE3Lxfjj7BQ#r-_$I^pYQnWQme_N1LH0f#I8QE|N(mo+dN zQVDJ@=aNB}BMparR|V7*!zyWFWu_Lq{whS}46 zRlhspOE=oLrdwu0Y_hGs@;J=q1Zh`&HmNF-&lvZw*0OpG?j>lMv4 znK91+O;}u6Uzr^KP#PSAoBmOUIGpRylwo?paEimWKLPrYRrIwOxq^b~VWtwavO;hQ zD+3*RoPuCAa{9PhCWX*8DiM`}79*x6gSz*+W;)rWn4G6EIOM>7mldh?Yo{ONS%LL0 z)D8*Q9f@AaV4BmkGfdV3lPB~*7_G#T9T9~`DT|b_Xoy#MGEI&Q54HwEkG3ODafL2L zm;tdp*(25dE!3^8yF}6iu=uP+-`tfmN}S$4zOk<*VFm)W<%k^nq-JeHlJd}samwUt zbI2q|(U(GV+U5K^+OThW%NX|{p+J_Tri_)x8E+PpLgnyCWQJ!NcrLtZN5Rl7QID~B zu^47R996IB)Qk z%9f|qx-4OSXk?B?Cm`PN1fRMn14=kVqCzHG3#DT&~F;L zyKr(IOUfGw#kK(w8;I!E;P}Yz9(euIYxl`{tKoNl{d?cJTTS!4g$N%X$v*w(pIm(L z(H&QI?!RE{0be`W^R5;AfTP=P_~Zw#-uU8+FKzYG)0f1tT_$*b@f$n7`OMniW`4HS zeSh9H7Q@@VkjD7Pn#*?kamF*xbnf%Yarb_H={B!oTUqe3nx>t8yY$ojx9r~K?bBv` z{)B!$aeU;?6OKPI>6&%B@9^LSM`GV*z2KLvt^fRcJ6>=}!6S*AvyVOWWo%nuZ(w}n zwyRgxJv92Gx4wVtUK_5v;@n&DzB9o;yddxT1D@{u;`G0K7H5XosI2 zapb4fa}S$V+Ua@g1RvY;(|PkYlr;U%&+^V#m3=Gte};NPZ!1?E(ky`QG~|5|`mk2i z5sK(7HvU`S|10h~?l(2fTh`svwW_DFBM-|4ExmdBtUhS=lw~KhbvAdM(3^K`8+H+< z6)bD(Y-;asZh;p&3DXK@9W;At!LojICd+j8GqrU@oO-bc($dUS<&@b7xtV-5w{?9P zjGDS|It;z$3B7$^GDl%3dogXRMwnAmfh!tu_O7>igv_M=XlK6+KCb${1cs)RP`So- zOz*#p>~%D@W3KvTaIyu(K1NeFmRm>4vt!u_z0>=ey4$+H1Ws+8oqZ!^!`9x!QQDWn zDA}sGdZH}*1KXI*gKc95UOz5dnN41PLqXoup2qr?#-66uyhHQyTiUww2p%mDz4|aS zZ$CV45^-Ms^a5ctGw%RlHnP}YH&fUh^wqEf{~5x6+Vss#K%;MNX@jx9q|%P8u54^% zX8OpgMipUje#y$8y_uE2=_$A>hMIm!3aT=+#T>D|2idv&ZnlDI9Zmbvs#x3O2(x2r zD_lGvs&*q3(59q-G_}@YY(}CKBh0dko~(l}DL-L`$s*f|+C0S_BG2I@fT;G&aMsq7 zb1|71T95H!vLAsVyH|q`4b`0S+MR#d|Bm9z@49)>^dGMJ^}!gQZ|d2d_O=yMyPH>d z_@LN0d%p+%-n!?`e0tp4=li1H<5T_l6X)&JztdT7^lf|o(#X6cBK=#Rxqj4{PmVh4 zjsACMtp8w(o!6iFT;xc6J7;@v8IOCSa5?ko%ttX>@Sb{xZ*65k`(+VPSsGj+mN7Jp2^94?hnVYUagKOTI`98h&O=saLkOv^NXwI3F$jdPO7? zm@^`l-FCl;nS~o!V4!A7GopASndly{f&-*6a3b^;c zW!>KkcO2X+acc{sPg@v$Ssr^&#eQIXS^QX^!QOV*hYtJLVVTIC#vNyTS>E{$yU1bu zd5zND=`b{jOx~^FmbM3din{k4?lF*()nr*e~rwoY^gI5kQQ)!vEc*F>kNZ&s)1*GqdGCGA6h$sULKv6MD%)IO_P>?u-J z%kqO;1+xw-&NS56OBQI@$xI<8MYW=t;N=WE?K*9Oy;xpq6_#N=TX#1@OBj9&T-L*_ zMr&?^Uq8A?pMG?aKK)d)Vpri=vB!-s+gtCj9gvdJ?QDEm^6ekRxW=t<7cXf=91ilv z&-m;;de?o9q1oCEecLWxym*NqXFffC-N&$Q1y*&IsReaO&pSd1`Q{h&_is4fYWBX%AnjC{Qi}(*NiWV-yD?CZ29^Z>9S-;fxc|- z?~ZO8_Y@5hkyZ+R;X-yJwT?QsI*I`Z(RsMF}GpiL9- zUmN1C@M%Ll5Wa2+osa*gh_3?wvFn2vY(QP&V+uXuTaEu3x(+_$A2B>P+Zz{ zzX9LL5{eGdI}UfQcR&6In=`5GMP9sE-@MqI*#`KWjr-fiZ^Ms6(Y7?yR2_0>m<_)V z;hCm6v%P#PC42+I$6|8Ai|O2s+aJG?y*_48yl4*Ifl8!)@tS#N-0$PAr+&-jx-Mr9 zdQrEx!62Mw+rr=*3?YE6{2wM+u{6Mp^-PlYwhLKv;tgQ)o1V9kC4m&bp; zj+=g3xYejNYvru8$r8c#8n%_Y)WmRBPNrcrK=z`HY39iN0t2E|3{a=~;ZB8%RxvOa z?ul?q;GP7RVn7R!X&73Te25jD-T+(FX>bu&=+1C5uAL{1gsgiNt14m-eMl@6TDM>tie_}M8V9Hxm{lQoux zK};Hs$D|sxp;n=iBX=GN5j)2mr5lfPtw`-0)38>GMgvE#B+ZxPfk$;En8t=JkwXyw zXlP4F;L92fap=zs>o{M^zyZ?1lB{olB&K7jLFuqAQ%6YXHf4l#G2ERI4g)km8wzC~ zD1dtf+-kU2!es}172G4>UJaK`AK_+%M4yh3=*#kcZbGxYSBx*q`?teJLDovQi}7W9 zc@8_+VGA5~3ViImv%S-eFU$M3qkF{Bz34EkMwv7?ujJi|_=C?apF!Z4H@EyNxXm46 zZpqaJy?h;X*RlQG3BJM5r_lc&oL_zo+QYKn0Cx|#UpLzH4fu6_NuSOy>C2+td5T?U zd|BRlhdu2u&MK8|cjL>FlT(Uu1(3ch?@{)j@8S09F`nIJkuk_KHq7{}9-6ZMjE~Mc zIe!=2`{2$$uP;AOh`Cs|zHg4M>T~UGG=g$52hA7NsvlIr-Y-DXi)XxHxQt%Aew&Nf z8rF#xth}UNjkrv5IV|?poq!4J`Qzv1nC*vnWZq$B595ca+YkM_tSiR~<2Gkqf{5`A zza*E@$oKg7(UZ$4+Z#Tw@xrUG0({OZ$1JTV5Gbh@z}e1F3|2H#1vtEEx+FqA=WSBL)^ zN_+Vn?lInS{69u~ZTR1TJJ(x-|2o|`A3i3n(+v)ya^-~C=YoBR|Nkex{ZSaod5qT& zpT@lczKek6dbh)eK@~#pgYP)Oeh8oDoL_!NwPN16T_qg?NK#+dJjdISfBWN@bb;= zkxfo(CJFL%q}}`6yEZZfHp^1AAtPFp)k4!5IUusLq{8Worm}-fhj_*nwc4bw{}mF7 zagIdW$~;FnZ@`s_nz2df`;H~2pChMJh2YT$3#&QBLVd4fbs~axl;8^@0~i#&jM)Qg zdZNopuCVzSZ1xhm^$~wMeCe_fBcfoR9;(H_Y=@&@nzw7PZ3A%se-yJaZVtD>k>O7jmH%ve92xF_ zr>6~$)%pS2jLYH9gL@_1!{B27YoHtM)o`gem}(7N0{1$&=-0jL;l2d-Yj9tOiwW4k z@8NzOE_>%2;ZA~k6I@OOZ-#p~+*{x-hkGmBPPpWIHeA@80qXR(;Bu4)OF8g3-236K zhl{X*ci`R*mz8%TZk>$Mr;}0ovOKOmD<=66Y_7u&HNGs5t8z-md}-X%9CoI|P$ENz zyc;@>NHs3=s&Sum*pD3cw!_|a*l0|2G;XHxWqA`Fwu{4fYC`E2IBcQAY8}RDsnT^j zY@Nd{cG#^ByTf4*I_x_R`-Q_^b=Y4V_L;+YGF;Q$+W4}(8{vCMZ$a2WPu$1PsMp&oW+ca#AH1{t}$-$NEX z9pvTt26>p5Z@(DfyO?kcw)(bs0)o@sTsyMKlnFTd7b^T1S#~-LzFcn#{$DP>L+~Gy zE@0L8e-dsz1ah2U$fI=X&2a6NFdj62x!9?XfseFX;67YX+s)#AY5?uV0_m2dgr`os zKS4QCHx`&CVcD|Kaxv%?7LWM5A{jopM!Fi%ky~TwnS`a zx;{GGo3k!0rL9*T%GeH$U9omBcEMs1V%TL!$rE2tEi^QnGSa~&j-BBZ*Lz}9fF ztvfIo?$&VkhC3eaY`ELPr6eZ6jlqSfm1Tm7aH&H(!liNMLv|>6g9G(B{=zKhRajE(gyE7gJX^Znl=YKG6 z-RS(a>sRl3=I3Khn;7?5CR&~;k0LML;cgBzURb4_1FiROxo}h&LDVsLwSX+@!U&bZ zcQNi<*+0|JMm#@TF+ zhcq;SD+Vz!_+7%WiEjM(q>UdFN#IAQ_%Y7NW&uOloUol>fvladg`=I|2$qu;Y%OY@ zI3lNcVq>5=-42F;01-tqA(UULxp)Z8oHBh3F6Rv2hdT`}&R2HUfy8{Y|NZaKcKspYF{r)+(CpvI)6g8@4@m@J(# z2M6_1s4b)=4%U>ztrOpFOW!)#rypTjr*IDc8$s)2TVy76UEh^#Zq9s@OtLLX-@V+I zI%UGfNR4SQ_*0%YK<|&>X2N|I?yhj3hs(zK0$eu6m*CdH{V7~l7@wD#XXfW>+}a4~ z(?&>NmK=vr>?S-b2Cm}E#=?iiK5*Ed9rk|?+u$%x(3Br1Xv(h-zI#BC?XmZ!FU$L( zqkG2Dz3H&G9ma;q<=y0HzeFq;S9tB3B3mwgdWCE7#albRmkqWfpE|}%P7SbSx2e%N zk+7@DncqcbWwG-gDT(9){}A^Wyg$RX{e2x)0N*nb%C@g9z7W0++__#A{+}SeBk_N= z_}cJa`E|jk)`Bz|cK|+(dmelmmy`MPap%ftM={!mzu`U$x4j-Wp7F+|E#bleX}7@r zh{0|6X9yT0p_HYblpu)>|K(Wru+&)P!x0uQ8=fyg;{@a2f+Ma&Qfw9T#5_EPn=kgz z%Wbr9QL(vYWkNrJHZnuS^*RcRO^?Sys*(8%a1S-mNE$Gc13P?RopGb?ARMv!DrPjy z>_nunm85eIW=|PdfX>AD%8 zx!A?anqdxzZX#eV>Ktt_hk;iZY$gUW^v;319o&Q9qP*T*xKrTHgIfW&4DMlY%i%7D zTLE_oTr5frw8EVa_Z+ySy96%ju7pdvtKb&Gz1M_4V#2BW3}?lC4fj~@QRB;&Lyp9< zyni^1LnXy%ed){gb~nB(Z-K*#9k$$I%?=xI*jWzyro*s^XVQ4iVcf9QbpPhCe>m(y zwC)EaFP9o$miHlin!k^YFU$MFVNhqoFW308J-&}#)2Ls94XJT6-e6sL>t4EKn7{Dp z&rHae?8v9=aXD`OVO?nHcZJcj!`-UeCLTW~a!j+e_PMPa(Er&d&hExy@Qe>y?9=*t zIF!A2%xSHc(K+xvKIw74V@AotnNQ~-4_n&!qmNFkd+JCTH@*T=SP=Xlz^z+cuM0*C zf4X2-6wdl(u%rbk9vW@FnJnaJ-rHdF5K7PM&W)4w+QYVaA~0+qk+@m{u(YV(Qn}1 z0vGi=a0lGq!MzJEw0Gc#aQ^`JXK>$#`%AcggiASNOgKQ9kUu5J{HcYaPc0OES+anj z81+ptPM#IRij%<(bl41s)jF)+VVI#b#%^;C`@i@Y@hcxBE$Cw|q*+aRQCHB3H0}1BbJEN~ZwQyZ~ex5t`p1H0fbM5o} z8S5%WA7<+>Pb$SvCMl7{5Nl zf9lj2kA2x$f=zSS9QdBWJq9yKJHD)duLHN9;yp)v&G@fej)Ctv++*ZaFQ3N9vXI6& z8_%7%b7e-LK57`pvANQdtr6b~_U6j` zA@Ud4-Ju4-!PPd#-X8h7T{3tojwj|xY}SM|v$j@fX4CAuPXuYcME4?ZdKsv;;9|a> zKb|BMqavyM>9oREN!Ud=YQ6)iY`(lBN|yNW?mIo@Ox2$vRMYTgtsGehq_u@DU){&e zYA!`=i^m6rXe-G?ax2>|RNO0}+d*gM=X8pF>1akVbq#U71TF@vS!u@F1*rq+@L0Pk zl_a$7z5D4IsWkgyJWg%$Z+qLVZ@#W}EL4ZjcKe%ZXfIVjc^bjkJpK0fp(YUyyEzQ+ zPI(ri2Fwo2rERY_M0BY4?Cnqn*@7f?493N5ubpuBhua0W0B$$jTDZr-ZGelPWehaI z#VW+W8F2gIo(1;=xR=5`2`)7j`w0X0!#xG=_u!re_gT2uES6r6bnNZ0%sB87-1Fdm z4)=VxT$se7<3I-70l3`ZI2|sv{p+}OGn+o$%%(5P+a6Sk?PPrV16RckaoAEvx6EP3 zJM2V8ZWqXCjm*t%UpQf?S__DmK9d^CL?r_-M4qNZArya&s*<(hxqJH_qGyjHg?o(p{ zQq{(w&rvItek)`b#>QoBRqD#>H1H@+vCuZo&WN`%y@hV+#V1Sn2K_etqN}yBt#f3H z7Q?s8L#;ws6T;U6q)ykR67(NTf*qJ{bO$qR1AM!cY@zmIov~Fzc%Cu(-g{^@41XUk z>+%EBif)BpS1{?*6-@fFyqoY}v2Pe(maJPU_Oip+Ru%igVXz4XTWx$<@=}UpMh&h( z9C3_PgZ2TB)I)TB4QfuWLG~-}|G!ckj`KFAHE$WM`IXU{UmLBt8F5u>=u@qs4>kt> z6}#T}vSh@o*z*qiv!nZ~!>F@L*KU0N{o(pW80Y8CctbR35tpg${Np`vF#AabW@dq3 z`i)-uhM8F`k|^mmfj?+nyrkYuUq)jxQO(JO{W&1snv%J$5GxOuP85z#S=;U_TI_xc zh$+P`y3kNxZgP`(@aHFg$4)E~M@tsWuMBl!!QcD|$~Eu7bNDod$-aZStT+GMVmh96 z&Jcx9L(AZM4)++mSjLXsm%!J7JC{H7G&6wJ@O24xG5+%@R}K?hAijI>{{-=Iyry#o z%I|F4W4IGy4&`FDYtnrWK27&y_;jxF5BN0Q(eS0t8F-3;m%m4#pR^o<{LJ`mIOhy@ zRfHIGL0TKmUlQ6mLnC~vaQnmgOF~P%0=|}%@YG)t{t10-sy$(znI7FldV3;kr)~HI z!HA9kaX`#r|9ITY>hL=zJ7MUTm>0_XSBC1W(o7iGlXI+&@0wyaj0@X#$nOeg2kbiL zPac_FF43}3N$KVo`4ajomg7cUwg`fj7l{|ylL%#JurUYgcx;($Y_T~0OLTJh`Y2a6>H0h=c z{Bqq_{o)ft^)9KQv{hK+$5O(qn^_;v+l1j_(IbUU=2y;2slS1 zhZwMuBxjl$;Ie%!hD#+}0{3*d7;z7*gL?$rufaVU?l<8shx-G#O>k*JTHyX1?n=0C z!d(UTS8$Jn3j^R`ygtA-$W>3B1JI{)0Q&Smt71EYUNP(}h%cLa2L@Z@u)`gOnT?^t zT*lB{?y##J_HBnf;;`2ohQ8Cp#hA==ig z<1ij$Resky>_&(2>(<|vx{4ZKmUlLMnwRs94?ik$*mVxO-(mdbv8K@qUhaKk>;SYQ z9_CpN9^dl6Uu+zg9eET+O~1a0f(9~zUcWHWquP?nHnYkazymKvt@7KqRxmHL&K;=)j^b=e- zB1@LkQrc3J5$&t~2Et_CF0rW9pNB6pZWAzuvYk0;$5cb-e`8k`YG>%lj{o%LrX2rA zR^$K(D*uh;~IjYxWnEemQP?QHC^TTf%KH-~%3v3N8$D1}4CL2=0z> zABKA{+{fV}S#JLf%!m6Z+**T^2XV@SD`Yw-rcVdO^kqq(qu8~EE=#tM6ysuu(tT)r z+30jFwmovIbX?3(x;YLz*kRYecQ<0;;HdH8ts9Q+?~ZO9Oo8$nZ+v=6%bohJv`yMS z$>&j!0v8~jbmM8a*(RsGlSe_g8@NN@lsH#S(j4x1Y8$}6#qB>KzK_GE!KY1sE_~Yb zi{R6yzYxBYaOcWe@MYp_$NzK1cN+d{C>#6Va5v+&7kedMwux|Uf`diUZh?C(ZeBJ# z^(6V38tlSTPm=S;3aKytVwz0jeB4J4Vp#Z{DtsTrzNqFaIZw{vpYG~OI@S=d=v-Ex z3)?%?=yCWqCpaQxIvn+7N;;?GbchZ!alQkWtmyEl1<5#Y%M!8yF9ze~U)NQ;w0Ejq z+6im66dc!VXXNQSfJUK`=})y$ngiiKf;Cz$L=zAS9-YG}6XMJtwxTq+$-zl$%++uLFLIjr1a7&#g` ztRtJaSUEP>#SY_mOVi-kO4InB!#Gm9SMtY^5`9^+MXPjY0n@nG7$3^vFrIw-3XB~W zB$5V?ud5J)x3SY~V({Ka0a6W~VjDMjCn9dHcNG3#A--<>KTmu#NgB$QoNDkc2F5E_ z9oeq)8$9yhWy4bq9v2;W+3-|@SBDBuJ$lA8nZ`x9k3w72E3n-rALi@fXI;L!(G<;) z+B+r_G%I4dYpx zV;GCK$1n(j$iPkiS7R9M!nGPk);UcjD@_rpM-s6{lE1~_fG*Wk>h|;i=b$V^E4^wxv#NtL5LBU*SHY970c=UC39AQdjI5pI<`lR z%Y}T!Fl#b1`$yo>L(c4zYz`UBzQKQ`ZV;Y@z@n55LK}x;y+deII{BG5@j?%_ZHxJ{#UA%GfH8e#MwHm3uudAnVRSU+bdT7jFxXfqk|5#HVr$b*^Z`v3N>fTk${G68&6v4*{`+8a$JCOX)?>_%Or7r90>1gZ|Y7WY6yP{t&eN+10N*(KJYBaCx z9IO@Eb!+6LuxC|_pKTs$Rm9FBs7XU;3Encx7mbfbo>r%Nm)+-36MVba}>?<=ySD`yBSP!=7{4g&2azk74gI zr~;$lqVD=ZfWZ}*O32G-G*vQD7Tq65?@9U#|h9z9UxNbV_Tx6gG@LNiR{? z(uc)S*5sInEqWfhje9S64qw<;Tbs%-RS$@xRYE;V%e%6i4V6^`z~? ze6|uA?lGx3<4!s2%wIp8kYz-U#DC^z+uQcRl2mGbm_kM*AN9cT8B@B#e0C5TzGc#P5HS~x$PQlJe&?)356Da41<66hHIQzL&?`^Xnz zKD!DHcRHy_ymkrk*$pUk169is?zh#hFNXP0`!XT}XwrMa$7{C`pFE%$5#|cXc?a)1 zJsRe-htPZjY1#Ib7veKXXe^(?rJvs$<}+DnxJ6_6ObYSI7aFYJ%97eCKbef&;~~&a zS(=PU93gwd$16X?XD^@`kwy4Vx&P_*AN(ZDhp{sv?LN8h72>mx(5%CM%Ik$&_Pij> zXNu797i82(Ui*aj>E-!LO?omzk@(jW<+e>Lm?IT=8 znhjDQu@ZJP40O68y~idx`#TJk<$RoZ_FP&gg^+UtNCJGi`+Hjzw0y1%(D32b5Q2tf zE*tA{3%JyO8baO)A%6}bTSP2mIp>BD{@znBOM~UW6omU6dRZEra7jUUrbI7Gvo?fW z7D8?eArFR-XF>>1qXg6XAcXuogzT&efrvJTb3#ac2;o_jU|MH{kgGz-{UL-4jX^$t z4k3Jv8m}yu!(9zB&LPtbvb94nSCMOsLzWq2FNbs+WTHcOexBDZ4&j-3Ui&y?y+Lvv z@^gdi>yQr&vXetHV8?moJA|)pTt&XS%!|n${F|kM!jCBx@jL2k0!4=8<&7@?kf0$UL3C4ohe6g(Pcqg@6N@y#SVa=c%4^5QC$>q(T5DpFCK#(&VwqxltHyR#CS%=cVv!~ot3+bi z(R4-I{XQwn50Vg0nqaI_iG^&*by7dAy{-A*nY2g~j8z6C18?Tl>y^m1cO+wF8!?h5 z7^_@jSt&QIeK9W?Ynp*c6O2_Mu{f{i^}Y5f(PXSz6N@y#Sg11O(CWsDC%60}8LQL8 zB26$>mBgam=Jn0*ta&jR>pT;SG{IO4fn?w(qI#Ws^KU*)#=6VIB26$BZFELt2NSFR zFQ-49jP<;UMVer&YKb-4#Cq?=xyzEVJ~y#Q6O2_Ou^?KxiZ0#%rev&bP1TYn7^@aY zM#KbrAI!h~56M{j8JIM|Sn)utQLC=FB^j&A#3D^F)?pHhJqxd0j%@RltIfnB%_#43 zJS7rs9o>mUV_#Pr{6lSQ8A{ML@%M0DD-tXFJDV(ngxL+lB3uVv8EE%w5Ny4Pc8|kz zS+5jdXUho~^tUVA-GvV@^t7~iiK5Ed1cT%gWb&kVX#SMlT9uj@4`=;}-SE6)rJi#ws>Z;_5HL{y4XnbMm;U>n?Sp{?b z-pZP?TJsz)txia=VAy(UPONC_@)E@DlM)mzTABjKd)ki2Lh(W@nI=kW$}4M16D!u> zSB37Wsjmk$VS-GFmCn31iEFxEqDH;~%u@9BVdHU?AHfW21rGF~4w=ivGZOqVu&*pY zx*L0XTN3ih^aMUBTvu8jPZT#S#Rova(6`PzSRj{tLt(yGI)%b?!8ia@YG%1OgyZMf z0W9zu`cTLqi^c&u`@!ViFk@X9Pc*HNAgNgQt*$hXa!8Wdx^NQV;tt16?qH?&|@U)O?JRH6m5eA`0{W-OSsAiub* zcfssn{G#Z>(pYt6S=rF>dwmT2iI-Q$YKqFrYtqCvdrJ#uK}&tHgUOdfYf5X&W7XAF zQM;eS+;i_~!7SZ;g4@+&b3X%|P>f_2N}{o%cyX+#tT1Zoe!;9HCo%OyGN_K0m6et+ zEUYeyTBV031Ts0Js4!Mh6|1g@riRR3SX>%|i%jmFC>D@!U0tD}LI79g5a zRZ|u(sVR*|&30HIbY@jWRY_rORYjDWWPzZf@@TB2wyeA;UK3p~bHQ{?V!`yjUfyDN z7tCx5M43}tSzTCNy09jy&6-u|Q>E%?Wvr^Ktg^By>TBWwl35jHC1q75v8XilKu|1N zwy?UgxS}j(V^i#Y{_$vWtgO1Ss=UP2wA$bls>*mtZM>#B9u4l~1*qo478VsPEQ^;# z&Hi2>^q{h;ns{YJZ7gbyL?C!(by-bm^}@)D~A&*GAKuq5!)YmBp3Cwbg~OD0UeGA=4KYRu#u87RIBU zU4eju;i zljpmp&73`Z_Cd3!&z#WKi!DRfb9e34m!Zm?15nZsoj-z9Xu-A@K_4R#&q@^(~0 z4n*_D$Cvw8v>DQkDbtCd`Qy$?$C*)dJkm|!*93fE7aTgn&5Lt}bo{vgRF3tLGr4Vp zD+hNve%-(i$ito(ZeC+?r{jlVv-jIP+>=P9`&Q}ran818GG4Kao7Z6c_=B1)^6}gB zJ(VsSPC9<~1K(yZ@WaiEQn^L^nQ^zcHY@GDH_H2j_X$4}*>qzZ-`^hvwnk zF$_BD?_+7`&}5mVPjH`xyU>eJGri(@%NC(G>s^MEYOQT8{mV+an)*9hI{SK;b#=FN z_V%_PFl}nV)ak9u@Vny~)0d&MX>VIGmD8Jf-XS?&9yN{ot(`~dzAN2ov6fvc`||dw zo07*fhaGJvV(ySvj1v<$VS)u1=Hpegp&h-kIlDl&GQ4=#2`xR$OLgPwwhrvg?1`YA zB&Y#%hQe5^sIYipB3@TnTUXg|c%rgqabc{o1V8N?o3lH}MtQ}xb&18Lb@i3CHHqrN zDn3p3_CxR<2#$DFwf_%$UjkocarOON5<^T_5={^V@im_tSH4WC^xS(fW;vt9@H;!S?Snp;$bx!=L*Bcs0nW7c>d zaO|GYh6kSEC8tk8`E_*G;RybY&fuC>j1dn2_CR1U+6*?gEN|tIWfX9~KrNIpZ%ug# zb2_)Qs(K*=40e!&Ip&pB8uW;8bfCPZEWkt;2>HJzV2Ye$-@wV$fpQiaRwa_9#Dnn) z94q8uaa812qYT4hABCw&40p<^ih?C&s3hgpSYAv{e+e1KufSGGrtw&ORQ|%nmDLr9 zHdv5bohwvVXJRjINf8o=S^Z==0k*xP`K-oZC+c=stOzww6j&&J&O~#ntf@s3uy&Fx zb*#S{re!%Clt__RT2WpUtc2J7f#?9Hb2YZ=C8v|g*EmOh@p);8hWSw%$Stp_3>Gb{ zsHv1xJ_?tT@?dU3!9wgzNfrgz%KYNog%T1!X&DCCU90)+hrs=A(3jPeR+r@GR#gYf zDhdL@>cy1-7glo%=QrBr{V=3sEzTcmM-H$u+ylSOZNb$Ym?Y^$`%MLoG_@5AwKQGL zD9N2+N@Waau7tnv!VHuzDp`o;xoE0HGYrm^`I?DGf}GVnEEA(Ex#r=aASBBO)>H)+ z26OYPOBRtIRAO!+P@W%6 zDWNsi1f+7aa+Ki-qTic5p+RMSj+nehP8kgg!(+fvM88#ZY-{>Dy~>qjlPh63TO?V#^P6U`oV_NtZwXVYHeVs zYzlrR2AlM-DH@fK&2k(2uLPzBae3aMa(4VD6v(|5uxs`5Z=kgl472Fi2kZNf->*|gboVum*0mD8R zl&%h$_G79NOC8@XOb!{$SRG%JFPn?52Y5Hcd1Pa%sVYy&$>}UkzlFNEA|>!!JN9t7Jwo1lE*NttxC=OtpRt1%M?eMxO>L zBmolDIzwEN5tFLaEG;i=RH*CNr zgh31^EC1z#fBT~?e@xyz^uBk;lwu8w$FrpQ)?az(GYLQXQOks1pLy>mR}9C(FtzH^ ze1+xphy3y6k0$NkHu|;mW_yp(Yc^siDEPN8@n3(;&X!L% zesJ4&&%bT#y?RhDicn0&F{m`iuXFMCA)W?~k?ZF!X=`s?(O$RO&jp|k|Ack3XCAd= zZF5UQ>)Hc-XeZR>*_ zn!2ut36zGuCQ!6%j~Ns@iBiAMoT6h|XMJ098Z;585VM@-O!7+8Pl61FsK#NQnVIG1|K_d_ zCf%9;rMqvgnfCaKSLdQn@p*v8>EOKg+y%eM?K2fy4gn1rjB zJWOa3SMO}=VdJ7hhMZPplZptOkp# z(y?0{>&dR~7 z9*2avJD9o1EWJvANw%7&w5!pRMTTb5H#hHFJyc6+KaB2-hch@hJ)m(N#@>25(=-Wa zDMlQ)nFZls+8Xm?%UUF;w{brv9njl`X;+O_dpB0PAiKRuNMi$1X)lj&Mvgs=0ngU~ zziple(BW)?ovN(>&VxD9X-Aj`ED za0uWOJbFL~ZF)cmZ7Fhct>S)R=u+eqUB$7ht#k(?g^C+vY$?1k%iwtYo6_+#C8gtO zN{ZuE>5Ai_Z;C^^PTqykz1}GTaKbT;b{qT%QE%<rHV=!m=uxBM5Xb=#w^Vc8e}AJ)A7r-zYJ;8$V}ko zIUEW_F7(XsYG6AQPv~sN0=!wn=1-HXKpHcxtT7YtaH}wlb^nnxR=Rq!wsHxQe`1uX zxD9g|Xzq__tYNd}eYRD$A#Qn8k29soFh1M*G;Sc!`gk601{$@`s}nk=($d)!+g8fj z4wdJQ71B!C&Ps{EIDKT;{c{|KJh8iBCo+GGQ_U{UXNL~XchI)m&R|$!%RD7 z4rC$+Y=fGPUkb=FybN#%AZy%U zIr5seRBwa9rO2h#iu;zs{lwVx;!e7zcpo_2Zbz4f)Tv*p4=LRehdbTj);Zh;hkM)M z-gCG|@OdhsZ-&Lo-nn&iRyQm?o3kzfSk&{7Kpad?ncYMuZNYpWS*Z=v9Mz*QJ(pzN z1FB6sO=Hb|b{Af~jXN1rnD8YNWNS;pJuBLJGO+$>1#K~G$BQc%q!GT2u#q-?+iZgi zjjhQPw0^t;2+RXy60G~jbP!i$gqP=P{_wJ{}_N+8Q|(Hx=|JOL@-2{(jQICwI3B^#;f#hS^C6Z&hQ93zNcy z2Tj^mnuQi>Wh2`X^Try<8hy!6M@^h7*HmXBm3_-cenqBy1&@bdI+!}aNa}2R%dwFF zGJo0L$R=5rX-+}=Va}Zf$TTkn3;+fJSq^Ap(!Qp`uI-C9ZC|vd$k{fE`#Rng_k^*f z@u28H)uYdb!0OAut&pKzjdle?f}y{P9({~^I)Whcpyu@u zWRevS6gw0UR`f&*2=SsnI9#Xiip*3&KtNo{xj1?rTydCh<_T+U5+HdL%{i!*gy^n! z4+A_8@F>8IfJd8m<{{sQ0A}OSLriGXLriE(kz*wlccY=xlYABTl*7GhY^idXt@^D- zs+8_zV@vU>YS_~X_ZT<(+fSwKr0{s4j-J>&uqy-$iV4gQ+*X z;OUc^_-1%NF0H6i>!zL4QRzpEV;DtmhwHy(L`sS!Sy@Gh|G0l`I6t`bH0j&v^_lY! zd=mJdt?R7+%*_mJ98tBq4EavJWk|1Uyx4N^%XX0=DtzSl7~SHRIiDobhUJ(f7rkjK zT8?*C>kPU4PU+a~ULbTRRnyuofbDQR8Q$giRmpS>Y-0q+ip|z`8y;)!H<8an2tVBd(TE1sV0bolfRucmxKc|~oxS6tW8 z`%facDo)#_e`{lGW@(9Z>Pc>m(gGUC48NE5!Jm(^p>&N8|hl>6gJ>-;C`7xF1$ z2l0LqP8%|a6_BQ{vyAHDmV)Q$k>{Y*M2ADhqG!mU35n_JEF)A>R5G-`XVQCP!(mDj zd=Tp{J$;>JRA|DPI=Sk5vEi_lC-}H$mo}Qd&N5;HJOIy*b6>BC4QD7^5`2DSw{kvv zmJ!g%DQo;pFpT|n&$Afx;Ek~uiZV6C1oO(VQLq^;lg461tIT0&nImufvEi_xtFag) zKMK=q5zg0!7|ca67}gjyHso6@!i6Kd+BRpIkB~3k2tz}fNMC8dB=}hOXs#Xl$Ppo5gEZ+f2@~mywJ*Wx zu6nn>iMbF%>`gEh(nR`V-B0kjjKEvSSCR2Wnn+(1O9?*dufUeG@+!z18`n}}Ax)$& zvb2y^e%I_9(D z)Q%a4X?PF4aQZ<;gln=zx0c<-`qnNch2z8!R^LOri-lUZB*k@d64WZQVqdaN6}qM2 zQ>4^}O^cW_!+0ZeX5LC%zQ5n4i11A(&nxrHSQa-y^a%X7+$3a}%rB9Ig6 zYe0=GQm1fseqLT#prSAjdT-hXi3oj4etBhiUT$%IP6T>JUfzQF1%bS>oW7I=vx_S7 zi}RpB29NoL(<2q8W|c!Ns=PdqpJO^X5rO9ga`NZr7v{}hke9>G&%7C~_tRHwl{poa z`GG(=vd46d=FMQ=DD=5dRuAQ{vg70UcL-KnYJ*l^vcIn!o{6LqK3yejBU zRUM1{jHdC$)16|cFT%vpol3?=*e^%X<@BLD^)-$o!;H{H>pFpreh9inW0i0uKs?=_ z?dUob`Y~AKcol{qo-WZc;Malozl4W|y`y;H?L@rOkHq~S938-rE?#(t0Kf1k3?%T- z@YCak$EgXOfJ)W_^rGg6`I*w#g5ecAN+z zXMafVz-R{0u?#FgL_QQFN(!OPlDjasEQp=`+{w(WWOB{+a(*?oE+h4#+r#bCKh(5f zAAWuwhJn~1jb3ZG_SQkby#%%@an!f3QnfAwNCl4H!Xfh87X}tpEP$2_gJR*~JIkOd zCxsiKITNi2#$EZ3g$HL;1AflJ#?%FtZ?)c-g^xnaN<7e~fObF0sNBHJKnt~*{eM$Gj=AAJg&!^@vu7G}%vdrT zmMgx@?)+B;I(}3;GBr?8f`(YVSi)v(EQ*2As$;F&7O$a5T&xQJn{@7|z%l_DR!{=f z!paKjqS%Vaoc(NdJgVv09ItEdTwiV~CYjAi;Ej>&skEYE0kj|^IFV@p`=-N39=pOv!~Q{P8m>3?XPxogz{;km`S|gih^BbcdL%|Bn;`$y?7vpE$C> z!QDkt4MH6&sj7mqQ&BKfG|X`pMxkMA!Uh(g)(G?Kz-2d$w%fsisf;UY5k`DvL^6X` z#487s*m}uw@MC_+yvT}&8bGn>v@^9s$O=$w>tSU@X-WR#p!AO@mqwf*X<8UKN$NuvDoSn* zlt|^=17r`ng=9DTuKu~)7CTN(vQ;%&C6u2;K^5M?s1j!Ad_#pf*pc>BzEeav%P_Yt(w)NBE>}Oqt;yI-s#StQCTf)k(cU@Uc3we-eDG zj_eFX5Ko7dtNrnGaGw=?tPbl4%uB}8spVBC@pNjp3qDroH3RdJX}(z9)}?}v)h&KN z@UgnZp9nryw^(&*V|8wXqyf4wjVmH`{~s%|hwBvYjn-~xlrXveb7{eT zE@G#(IWS75pEvFpl~2|G9WWKu$lyZyq64O)`dJYmO4Ygzsi?{tQ!+#pbyUkCySNS( zPe*kQWc24<53@R|RXt0xk{8wXY{<&!`P-J4yE2*(iMMjSfL*j>i!yXl15T^7rs}Dr z7T}Fz;+E~5?QTc^)8uN9r4d94P;l1K%0ai zTMN^+Y#+XPJybB%rN>Z6SQ2jK*20lC$gPDLB%crR-ZdlD2h?RNd)H(LiN-?3-0hv2 zHj>1xg?@Zz@*4-j*QO(0JuTStBtB0!g4^xj$>yUu0?oyviVVkz?NI!3AzQa}&k!43 zriiT=zgTjH>*@Ga*E3;Lzw2Prjn~&Y+?}u;h9|@OK7LVGVEYk%(Fcd^8T_IL4BM;t z)DO+MFnh{z8cv0RU!4H z+wf*hJzQy$6?o5~E^}p>Rhmw9QSQ8pMK4q)^t@A}+}FX~XF_8*i=*71f;;yU(q!YA z6y-jFfnp#-!|&(vdbIKf)6B4!0hTgL#c(?~CP9MOE(BZH$e25*55Ode4{Ew+VyY@P z9rJ6V+XHPL+~)4{zJ;gA=fel}uNbld(?32BYmyQQH#($B)HS}-kA z9JkFA&*x)6thY~7kr2BH^zbbV0CS|;h`$b-H*Uk;H`=d)o!Xucfg{J!g5zUQ%T=kHl`~T+r&a1^70Hx}X4TVBWX`bua~L%S7!Gr3&eYMaY;Qjt z?`PqioaJo5X@Hvm3jsF+vg~gJTnhMAz!iWu1Fi~+**g*!HSg|%AD!94$^@}YJzpV8c-hBL`Ey6|#_A#CUJk~5T7P`?;+M%d~mhf~u zG}ir7vFO|Tz`u#-xF}^@hDpD5c*rKyP#T3~P_TYgV_i#Eo8w|CMJyNFPy8(DSN^1j zaZApf3>i{QhIIrORx-TzWMPsI%;k14qhm%WL;LVx>^_72VPs7-W3pceuVETJk$gv0 z4B4x(hTlrg!u^Tt^gmngPj~ z&H$_i1Q+UNUV;lri)SxJ6>4cyg<9HDyl>!FarYTpiuaVmJ>ziXD@s>sY@wPxJgRHB zbVsW32X$fCw5Bn)KE_jk#~RjB8k>{Rb&1^r8tWcim&i?LN7W^U$-G3t$)p$nOjKQx zZPr#C#;Zsf{Z^!CvDZ({2-8Q6tQj95RXI$WF-$k>1uOD&gIkD%^INI_SuYj=4hO6S z~vW4|jw;x=L&VZdMdSV3^Fx0zB*^tBI--xQ`4R*$yn&J+=c2axmr( z2Nbs5+YWXAr5~naj)v+C)5GFU21GH7$u-5D2bcj2(%L-|5VWGXSps+z-irW1i=D!% zu}M6u0|mNP2imkc(3T>)#)>1WSKNEXmMUFe#Z6ukaa>-+#2d21f7l8B@){gait(Sb ze{o8T++ZJR_D+eB-F)WbqTN5cQ)@x^btL=2CBe5H74dKrSzk(w6xw9KnG=TI8yn7G z35T2MNkh|@5+j-XAUr!?+kszrh)}Ae?*tz=(c5tPQeq^_NWe4mgD*cA8xGrDf{!BG zhSQf4BkLmD;e~JB0(laho}m&>G0^-%njs>dXrnJRe)*z!N{oI>;#nHk{2XRZ3=QhI zG1eEvUKFOuB3w8aY(>#rY7vg+<_L^v1vQ{UDaOWy>@>z=c3OlB=a(^@=+@zIo)w)Z1q45wc|xY?O#`W zGJ}o!3-J(pyH}^>>Lj3vqoKBHBJL9b-5=ShhhcNg=|e*;l>@slqjc^va&ch?CJ4Ik z7+N;u94}{kI0GOdJ2m+nnueKpnp13?3-*AHql#1afR6Dt?g8Bapj*8MbeID0&f5bz z3dU>pfQ};h#yy~8zTUM5bnKNryoYp8?ExJ-oiFYo-P?OW$M2A(6+&aA9zeTu$hLk?zam;e|?A1^#MpX<z3lEoMl2L!`gV^aVGo9dJOOymG0m^!b?U*EL)D{ z-<3+&SNd*8cn_U{Z(gl*Bl-xh81-*P3)UJslx`wGy!71x{KPKL`xzb@c#HeJpQ8RH ztU;YwCuDMVLA>x#6yBfLW59ow(jlAThW8l4TMU}abCj;H_V#-?{{l1*ovU=L_wmZ3 z5)sWm4{hmur5ghfFMXIv^&Z>gd80NfU0?OjkM!k(rv3t@BY%w--c!I2y%2R84-Gr6 z@zPg-^p#$OwVNIx!%9^A@P3Q(U3Lj(&MsBDzREWZ1$D?}n7_YD>BigeqHcX;_xqx& zmB#+YlfSIzx9tHPhk)PO13F}%_rpD)V}3op2XvIv|FZ{l>_@!12Xy@2cjM5ZtHvtv zJ|33*K4@UKceEL$h5^#R?m}JYM>+Vv%Gv(`x5wTy$u0iB%T%@K{E|v+8ka5p+(!PHO52vG zf2C~dF${>}HTU^5snp`CZ*FU9Y_}?9|7rc}&s4EyUi;8m!;%U;0jiz;GcX6)c1C^2tRS@Ed67G= zDwI3Z{;QIW+@b1-s$^4#ZV56IOb=Hxv{4i03((SLD?i2*V{=DG7g{+k_i2_hIQ7QU zwdPh-Dz@}aLh2UeSIxp2qc%C7@1Tqf?D+oy1@FUK^NWv)tNH?Ir7Yl1MpDn&|7E)-PT$oT``ym@;Q#sJ5FAHCPNH_u$r7im(=~mz}si zS#C>4uCgN4DcZ(ZZ!IW^!e&QN(+R)8&d{|{)Kv$R&b(kdt^!Y#I#XK%6WUPq)7d&B)Y{qQVf8?U1hKEvRI~rIqC2IQAMM47HOf3T7#>%{ z#uTH$%ajg?7ChTWKSuzuX?+Ll$1Y{6k140gP@Il~G}+S&gjuJ^Ih9HA%mH3DU0x8x zrPC$Qcm7|bU{4lhco8n$t*)uk^L1Dvw##CRkGTJ}y7&~rH#+VqBMDX*&SjZU74n0N`-$N#JYrI-$PAOP36iz|;|I0{oFP=H+2g?S6Z#oi zkSyP2jzi-L=>S%R^b+$)jz#VNsxnjm8xHG*{ z`fL%`Z~s4Y)B&3zdsm@uH_lNrykehk_~ut$2j1llxZ_a`EU)-yBT&wmUUM~0j1mb= ziApx61r^chqZ65xb&|bd+8<?@&U8rSycmxB}`*-Y#3gr-FzNC$9BKB|w zmi^~Cih+q`1g0*sgWK+g3=C}_?>Ya>BlE&9LJuGJu*2EhvO=aVgdc|8kRH+UL&xcn zW3?e~<>K@&_TY!8lOJMFJg7!G{(GDH-rlAjyk+W}zy9{|*Pl1~wzS;SCjGK}^ zTl5;~zLk>o?Q(fw5)%`g%VJjydsnN%(yO^QVCjtv&V9famEPD0LRqwL6@B{D?0su` zVF4gbnlHc&SgPU$>at^ch!yQ+4GDezo<;<^>B2t{xvgM(8M)yf?sIJQbV(Vw`V@19 zj+T^*z0xQr{R`i8g4)5BSk zuxAO|#|4*#UvBD7^00Iw2aqMnfec3pj#?_j<8&?j9xJv|{9^4LIL^k-5Zj9OI_zg_ z@C>ZQ{j+7Q4IR+hUfEdR+1%RVt*yhIaV;x=S<_lyM^tTHJEx+3Mq7&g3mW?i#ds zM^A2IPfqgI#4K2Pr)(?8N~~Pz4yahXBMIJ~#*-l#exumt;P)P}G5C-1FypPsgN1lL zG(3KQm6Y$?BK|I(xn7~I0eI7ccuA9khf}m_y17S#dXf+7BThq8^R2+(Pw;u&k_Uin z%DI4t0R{kBsq+C@eG33{41NgUqj(1M6ce$f^86dIrSOa^gS*z@SeEpW>OJdlQ;-tH zQFWTO6tAj=XD(&bnqz5tUfcz=x2R`VcCXlYFyr>lku_DQQ+mo0FyDoD4~HcN{@(Kx zZmd65&NI0WI6YPAezCE+{!na_@%sa@F@IT)Zo^|up|K$g0{AFG=i_`VHtXOPJeZo_p2|$MlPNmXgu3Pn^=dim?2f1aoeUqyBa<2uTx%l z+#h|8#M>yr9EtZ6)8Av&@;Y13Xw*C7$zHXIP6s?O{S-tFce7bgf*?m${yh;JAy1KZ z_$Y#T49{GA{2bGG=+PR>|M8CFp87b4E_B9Ern%3ZpU#u%%%{g~Q_TD5Hic8vx}ikG zV_>=|iZ%i=*;@dQ1l$TZ5Aaezmf2;1Ljb>nM^AU7O;2~DEd@s)s%xspb1xNlyu;-< z91oySze^l$jl-SgaMw88bq>d7q<+8eaQ}qu8A(g8v88y&53+PQ#+Kqe;zt(m0wGVV z!;vdHw{FfF4OGwOtO)>Bi+Uc)ngmPs%UcVw(tw?gms;5U*}Zr>9&dQbdJ2y8zjaC0 z5Im!CuIiYkdx2;ocIEPwD??|lzQKbM?AdEL8FkYqBRa=4J?MzrBZyA{agB17o?W2c z^3L$h#}Frp7Vo~{TX?F&N`qSo+sZ+UkgVy3W+Yfodeh@BhLvypjj5u18?8Zu8G&97 zZlxc0EbFFE5cmt0SkHLv*#)ULva$xgC*YYak>J$Z37d8zqT!qG1UcE9-^89wf>10)CXjp_g!&44K{vshSvt$^EKMoCMn~u%W{V+qr_vgzX%$ z9Ru4_VoSttw6qc(XW-ND&`?^<1SG8=PYQf9qpkbZkR~I* z$q8SWoHz)cCWuGhp#B6HWz5a!Q9;z1#%?KUzk0=lznshNPS1xCk9}KpWsg%+ce$kEK=TesChz+r zRhD+8qrFw!4tBJxUOefDDSVDSVy|r$ZsHVob`_2%%6r?#(|@(!AiKTWg@6*3C!FH6 zNAvFUG{B*#@Ai|`gO>cC@F^Aa;JxAFhn~p}F0Tib&;JyzjA*&k$qwoubVyz?qHmHC zo!|@OL}rHu+&cvidFgK>q~D2$Q+&yYX%V_9?Ah=j-))%+hoV;g6z{x3ikFYg4tt-5 z6lCN17pnN{=Q3ay9JO`NJ1G`_D zrdbikhR^1L!*`{*5XWlEYL8)tRQrQ~V??aJ9D2yUELL9_v@(eYC;fj1CmrIQUFA+t}TJtcdpjo(gy`UR`%Zlei`spz&ik61N=JR?*ShM`~%=4fUg5?2iyh7ru!D)>wu6i z-Rxcc6>vY~!@GbyBlkT(^2iSXSqKl~(cU3#+B>8z1>29*HPy>7wiG#8Tg z>X&B(D~@LbD~@LbD~@LbEADKEJI~>G&%4rH?{IfI+&3I