crypto/dpaa: update the flib RTA

hw flib code is updated as per the latest set of APIs and macros

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
This commit is contained in:
Hemant Agrawal 2018-08-30 11:20:56 +05:30 committed by Akhil Goyal
parent ceb8639387
commit 3373a36ba7
7 changed files with 565 additions and 881 deletions

View File

@ -2328,7 +2328,7 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev,
session->dir = DIR_ENC;
bufsize = cnstr_shdsc_ipsec_new_encap(priv->flc_desc[0].desc,
1, 0, &encap_pdb,
1, 0, SHR_SERIAL, &encap_pdb,
(uint8_t *)&ip4_hdr,
&cipherdata, &authdata);
} else if (ipsec_xform->direction ==
@ -2338,7 +2338,8 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev,
decap_pdb.options = sizeof(struct ip) << 16;
session->dir = DIR_DEC;
bufsize = cnstr_shdsc_ipsec_new_decap(priv->flc_desc[0].desc,
1, 0, &decap_pdb, &cipherdata, &authdata);
1, 0, SHR_SERIAL,
&decap_pdb, &cipherdata, &authdata);
} else
goto out;

View File

@ -588,7 +588,7 @@
#define OP_PCLID_TLS10_PRF (0x09 << OP_PCLID_SHIFT)
#define OP_PCLID_TLS11_PRF (0x0a << OP_PCLID_SHIFT)
#define OP_PCLID_TLS12_PRF (0x0b << OP_PCLID_SHIFT)
#define OP_PCLID_DTLS10_PRF (0x0c << OP_PCLID_SHIFT)
#define OP_PCLID_DTLS_PRF (0x0c << OP_PCLID_SHIFT)
#define OP_PCLID_PUBLICKEYPAIR (0x14 << OP_PCLID_SHIFT)
#define OP_PCLID_DSASIGN (0x15 << OP_PCLID_SHIFT)
#define OP_PCLID_DSAVERIFY (0x16 << OP_PCLID_SHIFT)
@ -612,7 +612,7 @@
#define OP_PCLID_TLS10 (0x09 << OP_PCLID_SHIFT)
#define OP_PCLID_TLS11 (0x0a << OP_PCLID_SHIFT)
#define OP_PCLID_TLS12 (0x0b << OP_PCLID_SHIFT)
#define OP_PCLID_DTLS10 (0x0c << OP_PCLID_SHIFT)
#define OP_PCLID_DTLS (0x0c << OP_PCLID_SHIFT)
#define OP_PCLID_BLOB (0x0d << OP_PCLID_SHIFT)
#define OP_PCLID_IPSEC_NEW (0x11 << OP_PCLID_SHIFT)
#define OP_PCLID_3G_DCRC (0x31 << OP_PCLID_SHIFT)
@ -665,643 +665,179 @@
#define OP_PCL_SRTP_HMAC_SHA1_160 0x0007
/* For SSL 3.0 - OP_PCLID_SSL30 */
#define OP_PCL_SSL30_AES_128_CBC_SHA 0x002f
#define OP_PCL_SSL30_AES_128_CBC_SHA_2 0x0030
#define OP_PCL_SSL30_AES_128_CBC_SHA_3 0x0031
#define OP_PCL_SSL30_AES_128_CBC_SHA_4 0x0032
#define OP_PCL_SSL30_AES_128_CBC_SHA_5 0x0033
#define OP_PCL_SSL30_AES_128_CBC_SHA_6 0x0034
#define OP_PCL_SSL30_AES_128_CBC_SHA_7 0x008c
#define OP_PCL_SSL30_AES_128_CBC_SHA_8 0x0090
#define OP_PCL_SSL30_AES_128_CBC_SHA_9 0x0094
#define OP_PCL_SSL30_AES_128_CBC_SHA_10 0xc004
#define OP_PCL_SSL30_AES_128_CBC_SHA_11 0xc009
#define OP_PCL_SSL30_AES_128_CBC_SHA_12 0xc00e
#define OP_PCL_SSL30_AES_128_CBC_SHA_13 0xc013
#define OP_PCL_SSL30_AES_128_CBC_SHA_14 0xc018
#define OP_PCL_SSL30_AES_128_CBC_SHA_15 0xc01d
#define OP_PCL_SSL30_AES_128_CBC_SHA_16 0xc01e
#define OP_PCL_SSL30_AES_128_CBC_SHA_17 0xc01f
#define OP_PCL_SSL30_AES_256_CBC_SHA 0x0035
#define OP_PCL_SSL30_AES_256_CBC_SHA_2 0x0036
#define OP_PCL_SSL30_AES_256_CBC_SHA_3 0x0037
#define OP_PCL_SSL30_AES_256_CBC_SHA_4 0x0038
#define OP_PCL_SSL30_AES_256_CBC_SHA_5 0x0039
#define OP_PCL_SSL30_AES_256_CBC_SHA_6 0x003a
#define OP_PCL_SSL30_AES_256_CBC_SHA_7 0x008d
#define OP_PCL_SSL30_AES_256_CBC_SHA_8 0x0091
#define OP_PCL_SSL30_AES_256_CBC_SHA_9 0x0095
#define OP_PCL_SSL30_AES_256_CBC_SHA_10 0xc005
#define OP_PCL_SSL30_AES_256_CBC_SHA_11 0xc00a
#define OP_PCL_SSL30_AES_256_CBC_SHA_12 0xc00f
#define OP_PCL_SSL30_AES_256_CBC_SHA_13 0xc014
#define OP_PCL_SSL30_AES_256_CBC_SHA_14 0xc019
#define OP_PCL_SSL30_AES_256_CBC_SHA_15 0xc020
#define OP_PCL_SSL30_AES_256_CBC_SHA_16 0xc021
#define OP_PCL_SSL30_AES_256_CBC_SHA_17 0xc022
#define OP_PCL_SSL30_AES_128_GCM_SHA256_1 0x009C
#define OP_PCL_SSL30_AES_256_GCM_SHA384_1 0x009D
#define OP_PCL_SSL30_AES_128_GCM_SHA256_2 0x009E
#define OP_PCL_SSL30_AES_256_GCM_SHA384_2 0x009F
#define OP_PCL_SSL30_AES_128_GCM_SHA256_3 0x00A0
#define OP_PCL_SSL30_AES_256_GCM_SHA384_3 0x00A1
#define OP_PCL_SSL30_AES_128_GCM_SHA256_4 0x00A2
#define OP_PCL_SSL30_AES_256_GCM_SHA384_4 0x00A3
#define OP_PCL_SSL30_AES_128_GCM_SHA256_5 0x00A4
#define OP_PCL_SSL30_AES_256_GCM_SHA384_5 0x00A5
#define OP_PCL_SSL30_AES_128_GCM_SHA256_6 0x00A6
#define OP_PCL_TLS_DH_ANON_AES_256_GCM_SHA384 0x00A7
#define OP_PCL_TLS_PSK_AES_128_GCM_SHA256 0x00A8
#define OP_PCL_TLS_PSK_AES_256_GCM_SHA384 0x00A9
#define OP_PCL_TLS_DHE_PSK_AES_128_GCM_SHA256 0x00AA
#define OP_PCL_TLS_DHE_PSK_AES_256_GCM_SHA384 0x00AB
#define OP_PCL_TLS_RSA_PSK_AES_128_GCM_SHA256 0x00AC
#define OP_PCL_TLS_RSA_PSK_AES_256_GCM_SHA384 0x00AD
#define OP_PCL_TLS_PSK_AES_128_CBC_SHA256 0x00AE
#define OP_PCL_TLS_PSK_AES_256_CBC_SHA384 0x00AF
#define OP_PCL_TLS_DHE_PSK_AES_128_CBC_SHA256 0x00B2
#define OP_PCL_TLS_DHE_PSK_AES_256_CBC_SHA384 0x00B3
#define OP_PCL_TLS_RSA_PSK_AES_128_CBC_SHA256 0x00B6
#define OP_PCL_TLS_RSA_PSK_AES_256_CBC_SHA384 0x00B7
#define OP_PCL_SSL30_3DES_EDE_CBC_MD5 0x0023
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA 0x001f
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_2 0x008b
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_3 0x008f
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_4 0x0093
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_5 0x000a
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_6 0x000d
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_7 0x0010
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_8 0x0013
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_9 0x0016
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_10 0x001b
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_11 0xc003
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_12 0xc008
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_13 0xc00d
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_14 0xc012
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_15 0xc017
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_16 0xc01a
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_17 0xc01b
#define OP_PCL_SSL30_3DES_EDE_CBC_SHA_18 0xc01c
#define OP_PCL_SSL30_DES40_CBC_MD5 0x0029
#define OP_PCL_SSL30_DES_CBC_MD5 0x0022
#define OP_PCL_SSL30_DES40_CBC_SHA 0x0008
#define OP_PCL_SSL30_DES40_CBC_SHA_2 0x000b
#define OP_PCL_SSL30_DES40_CBC_SHA_3 0x000e
#define OP_PCL_SSL30_DES40_CBC_SHA_4 0x0011
#define OP_PCL_SSL30_DES40_CBC_SHA_5 0x0014
#define OP_PCL_SSL30_DES40_CBC_SHA_6 0x0019
#define OP_PCL_SSL30_DES40_CBC_SHA_7 0x0026
#define OP_PCL_SSL30_DES_CBC_SHA 0x001e
#define OP_PCL_SSL30_DES_CBC_SHA_2 0x0009
#define OP_PCL_SSL30_DES_CBC_SHA_3 0x000c
#define OP_PCL_SSL30_DES_CBC_SHA_4 0x000f
#define OP_PCL_SSL30_DES_CBC_SHA_5 0x0012
#define OP_PCL_SSL30_DES_CBC_SHA_6 0x0015
#define OP_PCL_SSL30_DES_CBC_SHA_7 0x001a
#define OP_PCL_SSL30_RC4_128_MD5 0x0024
#define OP_PCL_SSL30_RC4_128_MD5_2 0x0004
#define OP_PCL_SSL30_RC4_128_MD5_3 0x0018
#define OP_PCL_SSL30_RC4_40_MD5 0x002b
#define OP_PCL_SSL30_RC4_40_MD5_2 0x0003
#define OP_PCL_SSL30_RC4_40_MD5_3 0x0017
#define OP_PCL_SSL30_RC4_128_SHA 0x0020
#define OP_PCL_SSL30_RC4_128_SHA_2 0x008a
#define OP_PCL_SSL30_RC4_128_SHA_3 0x008e
#define OP_PCL_SSL30_RC4_128_SHA_4 0x0092
#define OP_PCL_SSL30_RC4_128_SHA_5 0x0005
#define OP_PCL_SSL30_RC4_128_SHA_6 0xc002
#define OP_PCL_SSL30_RC4_128_SHA_7 0xc007
#define OP_PCL_SSL30_RC4_128_SHA_8 0xc00c
#define OP_PCL_SSL30_RC4_128_SHA_9 0xc011
#define OP_PCL_SSL30_RC4_128_SHA_10 0xc016
#define OP_PCL_SSL30_RC4_40_SHA 0x0028
/* For TLS 1.0 - OP_PCLID_TLS10 */
#define OP_PCL_TLS10_AES_128_CBC_SHA 0x002f
#define OP_PCL_TLS10_AES_128_CBC_SHA_2 0x0030
#define OP_PCL_TLS10_AES_128_CBC_SHA_3 0x0031
#define OP_PCL_TLS10_AES_128_CBC_SHA_4 0x0032
#define OP_PCL_TLS10_AES_128_CBC_SHA_5 0x0033
#define OP_PCL_TLS10_AES_128_CBC_SHA_6 0x0034
#define OP_PCL_TLS10_AES_128_CBC_SHA_7 0x008c
#define OP_PCL_TLS10_AES_128_CBC_SHA_8 0x0090
#define OP_PCL_TLS10_AES_128_CBC_SHA_9 0x0094
#define OP_PCL_TLS10_AES_128_CBC_SHA_10 0xc004
#define OP_PCL_TLS10_AES_128_CBC_SHA_11 0xc009
#define OP_PCL_TLS10_AES_128_CBC_SHA_12 0xc00e
#define OP_PCL_TLS10_AES_128_CBC_SHA_13 0xc013
#define OP_PCL_TLS10_AES_128_CBC_SHA_14 0xc018
#define OP_PCL_TLS10_AES_128_CBC_SHA_15 0xc01d
#define OP_PCL_TLS10_AES_128_CBC_SHA_16 0xc01e
#define OP_PCL_TLS10_AES_128_CBC_SHA_17 0xc01f
#define OP_PCL_TLS10_AES_256_CBC_SHA 0x0035
#define OP_PCL_TLS10_AES_256_CBC_SHA_2 0x0036
#define OP_PCL_TLS10_AES_256_CBC_SHA_3 0x0037
#define OP_PCL_TLS10_AES_256_CBC_SHA_4 0x0038
#define OP_PCL_TLS10_AES_256_CBC_SHA_5 0x0039
#define OP_PCL_TLS10_AES_256_CBC_SHA_6 0x003a
#define OP_PCL_TLS10_AES_256_CBC_SHA_7 0x008d
#define OP_PCL_TLS10_AES_256_CBC_SHA_8 0x0091
#define OP_PCL_TLS10_AES_256_CBC_SHA_9 0x0095
#define OP_PCL_TLS10_AES_256_CBC_SHA_10 0xc005
#define OP_PCL_TLS10_AES_256_CBC_SHA_11 0xc00a
#define OP_PCL_TLS10_AES_256_CBC_SHA_12 0xc00f
#define OP_PCL_TLS10_AES_256_CBC_SHA_13 0xc014
#define OP_PCL_TLS10_AES_256_CBC_SHA_14 0xc019
#define OP_PCL_TLS10_AES_256_CBC_SHA_15 0xc020
#define OP_PCL_TLS10_AES_256_CBC_SHA_16 0xc021
#define OP_PCL_TLS10_AES_256_CBC_SHA_17 0xc022
#define OP_PCL_TLS_ECDHE_ECDSA_AES_128_CBC_SHA256 0xC023
#define OP_PCL_TLS_ECDHE_ECDSA_AES_256_CBC_SHA384 0xC024
#define OP_PCL_TLS_ECDH_ECDSA_AES_128_CBC_SHA256 0xC025
#define OP_PCL_TLS_ECDH_ECDSA_AES_256_CBC_SHA384 0xC026
#define OP_PCL_TLS_ECDHE_RSA_AES_128_CBC_SHA256 0xC027
#define OP_PCL_TLS_ECDHE_RSA_AES_256_CBC_SHA384 0xC028
#define OP_PCL_TLS_ECDH_RSA_AES_128_CBC_SHA256 0xC029
#define OP_PCL_TLS_ECDH_RSA_AES_256_CBC_SHA384 0xC02A
#define OP_PCL_TLS_ECDHE_ECDSA_AES_128_GCM_SHA256 0xC02B
#define OP_PCL_TLS_ECDHE_ECDSA_AES_256_GCM_SHA384 0xC02C
#define OP_PCL_TLS_ECDH_ECDSA_AES_128_GCM_SHA256 0xC02D
#define OP_PCL_TLS_ECDH_ECDSA_AES_256_GCM_SHA384 0xC02E
#define OP_PCL_TLS_ECDHE_RSA_AES_128_GCM_SHA256 0xC02F
#define OP_PCL_TLS_ECDHE_RSA_AES_256_GCM_SHA384 0xC030
#define OP_PCL_TLS_ECDH_RSA_AES_128_GCM_SHA256 0xC031
#define OP_PCL_TLS_ECDH_RSA_AES_256_GCM_SHA384 0xC032
#define OP_PCL_TLS_ECDHE_PSK_RC4_128_SHA 0xC033
#define OP_PCL_TLS_ECDHE_PSK_3DES_EDE_CBC_SHA 0xC034
#define OP_PCL_TLS_ECDHE_PSK_AES_128_CBC_SHA 0xC035
#define OP_PCL_TLS_ECDHE_PSK_AES_256_CBC_SHA 0xC036
#define OP_PCL_TLS_ECDHE_PSK_AES_128_CBC_SHA256 0xC037
#define OP_PCL_TLS_ECDHE_PSK_AES_256_CBC_SHA384 0xC038
/* #define OP_PCL_TLS10_3DES_EDE_CBC_MD5 0x0023 */
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA 0x001f
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_2 0x008b
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_3 0x008f
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_4 0x0093
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_5 0x000a
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_6 0x000d
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_7 0x0010
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_8 0x0013
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_9 0x0016
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_10 0x001b
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_11 0xc003
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_12 0xc008
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_13 0xc00d
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_14 0xc012
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_15 0xc017
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_16 0xc01a
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_17 0xc01b
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA_18 0xc01c
#define OP_PCL_TLS10_DES40_CBC_MD5 0x0029
#define OP_PCL_TLS10_DES_CBC_MD5 0x0022
#define OP_PCL_TLS10_DES40_CBC_SHA 0x0008
#define OP_PCL_TLS10_DES40_CBC_SHA_2 0x000b
#define OP_PCL_TLS10_DES40_CBC_SHA_3 0x000e
#define OP_PCL_TLS10_DES40_CBC_SHA_4 0x0011
#define OP_PCL_TLS10_DES40_CBC_SHA_5 0x0014
#define OP_PCL_TLS10_DES40_CBC_SHA_6 0x0019
#define OP_PCL_TLS10_DES40_CBC_SHA_7 0x0026
#define OP_PCL_TLS10_DES_CBC_SHA 0x001e
#define OP_PCL_TLS10_DES_CBC_SHA_2 0x0009
#define OP_PCL_TLS10_DES_CBC_SHA_3 0x000c
#define OP_PCL_TLS10_DES_CBC_SHA_4 0x000f
#define OP_PCL_TLS10_DES_CBC_SHA_5 0x0012
#define OP_PCL_TLS10_DES_CBC_SHA_6 0x0015
#define OP_PCL_TLS10_DES_CBC_SHA_7 0x001a
#define OP_PCL_TLS10_RC4_128_MD5 0x0024
#define OP_PCL_TLS10_RC4_128_MD5_2 0x0004
#define OP_PCL_TLS10_RC4_128_MD5_3 0x0018
#define OP_PCL_TLS10_RC4_40_MD5 0x002b
#define OP_PCL_TLS10_RC4_40_MD5_2 0x0003
#define OP_PCL_TLS10_RC4_40_MD5_3 0x0017
#define OP_PCL_TLS10_RC4_128_SHA 0x0020
#define OP_PCL_TLS10_RC4_128_SHA_2 0x008a
#define OP_PCL_TLS10_RC4_128_SHA_3 0x008e
#define OP_PCL_TLS10_RC4_128_SHA_4 0x0092
#define OP_PCL_TLS10_RC4_128_SHA_5 0x0005
#define OP_PCL_TLS10_RC4_128_SHA_6 0xc002
#define OP_PCL_TLS10_RC4_128_SHA_7 0xc007
#define OP_PCL_TLS10_RC4_128_SHA_8 0xc00c
#define OP_PCL_TLS10_RC4_128_SHA_9 0xc011
#define OP_PCL_TLS10_RC4_128_SHA_10 0xc016
#define OP_PCL_TLS10_RC4_40_SHA 0x0028
#define OP_PCL_TLS10_3DES_EDE_CBC_MD5 0xff23
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA160 0xff30
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA224 0xff34
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA256 0xff36
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA384 0xff33
#define OP_PCL_TLS10_3DES_EDE_CBC_SHA512 0xff35
#define OP_PCL_TLS10_AES_128_CBC_SHA160 0xff80
#define OP_PCL_TLS10_AES_128_CBC_SHA224 0xff84
#define OP_PCL_TLS10_AES_128_CBC_SHA256 0xff86
#define OP_PCL_TLS10_AES_128_CBC_SHA384 0xff83
#define OP_PCL_TLS10_AES_128_CBC_SHA512 0xff85
#define OP_PCL_TLS10_AES_192_CBC_SHA160 0xff20
#define OP_PCL_TLS10_AES_192_CBC_SHA224 0xff24
#define OP_PCL_TLS10_AES_192_CBC_SHA256 0xff26
#define OP_PCL_TLS10_AES_192_CBC_SHA384 0xff23
#define OP_PCL_TLS10_AES_192_CBC_SHA512 0xff25
#define OP_PCL_TLS10_AES_256_CBC_SHA160 0xff60
#define OP_PCL_TLS10_AES_256_CBC_SHA224 0xff64
#define OP_PCL_TLS10_AES_256_CBC_SHA256 0xff66
#define OP_PCL_TLS10_AES_256_CBC_SHA384 0xff63
#define OP_PCL_TLS10_AES_256_CBC_SHA512 0xff65
#define OP_PCL_TLS_PVT_AES_192_CBC_SHA160 0xff90
#define OP_PCL_TLS_PVT_AES_192_CBC_SHA384 0xff93
#define OP_PCL_TLS_PVT_AES_192_CBC_SHA224 0xff94
#define OP_PCL_TLS_PVT_AES_192_CBC_SHA512 0xff95
#define OP_PCL_TLS_PVT_AES_192_CBC_SHA256 0xff96
#define OP_PCL_TLS_PVT_MASTER_SECRET_PRF_FE 0xfffe
#define OP_PCL_TLS_PVT_MASTER_SECRET_PRF_FF 0xffff
/* For TLS 1.1 - OP_PCLID_TLS11 */
#define OP_PCL_TLS11_AES_128_CBC_SHA 0x002f
#define OP_PCL_TLS11_AES_128_CBC_SHA_2 0x0030
#define OP_PCL_TLS11_AES_128_CBC_SHA_3 0x0031
#define OP_PCL_TLS11_AES_128_CBC_SHA_4 0x0032
#define OP_PCL_TLS11_AES_128_CBC_SHA_5 0x0033
#define OP_PCL_TLS11_AES_128_CBC_SHA_6 0x0034
#define OP_PCL_TLS11_AES_128_CBC_SHA_7 0x008c
#define OP_PCL_TLS11_AES_128_CBC_SHA_8 0x0090
#define OP_PCL_TLS11_AES_128_CBC_SHA_9 0x0094
#define OP_PCL_TLS11_AES_128_CBC_SHA_10 0xc004
#define OP_PCL_TLS11_AES_128_CBC_SHA_11 0xc009
#define OP_PCL_TLS11_AES_128_CBC_SHA_12 0xc00e
#define OP_PCL_TLS11_AES_128_CBC_SHA_13 0xc013
#define OP_PCL_TLS11_AES_128_CBC_SHA_14 0xc018
#define OP_PCL_TLS11_AES_128_CBC_SHA_15 0xc01d
#define OP_PCL_TLS11_AES_128_CBC_SHA_16 0xc01e
#define OP_PCL_TLS11_AES_128_CBC_SHA_17 0xc01f
#define OP_PCL_TLS11_AES_256_CBC_SHA 0x0035
#define OP_PCL_TLS11_AES_256_CBC_SHA_2 0x0036
#define OP_PCL_TLS11_AES_256_CBC_SHA_3 0x0037
#define OP_PCL_TLS11_AES_256_CBC_SHA_4 0x0038
#define OP_PCL_TLS11_AES_256_CBC_SHA_5 0x0039
#define OP_PCL_TLS11_AES_256_CBC_SHA_6 0x003a
#define OP_PCL_TLS11_AES_256_CBC_SHA_7 0x008d
#define OP_PCL_TLS11_AES_256_CBC_SHA_8 0x0091
#define OP_PCL_TLS11_AES_256_CBC_SHA_9 0x0095
#define OP_PCL_TLS11_AES_256_CBC_SHA_10 0xc005
#define OP_PCL_TLS11_AES_256_CBC_SHA_11 0xc00a
#define OP_PCL_TLS11_AES_256_CBC_SHA_12 0xc00f
#define OP_PCL_TLS11_AES_256_CBC_SHA_13 0xc014
#define OP_PCL_TLS11_AES_256_CBC_SHA_14 0xc019
#define OP_PCL_TLS11_AES_256_CBC_SHA_15 0xc020
#define OP_PCL_TLS11_AES_256_CBC_SHA_16 0xc021
#define OP_PCL_TLS11_AES_256_CBC_SHA_17 0xc022
/* #define OP_PCL_TLS11_3DES_EDE_CBC_MD5 0x0023 */
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA 0x001f
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_2 0x008b
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_3 0x008f
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_4 0x0093
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_5 0x000a
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_6 0x000d
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_7 0x0010
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_8 0x0013
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_9 0x0016
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_10 0x001b
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_11 0xc003
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_12 0xc008
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_13 0xc00d
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_14 0xc012
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_15 0xc017
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_16 0xc01a
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_17 0xc01b
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA_18 0xc01c
#define OP_PCL_TLS11_DES40_CBC_MD5 0x0029
#define OP_PCL_TLS11_DES_CBC_MD5 0x0022
#define OP_PCL_TLS11_DES40_CBC_SHA 0x0008
#define OP_PCL_TLS11_DES40_CBC_SHA_2 0x000b
#define OP_PCL_TLS11_DES40_CBC_SHA_3 0x000e
#define OP_PCL_TLS11_DES40_CBC_SHA_4 0x0011
#define OP_PCL_TLS11_DES40_CBC_SHA_5 0x0014
#define OP_PCL_TLS11_DES40_CBC_SHA_6 0x0019
#define OP_PCL_TLS11_DES40_CBC_SHA_7 0x0026
#define OP_PCL_TLS11_DES_CBC_SHA 0x001e
#define OP_PCL_TLS11_DES_CBC_SHA_2 0x0009
#define OP_PCL_TLS11_DES_CBC_SHA_3 0x000c
#define OP_PCL_TLS11_DES_CBC_SHA_4 0x000f
#define OP_PCL_TLS11_DES_CBC_SHA_5 0x0012
#define OP_PCL_TLS11_DES_CBC_SHA_6 0x0015
#define OP_PCL_TLS11_DES_CBC_SHA_7 0x001a
#define OP_PCL_TLS11_RC4_128_MD5 0x0024
#define OP_PCL_TLS11_RC4_128_MD5_2 0x0004
#define OP_PCL_TLS11_RC4_128_MD5_3 0x0018
#define OP_PCL_TLS11_RC4_40_MD5 0x002b
#define OP_PCL_TLS11_RC4_40_MD5_2 0x0003
#define OP_PCL_TLS11_RC4_40_MD5_3 0x0017
#define OP_PCL_TLS11_RC4_128_SHA 0x0020
#define OP_PCL_TLS11_RC4_128_SHA_2 0x008a
#define OP_PCL_TLS11_RC4_128_SHA_3 0x008e
#define OP_PCL_TLS11_RC4_128_SHA_4 0x0092
#define OP_PCL_TLS11_RC4_128_SHA_5 0x0005
#define OP_PCL_TLS11_RC4_128_SHA_6 0xc002
#define OP_PCL_TLS11_RC4_128_SHA_7 0xc007
#define OP_PCL_TLS11_RC4_128_SHA_8 0xc00c
#define OP_PCL_TLS11_RC4_128_SHA_9 0xc011
#define OP_PCL_TLS11_RC4_128_SHA_10 0xc016
#define OP_PCL_TLS11_RC4_40_SHA 0x0028
#define OP_PCL_TLS11_3DES_EDE_CBC_MD5 0xff23
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA160 0xff30
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA224 0xff34
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA256 0xff36
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA384 0xff33
#define OP_PCL_TLS11_3DES_EDE_CBC_SHA512 0xff35
#define OP_PCL_TLS11_AES_128_CBC_SHA160 0xff80
#define OP_PCL_TLS11_AES_128_CBC_SHA224 0xff84
#define OP_PCL_TLS11_AES_128_CBC_SHA256 0xff86
#define OP_PCL_TLS11_AES_128_CBC_SHA384 0xff83
#define OP_PCL_TLS11_AES_128_CBC_SHA512 0xff85
#define OP_PCL_TLS11_AES_192_CBC_SHA160 0xff20
#define OP_PCL_TLS11_AES_192_CBC_SHA224 0xff24
#define OP_PCL_TLS11_AES_192_CBC_SHA256 0xff26
#define OP_PCL_TLS11_AES_192_CBC_SHA384 0xff23
#define OP_PCL_TLS11_AES_192_CBC_SHA512 0xff25
#define OP_PCL_TLS11_AES_256_CBC_SHA160 0xff60
#define OP_PCL_TLS11_AES_256_CBC_SHA224 0xff64
#define OP_PCL_TLS11_AES_256_CBC_SHA256 0xff66
#define OP_PCL_TLS11_AES_256_CBC_SHA384 0xff63
#define OP_PCL_TLS11_AES_256_CBC_SHA512 0xff65
/* For TLS 1.2 - OP_PCLID_TLS12 */
#define OP_PCL_TLS12_AES_128_CBC_SHA 0x002f
#define OP_PCL_TLS12_AES_128_CBC_SHA_2 0x0030
#define OP_PCL_TLS12_AES_128_CBC_SHA_3 0x0031
#define OP_PCL_TLS12_AES_128_CBC_SHA_4 0x0032
#define OP_PCL_TLS12_AES_128_CBC_SHA_5 0x0033
#define OP_PCL_TLS12_AES_128_CBC_SHA_6 0x0034
#define OP_PCL_TLS12_AES_128_CBC_SHA_7 0x008c
#define OP_PCL_TLS12_AES_128_CBC_SHA_8 0x0090
#define OP_PCL_TLS12_AES_128_CBC_SHA_9 0x0094
#define OP_PCL_TLS12_AES_128_CBC_SHA_10 0xc004
#define OP_PCL_TLS12_AES_128_CBC_SHA_11 0xc009
#define OP_PCL_TLS12_AES_128_CBC_SHA_12 0xc00e
#define OP_PCL_TLS12_AES_128_CBC_SHA_13 0xc013
#define OP_PCL_TLS12_AES_128_CBC_SHA_14 0xc018
#define OP_PCL_TLS12_AES_128_CBC_SHA_15 0xc01d
#define OP_PCL_TLS12_AES_128_CBC_SHA_16 0xc01e
#define OP_PCL_TLS12_AES_128_CBC_SHA_17 0xc01f
#define OP_PCL_TLS12_AES_256_CBC_SHA 0x0035
#define OP_PCL_TLS12_AES_256_CBC_SHA_2 0x0036
#define OP_PCL_TLS12_AES_256_CBC_SHA_3 0x0037
#define OP_PCL_TLS12_AES_256_CBC_SHA_4 0x0038
#define OP_PCL_TLS12_AES_256_CBC_SHA_5 0x0039
#define OP_PCL_TLS12_AES_256_CBC_SHA_6 0x003a
#define OP_PCL_TLS12_AES_256_CBC_SHA_7 0x008d
#define OP_PCL_TLS12_AES_256_CBC_SHA_8 0x0091
#define OP_PCL_TLS12_AES_256_CBC_SHA_9 0x0095
#define OP_PCL_TLS12_AES_256_CBC_SHA_10 0xc005
#define OP_PCL_TLS12_AES_256_CBC_SHA_11 0xc00a
#define OP_PCL_TLS12_AES_256_CBC_SHA_12 0xc00f
#define OP_PCL_TLS12_AES_256_CBC_SHA_13 0xc014
#define OP_PCL_TLS12_AES_256_CBC_SHA_14 0xc019
#define OP_PCL_TLS12_AES_256_CBC_SHA_15 0xc020
#define OP_PCL_TLS12_AES_256_CBC_SHA_16 0xc021
#define OP_PCL_TLS12_AES_256_CBC_SHA_17 0xc022
/* #define OP_PCL_TLS12_3DES_EDE_CBC_MD5 0x0023 */
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA 0x001f
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_2 0x008b
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_3 0x008f
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_4 0x0093
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_5 0x000a
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_6 0x000d
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_7 0x0010
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_8 0x0013
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_9 0x0016
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_10 0x001b
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_11 0xc003
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_12 0xc008
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_13 0xc00d
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_14 0xc012
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_15 0xc017
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_16 0xc01a
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_17 0xc01b
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA_18 0xc01c
#define OP_PCL_TLS12_DES40_CBC_MD5 0x0029
#define OP_PCL_TLS12_DES_CBC_MD5 0x0022
#define OP_PCL_TLS12_DES40_CBC_SHA 0x0008
#define OP_PCL_TLS12_DES40_CBC_SHA_2 0x000b
#define OP_PCL_TLS12_DES40_CBC_SHA_3 0x000e
#define OP_PCL_TLS12_DES40_CBC_SHA_4 0x0011
#define OP_PCL_TLS12_DES40_CBC_SHA_5 0x0014
#define OP_PCL_TLS12_DES40_CBC_SHA_6 0x0019
#define OP_PCL_TLS12_DES40_CBC_SHA_7 0x0026
#define OP_PCL_TLS12_DES_CBC_SHA 0x001e
#define OP_PCL_TLS12_DES_CBC_SHA_2 0x0009
#define OP_PCL_TLS12_DES_CBC_SHA_3 0x000c
#define OP_PCL_TLS12_DES_CBC_SHA_4 0x000f
#define OP_PCL_TLS12_DES_CBC_SHA_5 0x0012
#define OP_PCL_TLS12_DES_CBC_SHA_6 0x0015
#define OP_PCL_TLS12_DES_CBC_SHA_7 0x001a
#define OP_PCL_TLS12_RC4_128_MD5 0x0024
#define OP_PCL_TLS12_RC4_128_MD5_2 0x0004
#define OP_PCL_TLS12_RC4_128_MD5_3 0x0018
#define OP_PCL_TLS12_RC4_40_MD5 0x002b
#define OP_PCL_TLS12_RC4_40_MD5_2 0x0003
#define OP_PCL_TLS12_RC4_40_MD5_3 0x0017
#define OP_PCL_TLS12_RC4_128_SHA 0x0020
#define OP_PCL_TLS12_RC4_128_SHA_2 0x008a
#define OP_PCL_TLS12_RC4_128_SHA_3 0x008e
#define OP_PCL_TLS12_RC4_128_SHA_4 0x0092
#define OP_PCL_TLS12_RC4_128_SHA_5 0x0005
#define OP_PCL_TLS12_RC4_128_SHA_6 0xc002
#define OP_PCL_TLS12_RC4_128_SHA_7 0xc007
#define OP_PCL_TLS12_RC4_128_SHA_8 0xc00c
#define OP_PCL_TLS12_RC4_128_SHA_9 0xc011
#define OP_PCL_TLS12_RC4_128_SHA_10 0xc016
#define OP_PCL_TLS12_RC4_40_SHA 0x0028
/* #define OP_PCL_TLS12_AES_128_CBC_SHA256 0x003c */
#define OP_PCL_TLS12_AES_128_CBC_SHA256_2 0x003e
#define OP_PCL_TLS12_AES_128_CBC_SHA256_3 0x003f
#define OP_PCL_TLS12_AES_128_CBC_SHA256_4 0x0040
#define OP_PCL_TLS12_AES_128_CBC_SHA256_5 0x0067
#define OP_PCL_TLS12_AES_128_CBC_SHA256_6 0x006c
/* #define OP_PCL_TLS12_AES_256_CBC_SHA256 0x003d */
#define OP_PCL_TLS12_AES_256_CBC_SHA256_2 0x0068
#define OP_PCL_TLS12_AES_256_CBC_SHA256_3 0x0069
#define OP_PCL_TLS12_AES_256_CBC_SHA256_4 0x006a
#define OP_PCL_TLS12_AES_256_CBC_SHA256_5 0x006b
#define OP_PCL_TLS12_AES_256_CBC_SHA256_6 0x006d
/* AEAD_AES_xxx_CCM/GCM remain to be defined... */
#define OP_PCL_TLS12_3DES_EDE_CBC_MD5 0xff23
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA160 0xff30
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA224 0xff34
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA256 0xff36
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA384 0xff33
#define OP_PCL_TLS12_3DES_EDE_CBC_SHA512 0xff35
#define OP_PCL_TLS12_AES_128_CBC_SHA160 0xff80
#define OP_PCL_TLS12_AES_128_CBC_SHA224 0xff84
#define OP_PCL_TLS12_AES_128_CBC_SHA256 0xff86
#define OP_PCL_TLS12_AES_128_CBC_SHA384 0xff83
#define OP_PCL_TLS12_AES_128_CBC_SHA512 0xff85
#define OP_PCL_TLS12_AES_192_CBC_SHA160 0xff20
#define OP_PCL_TLS12_AES_192_CBC_SHA224 0xff24
#define OP_PCL_TLS12_AES_192_CBC_SHA256 0xff26
#define OP_PCL_TLS12_AES_192_CBC_SHA384 0xff23
#define OP_PCL_TLS12_AES_192_CBC_SHA512 0xff25
#define OP_PCL_TLS12_AES_256_CBC_SHA160 0xff60
#define OP_PCL_TLS12_AES_256_CBC_SHA224 0xff64
#define OP_PCL_TLS12_AES_256_CBC_SHA256 0xff66
#define OP_PCL_TLS12_AES_256_CBC_SHA384 0xff63
#define OP_PCL_TLS12_AES_256_CBC_SHA512 0xff65
/* For DTLS - OP_PCLID_DTLS */
#define OP_PCL_DTLS_AES_128_CBC_SHA 0x002f
#define OP_PCL_DTLS_AES_128_CBC_SHA_2 0x0030
#define OP_PCL_DTLS_AES_128_CBC_SHA_3 0x0031
#define OP_PCL_DTLS_AES_128_CBC_SHA_4 0x0032
#define OP_PCL_DTLS_AES_128_CBC_SHA_5 0x0033
#define OP_PCL_DTLS_AES_128_CBC_SHA_6 0x0034
#define OP_PCL_DTLS_AES_128_CBC_SHA_7 0x008c
#define OP_PCL_DTLS_AES_128_CBC_SHA_8 0x0090
#define OP_PCL_DTLS_AES_128_CBC_SHA_9 0x0094
#define OP_PCL_DTLS_AES_128_CBC_SHA_10 0xc004
#define OP_PCL_DTLS_AES_128_CBC_SHA_11 0xc009
#define OP_PCL_DTLS_AES_128_CBC_SHA_12 0xc00e
#define OP_PCL_DTLS_AES_128_CBC_SHA_13 0xc013
#define OP_PCL_DTLS_AES_128_CBC_SHA_14 0xc018
#define OP_PCL_DTLS_AES_128_CBC_SHA_15 0xc01d
#define OP_PCL_DTLS_AES_128_CBC_SHA_16 0xc01e
#define OP_PCL_DTLS_AES_128_CBC_SHA_17 0xc01f
#define OP_PCL_DTLS_AES_256_CBC_SHA 0x0035
#define OP_PCL_DTLS_AES_256_CBC_SHA_2 0x0036
#define OP_PCL_DTLS_AES_256_CBC_SHA_3 0x0037
#define OP_PCL_DTLS_AES_256_CBC_SHA_4 0x0038
#define OP_PCL_DTLS_AES_256_CBC_SHA_5 0x0039
#define OP_PCL_DTLS_AES_256_CBC_SHA_6 0x003a
#define OP_PCL_DTLS_AES_256_CBC_SHA_7 0x008d
#define OP_PCL_DTLS_AES_256_CBC_SHA_8 0x0091
#define OP_PCL_DTLS_AES_256_CBC_SHA_9 0x0095
#define OP_PCL_DTLS_AES_256_CBC_SHA_10 0xc005
#define OP_PCL_DTLS_AES_256_CBC_SHA_11 0xc00a
#define OP_PCL_DTLS_AES_256_CBC_SHA_12 0xc00f
#define OP_PCL_DTLS_AES_256_CBC_SHA_13 0xc014
#define OP_PCL_DTLS_AES_256_CBC_SHA_14 0xc019
#define OP_PCL_DTLS_AES_256_CBC_SHA_15 0xc020
#define OP_PCL_DTLS_AES_256_CBC_SHA_16 0xc021
#define OP_PCL_DTLS_AES_256_CBC_SHA_17 0xc022
/* #define OP_PCL_DTLS_3DES_EDE_CBC_MD5 0x0023 */
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA 0x001f
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_2 0x008b
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_3 0x008f
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_4 0x0093
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_5 0x000a
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_6 0x000d
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_7 0x0010
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_8 0x0013
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_9 0x0016
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_10 0x001b
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_11 0xc003
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_12 0xc008
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_13 0xc00d
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_14 0xc012
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_15 0xc017
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_16 0xc01a
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_17 0xc01b
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA_18 0xc01c
#define OP_PCL_DTLS_DES40_CBC_MD5 0x0029
#define OP_PCL_DTLS_DES_CBC_MD5 0x0022
#define OP_PCL_DTLS_DES40_CBC_SHA 0x0008
#define OP_PCL_DTLS_DES40_CBC_SHA_2 0x000b
#define OP_PCL_DTLS_DES40_CBC_SHA_3 0x000e
#define OP_PCL_DTLS_DES40_CBC_SHA_4 0x0011
#define OP_PCL_DTLS_DES40_CBC_SHA_5 0x0014
#define OP_PCL_DTLS_DES40_CBC_SHA_6 0x0019
#define OP_PCL_DTLS_DES40_CBC_SHA_7 0x0026
#define OP_PCL_DTLS_DES_CBC_SHA 0x001e
#define OP_PCL_DTLS_DES_CBC_SHA_2 0x0009
#define OP_PCL_DTLS_DES_CBC_SHA_3 0x000c
#define OP_PCL_DTLS_DES_CBC_SHA_4 0x000f
#define OP_PCL_DTLS_DES_CBC_SHA_5 0x0012
#define OP_PCL_DTLS_DES_CBC_SHA_6 0x0015
#define OP_PCL_DTLS_DES_CBC_SHA_7 0x001a
#define OP_PCL_DTLS_3DES_EDE_CBC_MD5 0xff23
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA160 0xff30
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA224 0xff34
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA256 0xff36
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA384 0xff33
#define OP_PCL_DTLS_3DES_EDE_CBC_SHA512 0xff35
#define OP_PCL_DTLS_AES_128_CBC_SHA160 0xff80
#define OP_PCL_DTLS_AES_128_CBC_SHA224 0xff84
#define OP_PCL_DTLS_AES_128_CBC_SHA256 0xff86
#define OP_PCL_DTLS_AES_128_CBC_SHA384 0xff83
#define OP_PCL_DTLS_AES_128_CBC_SHA512 0xff85
#define OP_PCL_DTLS_AES_192_CBC_SHA160 0xff20
#define OP_PCL_DTLS_AES_192_CBC_SHA224 0xff24
#define OP_PCL_DTLS_AES_192_CBC_SHA256 0xff26
#define OP_PCL_DTLS_AES_192_CBC_SHA384 0xff23
#define OP_PCL_DTLS_AES_192_CBC_SHA512 0xff25
#define OP_PCL_DTLS_AES_256_CBC_SHA160 0xff60
#define OP_PCL_DTLS_AES_256_CBC_SHA224 0xff64
#define OP_PCL_DTLS_AES_256_CBC_SHA256 0xff66
#define OP_PCL_DTLS_AES_256_CBC_SHA384 0xff63
#define OP_PCL_DTLS_AES_256_CBC_SHA512 0xff65
/*
* For SSL/TLS/DTLS - OP_PCL_TLS
* For more details see IANA TLS Cipher Suite registry:
* https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml
* Note: for private/internal use (reserved by IANA) - OP_PCL_PVT_TLS
*/
#define OP_PCL_TLS_RSA_EXPORT_WITH_RC4_40_MD5 0x0003
#define OP_PCL_TLS_RSA_WITH_RC4_128_MD5 0x0004
#define OP_PCL_TLS_RSA_WITH_RC4_128_SHA 0x0005
#define OP_PCL_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0008
#define OP_PCL_TLS_RSA_WITH_DES_CBC_SHA 0x0009
#define OP_PCL_TLS_RSA_WITH_3DES_EDE_CBC_SHA 0x000a
#define OP_PCL_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA 0x000b
#define OP_PCL_TLS_DH_DSS_WITH_DES_CBC_SHA 0x000c
#define OP_PCL_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA 0x000d
#define OP_PCL_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA 0x000e
#define OP_PCL_TLS_DH_RSA_WITH_DES_CBC_SHA 0x000f
#define OP_PCL_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA 0x0010
#define OP_PCL_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 0x0011
#define OP_PCL_TLS_DHE_DSS_WITH_DES_CBC_SHA 0x0012
#define OP_PCL_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA 0x0013
#define OP_PCL_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0014
#define OP_PCL_TLS_DHE_RSA_WITH_DES_CBC_SHA 0x0015
#define OP_PCL_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 0x0016
#define OP_PCL_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 0x0017
#define OP_PCL_TLS_DH_anon_WITH_RC4_128_MD5 0x0018
#define OP_PCL_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA 0x0019
#define OP_PCL_TLS_DH_anon_WITH_DES_CBC_SHA 0x001a
#define OP_PCL_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA 0x001b
#define OP_PCL_TLS_KRB5_WITH_DES_CBC_SHA 0x001e
#define OP_PCL_TLS_KRB5_WITH_3DES_EDE_CBC_SHA 0x001f
#define OP_PCL_TLS_KRB5_WITH_RC4_128_SHA 0x0020
#define OP_PCL_TLS_KRB5_WITH_3DES_EDE_CBC_MD5 0x0023
#define OP_PCL_TLS_KRB5_WITH_DES_CBC_MD5 0x0022
#define OP_PCL_TLS_KRB5_WITH_RC4_128_MD5 0x0024
#define OP_PCL_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA 0x0026
#define OP_PCL_TLS_KRB5_EXPORT_WITH_RC4_40_SHA 0x0028
#define OP_PCL_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 0x0029
#define OP_PCL_TLS_KRB5_EXPORT_WITH_RC4_40_MD5 0x002b
#define OP_PCL_TLS_RSA_WITH_AES_128_CBC_SHA 0x002f
#define OP_PCL_TLS_DH_DSS_WITH_AES_128_CBC_SHA 0x0030
#define OP_PCL_TLS_DH_RSA_WITH_AES_128_CBC_SHA 0x0031
#define OP_PCL_TLS_DHE_DSS_WITH_AES_128_CBC_SHA 0x0032
#define OP_PCL_TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0x0033
#define OP_PCL_TLS_DH_anon_WITH_AES_128_CBC_SHA 0x0034
#define OP_PCL_TLS_RSA_WITH_AES_256_CBC_SHA 0x0035
#define OP_PCL_TLS_DH_DSS_WITH_AES_256_CBC_SHA 0x0036
#define OP_PCL_TLS_DH_RSA_WITH_AES_256_CBC_SHA 0x0037
#define OP_PCL_TLS_DHE_DSS_WITH_AES_256_CBC_SHA 0x0038
#define OP_PCL_TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0x0039
#define OP_PCL_TLS_DH_anon_WITH_AES_256_CBC_SHA 0x003a
#define OP_PCL_TLS_RSA_WITH_AES_128_CBC_SHA256 0x003c
#define OP_PCL_TLS_RSA_WITH_AES_256_CBC_SHA256 0x003d
#define OP_PCL_TLS_DH_DSS_WITH_AES_128_CBC_SHA256 0x003e
#define OP_PCL_TLS_DH_RSA_WITH_AES_128_CBC_SHA256 0x003f
#define OP_PCL_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 0x0040
#define OP_PCL_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0x0067
#define OP_PCL_TLS_DH_DSS_WITH_AES_256_CBC_SHA256 0x0068
#define OP_PCL_TLS_DH_RSA_WITH_AES_256_CBC_SHA256 0x0069
#define OP_PCL_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 0x006a
#define OP_PCL_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0x006b
#define OP_PCL_TLS_DH_anon_WITH_AES_128_CBC_SHA256 0x006c
#define OP_PCL_TLS_DH_anon_WITH_AES_256_CBC_SHA256 0x006d
#define OP_PCL_TLS_PSK_WITH_RC4_128_SHA 0x008a
#define OP_PCL_TLS_PSK_WITH_3DES_EDE_CBC_SHA 0x008b
#define OP_PCL_TLS_PSK_WITH_AES_128_CBC_SHA 0x008c
#define OP_PCL_TLS_PSK_WITH_AES_256_CBC_SHA 0x008d
#define OP_PCL_TLS_DHE_PSK_WITH_RC4_128_SHA 0x008e
#define OP_PCL_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x008f
#define OP_PCL_TLS_DHE_PSK_WITH_AES_128_CBC_SHA 0x0090
#define OP_PCL_TLS_DHE_PSK_WITH_AES_256_CBC_SHA 0x0091
#define OP_PCL_TLS_RSA_PSK_WITH_RC4_128_SHA 0x0092
#define OP_PCL_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x0093
#define OP_PCL_TLS_RSA_PSK_WITH_AES_128_CBC_SHA 0x0094
#define OP_PCL_TLS_RSA_PSK_WITH_AES_256_CBC_SHA 0x0095
#define OP_PCL_TLS_RSA_WITH_AES_128_GCM_SHA256 0x009c
#define OP_PCL_TLS_RSA_WITH_AES_256_GCM_SHA384 0x009d
#define OP_PCL_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 0x009e
#define OP_PCL_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 0x009f
#define OP_PCL_TLS_DH_RSA_WITH_AES_128_GCM_SHA256 0x00a0
#define OP_PCL_TLS_DH_RSA_WITH_AES_256_GCM_SHA384 0x00a1
#define OP_PCL_TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 0x00a2
#define OP_PCL_TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 0x00a3
#define OP_PCL_TLS_DH_DSS_WITH_AES_128_GCM_SHA256 0x00a4
#define OP_PCL_TLS_DH_DSS_WITH_AES_256_GCM_SHA384 0x00a5
#define OP_PCL_TLS_DH_anon_WITH_AES_128_GCM_SHA256 0x00a6
#define OP_PCL_TLS_DH_anon_WITH_AES_256_GCM_SHA384 0x00a7
#define OP_PCL_TLS_PSK_WITH_AES_128_GCM_SHA256 0x00a8
#define OP_PCL_TLS_PSK_WITH_AES_256_GCM_SHA384 0x00a9
#define OP_PCL_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 0x00aa
#define OP_PCL_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 0x00ab
#define OP_PCL_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 0x00ac
#define OP_PCL_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 0x00ad
#define OP_PCL_TLS_PSK_WITH_AES_128_CBC_SHA256 0x00ae
#define OP_PCL_TLS_PSK_WITH_AES_256_CBC_SHA384 0x00af
#define OP_PCL_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 0x00b2
#define OP_PCL_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 0x00b3
#define OP_PCL_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 0x00b6
#define OP_PCL_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 0x00b7
#define OP_PCL_TLS_ECDH_ECDSA_WITH_RC4_128_SHA 0xc002
#define OP_PCL_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 0xc003
#define OP_PCL_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0xc004
#define OP_PCL_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0xc005
#define OP_PCL_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 0xc007
#define OP_PCL_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 0xc008
#define OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0xc009
#define OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0xc00a
#define OP_PCL_TLS_ECDH_RSA_WITH_RC4_128_SHA 0xc00c
#define OP_PCL_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA 0xc00d
#define OP_PCL_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 0xc00e
#define OP_PCL_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 0xc00f
#define OP_PCL_TLS_ECDHE_RSA_WITH_RC4_128_SHA 0xc011
#define OP_PCL_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 0xc012
#define OP_PCL_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 0xc013
#define OP_PCL_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 0xc014
#define OP_PCL_TLS_ECDH_anon_WITH_RC4_128_SHA 0xc016
#define OP_PCL_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA 0xc017
#define OP_PCL_TLS_ECDH_anon_WITH_AES_128_CBC_SHA 0xc018
#define OP_PCL_TLS_ECDH_anon_WITH_AES_256_CBC_SHA 0xc019
#define OP_PCL_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0xc01a
#define OP_PCL_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0xc01b
#define OP_PCL_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0xc01c
#define OP_PCL_TLS_SRP_SHA_WITH_AES_128_CBC_SHA 0xc01d
#define OP_PCL_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0xc01e
#define OP_PCL_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0xc01f
#define OP_PCL_TLS_SRP_SHA_WITH_AES_256_CBC_SHA 0xc020
#define OP_PCL_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0xc021
#define OP_PCL_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0xc022
#define OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 0xc023
#define OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 0xc024
#define OP_PCL_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 0xc025
#define OP_PCL_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 0xc026
#define OP_PCL_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0xc027
#define OP_PCL_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 0xc028
#define OP_PCL_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 0xc029
#define OP_PCL_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 0xc02a
#define OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0xc02b
#define OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0xc02c
#define OP_PCL_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0xc02d
#define OP_PCL_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0xc02e
#define OP_PCL_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0xc02f
#define OP_PCL_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0xc030
#define OP_PCL_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 0xc031
#define OP_PCL_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 0xc032
#define OP_PCL_TLS_ECDHE_PSK_WITH_RC4_128_SHA 0xc033
#define OP_PCL_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0xc034
#define OP_PCL_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA 0xc035
#define OP_PCL_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA 0xc036
#define OP_PCL_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0xc037
#define OP_PCL_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0xc038
#define OP_PCL_PVT_TLS_3DES_EDE_CBC_MD5 0xff23
#define OP_PCL_PVT_TLS_3DES_EDE_CBC_SHA160 0xff30
#define OP_PCL_PVT_TLS_3DES_EDE_CBC_SHA384 0xff33
#define OP_PCL_PVT_TLS_3DES_EDE_CBC_SHA224 0xff34
#define OP_PCL_PVT_TLS_3DES_EDE_CBC_SHA512 0xff35
#define OP_PCL_PVT_TLS_3DES_EDE_CBC_SHA256 0xff36
#define OP_PCL_PVT_TLS_AES_256_CBC_SHA160 0xff60
#define OP_PCL_PVT_TLS_AES_256_CBC_SHA384 0xff63
#define OP_PCL_PVT_TLS_AES_256_CBC_SHA224 0xff64
#define OP_PCL_PVT_TLS_AES_256_CBC_SHA512 0xff65
#define OP_PCL_PVT_TLS_AES_256_CBC_SHA256 0xff66
#define OP_PCL_PVT_TLS_AES_128_CBC_SHA160 0xff80
#define OP_PCL_PVT_TLS_AES_128_CBC_SHA384 0xff83
#define OP_PCL_PVT_TLS_AES_128_CBC_SHA224 0xff84
#define OP_PCL_PVT_TLS_AES_128_CBC_SHA512 0xff85
#define OP_PCL_PVT_TLS_AES_128_CBC_SHA256 0xff86
#define OP_PCL_PVT_TLS_AES_192_CBC_SHA160 0xff90
#define OP_PCL_PVT_TLS_AES_192_CBC_SHA384 0xff93
#define OP_PCL_PVT_TLS_AES_192_CBC_SHA224 0xff94
#define OP_PCL_PVT_TLS_AES_192_CBC_SHA512 0xff95
#define OP_PCL_PVT_TLS_AES_192_CBC_SHA256 0xff96
#define OP_PCL_PVT_TLS_MASTER_SECRET_PRF_FE 0xfffe
#define OP_PCL_PVT_TLS_MASTER_SECRET_PRF_FF 0xffff
/* 802.16 WiMAX protinfos */
#define OP_PCL_WIMAX_OFDM 0x0201

