#ifndef HEADER_GMTLS_H #define HEADER_GMTLS_H #ifdef __cplusplus extern "C" { #endif /* version */ # define GMTLS_VERSION 0x0101 # define GMTLS_VERSION_MAJOR 0x01 # define GMTLS_VERSOIN_MINOR 0x01 /* SSLVPN ciphersuites from GM/T 0024-2014 Table 2 */ # define GMTLS_CK_ECDHE_SM1_SM3 0x0300E001 # define GMTLS_CK_ECC_SM1_SM3 0x0300E003 # define GMTLS_CK_IBSDH_SM1_SM3 0x0300E005 # define GMTLS_CK_IBC_SM1_SM3 0x0300E007 # define GMTLS_CK_RSA_SM1_SM3 0x0300E009 # define GMTLS_CK_RSA_SM1_SHA1 0x0300E00A # define GMTLS_CK_ECDHE_SM4_SM3 0x0300E011 # define GMTLS_CK_ECC_SM4_SM3 0x0300E013 # define GMTLS_CK_IBSDH_SM4_SM3 0x0300E015 # define GMTLS_CK_IBC_SM4_SM3 0x0300E017 # define GMTLS_CK_RSA_SM4_SM3 0x0300E019 # define GMTLS_CK_RSA_SM4_SHA1 0x0300E01A /* PSK ciphersuites with NULL cipher */ # define GMTLS_CK_PSK_WITH_NULL_SM3 # define GMTLS_CK_DHE_PSK_WITH_NULL_SM3 0x0300F104 # define GMTLS_CK_RSA_PSK_WITH_NULL_SM3 0x0300F108 # define GMTLS_CK_SM2_PSK_WITH_NULL_SM3 0x0300F108 # define GMTLS_CK_ECDHE_PSK_WITH_NULL_SM3 0x0300F108 /* PSK ciphersuits with SMS4 */ # define GMTLS_CK_PSK_WITH_SMS4_CBC_SM3 0x0300F101 # define GMTLS_CK_PSK_WITH_SMS4_GCM_SM3 0x0300F102 # define GMTLS_CK_PSK_WITH_SMS4_CCM_SM3 0x0300F103 # define GMTLS_CK_DHE_PSK_WITH_SMS4_CBC_SM3 0x0300F105 # define GMTLS_CK_DHE_PSK_WITH_SMS4_GCM_SM3 0x0300F106 # define GMTLS_CK_DHE_PSK_WITH_SMS4_CCM_SM3 0x0300F107 # define GMTLS_CK_RSA_PSK_WITH_SMS4_CBC_SM3 0x0300F109 # define GMTLS_CK_RSA_PSK_WITH_SMS4_GCM_SM3 0x0300F10A # define GMTLS_CK_RSA_PSK_WITH_SMS4_CCM_SM3 0x0300F10B # define GMTLS_CK_ECC_PSK_WITH_SMS4_CBC_SM3 0x0300F109 # define GMTLS_CK_ECC_PSK_WITH_SMS4_GCM_SM3 0x0300F10A # define GMTLS_CK_ECC_PSK_WITH_SMS4_CCM_SM3 0x0300F10B # define GMTLS_CK_PSK_WITH_SM1_CBC_SM3 0x0300F101 # define GMTLS_CK_PSK_WITH_SM1_GCM_SM3 0x0300F102 # define GMTLS_CK_PSK_WITH_SM1_CCM_SM3 0x0300F103 # define GMTLS_CK_DHE_PSK_WITH_SM1_CBC_SM3 0x0300F105 # define GMTLS_CK_DHE_PSK_WITH_SM1_GCM_SM3 0x0300F106 # define GMTLS_CK_DHE_PSK_WITH_SM1_CCM_SM3 0x0300F107 # define GMTLS_CK_RSA_PSK_WITH_SM1_CBC_SM3 0x0300F109 # define GMTLS_CK_RSA_PSK_WITH_SM1_GCM_SM3 0x0300F10A # define GMTLS_CK_RSA_PSK_WITH_SM1_CCM_SM3 0x0300F10B # define GMTLS_CK_PSK_WITH_SSF33_CBC_SM3 0x0300F101 # define GMTLS_CK_PSK_WITH_SSF33_GCM_SM3 0x0300F102 # define GMTLS_CK_PSK_WITH_SSF33_CCM_SM3 0x0300F103 # define GMTLS_CK_DHE_PSK_WITH_SSF33_CBC_SM3 0x0300F105 # define GMTLS_CK_DHE_PSK_WITH_SSF33_GCM_SM3 0x0300F106 # define GMTLS_CK_DHE_PSK_WITH_SSF33_CCM_SM3 0x0300F107 # define GMTLS_CK_RSA_PSK_WITH_SSF33_CBC_SM3 0x0300F109 # define GMTLS_CK_RSA_PSK_WITH_SSF33_GCM_SM3 0x0300F10A # define GMTLS_CK_RSA_PSK_WITH_SSF33_CCM_SM3 0x0300F10B /* SRP ciphersuites */ # define GMTLS_CK_SRP_SM3_WITH_SMS4_CBC_SM3 # define GMTLS_CK_SRP_SM3_WITH_SMS4_GCM_SM3 # define GMTLS_CK_SRP_SM3_WITH_SMS4_CBC_SM3 # define GMTLS_CK_SRP_SM3_WITH_SMS4_GCM_SM3 # define GMTLS_CK_SRP_SM3_WITH_SMS4_CCM_SM3 # define TLS_CT_SM2_SIGN 240 # define TLS_CT_SM2_FIXED_ECDH 241 /* from GM/T 0024-2014 Table 1 */ #define GMTLS_AD_UNSUPPORTED_SITE2SITE 200 /* fatal */ #define GMTLS_AD_NO_AREA 201 #define GMTLS_AD_UNSUPPORTED_AREATYPE 202 #define GMTLS_AD_BAD_IBCPARAM 203 /* fatal */ #define GMTLS_AD_UNSUPPORTED_IBCPARAM 204 /* fatal */ #define GMTLS_AD_IDENTITY_NEED 205 /* fatal */ /* SSL_MAX_DIGEST in ssl_locl.h should be update */ #define GM1_PRF_SM3 (SSL_HANDSHAKE_MAC_SM3 << TLS1_PRF_DGST_SHIFT) #ifdef __cplusplus } #endif #endif