Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(682)

Unified Diff: nss/mozilla/security/nss/lib/freebl/rijndael.h

Issue 10919163: Add GCM, CTR, and CTS modes to AES. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/
Patch Set: Fix comments as rsleevi suggested, fix a 32-bit bug and miscellaneous issues Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: nss/mozilla/security/nss/lib/freebl/rijndael.h
===================================================================
--- nss/mozilla/security/nss/lib/freebl/rijndael.h (revision 155503)
+++ nss/mozilla/security/nss/lib/freebl/rijndael.h (working copy)
@@ -38,14 +38,11 @@
#ifndef _RIJNDAEL_H_
#define _RIJNDAEL_H_ 1
+#include "blapii.h"
+
#define RIJNDAEL_MIN_BLOCKSIZE 16 /* bytes */
#define RIJNDAEL_MAX_BLOCKSIZE 32 /* bytes */
-typedef SECStatus AESFunc(AESContext *cx, unsigned char *output,
- unsigned int *outputLen, unsigned int maxOutputLen,
- const unsigned char *input, unsigned int inputLen,
- unsigned int blocksize);
-
typedef SECStatus AESBlockFunc(AESContext *cx,
unsigned char *output,
const unsigned char *input);
@@ -81,15 +78,23 @@
* Nb - the number of bytes in a block, specified by user
* Nr - the number of rounds, specified by a table
* expandedKey - the round keys in 4-byte words, the length is Nr * Nb
- * worker - the encryption/decryption function to use with this context
+ * worker - the encryption/decryption function to use with worker_cx
+ * destroy - if not NULL, the destroy function to use with worker_cx
+ * worker_cx - the context for worker and destroy
+ * isBlock - is the mode of operation a block cipher or a stream cipher?
*/
struct AESContextStr
{
unsigned int Nb;
unsigned int Nr;
- AESFunc *worker;
+ freeblCipherFunc worker;
+ /* NOTE: The offsets of iv and expandedKey are hardcoded in intel-aes.s.
+ * Don't add new members before them without updating intel-aes.s. */
unsigned char iv[RIJNDAEL_MAX_BLOCKSIZE];
PRUint32 expandedKey[RIJNDAEL_MAX_EXP_KEY_SIZE];
+ freeblDestroyFunc destroy;
+ void *worker_cx;
+ PRBool isBlock;
};
#endif /* _RIJNDAEL_H_ */

Powered by Google App Engine
This is Rietveld 408576698