View File

@ -409,6 +409,35 @@ cnstr_shdsc_kasumi_f9(uint32_t *descbuf, bool ps, bool swap,
return PROGRAM_FINALIZE(p);
}
/**
* cnstr_shdsc_crc - CRC32 Accelerator (IEEE 802 CRC32 protocol mode)
* @descbuf: pointer to descriptor-under-construction buffer
* @swap: must be true when core endianness doesn't match SEC endianness
*
* Return: size of descriptor written in words or negative number on error
*/
static inline int
cnstr_shdsc_crc(uint32_t *descbuf, bool swap)
{
struct program prg;
struct program *p = &prg;
PROGRAM_CNTXT_INIT(p, descbuf, 0);
if (swap)
PROGRAM_SET_BSWAP(p);
SHR_HDR(p, SHR_ALWAYS, 1, 0);
MATHB(p, SEQINSZ, SUB, MATH2, VSEQINSZ, 4, 0);
ALG_OPERATION(p, OP_ALG_ALGSEL_CRC,
OP_ALG_AAI_802 | OP_ALG_AAI_DOC,
OP_ALG_AS_FINALIZE, 0, DIR_ENC);
SEQFIFOLOAD(p, MSG2, 0, VLF | LAST2);
SEQSTORE(p, CONTEXT2, 0, 4, 0);
return PROGRAM_FINALIZE(p);
}
/**
* cnstr_shdsc_gcm_encap - AES-GCM encap as a shared descriptor
* @descbuf: pointer to descriptor-under-construction buffer
@ -614,33 +643,4 @@ cnstr_shdsc_gcm_decap(uint32_t *descbuf, bool ps, bool swap,
return PROGRAM_FINALIZE(p);
}
/**
* cnstr_shdsc_crc - CRC32 Accelerator (IEEE 802 CRC32 protocol mode)
* @descbuf: pointer to descriptor-under-construction buffer
* @swap: must be true when core endianness doesn't match SEC endianness
*
* Return: size of descriptor written in words or negative number on error
*/
static inline int
cnstr_shdsc_crc(uint32_t *descbuf, bool swap)
{
struct program prg;
struct program *p = &prg;
PROGRAM_CNTXT_INIT(p, descbuf, 0);
if (swap)
PROGRAM_SET_BSWAP(p);
SHR_HDR(p, SHR_ALWAYS, 1, 0);
MATHB(p, SEQINSZ, SUB, MATH2, VSEQINSZ, 4, 0);
ALG_OPERATION(p, OP_ALG_ALGSEL_CRC,
OP_ALG_AAI_802 | OP_ALG_AAI_DOC,
OP_ALG_AS_FINALIZE, 0, DIR_ENC);
SEQFIFOLOAD(p, MSG2, 0, VLF | LAST2);
SEQSTORE(p, CONTEXT2, 0, 4, 0);
return PROGRAM_FINALIZE(p);
}
#endif /* __DESC_ALGO_H__ */

