forked from pool/libica
This commit is contained in:
parent
0a7811427a
commit
4e07d6323f
@ -1 +0,0 @@
|
||||
libica4
|
219
icaioctl.h
219
icaioctl.h
@ -1,219 +0,0 @@
|
||||
/* Copyright (c) International Business Machines Corp., 2001 */
|
||||
/*
|
||||
* linux/include/linux/icaioctl.h
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#ifndef _LINUX_ICAIOCTL_H_
|
||||
#define _LINUX_ICAIOCTL_H_
|
||||
|
||||
enum _sizelimits {
|
||||
ICA_DES_DATALENGTH_MIN = 8,
|
||||
ICA_DES_DATALENGTH_MAX = 32 * 1024 * 1024 - 8,
|
||||
ICA_SHA_DATALENGTH = 20,
|
||||
ICA_SHA_BLOCKLENGTH = 64,
|
||||
ICA_RSA_DATALENGTH_MIN = 256/8,
|
||||
ICA_RSA_DATALENGTH_MAX = 2048/8
|
||||
};
|
||||
|
||||
|
||||
typedef struct _ica_rng_rec {
|
||||
unsigned int nbytes;
|
||||
char *buf;
|
||||
} ica_rng_t;
|
||||
|
||||
|
||||
// May have some porting issues here
|
||||
|
||||
typedef struct _ica_rsa_modexpo {
|
||||
char *inputdata;
|
||||
unsigned int inputdatalength;
|
||||
char *outputdata;
|
||||
unsigned int outputdatalength;
|
||||
char *b_key;
|
||||
char *n_modulus;
|
||||
} ica_rsa_modexpo_t;
|
||||
|
||||
typedef ica_rsa_modexpo_t ica_rsa_modmult_t;
|
||||
|
||||
typedef struct _ica_rsa_modexpo_crt {
|
||||
char *inputdata;
|
||||
unsigned int inputdatalength;
|
||||
char *outputdata;
|
||||
unsigned int outputdatalength;
|
||||
char *bp_key;
|
||||
char *bq_key;
|
||||
char *np_prime;
|
||||
char *nq_prime;
|
||||
char *u_mult_inv;
|
||||
} ica_rsa_modexpo_crt_t;
|
||||
|
||||
typedef unsigned char ica_des_vector_t[8];
|
||||
typedef unsigned char ica_des_key_t[8];
|
||||
typedef ica_des_key_t ica_des_single_t[1];
|
||||
typedef ica_des_single_t ica_des_triple_t[3];
|
||||
|
||||
enum _ica_mode_des {
|
||||
DEVICA_MODE_DES_CBC = 0,
|
||||
DEVICA_MODE_DES_ECB = 1
|
||||
};
|
||||
|
||||
enum _ica_direction_des {
|
||||
DEVICA_DIR_DES_ENCRYPT = 0,
|
||||
DEVICA_DIR_DES_DECRYPT = 1
|
||||
};
|
||||
|
||||
typedef struct _ica_des {
|
||||
unsigned int mode;
|
||||
unsigned int direction;
|
||||
unsigned char *inputdata;
|
||||
unsigned int inputdatalength;
|
||||
ica_des_vector_t *iv;
|
||||
ica_des_key_t *keys;
|
||||
unsigned char *outputdata;
|
||||
int outputdatalength;
|
||||
} ica_des_t;
|
||||
|
||||
typedef struct _ica_desmac {
|
||||
unsigned char *inputdata;
|
||||
unsigned int inputdatalength;
|
||||
ica_des_vector_t *iv;
|
||||
ica_des_key_t *keys;
|
||||
unsigned char *outputdata;
|
||||
int outputdatalength;
|
||||
} ica_desmac_t;
|
||||
|
||||
|
||||
typedef unsigned char ica_sha1_result_t[ICA_SHA_DATALENGTH];
|
||||
|
||||
|
||||
typedef struct _ica_sha1 {
|
||||
unsigned char *inputdata;
|
||||
unsigned int inputdatalength;
|
||||
ica_sha1_result_t *outputdata;
|
||||
ica_sha1_result_t *initialh;
|
||||
} ica_sha1_t;
|
||||
|
||||
/* The following structs are used by conversion functions
|
||||
on PowerPC 64 bit only. They should not be used by externel
|
||||
applications. Should the non PPC specific structs change, these
|
||||
structures may need to change as well. Also, new conversion
|
||||
routines will need to be added to devica.c to deal with new
|
||||
structs or structure members.
|
||||
*/
|
||||
#ifdef CONFIG_PPC64
|
||||
typedef struct _ica_rng_rec_32 {
|
||||
unsigned int nbytes;
|
||||
unsigned int buf;
|
||||
} ica_rng_t_32;
|
||||
|
||||
typedef struct _ica_des_32 {
|
||||
unsigned int mode;
|
||||
unsigned int direction;
|
||||
unsigned int inputdata;
|
||||
unsigned int inputdatalength;
|
||||
unsigned int iv;
|
||||
unsigned int keys;
|
||||
unsigned int outputdata;
|
||||
unsigned int outputdatalength;
|
||||
} ica_des_t_32;
|
||||
|
||||
typedef struct _ica_sha1_32 {
|
||||
unsigned int inputdata;
|
||||
unsigned int inputdatalength;
|
||||
unsigned int outputdata;
|
||||
unsigned int initialh;
|
||||
} ica_sha1_t_32;
|
||||
|
||||
typedef struct _ica_desmac_32 {
|
||||
unsigned int inputdata;
|
||||
unsigned int inputdatalength;
|
||||
unsigned int iv;
|
||||
unsigned int keys;
|
||||
unsigned int outputdata;
|
||||
int outputdatalength;
|
||||
} ica_desmac_t_32;
|
||||
|
||||
typedef struct _ica_rsa_modexpo_crt_32 {
|
||||
unsigned int inputdata;
|
||||
unsigned int inputdatalength;
|
||||
unsigned int outputdata;
|
||||
unsigned int outputdatalength;
|
||||
unsigned int bp_key;
|
||||
unsigned int bq_key;
|
||||
unsigned int np_prime;
|
||||
unsigned int nq_prime;
|
||||
unsigned int u_mult_inv;
|
||||
} ica_rsa_modexpo_crt_t_32;
|
||||
|
||||
typedef struct _ica_rsa_modexpo_32 {
|
||||
unsigned int inputdata;
|
||||
unsigned int inputdatalength;
|
||||
unsigned int outputdata;
|
||||
unsigned int outputdatalength;
|
||||
unsigned int b_key;
|
||||
unsigned int n_modulus;
|
||||
} ica_rsa_modexpo_t_32;
|
||||
|
||||
#endif
|
||||
|
||||
#define ICA_IOCTL_MAGIC '?' // NOTE: Need to allocate from linux folks
|
||||
|
||||
/*
|
||||
* Note: Some platforms only use 8 bits to define the parameter size. As
|
||||
* the macros in ioctl.h don't seem to mask off offending bits, they look
|
||||
* a little unsafe. We should probably just not use the parameter size
|
||||
* at all for these ioctls. I don't know if we'll ever run on any of those
|
||||
* architectures, but seems easier just to not count on this feature.
|
||||
*/
|
||||
|
||||
#define ICASETBIND _IOW(ICA_IOCTL_MAGIC, 0x01, int)
|
||||
#define ICAGETBIND _IOR(ICA_IOCTL_MAGIC, 0x02, int)
|
||||
#define ICAGETCOUNT _IOR(ICA_IOCTL_MAGIC, 0x03, int)
|
||||
#define ICAGETID _IOR(ICA_IOCTL_MAGIC, 0x04, int)
|
||||
#define ICARSAMODEXPO _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x05, 0)
|
||||
#define ICARSACRT _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x06, 0)
|
||||
#define ICARSAMODMULT _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x07, 0)
|
||||
#define ICADES _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x08, 0)
|
||||
#define ICADESMAC _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x09, 0)
|
||||
#define ICATDES _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x0a, 0)
|
||||
#define ICATDESSHA _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x0b, 0)
|
||||
#define ICATDESMAC _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x0c, 0)
|
||||
#define ICASHA1 _IOC(_IOC_READ|_IOC_WRITE, ICA_IOCTL_MAGIC, 0x0d, 0)
|
||||
#define ICARNG _IOC(_IOC_READ, ICA_IOCTL_MAGIC, 0x0e, 0)
|
||||
#define ICAGETVPD _IOC(_IOC_READ, ICA_IOCTL_MAGIC, 0x0f, 0)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#ifndef assertk
|
||||
#ifdef NDEBUG
|
||||
# define assertk(expr) do {} while (0)
|
||||
#else
|
||||
# define assertk(expr) \
|
||||
if(!(expr)) { \
|
||||
printk( "Assertion failed! %s,%s,%s,line=%d\n", \
|
||||
#expr,__FILE__,__FUNCTION__,__LINE__); \
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
struct ica_operations {
|
||||
ssize_t (*read) (struct file *, char *, size_t, loff_t *, void *);
|
||||
int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long, void *);
|
||||
};
|
||||
|
||||
typedef struct ica_worker {
|
||||
struct ica_operations *icaops;
|
||||
void * private_data;
|
||||
} ica_worker_t;
|
||||
|
||||
|
||||
extern int ica_register_worker(int partitionnum, ica_worker_t *device);
|
||||
extern int ica_unregister_worker(int partitionnum, ica_worker_t *device);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _LINUX_ICAIOCTL_H_ */
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fe44e8b31f0d0f09da3f86ef46d6089fea7d7c453f5d196b88cee6ab4621a385
|
||||
size 553081
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package libica
|
||||
#
|
||||
# Copyright (c) 2018-2022 SUSE LLC
|
||||
# Copyright (c) 2022 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
|
Loading…
Reference in New Issue
Block a user