| Index: nss/lib/freebl/rijndael.c
|
| diff --git a/nss/lib/freebl/rijndael.c b/nss/lib/freebl/rijndael.c
|
| index 8bb8905130f30095cd114cb41185e263b28c0d75..970386749b2f4f97dc2f6b30d84fae3736d835fe 100644
|
| --- a/nss/lib/freebl/rijndael.c
|
| +++ b/nss/lib/freebl/rijndael.c
|
| @@ -1063,8 +1063,10 @@ aes_InitContext(AESContext *cx, const unsigned char *key, unsigned int keysize,
|
| intel_aes_cbc_worker(encrypt, keysize);
|
| } else
|
| #endif
|
| + {
|
| cx->worker = (freeblCipherFunc) (encrypt
|
| ? &rijndael_encryptCBC : &rijndael_decryptCBC);
|
| + }
|
| } else {
|
| #if USE_HW_AES
|
| if (use_hw_aes) {
|
| @@ -1072,8 +1074,10 @@ aes_InitContext(AESContext *cx, const unsigned char *key, unsigned int keysize,
|
| intel_aes_ecb_worker(encrypt, keysize);
|
| } else
|
| #endif
|
| + {
|
| cx->worker = (freeblCipherFunc) (encrypt
|
| ? &rijndael_encryptECB : &rijndael_decryptECB);
|
| + }
|
| }
|
| PORT_Assert((cx->Nb * (cx->Nr + 1)) <= RIJNDAEL_MAX_EXP_KEY_SIZE);
|
| if ((cx->Nb * (cx->Nr + 1)) > RIJNDAEL_MAX_EXP_KEY_SIZE) {
|
| @@ -1171,7 +1175,14 @@ AES_InitContext(AESContext *cx, const unsigned char *key, unsigned int keysize,
|
| break;
|
| case NSS_AES_CTR:
|
| cx->worker_cx = CTR_CreateContext(cx, cx->worker, iv, blocksize);
|
| - cx->worker = (freeblCipherFunc) CTR_Update ;
|
| +#if defined(USE_HW_AES) && defined(_MSC_VER)
|
| + if (use_hw_aes) {
|
| + cx->worker = (freeblCipherFunc) CTR_Update_HW_AES;
|
| + } else
|
| +#endif
|
| + {
|
| + cx->worker = (freeblCipherFunc) CTR_Update;
|
| + }
|
| cx->destroy = (freeblDestroyFunc) CTR_DestroyContext;
|
| cx->isBlock = PR_FALSE;
|
| break;
|
|
|