X-Git-Url: https://www.bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=src%2Fssl%2Fssl_engine_default_aesgcm.c;h=c44a7074bba53eec3ac29277968d3d568daddbaf;hp=9968342872a358fff0449ee2c5dfe36b8c9d468f;hb=ea95d8264c6aefe742a9c3f4f9d834b188566a29;hpb=5f045c759957fdff8c85716e6af99e10901fdac0 diff --git a/src/ssl/ssl_engine_default_aesgcm.c b/src/ssl/ssl_engine_default_aesgcm.c index 9968342..c44a707 100644 --- a/src/ssl/ssl_engine_default_aesgcm.c +++ b/src/ssl/ssl_engine_default_aesgcm.c @@ -28,7 +28,7 @@ void br_ssl_engine_set_default_aes_gcm(br_ssl_engine_context *cc) { -#if BR_AES_X86NI +#if BR_AES_X86NI || BR_POWER8 const br_block_ctr_class *ictr; br_ghash ighash; #endif @@ -47,6 +47,17 @@ br_ssl_engine_set_default_aes_gcm(br_ssl_engine_context *cc) br_ssl_engine_set_aes_ctr(cc, &br_aes_ct_ctr_vtable); #endif } +#elif BR_POWER8 + ictr = br_aes_pwr8_ctr_get_vtable(); + if (ictr != NULL) { + br_ssl_engine_set_aes_ctr(cc, ictr); + } else { +#if BR_64 + br_ssl_engine_set_aes_ctr(cc, &br_aes_ct64_ctr_vtable); +#else + br_ssl_engine_set_aes_ctr(cc, &br_aes_ct_ctr_vtable); +#endif + } #else #if BR_64 br_ssl_engine_set_aes_ctr(cc, &br_aes_ct64_ctr_vtable); @@ -61,6 +72,13 @@ br_ssl_engine_set_default_aes_gcm(br_ssl_engine_context *cc) return; } #endif +#if BR_POWER8 + ighash = br_ghash_pwr8_get(); + if (ighash != 0) { + br_ssl_engine_set_ghash(cc, ighash); + return; + } +#endif #if BR_LOMUL br_ssl_engine_set_ghash(cc, &br_ghash_ctmul32); #elif BR_64