@@ -2054,6 +2054,165 @@ static unsigned int cipherType(const WOLFSSL_EVP_CIPHER *cipher)
20542054 else return 0 ;
20552055}
20562056
2057+ /* Getter function for cipher type string
2058+ *
2059+ * cipherType cipherType enum value to get string for
2060+ *
2061+ * Returns string representation of the cipher type or NULL if not found
2062+ */
2063+ const char * wolfSSL_EVP_CIPHER_type_string (unsigned int cipherType )
2064+ {
2065+ WOLFSSL_ENTER ("wolfSSL_EVP_CIPHER_type_string" );
2066+
2067+ switch (cipherType ) {
2068+ #ifndef NO_DES3
2069+ case WC_DES_CBC_TYPE : return EVP_DES_CBC ;
2070+ case WC_DES_EDE3_CBC_TYPE : return EVP_DES_EDE3_CBC ;
2071+ case WC_DES_ECB_TYPE : return EVP_DES_ECB ;
2072+ case WC_DES_EDE3_ECB_TYPE : return EVP_DES_EDE3_ECB ;
2073+ #endif
2074+ #if !defined(NO_AES )
2075+ #if defined(HAVE_AES_CBC ) || defined(WOLFSSL_AES_DIRECT )
2076+ #ifdef WOLFSSL_AES_128
2077+ case WC_AES_128_CBC_TYPE : return EVP_AES_128_CBC ;
2078+ #endif
2079+ #ifdef WOLFSSL_AES_192
2080+ case WC_AES_192_CBC_TYPE : return EVP_AES_192_CBC ;
2081+ #endif
2082+ #ifdef WOLFSSL_AES_256
2083+ case WC_AES_256_CBC_TYPE : return EVP_AES_256_CBC ;
2084+ #endif
2085+ #endif /* HAVE_AES_CBC || WOLFSSL_AES_DIRECT */
2086+ #if defined(WOLFSSL_AES_CFB )
2087+ #ifndef WOLFSSL_NO_AES_CFB_1_8
2088+ #ifdef WOLFSSL_AES_128
2089+ case WC_AES_128_CFB1_TYPE : return EVP_AES_128_CFB1 ;
2090+ #endif
2091+ #ifdef WOLFSSL_AES_192
2092+ case WC_AES_192_CFB1_TYPE : return EVP_AES_192_CFB1 ;
2093+ #endif
2094+ #ifdef WOLFSSL_AES_256
2095+ case WC_AES_256_CFB1_TYPE : return EVP_AES_256_CFB1 ;
2096+ #endif
2097+ #ifdef WOLFSSL_AES_128
2098+ case WC_AES_128_CFB8_TYPE : return EVP_AES_128_CFB8 ;
2099+ #endif
2100+ #ifdef WOLFSSL_AES_192
2101+ case WC_AES_192_CFB8_TYPE : return EVP_AES_192_CFB8 ;
2102+ #endif
2103+ #ifdef WOLFSSL_AES_256
2104+ case WC_AES_256_CFB8_TYPE : return EVP_AES_256_CFB8 ;
2105+ #endif
2106+ #endif /* !WOLFSSL_NO_AES_CFB_1_8 */
2107+ #ifdef WOLFSSL_AES_128
2108+ case WC_AES_128_CFB128_TYPE : return EVP_AES_128_CFB128 ;
2109+ #endif
2110+ #ifdef WOLFSSL_AES_192
2111+ case WC_AES_192_CFB128_TYPE : return EVP_AES_192_CFB128 ;
2112+ #endif
2113+ #ifdef WOLFSSL_AES_256
2114+ case WC_AES_256_CFB128_TYPE : return EVP_AES_256_CFB128 ;
2115+ #endif
2116+ #endif /* WOLFSSL_AES_CFB */
2117+ #if defined(WOLFSSL_AES_OFB )
2118+ #ifdef WOLFSSL_AES_128
2119+ case WC_AES_128_OFB_TYPE : return EVP_AES_128_OFB ;
2120+ #endif
2121+ #ifdef WOLFSSL_AES_192
2122+ case WC_AES_192_OFB_TYPE : return EVP_AES_192_OFB ;
2123+ #endif
2124+ #ifdef WOLFSSL_AES_256
2125+ case WC_AES_256_OFB_TYPE : return EVP_AES_256_OFB ;
2126+ #endif
2127+ #endif /* WOLFSSL_AES_OFB */
2128+ #if defined(WOLFSSL_AES_XTS ) && (!defined(HAVE_FIPS ) || FIPS_VERSION_GE (5 ,3 ))
2129+ #ifdef WOLFSSL_AES_128
2130+ case WC_AES_128_XTS_TYPE : return EVP_AES_128_XTS ;
2131+ #endif
2132+ #ifdef WOLFSSL_AES_256
2133+ case WC_AES_256_XTS_TYPE : return EVP_AES_256_XTS ;
2134+ #endif
2135+ #endif /* WOLFSSL_AES_XTS && (!defined(HAVE_FIPS) || FIPS_VERSION_GE(5,3)) */
2136+ #if defined(HAVE_AESGCM )
2137+ #ifdef WOLFSSL_AES_128
2138+ case WC_AES_128_GCM_TYPE : return EVP_AES_128_GCM ;
2139+ #endif
2140+ #ifdef WOLFSSL_AES_192
2141+ case WC_AES_192_GCM_TYPE : return EVP_AES_192_GCM ;
2142+ #endif
2143+ #ifdef WOLFSSL_AES_256
2144+ case WC_AES_256_GCM_TYPE : return EVP_AES_256_GCM ;
2145+ #endif
2146+ #endif /* HAVE_AESGCM */
2147+ #if defined(HAVE_AESCCM )
2148+ #ifdef WOLFSSL_AES_128
2149+ case WC_AES_128_CCM_TYPE : return EVP_AES_128_CCM ;
2150+ #endif
2151+ #ifdef WOLFSSL_AES_192
2152+ case WC_AES_192_CCM_TYPE : return EVP_AES_192_CCM ;
2153+ #endif
2154+ #ifdef WOLFSSL_AES_256
2155+ case WC_AES_256_CCM_TYPE : return EVP_AES_256_CCM ;
2156+ #endif
2157+ #endif /* HAVE_AESCCM */
2158+ #if defined(WOLFSSL_AES_COUNTER )
2159+ #ifdef WOLFSSL_AES_128
2160+ case WC_AES_128_CTR_TYPE : return EVP_AES_128_CTR ;
2161+ #endif
2162+ #ifdef WOLFSSL_AES_192
2163+ case WC_AES_192_CTR_TYPE : return EVP_AES_192_CTR ;
2164+ #endif
2165+ #ifdef WOLFSSL_AES_256
2166+ case WC_AES_256_CTR_TYPE : return EVP_AES_256_CTR ;
2167+ #endif
2168+ #endif /* WOLFSSL_AES_COUNTER */
2169+ #if defined(HAVE_AES_ECB )
2170+ #ifdef WOLFSSL_AES_128
2171+ case WC_AES_128_ECB_TYPE : return EVP_AES_128_ECB ;
2172+ #endif
2173+ #ifdef WOLFSSL_AES_192
2174+ case WC_AES_192_ECB_TYPE : return EVP_AES_192_ECB ;
2175+ #endif
2176+ #ifdef WOLFSSL_AES_256
2177+ case WC_AES_256_ECB_TYPE : return EVP_AES_256_ECB ;
2178+ #endif
2179+ #endif /* HAVE_AES_ECB */
2180+ #endif /* !NO_AES */
2181+ #if defined(HAVE_ARIA )
2182+ case WC_ARIA_128_GCM_TYPE : return EVP_ARIA_128_GCM ;
2183+ case WC_ARIA_192_GCM_TYPE : return EVP_ARIA_192_GCM ;
2184+ case WC_ARIA_256_GCM_TYPE : return EVP_ARIA_256_GCM ;
2185+ #endif /* HAVE_ARIA */
2186+ #ifndef NO_RC4
2187+ case WC_ARC4_TYPE : return EVP_ARC4 ;
2188+ #endif
2189+ #if defined(HAVE_CHACHA ) && defined(HAVE_POLY1305 )
2190+ case WC_CHACHA20_POLY1305_TYPE : return EVP_CHACHA20_POLY1305 ;
2191+ #endif
2192+ #ifdef HAVE_CHACHA
2193+ case WC_CHACHA20_TYPE : return EVP_CHACHA20 ;
2194+ #endif
2195+ #ifdef WOLFSSL_SM4_ECB
2196+ case WC_SM4_ECB_TYPE : return EVP_SM4_ECB ;
2197+ #endif
2198+ #ifdef WOLFSSL_SM4_CBC
2199+ case WC_SM4_CBC_TYPE : return EVP_SM4_CBC ;
2200+ #endif
2201+ #ifdef WOLFSSL_SM4_CTR
2202+ case WC_SM4_CTR_TYPE : return EVP_SM4_CTR ;
2203+ #endif
2204+ #ifdef WOLFSSL_SM4_GCM
2205+ case WC_SM4_GCM_TYPE : return EVP_SM4_GCM ;
2206+ #endif
2207+ #ifdef WOLFSSL_SM4_CCM
2208+ case WC_SM4_CCM_TYPE : return EVP_SM4_CCM ;
2209+ #endif
2210+ case WC_NULL_CIPHER_TYPE : return EVP_NULL ;
2211+ default :
2212+ return NULL ;
2213+ }
2214+ }
2215+
20572216int wolfSSL_EVP_CIPHER_block_size (const WOLFSSL_EVP_CIPHER * cipher )
20582217{
20592218 if (cipher == NULL )
0 commit comments