[crypto] Add AES key-wrap mode (RFC 3394)
[people/cooldavid/gpxe.git] / src / include / gpxe / aes.h
index dd6e773..fc1694b 100644 (file)
@@ -1,8 +1,30 @@
 #ifndef _GPXE_AES_H
 #define _GPXE_AES_H
 
-struct crypto_algorithm;
+FILE_LICENCE ( GPL2_OR_LATER );
 
-extern struct crypto_algorithm aes_cbc_algorithm;
+struct cipher_algorithm;
+
+/** Basic AES blocksize */
+#define AES_BLOCKSIZE 16
+
+#include "crypto/axtls/crypto.h"
+
+/** AES context */
+struct aes_context {
+       /** AES context for AXTLS */
+       AES_CTX axtls_ctx;
+       /** Cipher is being used for decrypting */
+       int decrypting;
+};
+
+/** AES context size */
+#define AES_CTX_SIZE sizeof ( struct aes_context )
+
+extern struct cipher_algorithm aes_algorithm;
+extern struct cipher_algorithm aes_cbc_algorithm;
+
+int aes_wrap ( const void *kek, const void *src, void *dest, int nblk );
+int aes_unwrap ( const void *kek, const void *src, void *dest, int nblk );
 
 #endif /* _GPXE_AES_H */