New AES and GHASH implementations using POWER8 crypto opcodes.
[BearSSL] / src / ssl / ssl_engine_default_aescbc.c
index 556d6eb..8c5cdb5 100644 (file)
@@ -28,7 +28,7 @@
 void
 br_ssl_engine_set_default_aes_cbc(br_ssl_engine_context *cc)
 {
-#if BR_AES_X86NI
+#if BR_AES_X86NI || BR_POWER8
        const br_block_cbcenc_class *ienc;
        const br_block_cbcdec_class *idec;
 #endif
@@ -44,6 +44,14 @@ br_ssl_engine_set_default_aes_cbc(br_ssl_engine_context *cc)
                return;
        }
 #endif
+#if BR_POWER8
+       ienc = br_aes_pwr8_cbcenc_get_vtable();
+       idec = br_aes_pwr8_cbcdec_get_vtable();
+       if (ienc != NULL && idec != NULL) {
+               br_ssl_engine_set_aes_cbc(cc, ienc, idec);
+               return;
+       }
+#endif
 #if BR_64
        br_ssl_engine_set_aes_cbc(cc,
                &br_aes_ct64_cbcenc_vtable,