38 #include "NptConfig.h" 39 #include "NptStreams.h" 46 const NPT_Result NPT_ERROR_INVALID_PASSWORD = (NPT_ERROR_BASE_TLS-1);
47 const NPT_Result NPT_ERROR_TLS_INVALID_HANDSHAKE = (NPT_ERROR_BASE_TLS-2);
48 const NPT_Result NPT_ERROR_TLS_INVALID_PROTOCOL_MESSAGE = (NPT_ERROR_BASE_TLS-3);
49 const NPT_Result NPT_ERROR_TLS_INVALID_HMAC = (NPT_ERROR_BASE_TLS-4);
50 const NPT_Result NPT_ERROR_TLS_INVALID_VERSION = (NPT_ERROR_BASE_TLS-5);
51 const NPT_Result NPT_ERROR_TLS_INVALID_SESSION = (NPT_ERROR_BASE_TLS-6);
52 const NPT_Result NPT_ERROR_TLS_NO_CIPHER = (NPT_ERROR_BASE_TLS-7);
53 const NPT_Result NPT_ERROR_TLS_BAD_CERTIFICATE = (NPT_ERROR_BASE_TLS-8);
54 const NPT_Result NPT_ERROR_TLS_INVALID_KEY = (NPT_ERROR_BASE_TLS-9);
55 const NPT_Result NPT_ERROR_TLS_NO_CLIENT_RENEGOTIATION = (NPT_ERROR_BASE_TLS-10);
56 const NPT_Result NPT_ERROR_TLS_INVALID_FINISHED_MESSAGE = (NPT_ERROR_BASE_TLS-11);
57 const NPT_Result NPT_ERROR_TLS_NO_CERTIFICATE_DEFINED = (NPT_ERROR_BASE_TLS-12);
58 const NPT_Result NPT_ERROR_TLS_ALERT_HANDSHAKE_FAILED = (NPT_ERROR_BASE_TLS-13);
59 const NPT_Result NPT_ERROR_TLS_ALERT_BAD_CERTIFICATE = (NPT_ERROR_BASE_TLS-14);
60 const NPT_Result NPT_ERROR_TLS_ALERT_INVALID_VERSION = (NPT_ERROR_BASE_TLS-15);
61 const NPT_Result NPT_ERROR_TLS_ALERT_BAD_RECORD_MAC = (NPT_ERROR_BASE_TLS-16);
62 const NPT_Result NPT_ERROR_TLS_ALERT_DECODE_ERROR = (NPT_ERROR_BASE_TLS-17);
63 const NPT_Result NPT_ERROR_TLS_ALERT_DECRYPT_ERROR = (NPT_ERROR_BASE_TLS-18);
64 const NPT_Result NPT_ERROR_TLS_ALERT_ILLEGAL_PARAMETER = (NPT_ERROR_BASE_TLS-19);
65 const NPT_Result NPT_ERROR_TLS_ALERT_UNEXPECTED_MESSAGE = (NPT_ERROR_BASE_TLS-20);
66 const NPT_Result NPT_ERROR_TLS_CERTIFICATE_FAILURE = (NPT_ERROR_BASE_TLS-21);
67 const NPT_Result NPT_ERROR_TLS_CERTIFICATE_NO_TRUST_ANCHOR = (NPT_ERROR_BASE_TLS-22);
68 const NPT_Result NPT_ERROR_TLS_CERTIFICATE_BAD_SIGNATURE = (NPT_ERROR_BASE_TLS-23);
69 const NPT_Result NPT_ERROR_TLS_CERTIFICATE_NOT_YET_VALID = (NPT_ERROR_BASE_TLS-24);
70 const NPT_Result NPT_ERROR_TLS_CERTIFICATE_EXPIRED = (NPT_ERROR_BASE_TLS-25);
71 const NPT_Result NPT_ERROR_TLS_CERTIFICATE_SELF_SIGNED = (NPT_ERROR_BASE_TLS-26);
72 const NPT_Result NPT_ERROR_TLS_CERTIFICATE_INVALID_CHAIN = (NPT_ERROR_BASE_TLS-27);
73 const NPT_Result NPT_ERROR_TLS_CERTIFICATE_UNSUPPORTED_DIGEST = (NPT_ERROR_BASE_TLS-28);
74 const NPT_Result NPT_ERROR_TLS_CERTIFICATE_INVALID_PRIVATE_KEY = (NPT_ERROR_BASE_TLS-29);
75 const NPT_Result NPT_ERROR_TLS_DNS_NAME_MISMATCH = (NPT_ERROR_BASE_TLS-30);
80 const unsigned int NPT_TLS_NULL_WITH_NULL_NULL = 0x00;
81 const unsigned int NPT_TLS_RSA_WITH_RC4_128_MD5 = 0x04;
82 const unsigned int NPT_TLS_RSA_WITH_RC4_128_SHA = 0x05;
83 const unsigned int NPT_TLS_RSA_WITH_AES_128_CBC_SHA = 0x2F;
84 const unsigned int NPT_TLS_RSA_WITH_AES_256_CBC_SHA = 0x35;
89 class NPT_TlsContextImpl;
90 class NPT_TlsSessionImpl;
96 NPT_TLS_KEY_FORMAT_RSA_PRIVATE,
97 NPT_TLS_KEY_FORMAT_PKCS8,
98 NPT_TLS_KEY_FORMAT_PKCS12
102 const unsigned char* cert_data;
103 unsigned int cert_size;
113 static bool MatchDnsNames(
const char* hostname,
115 static bool MatchDnsName(
const char* hostname,
const char* dns_name);
128 OPTION_VERIFY_LATER = 1,
129 OPTION_REQUIRE_CLIENT_CERTIFICATE = 2,
130 OPTION_ADD_DEFAULT_TRUST_ANCHORS = 4,
131 OPTION_NO_SESSION_CACHE = 8
137 NPT_Result LoadKey(NPT_TlsKeyFormat key_format,
138 const unsigned char* key_data,
139 NPT_Size key_data_size,
140 const char* password);
142 NPT_Result SelfSignCertificate(
const char* common_name,
143 const char* organization,
144 const char* organizational_name);
149 NPT_Result AddTrustAnchor(
const unsigned char* ta_data,
150 NPT_Size ta_data_size);
159 NPT_Cardinal anchor_count = 0);
162 NPT_TlsContextImpl* m_Impl;
186 unsigned char sha1[20];
187 unsigned char md5[16];
201 virtual NPT_Result Handshake();
202 virtual NPT_Result GetHandshakeStatus();
204 virtual NPT_Result VerifyPeerCertificate();
205 virtual NPT_Result VerifyDnsNameMatch(
const char* hostname);
207 virtual NPT_UInt32 GetCipherSuiteId();
213 NPT_TlsSessionImpl* impl);
246 #if defined(NPT_CONFIG_ENABLE_TLS) 251 OPTION_ACCEPT_SELF_SIGNED_CERTS = 1,
252 OPTION_ACCEPT_HOSTNAME_MISMATCH = 2
265 const char* hostname);
299 #if defined(NPT_CONFIG_ENABLE_TLS) 300 #include "NptTlsDefaultTrustAnchorsBase.h" 301 #include "NptTlsDefaultTrustAnchorsExtended.h" 304 #endif // _NPT_TLS_H_ Definition: NptAutomaticCleaner.h:46
Definition: NptHttp.h:126
Definition: NptHttp.h:345
Definition: NptDataBuffer.h:44
Definition: NptHttp.h:386
Definition: NptHttp.h:402
Definition: NptTime.h:116
Definition: NptHttp.h:414
Definition: NptStrings.h:57