View File

@ -522,44 +522,133 @@ enum ipsec_icv_size {
/*
* IPSec ESP Datapath Protocol Override Register (DPOVRD)
* IPSEC_N_* defines are for IPsec new mode.
*/
#define IPSEC_DECO_DPOVRD_USE 0x80
/**
* IPSEC_DPOVRD_USE - DPOVRD will override values specified in the PDB
*/
#define IPSEC_DPOVRD_USE BIT(31)
struct ipsec_deco_dpovrd {
uint8_t ovrd_ecn;
uint8_t ip_hdr_len;
uint8_t nh_offset;
union {
uint8_t next_header; /* next header if encap */
uint8_t rsvd; /* reserved if decap */
};
};
/**
* IPSEC_DPOVRD_ECN_SHIFT - Explicit Congestion Notification
*
* If set, MSB of the 4 bits indicates that the 2 LSBs will replace the ECN bits
* in the IP header.
*/
#define IPSEC_DPOVRD_ECN_SHIFT 24
struct ipsec_new_encap_deco_dpovrd {
#define IPSEC_NEW_ENCAP_DECO_DPOVRD_USE 0x8000
uint16_t ovrd_ip_hdr_len; /* OVRD + outer IP header material
* length
*/
#define IPSEC_NEW_ENCAP_OIMIF 0x80
uint8_t oimif_aoipho; /* OIMIF + actual outer IP header
* offset
*/
uint8_t rsvd;
};
/**
* IPSEC_DPOVRD_ECN_MASK - See IPSEC_DPOVRD_ECN_SHIFT
*/
#define IPSEC_DPOVRD_ECN_MASK (0xf << IPSEC_ENCAP_DPOVRD_ECN_SHIFT)
struct ipsec_new_decap_deco_dpovrd {
uint8_t ovrd;
uint8_t aoipho_hi; /* upper nibble of actual outer IP
* header
*/
uint16_t aoipho_lo_ip_hdr_len; /* lower nibble of actual outer IP
* header + outer IP header material
*/
};
/**
* IPSEC_DPOVRD_IP_HDR_LEN_SHIFT - The length (in bytes) of the portion of the
* IP header that is not encrypted
*/
#define IPSEC_DPOVRD_IP_HDR_LEN_SHIFT 16
static inline void
__gen_auth_key(struct program *program, struct alginfo *authdata)
/**
* IPSEC_DPOVRD_IP_HDR_LEN_MASK - See IPSEC_DPOVRD_IP_HDR_LEN_SHIFT
*/
#define IPSEC_DPOVRD_IP_HDR_LEN_MASK (0xff << IPSEC_DPOVRD_IP_HDR_LEN_SHIFT)
/**
* IPSEC_DPOVRD_NH_OFFSET_SHIFT - The location of the next header field within
* the IP header of the transport mode packet
*
* Encap:
* ESP_Trailer_NH <-- IP_Hdr[DPOVRD[NH_OFFSET]]
* IP_Hdr[DPOVRD[NH_OFFSET]] <-- DPOVRD[NH]
*Decap:
* IP_Hdr[DPOVRD[NH_OFFSET]] <-- ESP_Trailer_NH
*/
#define IPSEC_DPOVRD_NH_OFFSET_SHIFT 8
/**
* IPSEC_DPOVRD_NH_OFFSET_MASK - See IPSEC_DPOVRD_NH_OFFSET_SHIFT
*/
#define IPSEC_DPOVRD_NH_OFFSET_MASK (0xff << IPSEC_DPOVRD_NH_OFFSET_SHIFT)
/**
* IPSEC_DPOVRD_NH_MASK - See IPSEC_DPOVRD_NH_OFFSET_SHIFT
* Valid only for encapsulation.
*/
#define IPSEC_DPOVRD_NH_MASK 0xff
/**
* IPSEC_N_ENCAP_DPOVRD_OIM_LEN_SHIFT - Outer IP header Material length (encap)
* Valid only if L2_COPY is not set.
*/
#define IPSEC_N_ENCAP_DPOVRD_OIM_LEN_SHIFT 16
/**
* IPSEC_N_ENCAP_DPOVRD_OIM_LEN_MASK - See IPSEC_N_ENCAP_DPOVRD_OIM_LEN_SHIFT
*/
#define IPSEC_N_ENCAP_DPOVRD_OIM_LEN_MASK \
(0xfff << IPSEC_N_ENCAP_DPOVRD_OIM_LEN_SHIFT)
/**
* IPSEC_N_ENCAP_DPOVRD_L2_LEN_SHIFT - L2 header length
* Valid only if L2_COPY is set.
*/
#define IPSEC_N_ENCAP_DPOVRD_L2_LEN_SHIFT 16
/**
* IPSEC_N_ENCAP_DPOVRD_L2_LEN_MASK - See IPSEC_N_ENCAP_DPOVRD_L2_LEN_SHIFT
*/
#define IPSEC_N_ENCAP_DPOVRD_L2_LEN_MASK \
(0xff << IPSEC_N_ENCAP_DPOVRD_L2_LEN_SHIFT)
/**
* IPSEC_N_ENCAP_DPOVRD_OIMIF - Outer IP header Material in Input Frame
*/
#define IPSEC_N_ENCAP_DPOVRD_OIMIF BIT(15)
/**
* IPSEC_N_ENCAP_DPOVRD_L2_COPY - L2 header present in input frame
*
* Note: For Era <= 8, this bit is reserved (not used) by HW.
*/
#define IPSEC_N_ENCAP_DPOVRD_L2_COPY BIT(14)
/**
* IPSEC_N_ENCAP_DPOVRD_AOIPHO_SHIFT - Actual Outer IP Header Offset (encap)
*/
#define IPSEC_N_ENCAP_DPOVRD_AOIPHO_SHIFT 8
/**
* IPSEC_N_ENCAP_DPOVRD_AOIPHO_MASK - See IPSEC_N_ENCAP_DPOVRD_AOIPHO_SHIFT
*/
#define IPSEC_N_ENCAP_DPOVRD_AOIPHO_MASK \
(0x3c << IPSEC_N_ENCAP_DPOVRD_AOIPHO_SHIFT)
/**
* IPSEC_N_ENCAP_DPOVRD_NH_MASK - Next Header
*
* Used in the Next Header field of the encapsulated payload.
*/
#define IPSEC_N_ENCAP_DPOVRD_NH_MASK 0xff
/**
* IPSEC_N_DECAP_DPOVRD_AOIPHO_SHIFT - Actual Outer IP Header Offset (decap)
*/
#define IPSEC_N_DECAP_DPOVRD_AOIPHO_SHIFT 12
/**
* IPSEC_N_DECAP_DPOVRD_AOIPHO_MASK - See IPSEC_N_DECAP_DPOVRD_AOIPHO_SHIFT
*/
#define IPSEC_N_DECAP_DPOVRD_AOIPHO_MASK \
(0xff << IPSEC_N_DECAP_DPOVRD_AOIPHO_SHIFT)
/**
* IPSEC_N_DECAP_DPOVRD_OIM_LEN_MASK - Outer IP header Material length (decap)
*/
#define IPSEC_N_DECAP_DPOVRD_OIM_LEN_MASK 0xfff
static inline void __gen_auth_key(struct program *program,
struct alginfo *authdata)
{
uint32_t dkp_protid;
@ -603,6 +692,7 @@ __gen_auth_key(struct program *program, struct alginfo *authdata)
* @descbuf: pointer to buffer used for descriptor construction
* @ps: if 36/40bit addressing is desired, this parameter must be true
* @swap: if true, perform descriptor byte swapping on a 4-byte boundary
* @share: sharing type of shared descriptor
* @pdb: pointer to the PDB to be used with this descriptor
* This structure will be copied inline to the descriptor under
* construction. No error checking will be made. Refer to the
@ -621,6 +711,7 @@ __gen_auth_key(struct program *program, struct alginfo *authdata)
*/
static inline int
cnstr_shdsc_ipsec_encap(uint32_t *descbuf, bool ps, bool swap,
enum rta_share_type share,
struct ipsec_encap_pdb *pdb,
struct alginfo *cipherdata,
struct alginfo *authdata)
@ -638,7 +729,7 @@ cnstr_shdsc_ipsec_encap(uint32_t *descbuf, bool ps, bool swap,
PROGRAM_SET_BSWAP(p);
if (ps)
PROGRAM_SET_36BIT_ADDR(p);
phdr = SHR_HDR(p, SHR_SERIAL, hdr, 0);
phdr = SHR_HDR(p, share, hdr, 0);
__rta_copy_ipsec_encap_pdb(p, pdb, cipherdata->algtype);
COPY_DATA(p, pdb->ip_hdr, pdb->ip_hdr_len);
SET_LABEL(p, hdr);
@ -669,6 +760,7 @@ cnstr_shdsc_ipsec_encap(uint32_t *descbuf, bool ps, bool swap,
* @descbuf: pointer to buffer used for descriptor construction
* @ps: if 36/40bit addressing is desired, this parameter must be true
* @swap: if true, perform descriptor byte swapping on a 4-byte boundary
* @share: sharing type of shared descriptor
* @pdb: pointer to the PDB to be used with this descriptor
* This structure will be copied inline to the descriptor under
* construction. No error checking will be made. Refer to the
@ -687,6 +779,7 @@ cnstr_shdsc_ipsec_encap(uint32_t *descbuf, bool ps, bool swap,
*/
static inline int
cnstr_shdsc_ipsec_decap(uint32_t *descbuf, bool ps, bool swap,
enum rta_share_type share,
struct ipsec_decap_pdb *pdb,
struct alginfo *cipherdata,
struct alginfo *authdata)
@ -704,7 +797,7 @@ cnstr_shdsc_ipsec_decap(uint32_t *descbuf, bool ps, bool swap,
PROGRAM_SET_BSWAP(p);
if (ps)
PROGRAM_SET_36BIT_ADDR(p);
phdr = SHR_HDR(p, SHR_SERIAL, hdr, 0);
phdr = SHR_HDR(p, share, hdr, 0);
__rta_copy_ipsec_decap_pdb(p, pdb, cipherdata->algtype);
SET_LABEL(p, hdr);
pkeyjmp = JUMP(p, keyjmp, LOCAL_JUMP, ALL_TRUE, BOTH|SHRD);
@ -1040,7 +1133,7 @@ cnstr_shdsc_ipsec_decap_des_aes_xcbc(uint32_t *descbuf,
* layers to determine whether Outer IP Header and/or keys can be inlined or
* not. To be used as first parameter of rta_inline_query().
*/
#define IPSEC_NEW_ENC_BASE_DESC_LEN (5 * CAAM_CMD_SZ + \
#define IPSEC_NEW_ENC_BASE_DESC_LEN (12 * CAAM_CMD_SZ + \
sizeof(struct ipsec_encap_pdb))
/**
@ -1052,7 +1145,7 @@ cnstr_shdsc_ipsec_decap_des_aes_xcbc(uint32_t *descbuf,
* layers to determine whether Outer IP Header and/or key can be inlined or
* not. To be used as first parameter of rta_inline_query().
*/
#define IPSEC_NEW_NULL_ENC_BASE_DESC_LEN (4 * CAAM_CMD_SZ + \
#define IPSEC_NEW_NULL_ENC_BASE_DESC_LEN (11 * CAAM_CMD_SZ + \
sizeof(struct ipsec_encap_pdb))
/**
@ -1061,6 +1154,7 @@ cnstr_shdsc_ipsec_decap_des_aes_xcbc(uint32_t *descbuf,
* @descbuf: pointer to buffer used for descriptor construction
* @ps: if 36/40bit addressing is desired, this parameter must be true
* @swap: must be true when core endianness doesn't match SEC endianness
* @share: sharing type of shared descriptor
* @pdb: pointer to the PDB to be used with this descriptor
* This structure will be copied inline to the descriptor under
* construction. No error checking will be made. Refer to the
@ -1080,11 +1174,21 @@ cnstr_shdsc_ipsec_decap_des_aes_xcbc(uint32_t *descbuf,
* compute MDHA on the fly in HW.
* Valid algorithm values - one of OP_PCL_IPSEC_*
*
* Note: L2 header copy functionality is implemented assuming that bits 14
* (currently reserved) and 16-23 (part of Outer IP Header Material Length)
* in DPOVRD register are not used (which is usually the case when L3 header
* is provided in PDB).
* When DPOVRD[14] is set, frame starts with an L2 header; in this case, the
* L2 header length is found at DPOVRD[23:16]. SEC uses this length to copy
* the header and then it deletes DPOVRD[23:16] (so there is no side effect
* when later running IPsec protocol).
*
* Return: size of descriptor written in words or negative number on error
*/
static inline int
cnstr_shdsc_ipsec_new_encap(uint32_t *descbuf, bool ps,
bool swap,
enum rta_share_type share,
struct ipsec_encap_pdb *pdb,
uint8_t *opt_ip_hdr,
struct alginfo *cipherdata,
@ -1097,6 +1201,8 @@ cnstr_shdsc_ipsec_new_encap(uint32_t *descbuf, bool ps,
REFERENCE(pkeyjmp);
LABEL(hdr);
REFERENCE(phdr);
LABEL(l2copy);
REFERENCE(pl2copy);
if (rta_sec_era < RTA_SEC_ERA_8) {
pr_err("IPsec new mode encap: available only for Era %d or above\n",
@ -1109,7 +1215,7 @@ cnstr_shdsc_ipsec_new_encap(uint32_t *descbuf, bool ps,
PROGRAM_SET_BSWAP(p);
if (ps)
PROGRAM_SET_36BIT_ADDR(p);
phdr = SHR_HDR(p, SHR_SERIAL, hdr, 0);
phdr = SHR_HDR(p, share, hdr, 0);
__rta_copy_ipsec_encap_pdb(p, pdb, cipherdata->algtype);
@ -1128,6 +1234,16 @@ cnstr_shdsc_ipsec_new_encap(uint32_t *descbuf, bool ps,
}
SET_LABEL(p, hdr);
MATHB(p, DPOVRD, AND, IPSEC_N_ENCAP_DPOVRD_L2_COPY, NONE, 4, IMMED2);
pl2copy = JUMP(p, l2copy, LOCAL_JUMP, ALL_TRUE, MATH_Z);
MATHI(p, DPOVRD, RSHIFT, IPSEC_N_ENCAP_DPOVRD_L2_LEN_SHIFT, VSEQOUTSZ,
1, 0);
MATHB(p, DPOVRD, AND, ~IPSEC_N_ENCAP_DPOVRD_L2_LEN_MASK, DPOVRD, 4,
IMMED2);
/* TODO: CLASS2 corresponds to AUX=2'b10; add more intuitive defines */
SEQFIFOSTORE(p, METADATA, 0, 0, CLASS2 | VLF);
SET_LABEL(p, l2copy);
pkeyjmp = JUMP(p, keyjmp, LOCAL_JUMP, ALL_TRUE, SHRD);
if (authdata->keylen)
__gen_auth_key(p, authdata);
@ -1138,6 +1254,7 @@ cnstr_shdsc_ipsec_new_encap(uint32_t *descbuf, bool ps,
PROTOCOL(p, OP_TYPE_ENCAP_PROTOCOL,
OP_PCLID_IPSEC_NEW,
(uint16_t)(cipherdata->algtype | authdata->algtype));
PATCH_JUMP(p, pl2copy, l2copy);
PATCH_JUMP(p, pkeyjmp, keyjmp);
PATCH_HDR(p, phdr, hdr);
return PROGRAM_FINALIZE(p);
@ -1171,6 +1288,7 @@ cnstr_shdsc_ipsec_new_encap(uint32_t *descbuf, bool ps,
* @descbuf: pointer to buffer used for descriptor construction
* @ps: if 36/40bit addressing is desired, this parameter must be true
* @swap: must be true when core endianness doesn't match SEC endianness
* @share: sharing type of shared descriptor
* @pdb: pointer to the PDB to be used with this descriptor
* This structure will be copied inline to the descriptor under
* construction. No error checking will be made. Refer to the
@ -1188,6 +1306,7 @@ cnstr_shdsc_ipsec_new_encap(uint32_t *descbuf, bool ps,
static inline int
cnstr_shdsc_ipsec_new_decap(uint32_t *descbuf, bool ps,
bool swap,
enum rta_share_type share,
struct ipsec_decap_pdb *pdb,
struct alginfo *cipherdata,
struct alginfo *authdata)
@ -1211,7 +1330,7 @@ cnstr_shdsc_ipsec_new_decap(uint32_t *descbuf, bool ps,
PROGRAM_SET_BSWAP(p);
if (ps)
PROGRAM_SET_36BIT_ADDR(p);
phdr = SHR_HDR(p, SHR_SERIAL, hdr, 0);
phdr = SHR_HDR(p, share, hdr, 0);
__rta_copy_ipsec_decap_pdb(p, pdb, cipherdata->algtype);
SET_LABEL(p, hdr);
pkeyjmp = JUMP(p, keyjmp, LOCAL_JUMP, ALL_TRUE, SHRD);

View File

@ -14,178 +14,176 @@ static inline int
__rta_ssl_proto(uint16_t protoinfo)
{
switch (protoinfo) {
case OP_PCL_SSL30_RC4_40_MD5_2:
case OP_PCL_SSL30_RC4_128_MD5_2:
case OP_PCL_SSL30_RC4_128_SHA_5:
case OP_PCL_SSL30_RC4_40_MD5_3:
case OP_PCL_SSL30_RC4_128_MD5_3:
case OP_PCL_SSL30_RC4_128_SHA:
case OP_PCL_SSL30_RC4_128_MD5:
case OP_PCL_SSL30_RC4_40_SHA:
case OP_PCL_SSL30_RC4_40_MD5:
case OP_PCL_SSL30_RC4_128_SHA_2:
case OP_PCL_SSL30_RC4_128_SHA_3:
case OP_PCL_SSL30_RC4_128_SHA_4:
case OP_PCL_SSL30_RC4_128_SHA_6:
case OP_PCL_SSL30_RC4_128_SHA_7:
case OP_PCL_SSL30_RC4_128_SHA_8:
case OP_PCL_SSL30_RC4_128_SHA_9:
case OP_PCL_SSL30_RC4_128_SHA_10:
case OP_PCL_TLS_ECDHE_PSK_RC4_128_SHA:
case OP_PCL_TLS_RSA_EXPORT_WITH_RC4_40_MD5:
case OP_PCL_TLS_RSA_WITH_RC4_128_MD5:
case OP_PCL_TLS_RSA_WITH_RC4_128_SHA:
case OP_PCL_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5:
case OP_PCL_TLS_DH_anon_WITH_RC4_128_MD5:
case OP_PCL_TLS_KRB5_WITH_RC4_128_SHA:
case OP_PCL_TLS_KRB5_WITH_RC4_128_MD5:
case OP_PCL_TLS_KRB5_EXPORT_WITH_RC4_40_SHA:
case OP_PCL_TLS_KRB5_EXPORT_WITH_RC4_40_MD5:
case OP_PCL_TLS_PSK_WITH_RC4_128_SHA:
case OP_PCL_TLS_DHE_PSK_WITH_RC4_128_SHA:
case OP_PCL_TLS_RSA_PSK_WITH_RC4_128_SHA:
case OP_PCL_TLS_ECDH_ECDSA_WITH_RC4_128_SHA:
case OP_PCL_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA:
case OP_PCL_TLS_ECDH_RSA_WITH_RC4_128_SHA:
case OP_PCL_TLS_ECDHE_RSA_WITH_RC4_128_SHA:
case OP_PCL_TLS_ECDH_anon_WITH_RC4_128_SHA:
case OP_PCL_TLS_ECDHE_PSK_WITH_RC4_128_SHA:
if (rta_sec_era == RTA_SEC_ERA_7)
return -EINVAL;
/* fall through if not Era 7 */
case OP_PCL_SSL30_DES40_CBC_SHA:
case OP_PCL_SSL30_DES_CBC_SHA_2:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_5:
case OP_PCL_SSL30_DES40_CBC_SHA_2:
case OP_PCL_SSL30_DES_CBC_SHA_3:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_6:
case OP_PCL_SSL30_DES40_CBC_SHA_3:
case OP_PCL_SSL30_DES_CBC_SHA_4:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_7:
case OP_PCL_SSL30_DES40_CBC_SHA_4:
case OP_PCL_SSL30_DES_CBC_SHA_5:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_8:
case OP_PCL_SSL30_DES40_CBC_SHA_5:
case OP_PCL_SSL30_DES_CBC_SHA_6:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_9:
case OP_PCL_SSL30_DES40_CBC_SHA_6:
case OP_PCL_SSL30_DES_CBC_SHA_7:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_10:
case OP_PCL_SSL30_DES_CBC_SHA:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA:
case OP_PCL_SSL30_DES_CBC_MD5:
case OP_PCL_SSL30_3DES_EDE_CBC_MD5:
case OP_PCL_SSL30_DES40_CBC_SHA_7:
case OP_PCL_SSL30_DES40_CBC_MD5:
case OP_PCL_SSL30_AES_128_CBC_SHA:
case OP_PCL_SSL30_AES_128_CBC_SHA_2:
case OP_PCL_SSL30_AES_128_CBC_SHA_3:
case OP_PCL_SSL30_AES_128_CBC_SHA_4:
case OP_PCL_SSL30_AES_128_CBC_SHA_5:
case OP_PCL_SSL30_AES_128_CBC_SHA_6:
case OP_PCL_SSL30_AES_256_CBC_SHA:
case OP_PCL_SSL30_AES_256_CBC_SHA_2:
case OP_PCL_SSL30_AES_256_CBC_SHA_3:
case OP_PCL_SSL30_AES_256_CBC_SHA_4:
case OP_PCL_SSL30_AES_256_CBC_SHA_5:
case OP_PCL_SSL30_AES_256_CBC_SHA_6:
case OP_PCL_TLS12_AES_128_CBC_SHA256_2:
case OP_PCL_TLS12_AES_128_CBC_SHA256_3:
case OP_PCL_TLS12_AES_128_CBC_SHA256_4:
case OP_PCL_TLS12_AES_128_CBC_SHA256_5:
case OP_PCL_TLS12_AES_256_CBC_SHA256_2:
case OP_PCL_TLS12_AES_256_CBC_SHA256_3:
case OP_PCL_TLS12_AES_256_CBC_SHA256_4:
case OP_PCL_TLS12_AES_256_CBC_SHA256_5:
case OP_PCL_TLS12_AES_128_CBC_SHA256_6:
case OP_PCL_TLS12_AES_256_CBC_SHA256_6:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_2:
case OP_PCL_SSL30_AES_128_CBC_SHA_7:
case OP_PCL_SSL30_AES_256_CBC_SHA_7:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_3:
case OP_PCL_SSL30_AES_128_CBC_SHA_8:
case OP_PCL_SSL30_AES_256_CBC_SHA_8:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_4:
case OP_PCL_SSL30_AES_128_CBC_SHA_9:
case OP_PCL_SSL30_AES_256_CBC_SHA_9:
case OP_PCL_SSL30_AES_128_GCM_SHA256_1:
case OP_PCL_SSL30_AES_256_GCM_SHA384_1:
case OP_PCL_SSL30_AES_128_GCM_SHA256_2:
case OP_PCL_SSL30_AES_256_GCM_SHA384_2:
case OP_PCL_SSL30_AES_128_GCM_SHA256_3:
case OP_PCL_SSL30_AES_256_GCM_SHA384_3:
case OP_PCL_SSL30_AES_128_GCM_SHA256_4:
case OP_PCL_SSL30_AES_256_GCM_SHA384_4:
case OP_PCL_SSL30_AES_128_GCM_SHA256_5:
case OP_PCL_SSL30_AES_256_GCM_SHA384_5:
case OP_PCL_SSL30_AES_128_GCM_SHA256_6:
case OP_PCL_TLS_DH_ANON_AES_256_GCM_SHA384:
case OP_PCL_TLS_PSK_AES_128_GCM_SHA256:
case OP_PCL_TLS_PSK_AES_256_GCM_SHA384:
case OP_PCL_TLS_DHE_PSK_AES_128_GCM_SHA256:
case OP_PCL_TLS_DHE_PSK_AES_256_GCM_SHA384:
case OP_PCL_TLS_RSA_PSK_AES_128_GCM_SHA256:
case OP_PCL_TLS_RSA_PSK_AES_256_GCM_SHA384:
case OP_PCL_TLS_PSK_AES_128_CBC_SHA256:
case OP_PCL_TLS_PSK_AES_256_CBC_SHA384:
case OP_PCL_TLS_DHE_PSK_AES_128_CBC_SHA256:
case OP_PCL_TLS_DHE_PSK_AES_256_CBC_SHA384:
case OP_PCL_TLS_RSA_PSK_AES_128_CBC_SHA256:
case OP_PCL_TLS_RSA_PSK_AES_256_CBC_SHA384:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_11:
case OP_PCL_SSL30_AES_128_CBC_SHA_10:
case OP_PCL_SSL30_AES_256_CBC_SHA_10:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_12:
case OP_PCL_SSL30_AES_128_CBC_SHA_11:
case OP_PCL_SSL30_AES_256_CBC_SHA_11:
case OP_PCL_SSL30_AES_128_CBC_SHA_12:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_13:
case OP_PCL_SSL30_AES_256_CBC_SHA_12:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_14:
case OP_PCL_SSL30_AES_128_CBC_SHA_13:
case OP_PCL_SSL30_AES_256_CBC_SHA_13:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_15:
case OP_PCL_SSL30_AES_128_CBC_SHA_14:
case OP_PCL_SSL30_AES_256_CBC_SHA_14:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_16:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_17:
case OP_PCL_SSL30_3DES_EDE_CBC_SHA_18:
case OP_PCL_SSL30_AES_128_CBC_SHA_15:
case OP_PCL_SSL30_AES_128_CBC_SHA_16:
case OP_PCL_SSL30_AES_128_CBC_SHA_17:
case OP_PCL_SSL30_AES_256_CBC_SHA_15:
case OP_PCL_SSL30_AES_256_CBC_SHA_16:
case OP_PCL_SSL30_AES_256_CBC_SHA_17:
case OP_PCL_TLS_ECDHE_ECDSA_AES_128_CBC_SHA256:
case OP_PCL_TLS_ECDHE_ECDSA_AES_256_CBC_SHA384:
case OP_PCL_TLS_ECDH_ECDSA_AES_128_CBC_SHA256:
case OP_PCL_TLS_ECDH_ECDSA_AES_256_CBC_SHA384:
case OP_PCL_TLS_ECDHE_RSA_AES_128_CBC_SHA256:
case OP_PCL_TLS_ECDHE_RSA_AES_256_CBC_SHA384:
case OP_PCL_TLS_ECDH_RSA_AES_128_CBC_SHA256:
case OP_PCL_TLS_ECDH_RSA_AES_256_CBC_SHA384:
case OP_PCL_TLS_ECDHE_ECDSA_AES_128_GCM_SHA256:
case OP_PCL_TLS_ECDHE_ECDSA_AES_256_GCM_SHA384:
case OP_PCL_TLS_ECDH_ECDSA_AES_128_GCM_SHA256:
case OP_PCL_TLS_ECDH_ECDSA_AES_256_GCM_SHA384:
case OP_PCL_TLS_ECDHE_RSA_AES_128_GCM_SHA256:
case OP_PCL_TLS_ECDHE_RSA_AES_256_GCM_SHA384:
case OP_PCL_TLS_ECDH_RSA_AES_128_GCM_SHA256:
case OP_PCL_TLS_ECDH_RSA_AES_256_GCM_SHA384:
case OP_PCL_TLS_ECDHE_PSK_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_ECDHE_PSK_AES_128_CBC_SHA:
case OP_PCL_TLS_ECDHE_PSK_AES_256_CBC_SHA:
case OP_PCL_TLS_ECDHE_PSK_AES_128_CBC_SHA256:
case OP_PCL_TLS_ECDHE_PSK_AES_256_CBC_SHA384:
case OP_PCL_TLS12_3DES_EDE_CBC_MD5:
case OP_PCL_TLS12_3DES_EDE_CBC_SHA160:
case OP_PCL_TLS12_3DES_EDE_CBC_SHA224:
case OP_PCL_TLS12_3DES_EDE_CBC_SHA256:
case OP_PCL_TLS12_3DES_EDE_CBC_SHA384:
case OP_PCL_TLS12_3DES_EDE_CBC_SHA512:
case OP_PCL_TLS12_AES_128_CBC_SHA160:
case OP_PCL_TLS12_AES_128_CBC_SHA224:
case OP_PCL_TLS12_AES_128_CBC_SHA256:
case OP_PCL_TLS12_AES_128_CBC_SHA384:
case OP_PCL_TLS12_AES_128_CBC_SHA512:
case OP_PCL_TLS12_AES_192_CBC_SHA160:
case OP_PCL_TLS12_AES_192_CBC_SHA224:
case OP_PCL_TLS12_AES_192_CBC_SHA256:
case OP_PCL_TLS12_AES_192_CBC_SHA512:
case OP_PCL_TLS12_AES_256_CBC_SHA160:
case OP_PCL_TLS12_AES_256_CBC_SHA224:
case OP_PCL_TLS12_AES_256_CBC_SHA256:
case OP_PCL_TLS12_AES_256_CBC_SHA384:
case OP_PCL_TLS12_AES_256_CBC_SHA512:
case OP_PCL_TLS_PVT_AES_192_CBC_SHA160:
case OP_PCL_TLS_PVT_AES_192_CBC_SHA384:
case OP_PCL_TLS_PVT_AES_192_CBC_SHA224:
case OP_PCL_TLS_PVT_AES_192_CBC_SHA512:
case OP_PCL_TLS_PVT_AES_192_CBC_SHA256:
case OP_PCL_TLS_PVT_MASTER_SECRET_PRF_FE:
case OP_PCL_TLS_PVT_MASTER_SECRET_PRF_FF:
case OP_PCL_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA:
case OP_PCL_TLS_RSA_WITH_DES_CBC_SHA:
case OP_PCL_TLS_RSA_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA:
case OP_PCL_TLS_DH_DSS_WITH_DES_CBC_SHA:
case OP_PCL_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA:
case OP_PCL_TLS_DH_RSA_WITH_DES_CBC_SHA:
case OP_PCL_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA:
case OP_PCL_TLS_DHE_DSS_WITH_DES_CBC_SHA:
case OP_PCL_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA:
case OP_PCL_TLS_DHE_RSA_WITH_DES_CBC_SHA:
case OP_PCL_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA:
case OP_PCL_TLS_DH_anon_WITH_DES_CBC_SHA:
case OP_PCL_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_KRB5_WITH_DES_CBC_SHA:
case OP_PCL_TLS_KRB5_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_KRB5_WITH_DES_CBC_MD5:
case OP_PCL_TLS_KRB5_WITH_3DES_EDE_CBC_MD5:
case OP_PCL_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA:
case OP_PCL_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5:
case OP_PCL_TLS_RSA_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_DH_DSS_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_DH_RSA_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_DHE_DSS_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_DHE_RSA_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_DH_anon_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_RSA_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_DH_DSS_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_DH_RSA_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_DHE_DSS_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_DHE_RSA_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_DH_anon_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_DH_DSS_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_DH_RSA_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_DH_DSS_WITH_AES_256_CBC_SHA256:
case OP_PCL_TLS_DH_RSA_WITH_AES_256_CBC_SHA256:
case OP_PCL_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256:
case OP_PCL_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:
case OP_PCL_TLS_DH_anon_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_DH_anon_WITH_AES_256_CBC_SHA256:
case OP_PCL_TLS_PSK_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_PSK_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_PSK_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_DHE_PSK_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_DHE_PSK_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_RSA_PSK_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_RSA_PSK_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_RSA_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_RSA_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_DH_RSA_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_DH_RSA_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_DHE_DSS_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_DHE_DSS_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_DH_DSS_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_DH_DSS_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_DH_anon_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_DH_anon_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_PSK_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_PSK_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_PSK_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_PSK_WITH_AES_256_CBC_SHA384:
case OP_PCL_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384:
case OP_PCL_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384:
case OP_PCL_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_ECDH_anon_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_ECDH_anon_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_SRP_SHA_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_SRP_SHA_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:
case OP_PCL_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384:
case OP_PCL_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:
case OP_PCL_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384:
case OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256:
case OP_PCL_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384:
case OP_PCL_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA:
case OP_PCL_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA:
case OP_PCL_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA:
case OP_PCL_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384:
case OP_PCL_TLS_RSA_WITH_AES_128_CBC_SHA256:
case OP_PCL_TLS_RSA_WITH_AES_256_CBC_SHA256:
case OP_PCL_PVT_TLS_3DES_EDE_CBC_MD5:
case OP_PCL_PVT_TLS_3DES_EDE_CBC_SHA160:
case OP_PCL_PVT_TLS_3DES_EDE_CBC_SHA224:
case OP_PCL_PVT_TLS_3DES_EDE_CBC_SHA256:
case OP_PCL_PVT_TLS_3DES_EDE_CBC_SHA384:
case OP_PCL_PVT_TLS_3DES_EDE_CBC_SHA512:
case OP_PCL_PVT_TLS_AES_128_CBC_SHA160:
case OP_PCL_PVT_TLS_AES_128_CBC_SHA224:
case OP_PCL_PVT_TLS_AES_128_CBC_SHA256:
case OP_PCL_PVT_TLS_AES_128_CBC_SHA384:
case OP_PCL_PVT_TLS_AES_128_CBC_SHA512:
case OP_PCL_PVT_TLS_AES_192_CBC_SHA160:
case OP_PCL_PVT_TLS_AES_192_CBC_SHA224:
case OP_PCL_PVT_TLS_AES_192_CBC_SHA256:
case OP_PCL_PVT_TLS_AES_192_CBC_SHA512:
case OP_PCL_PVT_TLS_AES_256_CBC_SHA160:
case OP_PCL_PVT_TLS_AES_256_CBC_SHA224:
case OP_PCL_PVT_TLS_AES_256_CBC_SHA384:
case OP_PCL_PVT_TLS_AES_256_CBC_SHA512:
case OP_PCL_PVT_TLS_AES_256_CBC_SHA256:
case OP_PCL_PVT_TLS_AES_192_CBC_SHA384:
case OP_PCL_PVT_TLS_MASTER_SECRET_PRF_FE:
case OP_PCL_PVT_TLS_MASTER_SECRET_PRF_FF:
return 0;
}
@ -322,6 +320,12 @@ static const uint32_t proto_blob_flags[] = {
OP_PCL_BLOB_EKT | OP_PCL_BLOB_REG_MASK,
OP_PCL_BLOB_FORMAT_MASK | OP_PCL_BLOB_BLACK | OP_PCL_BLOB_TKEK |
OP_PCL_BLOB_EKT | OP_PCL_BLOB_REG_MASK | OP_PCL_BLOB_SEC_MEM,
OP_PCL_BLOB_FORMAT_MASK | OP_PCL_BLOB_BLACK | OP_PCL_BLOB_TKEK |
OP_PCL_BLOB_EKT | OP_PCL_BLOB_REG_MASK | OP_PCL_BLOB_SEC_MEM,
OP_PCL_BLOB_FORMAT_MASK | OP_PCL_BLOB_BLACK | OP_PCL_BLOB_TKEK |
OP_PCL_BLOB_EKT | OP_PCL_BLOB_REG_MASK | OP_PCL_BLOB_SEC_MEM,
OP_PCL_BLOB_FORMAT_MASK | OP_PCL_BLOB_BLACK | OP_PCL_BLOB_TKEK |
OP_PCL_BLOB_EKT | OP_PCL_BLOB_REG_MASK | OP_PCL_BLOB_SEC_MEM,
OP_PCL_BLOB_FORMAT_MASK | OP_PCL_BLOB_BLACK | OP_PCL_BLOB_TKEK |
OP_PCL_BLOB_EKT | OP_PCL_BLOB_REG_MASK | OP_PCL_BLOB_SEC_MEM
};
@ -556,7 +560,7 @@ static const struct proto_map proto_table[] = {
{OP_TYPE_UNI_PROTOCOL, OP_PCLID_TLS10_PRF, __rta_ssl_proto},
{OP_TYPE_UNI_PROTOCOL, OP_PCLID_TLS11_PRF, __rta_ssl_proto},
{OP_TYPE_UNI_PROTOCOL, OP_PCLID_TLS12_PRF, __rta_ssl_proto},
{OP_TYPE_UNI_PROTOCOL, OP_PCLID_DTLS10_PRF, __rta_ssl_proto},
{OP_TYPE_UNI_PROTOCOL, OP_PCLID_DTLS_PRF, __rta_ssl_proto},
{OP_TYPE_UNI_PROTOCOL, OP_PCLID_IKEV1_PRF, __rta_ike_proto},
{OP_TYPE_UNI_PROTOCOL, OP_PCLID_IKEV2_PRF, __rta_ike_proto},
{OP_TYPE_UNI_PROTOCOL, OP_PCLID_PUBLICKEYPAIR, __rta_dlc_proto},
@ -568,7 +572,7 @@ static const struct proto_map proto_table[] = {
{OP_TYPE_DECAP_PROTOCOL, OP_PCLID_TLS10, __rta_ssl_proto},
{OP_TYPE_DECAP_PROTOCOL, OP_PCLID_TLS11, __rta_ssl_proto},
{OP_TYPE_DECAP_PROTOCOL, OP_PCLID_TLS12, __rta_ssl_proto},
{OP_TYPE_DECAP_PROTOCOL, OP_PCLID_DTLS10, __rta_ssl_proto},
{OP_TYPE_DECAP_PROTOCOL, OP_PCLID_DTLS, __rta_ssl_proto},
{OP_TYPE_DECAP_PROTOCOL, OP_PCLID_MACSEC, __rta_macsec_proto},
{OP_TYPE_DECAP_PROTOCOL, OP_PCLID_WIFI, __rta_wifi_proto},
{OP_TYPE_DECAP_PROTOCOL, OP_PCLID_WIMAX, __rta_wimax_proto},

View File

@ -497,6 +497,28 @@ __rta_out64(struct program *program, bool is_ext, uint64_t val)
}
}
static inline void __rta_out_be64(struct program *program, bool is_ext,
uint64_t val)
{
if (is_ext) {
__rta_out_be32(program, upper_32_bits(val));
__rta_out_be32(program, lower_32_bits(val));
} else {
__rta_out_be32(program, lower_32_bits(val));
}
}
static inline void __rta_out_le64(struct program *program, bool is_ext,
uint64_t val)
{
if (is_ext) {
__rta_out_le32(program, lower_32_bits(val));
__rta_out_le32(program, upper_32_bits(val));
} else {
__rta_out_le32(program, lower_32_bits(val));
}
}
static inline unsigned int
rta_word(struct program *program, uint32_t val)
{

View File

@ -488,13 +488,15 @@ dpaa_sec_prep_cdb(dpaa_sec_session *ses)
if (ses->dir == DIR_ENC) {
shared_desc_len = cnstr_shdsc_ipsec_new_encap(
cdb->sh_desc,
true, swap, &ses->encap_pdb,
true, swap, SHR_SERIAL,
&ses->encap_pdb,
(uint8_t *)&ses->ip4_hdr,
&alginfo_c, &alginfo_a);
} else if (ses->dir == DIR_DEC) {
shared_desc_len = cnstr_shdsc_ipsec_new_decap(
cdb->sh_desc,
true, swap, &ses->decap_pdb,
true, swap, SHR_SERIAL,
&ses->decap_pdb,
&alginfo_c, &alginfo_a);
}
} else {