9 #include "../sf/service.h"
13 SslCaCertificateId_All = -1,
15 SslCaCertificateId_NintendoCAG3 = 1,
16 SslCaCertificateId_NintendoClass2CAG3 = 2,
18 SslCaCertificateId_AmazonRootCA1 = 1000,
19 SslCaCertificateId_StarfieldServicesRootCertificateAuthorityG2 = 1001,
20 SslCaCertificateId_AddTrustExternalCARoot = 1002,
21 SslCaCertificateId_COMODOCertificationAuthority = 1003,
22 SslCaCertificateId_UTNDATACorpSGC = 1004,
23 SslCaCertificateId_UTNUSERFirstHardware = 1005,
24 SslCaCertificateId_BaltimoreCyberTrustRoot = 1006,
25 SslCaCertificateId_CybertrustGlobalRoot = 1007,
26 SslCaCertificateId_VerizonGlobalRootCA = 1008,
27 SslCaCertificateId_DigiCertAssuredIDRootCA = 1009,
28 SslCaCertificateId_DigiCertAssuredIDRootG2 = 1010,
29 SslCaCertificateId_DigiCertGlobalRootCA = 1011,
30 SslCaCertificateId_DigiCertGlobalRootG2 = 1012,
31 SslCaCertificateId_DigiCertHighAssuranceEVRootCA = 1013,
32 SslCaCertificateId_EntrustnetCertificationAuthority2048 = 1014,
33 SslCaCertificateId_EntrustRootCertificationAuthority = 1015,
34 SslCaCertificateId_EntrustRootCertificationAuthorityG2 = 1016,
35 SslCaCertificateId_GeoTrustGlobalCA2 = 1017,
36 SslCaCertificateId_GeoTrustGlobalCA = 1018,
37 SslCaCertificateId_GeoTrustPrimaryCertificationAuthorityG3 = 1019,
38 SslCaCertificateId_GeoTrustPrimaryCertificationAuthority = 1020,
39 SslCaCertificateId_GlobalSignRootCA = 1021,
40 SslCaCertificateId_GlobalSignRootCAR2 = 1022,
41 SslCaCertificateId_GlobalSignRootCAR3 = 1023,
42 SslCaCertificateId_GoDaddyClass2CertificationAuthority = 1024,
43 SslCaCertificateId_GoDaddyRootCertificateAuthorityG2 = 1025,
44 SslCaCertificateId_StarfieldClass2CertificationAuthority = 1026,
45 SslCaCertificateId_StarfieldRootCertificateAuthorityG2 = 1027,
46 SslCaCertificateId_thawtePrimaryRootCAG3 = 1028,
47 SslCaCertificateId_thawtePrimaryRootCA = 1029,
48 SslCaCertificateId_VeriSignClass3PublicPrimaryCertificationAuthorityG3 = 1030,
49 SslCaCertificateId_VeriSignClass3PublicPrimaryCertificationAuthorityG5 = 1031,
50 SslCaCertificateId_VeriSignUniversalRootCertificationAuthority = 1032,
51 SslCaCertificateId_DSTRootCAX3 = 1033,
56 SslTrustedCertStatus_Invalid = -1,
57 SslTrustedCertStatus_Removed = 0,
58 SslTrustedCertStatus_EnabledTrusted = 1,
59 SslTrustedCertStatus_EnabledNotTrusted = 2,
60 SslTrustedCertStatus_Revoked = 3,
61 } SslTrustedCertStatus;
65 SslFlushSessionCacheOptionType_SingleHost = 0,
66 SslFlushSessionCacheOptionType_AllHosts = 1,
67 } SslFlushSessionCacheOptionType;
71 SslDebugOptionType_AllowDisableVerifyOption = 0,
76 SslVersion_Auto =
BIT(0),
77 SslVersion_TlsV10 =
BIT(3),
78 SslVersion_TlsV11 =
BIT(4),
79 SslVersion_TlsV12 =
BIT(5),
80 SslVersion_TlsV13 =
BIT(6),
81 SslVersion_Auto24 =
BIT(24),
86 SslCertificateFormat_Pem = 1,
87 SslCertificateFormat_Der = 2,
88 } SslCertificateFormat;
92 SslInternalPki_DeviceClientCertDefault = 1,
97 SslContextOption_CrlImportDateCheckEnable = 1,
104 SslVerifyOption_PeerCa =
BIT(0),
105 SslVerifyOption_HostName =
BIT(1),
106 SslVerifyOption_DateCheck =
BIT(2),
107 SslVerifyOption_EvCertPartial =
BIT(3),
108 SslVerifyOption_EvPolicyOid =
BIT(4),
109 SslVerifyOption_EvCertFingerprint =
BIT(5),
115 SslIoMode_Blocking = 1,
116 SslIoMode_NonBlocking = 2,
121 SslPollEvent_Read =
BIT(0),
122 SslPollEvent_Write =
BIT(1),
123 SslPollEvent_Except =
BIT(2),
128 SslSessionCacheMode_None = 0,
129 SslSessionCacheMode_SessionId = 1,
130 SslSessionCacheMode_SessionTicket = 2,
131 } SslSessionCacheMode;
135 SslRenegotiationMode_None = 0,
136 SslRenegotiationMode_Secure = 1,
137 } SslRenegotiationMode;
141 SslOptionType_DoNotCloseSocket = 0,
142 SslOptionType_GetServerCertChain = 1,
143 SslOptionType_SkipDefaultVerify = 2,
144 SslOptionType_EnableAlpn = 3,
149 SslAlpnProtoState_NoSupport = 0,
150 SslAlpnProtoState_Negotiated = 1,
151 SslAlpnProtoState_NoOverlap = 2,
152 SslAlpnProtoState_Selected = 3,
153 SslAlpnProtoState_EarlyValue = 4,
190 char protocol_version[0x8];
200 Service* sslGetServiceSession(
void);
225 Result sslGetCertificates(
void* buffer,
u32 size,
u32 *ca_cert_ids,
u32 count,
u32 *total_out);
233 Result sslGetCertificateBufSize(
u32 *ca_cert_ids,
u32 count,
u32 *out);
243 Result sslFlushSessionCache(
const char *str,
size_t str_bufsize, SslFlushSessionCacheOptionType type,
u32 *out);
253 Result sslSetDebugOption(
const void* buffer,
size_t size, SslDebugOptionType type);
262 Result sslGetDebugOption(
void* buffer,
size_t size, SslDebugOptionType type);
315 Result sslContextImportServerPki(
SslContext *c,
const void* buffer,
u32 size, SslCertificateFormat format,
u64 *
id);
327 Result sslContextImportClientPki(
SslContext *c,
const void* pkcs12,
u32 pkcs12_size,
const char *pw,
u32 pw_size,
u64 *
id);
460 Result sslConnectionGetServerCertDetail(
const void* certbuf,
u32 certbuf_size,
u32 cert_index,
void** cert,
u32 *cert_size);