Blame lib/accelerated/x86/aes-padlock.h

Packit Service 4684c1
#ifndef GNUTLS_LIB_ACCELERATED_X86_AES_PADLOCK_H
Packit Service 4684c1
#define GNUTLS_LIB_ACCELERATED_X86_AES_PADLOCK_H
Packit Service 4684c1
Packit Service 4684c1
#include "gnutls_int.h"
Packit Service 4684c1
#include <aes-x86.h>
Packit Service 4684c1
Packit Service 4684c1
struct padlock_cipher_data {
Packit Service 4684c1
	unsigned char iv[16];	/* Initialization vector */
Packit Service 4684c1
	union {
Packit Service 4684c1
		unsigned int pad[4];
Packit Service 4684c1
		struct {
Packit Service 4684c1
			unsigned rounds:4;
Packit Service 4684c1
			unsigned dgst:1;	/* n/a in C3 */
Packit Service 4684c1
			unsigned align:1;	/* n/a in C3 */
Packit Service 4684c1
			unsigned ciphr:1;	/* n/a in C3 */
Packit Service 4684c1
			unsigned int keygen:1;
Packit Service 4684c1
			unsigned interm:1;
Packit Service 4684c1
			unsigned int encdec:1;
Packit Service 4684c1
			unsigned ksize:2;
Packit Service 4684c1
		} b;
Packit Service 4684c1
	} cword;		/* Control word */
Packit Service 4684c1
	AES_KEY ks;		/* Encryption key */
Packit Service 4684c1
};
Packit Service 4684c1
Packit Service 4684c1
struct padlock_ctx {
Packit Service 4684c1
	struct padlock_cipher_data expanded_key;
Packit Service 4684c1
	int enc;
Packit Service 4684c1
};
Packit Service 4684c1
Packit Service 4684c1
extern const gnutls_crypto_cipher_st _gnutls_aes_padlock;
Packit Service 4684c1
extern const gnutls_crypto_cipher_st _gnutls_aes_gcm_padlock;
Packit Service 4684c1
Packit Service 4684c1
extern const gnutls_crypto_mac_st _gnutls_hmac_sha_padlock;
Packit Service 4684c1
extern const gnutls_crypto_digest_st _gnutls_sha_padlock;
Packit Service 4684c1
Packit Service 4684c1
int padlock_aes_cipher_setkey(void *_ctx, const void *userkey,
Packit Service 4684c1
			      size_t keysize);
Packit Service 4684c1
Packit Service 4684c1
/* asm */
Packit Service 4684c1
unsigned int padlock_capability(void);
Packit Service 4684c1
void padlock_reload_key(void);
Packit Service 4684c1
int padlock_ecb_encrypt(void *out, const void *inp,
Packit Service 4684c1
			struct padlock_cipher_data *ctx, size_t len);
Packit Service 4684c1
int padlock_cbc_encrypt(void *out, const void *inp,
Packit Service 4684c1
			struct padlock_cipher_data *ctx, size_t len);
Packit Service 4684c1
#endif /* GNUTLS_LIB_ACCELERATED_X86_AES_PADLOCK_H */