BEGIN_ENUM_TYPE(hashalg) ENUM_VALUE("md5", &ssh_md5) ENUM_VALUE("sha1", &ssh_sha1) ENUM_VALUE("sha1_sw", &ssh_sha1_sw) ENUM_VALUE("sha256", &ssh_sha256) ENUM_VALUE("sha384", &ssh_sha384) ENUM_VALUE("sha512", &ssh_sha512) ENUM_VALUE("sha256_sw", &ssh_sha256_sw) ENUM_VALUE("sha384_sw", &ssh_sha384_sw) ENUM_VALUE("sha512_sw", &ssh_sha512_sw) #if HAVE_SHA_NI ENUM_VALUE("sha1_ni", &ssh_sha1_ni) ENUM_VALUE("sha256_ni", &ssh_sha256_ni) #endif #if HAVE_NEON_CRYPTO ENUM_VALUE("sha1_neon", &ssh_sha1_neon) ENUM_VALUE("sha256_neon", &ssh_sha256_neon) #endif #if HAVE_NEON_SHA512 ENUM_VALUE("sha384_neon", &ssh_sha384_neon) ENUM_VALUE("sha512_neon", &ssh_sha512_neon) #endif ENUM_VALUE("sha3_224", &ssh_sha3_224) ENUM_VALUE("sha3_256", &ssh_sha3_256) ENUM_VALUE("sha3_384", &ssh_sha3_384) ENUM_VALUE("sha3_512", &ssh_sha3_512) ENUM_VALUE("shake256_114bytes", &ssh_shake256_114bytes) ENUM_VALUE("blake2b", &ssh_blake2b) END_ENUM_TYPE(hashalg) BEGIN_ENUM_TYPE(macalg) ENUM_VALUE("hmac_md5", &ssh_hmac_md5) ENUM_VALUE("hmac_sha1", &ssh_hmac_sha1) ENUM_VALUE("hmac_sha1_buggy", &ssh_hmac_sha1_buggy) ENUM_VALUE("hmac_sha1_96", &ssh_hmac_sha1_96) ENUM_VALUE("hmac_sha1_96_buggy", &ssh_hmac_sha1_96_buggy) ENUM_VALUE("hmac_sha256", &ssh_hmac_sha256) ENUM_VALUE("poly1305", &ssh2_poly1305) ENUM_VALUE("aesgcm", &ssh2_aesgcm_mac) ENUM_VALUE("aesgcm", &ssh2_aesgcm_mac) ENUM_VALUE("aesgcm_sw", &ssh2_aesgcm_mac_sw) ENUM_VALUE("aesgcm_ref_poly", &ssh2_aesgcm_mac_ref_poly) #if HAVE_CLMUL ENUM_VALUE("aesgcm_clmul", &ssh2_aesgcm_mac_clmul) #endif #if HAVE_NEON_PMULL ENUM_VALUE("aesgcm_neon", &ssh2_aesgcm_mac_neon) #endif END_ENUM_TYPE(macalg) BEGIN_ENUM_TYPE(keyalg) ENUM_VALUE("dsa", &ssh_dsa) ENUM_VALUE("rsa", &ssh_rsa) ENUM_VALUE("ed25519", &ssh_ecdsa_ed25519) ENUM_VALUE("ed448", &ssh_ecdsa_ed448) ENUM_VALUE("p256", &ssh_ecdsa_nistp256) ENUM_VALUE("p384", &ssh_ecdsa_nistp384) ENUM_VALUE("p521", &ssh_ecdsa_nistp521) ENUM_VALUE("dsa-cert", &opensshcert_ssh_dsa) ENUM_VALUE("rsa-cert", &opensshcert_ssh_rsa) ENUM_VALUE("ed25519-cert", &opensshcert_ssh_ecdsa_ed25519) ENUM_VALUE("p256-cert", &opensshcert_ssh_ecdsa_nistp256) ENUM_VALUE("p384-cert", &opensshcert_ssh_ecdsa_nistp384) ENUM_VALUE("p521-cert", &opensshcert_ssh_ecdsa_nistp521) END_ENUM_TYPE(keyalg) BEGIN_ENUM_TYPE(cipheralg) ENUM_VALUE("3des_ctr", &ssh_3des_ssh2_ctr) ENUM_VALUE("3des_ssh2", &ssh_3des_ssh2) ENUM_VALUE("3des_ssh1", &ssh_3des_ssh1) ENUM_VALUE("des_cbc", &ssh_des) ENUM_VALUE("aes256_ctr", &ssh_aes256_sdctr) ENUM_VALUE("aes256_gcm", &ssh_aes256_gcm) ENUM_VALUE("aes256_cbc", &ssh_aes256_cbc) ENUM_VALUE("aes192_ctr", &ssh_aes192_sdctr) ENUM_VALUE("aes192_gcm", &ssh_aes192_gcm) ENUM_VALUE("aes192_cbc", &ssh_aes192_cbc) ENUM_VALUE("aes128_ctr", &ssh_aes128_sdctr) ENUM_VALUE("aes128_gcm", &ssh_aes128_gcm) ENUM_VALUE("aes128_cbc", &ssh_aes128_cbc) ENUM_VALUE("aes256_ctr_sw", &ssh_aes256_sdctr_sw) ENUM_VALUE("aes256_gcm_sw", &ssh_aes256_gcm_sw) ENUM_VALUE("aes256_cbc_sw", &ssh_aes256_cbc_sw) ENUM_VALUE("aes192_ctr_sw", &ssh_aes192_sdctr_sw) ENUM_VALUE("aes192_gcm_sw", &ssh_aes192_gcm_sw) ENUM_VALUE("aes192_cbc_sw", &ssh_aes192_cbc_sw) ENUM_VALUE("aes128_ctr_sw", &ssh_aes128_sdctr_sw) ENUM_VALUE("aes128_gcm_sw", &ssh_aes128_gcm_sw) ENUM_VALUE("aes128_cbc_sw", &ssh_aes128_cbc_sw) #if HAVE_AES_NI ENUM_VALUE("aes256_ctr_ni", &ssh_aes256_sdctr_ni) ENUM_VALUE("aes256_gcm_ni", &ssh_aes256_gcm_ni) ENUM_VALUE("aes256_cbc_ni", &ssh_aes256_cbc_ni) ENUM_VALUE("aes192_ctr_ni", &ssh_aes192_sdctr_ni) ENUM_VALUE("aes192_gcm_ni", &ssh_aes192_gcm_ni) ENUM_VALUE("aes192_cbc_ni", &ssh_aes192_cbc_ni) ENUM_VALUE("aes128_ctr_ni", &ssh_aes128_sdctr_ni) ENUM_VALUE("aes128_gcm_ni", &ssh_aes128_gcm_ni) ENUM_VALUE("aes128_cbc_ni", &ssh_aes128_cbc_ni) #endif #if HAVE_NEON_CRYPTO ENUM_VALUE("aes256_ctr_neon", &ssh_aes256_sdctr_neon) ENUM_VALUE("aes256_gcm_neon", &ssh_aes256_gcm_neon) ENUM_VALUE("aes256_cbc_neon", &ssh_aes256_cbc_neon) ENUM_VALUE("aes192_ctr_neon", &ssh_aes192_sdctr_neon) ENUM_VALUE("aes192_gcm_neon", &ssh_aes192_gcm_neon) ENUM_VALUE("aes192_cbc_neon", &ssh_aes192_cbc_neon) ENUM_VALUE("aes128_ctr_neon", &ssh_aes128_sdctr_neon) ENUM_VALUE("aes128_gcm_neon", &ssh_aes128_gcm_neon) ENUM_VALUE("aes128_cbc_neon", &ssh_aes128_cbc_neon) #endif ENUM_VALUE("blowfish_ctr", &ssh_blowfish_ssh2_ctr) ENUM_VALUE("blowfish_ssh2", &ssh_blowfish_ssh2) ENUM_VALUE("blowfish_ssh1", &ssh_blowfish_ssh1) ENUM_VALUE("arcfour256", &ssh_arcfour256_ssh2) ENUM_VALUE("arcfour128", &ssh_arcfour128_ssh2) ENUM_VALUE("chacha20_poly1305", &ssh2_chacha20_poly1305) END_ENUM_TYPE(cipheralg) BEGIN_ENUM_TYPE(dh_group) ENUM_VALUE("group1", &ssh_diffiehellman_group1_sha1) ENUM_VALUE("group14", &ssh_diffiehellman_group14_sha256) ENUM_VALUE("group15", &ssh_diffiehellman_group15_sha512) ENUM_VALUE("group16", &ssh_diffiehellman_group16_sha512) ENUM_VALUE("group17", &ssh_diffiehellman_group17_sha512) ENUM_VALUE("group18", &ssh_diffiehellman_group18_sha512) END_ENUM_TYPE(dh_group) BEGIN_ENUM_TYPE(ecdh_alg) ENUM_VALUE("curve25519", &ssh_ec_kex_curve25519) ENUM_VALUE("curve448", &ssh_ec_kex_curve448) ENUM_VALUE("nistp256", &ssh_ec_kex_nistp256) ENUM_VALUE("nistp384", &ssh_ec_kex_nistp384) ENUM_VALUE("nistp521", &ssh_ec_kex_nistp521) END_ENUM_TYPE(ecdh_alg) BEGIN_ENUM_TYPE(rsaorder) ENUM_VALUE("exponent_first", RSA_SSH1_EXPONENT_FIRST) ENUM_VALUE("modulus_first", RSA_SSH1_MODULUS_FIRST) END_ENUM_TYPE(rsaorder) BEGIN_ENUM_TYPE(primegenpolicy) ENUM_VALUE("probabilistic", &primegen_probabilistic) ENUM_VALUE("provable_fast", &primegen_provable_fast) ENUM_VALUE("provable_maurer_simple", &primegen_provable_maurer_simple) ENUM_VALUE("provable_maurer_complex", &primegen_provable_maurer_complex) END_ENUM_TYPE(primegenpolicy) BEGIN_ENUM_TYPE(argon2flavour) ENUM_VALUE("d", Argon2d) ENUM_VALUE("i", Argon2i) ENUM_VALUE("id", Argon2id) /* I expect to forget which spelling I chose, so let's support many */ ENUM_VALUE("argon2d", Argon2d) ENUM_VALUE("argon2i", Argon2i) ENUM_VALUE("argon2id", Argon2id) ENUM_VALUE("Argon2d", Argon2d) ENUM_VALUE("Argon2i", Argon2i) ENUM_VALUE("Argon2id", Argon2id) END_ENUM_TYPE(argon2flavour) BEGIN_ENUM_TYPE(fptype) ENUM_VALUE("md5", SSH_FPTYPE_MD5) ENUM_VALUE("sha256", SSH_FPTYPE_SHA256) ENUM_VALUE("md5-cert", SSH_FPTYPE_MD5_CERT) ENUM_VALUE("sha256-cert", SSH_FPTYPE_SHA256_CERT) END_ENUM_TYPE(fptype) /* * cproxy.h already has a list macro mapping protocol-specified * strings to the list of HTTP Digest hash functions. Rather than * invent a separate one for testcrypt, reuse the existing names. */ BEGIN_ENUM_TYPE(httpdigesthash) #define DECL_ARRAY(id, str, alg, bits, accepted) ENUM_VALUE(str, id) HTTP_DIGEST_HASHES(DECL_ARRAY) #undef DECL_ARRAY END_ENUM_TYPE(httpdigesthash)