int cipher_init_ctx( cipher_context_t *ctx, const cipher_info_t *cipher_info ) { if( NULL == cipher_info || NULL == ctx ) return( POLARSSL_ERR_CIPHER_BAD_INPUT_DATA ); memset( ctx, 0, sizeof( cipher_context_t ) ); if( NULL == ( ctx->cipher_ctx = cipher_info->base->ctx_alloc_func() ) ) return( POLARSSL_ERR_CIPHER_ALLOC_FAILED ); ctx->cipher_info = cipher_info; #if defined(POLARSSL_CIPHER_MODE_WITH_PADDING) /* * Ignore possible errors caused by a cipher mode that doesn't use padding */ #if defined(POLARSSL_CIPHER_PADDING_PKCS7) (void) cipher_set_padding_mode( ctx, POLARSSL_PADDING_PKCS7 ); #else (void) cipher_set_padding_mode( ctx, POLARSSL_PADDING_NONE ); #endif #endif /* POLARSSL_CIPHER_MODE_WITH_PADDING */ return( 0 ); }
result_t Cipher::paddingMode(int32_t mode) { int ret = cipher_set_padding_mode(&m_ctx, (cipher_padding_t)mode); if (ret != 0) return _ssl::setError(ret); return 0; }