提交 2004b57c 编写于 作者: H Harald Freudenberger 提交者: Heiko Carstens

s390/zcrypt: code cleanup

This patch tries to fix as much as possible of the
checkpatch.pl --strict findings:
  CHECK: Logical continuations should be on the previous line
  CHECK: No space is necessary after a cast
  CHECK: Alignment should match open parenthesis
  CHECK: 'useable' may be misspelled - perhaps 'usable'?
  WARNING: Possible repeated word: 'is'
  CHECK: spaces preferred around that '*' (ctx:VxV)
  CHECK: Comparison to NULL could be written "!msg"
  CHECK: Prefer kzalloc(sizeof(*zc)...) over kzalloc(sizeof(struct...)...)
  CHECK: Unnecessary parentheses around resp_type->work
  CHECK: Avoid CamelCase: <xcRB>

There is no functional change comming with this patch, only
code cleanup, renaming, whitespaces, indenting, ... but no
semantic change in any way. Also the API (zcrypt and pkey
header file) is semantically unchanged.
Signed-off-by: NHarald Freudenberger <freude@linux.ibm.com>
Reviewed-by: NJürgen Christ <jchrist@linux.ibm.com>
Signed-off-by: NHeiko Carstens <hca@linux.ibm.com>
上级 6acb086d
...@@ -171,7 +171,7 @@ struct pkey_skey2pkey { ...@@ -171,7 +171,7 @@ struct pkey_skey2pkey {
#define PKEY_SKEY2PKEY _IOWR(PKEY_IOCTL_MAGIC, 0x06, struct pkey_skey2pkey) #define PKEY_SKEY2PKEY _IOWR(PKEY_IOCTL_MAGIC, 0x06, struct pkey_skey2pkey)
/* /*
* Verify the given CCA AES secure key for being able to be useable with * Verify the given CCA AES secure key for being able to be usable with
* the pkey module. Check for correct key type and check for having at * the pkey module. Check for correct key type and check for having at
* least one crypto card being able to handle this key (master key * least one crypto card being able to handle this key (master key
* or old master key verification pattern matches). * or old master key verification pattern matches).
......
...@@ -236,8 +236,8 @@ struct zcrypt_device_matrix_ext { ...@@ -236,8 +236,8 @@ struct zcrypt_device_matrix_ext {
}; };
#define AUTOSELECT 0xFFFFFFFF #define AUTOSELECT 0xFFFFFFFF
#define AUTOSEL_AP ((__u16) 0xFFFF) #define AUTOSEL_AP ((__u16)0xFFFF)
#define AUTOSEL_DOM ((__u16) 0xFFFF) #define AUTOSEL_DOM ((__u16)0xFFFF)
#define ZCRYPT_IOCTL_MAGIC 'z' #define ZCRYPT_IOCTL_MAGIC 'z'
...@@ -303,12 +303,12 @@ struct zcrypt_device_matrix_ext { ...@@ -303,12 +303,12 @@ struct zcrypt_device_matrix_ext {
/** /**
* Supported ioctl calls * Supported ioctl calls
*/ */
#define ICARSAMODEXPO _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x05, 0) #define ICARSAMODEXPO _IOC(_IOC_READ | _IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x05, 0)
#define ICARSACRT _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x06, 0) #define ICARSACRT _IOC(_IOC_READ | _IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x06, 0)
#define ZSECSENDCPRB _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x81, 0) #define ZSECSENDCPRB _IOC(_IOC_READ | _IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x81, 0)
#define ZSENDEP11CPRB _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x04, 0) #define ZSENDEP11CPRB _IOC(_IOC_READ | _IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x04, 0)
#define ZCRYPT_DEVICE_STATUS _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x5f, 0) #define ZCRYPT_DEVICE_STATUS _IOC(_IOC_READ | _IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x5f, 0)
#define ZCRYPT_STATUS_MASK _IOR(ZCRYPT_IOCTL_MAGIC, 0x58, char[MAX_ZDEV_CARDIDS_EXT]) #define ZCRYPT_STATUS_MASK _IOR(ZCRYPT_IOCTL_MAGIC, 0x58, char[MAX_ZDEV_CARDIDS_EXT])
#define ZCRYPT_QDEPTH_MASK _IOR(ZCRYPT_IOCTL_MAGIC, 0x59, char[MAX_ZDEV_CARDIDS_EXT]) #define ZCRYPT_QDEPTH_MASK _IOR(ZCRYPT_IOCTL_MAGIC, 0x59, char[MAX_ZDEV_CARDIDS_EXT])
#define ZCRYPT_PERDEV_REQCNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x5a, int[MAX_ZDEV_CARDIDS_EXT]) #define ZCRYPT_PERDEV_REQCNT _IOR(ZCRYPT_IOCTL_MAGIC, 0x5a, int[MAX_ZDEV_CARDIDS_EXT])
...@@ -350,7 +350,7 @@ struct zcrypt_device_matrix { ...@@ -350,7 +350,7 @@ struct zcrypt_device_matrix {
}; };
/* Deprecated: use ZCRYPT_DEVICE_STATUS */ /* Deprecated: use ZCRYPT_DEVICE_STATUS */
#define ZDEVICESTATUS _IOC(_IOC_READ|_IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x4f, 0) #define ZDEVICESTATUS _IOC(_IOC_READ | _IOC_WRITE, ZCRYPT_IOCTL_MAGIC, 0x4f, 0)
/* Deprecated: use ZCRYPT_STATUS_MASK */ /* Deprecated: use ZCRYPT_STATUS_MASK */
#define Z90STAT_STATUS_MASK _IOR(ZCRYPT_IOCTL_MAGIC, 0x48, char[64]) #define Z90STAT_STATUS_MASK _IOR(ZCRYPT_IOCTL_MAGIC, 0x48, char[64])
/* Deprecated: use ZCRYPT_QDEPTH_MASK */ /* Deprecated: use ZCRYPT_QDEPTH_MASK */
......
...@@ -179,7 +179,7 @@ static int ap_qci_available(void) ...@@ -179,7 +179,7 @@ static int ap_qci_available(void)
* ap_apft_available(): Test if AP facilities test (APFT) * ap_apft_available(): Test if AP facilities test (APFT)
* facility is available. * facility is available.
* *
* Returns 1 if APFT is is available. * Returns 1 if APFT is available.
*/ */
static int ap_apft_available(void) static int ap_apft_available(void)
{ {
...@@ -722,7 +722,7 @@ struct __ap_calc_ctrs { ...@@ -722,7 +722,7 @@ struct __ap_calc_ctrs {
static int __ap_calc_helper(struct device *dev, void *arg) static int __ap_calc_helper(struct device *dev, void *arg)
{ {
struct __ap_calc_ctrs *pctrs = (struct __ap_calc_ctrs *) arg; struct __ap_calc_ctrs *pctrs = (struct __ap_calc_ctrs *)arg;
if (is_queue_dev(dev)) { if (is_queue_dev(dev)) {
pctrs->apqns++; pctrs->apqns++;
...@@ -738,7 +738,7 @@ static void ap_calc_bound_apqns(unsigned int *apqns, unsigned int *bound) ...@@ -738,7 +738,7 @@ static void ap_calc_bound_apqns(unsigned int *apqns, unsigned int *bound)
struct __ap_calc_ctrs ctrs; struct __ap_calc_ctrs ctrs;
memset(&ctrs, 0, sizeof(ctrs)); memset(&ctrs, 0, sizeof(ctrs));
bus_for_each_dev(&ap_bus_type, NULL, (void *) &ctrs, __ap_calc_helper); bus_for_each_dev(&ap_bus_type, NULL, (void *)&ctrs, __ap_calc_helper);
*apqns = ctrs.apqns; *apqns = ctrs.apqns;
*bound = ctrs.bound; *bound = ctrs.bound;
...@@ -799,7 +799,7 @@ EXPORT_SYMBOL(ap_wait_init_apqn_bindings_complete); ...@@ -799,7 +799,7 @@ EXPORT_SYMBOL(ap_wait_init_apqn_bindings_complete);
static int __ap_queue_devices_with_id_unregister(struct device *dev, void *data) static int __ap_queue_devices_with_id_unregister(struct device *dev, void *data)
{ {
if (is_queue_dev(dev) && if (is_queue_dev(dev) &&
AP_QID_CARD(to_ap_queue(dev)->qid) == (int)(long) data) AP_QID_CARD(to_ap_queue(dev)->qid) == (int)(long)data)
device_unregister(dev); device_unregister(dev);
return 0; return 0;
} }
...@@ -812,8 +812,8 @@ static int __ap_revise_reserved(struct device *dev, void *dummy) ...@@ -812,8 +812,8 @@ static int __ap_revise_reserved(struct device *dev, void *dummy)
card = AP_QID_CARD(to_ap_queue(dev)->qid); card = AP_QID_CARD(to_ap_queue(dev)->qid);
queue = AP_QID_QUEUE(to_ap_queue(dev)->qid); queue = AP_QID_QUEUE(to_ap_queue(dev)->qid);
mutex_lock(&ap_perms_mutex); mutex_lock(&ap_perms_mutex);
devres = test_bit_inv(card, ap_perms.apm) devres = test_bit_inv(card, ap_perms.apm) &&
&& test_bit_inv(queue, ap_perms.aqm); test_bit_inv(queue, ap_perms.aqm);
mutex_unlock(&ap_perms_mutex); mutex_unlock(&ap_perms_mutex);
drvres = to_ap_drv(dev->driver)->flags drvres = to_ap_drv(dev->driver)->flags
& AP_DRIVER_FLAG_DEFAULT; & AP_DRIVER_FLAG_DEFAULT;
...@@ -844,8 +844,8 @@ int ap_owned_by_def_drv(int card, int queue) ...@@ -844,8 +844,8 @@ int ap_owned_by_def_drv(int card, int queue)
mutex_lock(&ap_perms_mutex); mutex_lock(&ap_perms_mutex);
if (test_bit_inv(card, ap_perms.apm) if (test_bit_inv(card, ap_perms.apm) &&
&& test_bit_inv(queue, ap_perms.aqm)) test_bit_inv(queue, ap_perms.aqm))
rc = 1; rc = 1;
mutex_unlock(&ap_perms_mutex); mutex_unlock(&ap_perms_mutex);
...@@ -894,8 +894,8 @@ static int ap_device_probe(struct device *dev) ...@@ -894,8 +894,8 @@ static int ap_device_probe(struct device *dev)
card = AP_QID_CARD(to_ap_queue(dev)->qid); card = AP_QID_CARD(to_ap_queue(dev)->qid);
queue = AP_QID_QUEUE(to_ap_queue(dev)->qid); queue = AP_QID_QUEUE(to_ap_queue(dev)->qid);
mutex_lock(&ap_perms_mutex); mutex_lock(&ap_perms_mutex);
devres = test_bit_inv(card, ap_perms.apm) devres = test_bit_inv(card, ap_perms.apm) &&
&& test_bit_inv(queue, ap_perms.aqm); test_bit_inv(queue, ap_perms.aqm);
mutex_unlock(&ap_perms_mutex); mutex_unlock(&ap_perms_mutex);
drvres = ap_drv->flags & AP_DRIVER_FLAG_DEFAULT; drvres = ap_drv->flags & AP_DRIVER_FLAG_DEFAULT;
if (!!devres != !!drvres) if (!!devres != !!drvres)
...@@ -916,8 +916,9 @@ static int ap_device_probe(struct device *dev) ...@@ -916,8 +916,9 @@ static int ap_device_probe(struct device *dev)
if (is_queue_dev(dev)) if (is_queue_dev(dev))
hash_del(&to_ap_queue(dev)->hnode); hash_del(&to_ap_queue(dev)->hnode);
spin_unlock_bh(&ap_queues_lock); spin_unlock_bh(&ap_queues_lock);
} else } else {
ap_check_bindings_complete(); ap_check_bindings_complete();
}
out: out:
if (rc) if (rc)
...@@ -998,8 +999,8 @@ void ap_bus_force_rescan(void) ...@@ -998,8 +999,8 @@ void ap_bus_force_rescan(void)
EXPORT_SYMBOL(ap_bus_force_rescan); EXPORT_SYMBOL(ap_bus_force_rescan);
/* /*
* A config change has happened, force an ap bus rescan. * A config change has happened, force an ap bus rescan.
*/ */
void ap_bus_cfg_chg(void) void ap_bus_cfg_chg(void)
{ {
AP_DBF_DBG("%s config change, forcing bus rescan\n", __func__); AP_DBF_DBG("%s config change, forcing bus rescan\n", __func__);
...@@ -1123,7 +1124,7 @@ int ap_parse_mask_str(const char *str, ...@@ -1123,7 +1124,7 @@ int ap_parse_mask_str(const char *str,
if (bits & 0x07) if (bits & 0x07)
return -EINVAL; return -EINVAL;
size = BITS_TO_LONGS(bits)*sizeof(unsigned long); size = BITS_TO_LONGS(bits) * sizeof(unsigned long);
newmap = kmalloc(size, GFP_KERNEL); newmap = kmalloc(size, GFP_KERNEL);
if (!newmap) if (!newmap)
return -ENOMEM; return -ENOMEM;
...@@ -1259,8 +1260,9 @@ static ssize_t poll_thread_store(struct bus_type *bus, ...@@ -1259,8 +1260,9 @@ static ssize_t poll_thread_store(struct bus_type *bus,
rc = ap_poll_thread_start(); rc = ap_poll_thread_start();
if (rc) if (rc)
count = rc; count = rc;
} else } else {
ap_poll_thread_stop(); ap_poll_thread_stop();
}
return count; return count;
} }
...@@ -1633,9 +1635,9 @@ static int ap_get_compatible_type(ap_qid_t qid, int rawtype, unsigned int func) ...@@ -1633,9 +1635,9 @@ static int ap_get_compatible_type(ap_qid_t qid, int rawtype, unsigned int func)
apinfo.mode = (func >> 26) & 0x07; apinfo.mode = (func >> 26) & 0x07;
apinfo.cat = AP_DEVICE_TYPE_CEX8; apinfo.cat = AP_DEVICE_TYPE_CEX8;
status = ap_qact(qid, 0, &apinfo); status = ap_qact(qid, 0, &apinfo);
if (status.response_code == AP_RESPONSE_NORMAL if (status.response_code == AP_RESPONSE_NORMAL &&
&& apinfo.cat >= AP_DEVICE_TYPE_CEX2A apinfo.cat >= AP_DEVICE_TYPE_CEX2A &&
&& apinfo.cat <= AP_DEVICE_TYPE_CEX8) apinfo.cat <= AP_DEVICE_TYPE_CEX8)
comp_type = apinfo.cat; comp_type = apinfo.cat;
} }
if (!comp_type) if (!comp_type)
...@@ -1655,7 +1657,7 @@ static int ap_get_compatible_type(ap_qid_t qid, int rawtype, unsigned int func) ...@@ -1655,7 +1657,7 @@ static int ap_get_compatible_type(ap_qid_t qid, int rawtype, unsigned int func)
*/ */
static int __match_card_device_with_id(struct device *dev, const void *data) static int __match_card_device_with_id(struct device *dev, const void *data)
{ {
return is_card_dev(dev) && to_ap_card(dev)->id == (int)(long)(void *) data; return is_card_dev(dev) && to_ap_card(dev)->id == (int)(long)(void *)data;
} }
/* /*
...@@ -1664,7 +1666,7 @@ static int __match_card_device_with_id(struct device *dev, const void *data) ...@@ -1664,7 +1666,7 @@ static int __match_card_device_with_id(struct device *dev, const void *data)
*/ */
static int __match_queue_device_with_qid(struct device *dev, const void *data) static int __match_queue_device_with_qid(struct device *dev, const void *data)
{ {
return is_queue_dev(dev) && to_ap_queue(dev)->qid == (int)(long) data; return is_queue_dev(dev) && to_ap_queue(dev)->qid == (int)(long)data;
} }
/* /*
...@@ -1673,8 +1675,8 @@ static int __match_queue_device_with_qid(struct device *dev, const void *data) ...@@ -1673,8 +1675,8 @@ static int __match_queue_device_with_qid(struct device *dev, const void *data)
*/ */
static int __match_queue_device_with_queue_id(struct device *dev, const void *data) static int __match_queue_device_with_queue_id(struct device *dev, const void *data)
{ {
return is_queue_dev(dev) return is_queue_dev(dev) &&
&& AP_QID_QUEUE(to_ap_queue(dev)->qid) == (int)(long) data; AP_QID_QUEUE(to_ap_queue(dev)->qid) == (int)(long)data;
} }
/* Helper function for notify_config_changed */ /* Helper function for notify_config_changed */
...@@ -1727,7 +1729,7 @@ static inline void notify_scan_complete(void) ...@@ -1727,7 +1729,7 @@ static inline void notify_scan_complete(void)
static inline void ap_scan_rm_card_dev_and_queue_devs(struct ap_card *ac) static inline void ap_scan_rm_card_dev_and_queue_devs(struct ap_card *ac)
{ {
bus_for_each_dev(&ap_bus_type, NULL, bus_for_each_dev(&ap_bus_type, NULL,
(void *)(long) ac->id, (void *)(long)ac->id,
__ap_queue_devices_with_id_unregister); __ap_queue_devices_with_id_unregister);
device_unregister(&ac->ap_dev.device); device_unregister(&ac->ap_dev.device);
} }
...@@ -1755,7 +1757,7 @@ static inline void ap_scan_domains(struct ap_card *ac) ...@@ -1755,7 +1757,7 @@ static inline void ap_scan_domains(struct ap_card *ac)
for (dom = 0; dom <= ap_max_domain_id; dom++) { for (dom = 0; dom <= ap_max_domain_id; dom++) {
qid = AP_MKQID(ac->id, dom); qid = AP_MKQID(ac->id, dom);
dev = bus_find_device(&ap_bus_type, NULL, dev = bus_find_device(&ap_bus_type, NULL,
(void *)(long) qid, (void *)(long)qid,
__match_queue_device_with_qid); __match_queue_device_with_qid);
aq = dev ? to_ap_queue(dev) : NULL; aq = dev ? to_ap_queue(dev) : NULL;
if (!ap_test_config_usage_domain(dom)) { if (!ap_test_config_usage_domain(dom)) {
...@@ -1901,7 +1903,7 @@ static inline void ap_scan_adapter(int ap) ...@@ -1901,7 +1903,7 @@ static inline void ap_scan_adapter(int ap)
/* Is there currently a card device for this adapter ? */ /* Is there currently a card device for this adapter ? */
dev = bus_find_device(&ap_bus_type, NULL, dev = bus_find_device(&ap_bus_type, NULL,
(void *)(long) ap, (void *)(long)ap,
__match_card_device_with_id); __match_card_device_with_id);
ac = dev ? to_ap_card(dev) : NULL; ac = dev ? to_ap_card(dev) : NULL;
...@@ -2102,7 +2104,7 @@ static void ap_scan_bus(struct work_struct *unused) ...@@ -2102,7 +2104,7 @@ static void ap_scan_bus(struct work_struct *unused)
if (ap_domain_index >= 0) { if (ap_domain_index >= 0) {
struct device *dev = struct device *dev =
bus_find_device(&ap_bus_type, NULL, bus_find_device(&ap_bus_type, NULL,
(void *)(long) ap_domain_index, (void *)(long)ap_domain_index,
__match_queue_device_with_queue_id); __match_queue_device_with_queue_id);
if (dev) if (dev)
put_device(dev); put_device(dev);
...@@ -2137,7 +2139,7 @@ static int __init ap_debug_init(void) ...@@ -2137,7 +2139,7 @@ static int __init ap_debug_init(void)
static void __init ap_perms_init(void) static void __init ap_perms_init(void)
{ {
/* all resources useable if no kernel parameter string given */ /* all resources usable if no kernel parameter string given */
memset(&ap_perms.ioctlm, 0xFF, sizeof(ap_perms.ioctlm)); memset(&ap_perms.ioctlm, 0xFF, sizeof(ap_perms.ioctlm));
memset(&ap_perms.apm, 0xFF, sizeof(ap_perms.apm)); memset(&ap_perms.apm, 0xFF, sizeof(ap_perms.apm));
memset(&ap_perms.aqm, 0xFF, sizeof(ap_perms.aqm)); memset(&ap_perms.aqm, 0xFF, sizeof(ap_perms.aqm));
......
...@@ -317,6 +317,7 @@ struct ap_perms { ...@@ -317,6 +317,7 @@ struct ap_perms {
unsigned long aqm[BITS_TO_LONGS(AP_DOMAINS)]; unsigned long aqm[BITS_TO_LONGS(AP_DOMAINS)];
unsigned long adm[BITS_TO_LONGS(AP_DOMAINS)]; unsigned long adm[BITS_TO_LONGS(AP_DOMAINS)];
}; };
extern struct ap_perms ap_perms; extern struct ap_perms ap_perms;
extern struct mutex ap_perms_mutex; extern struct mutex ap_perms_mutex;
......
...@@ -99,7 +99,7 @@ int ap_recv(ap_qid_t qid, unsigned long long *psmid, void *msg, size_t length) ...@@ -99,7 +99,7 @@ int ap_recv(ap_qid_t qid, unsigned long long *psmid, void *msg, size_t length)
{ {
struct ap_queue_status status; struct ap_queue_status status;
if (msg == NULL) if (!msg)
return -EINVAL; return -EINVAL;
status = ap_dqap(qid, psmid, msg, length, NULL, NULL); status = ap_dqap(qid, psmid, msg, length, NULL, NULL);
switch (status.response_code) { switch (status.response_code) {
...@@ -603,7 +603,7 @@ static ssize_t interrupt_show(struct device *dev, ...@@ -603,7 +603,7 @@ static ssize_t interrupt_show(struct device *dev,
static DEVICE_ATTR_RO(interrupt); static DEVICE_ATTR_RO(interrupt);
static ssize_t config_show(struct device *dev, static ssize_t config_show(struct device *dev,
struct device_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
struct ap_queue *aq = to_ap_queue(dev); struct ap_queue *aq = to_ap_queue(dev);
int rc; int rc;
...@@ -827,8 +827,9 @@ int ap_queue_message(struct ap_queue *aq, struct ap_message *ap_msg) ...@@ -827,8 +827,9 @@ int ap_queue_message(struct ap_queue *aq, struct ap_message *ap_msg)
aq->requestq_count++; aq->requestq_count++;
aq->total_request_count++; aq->total_request_count++;
atomic64_inc(&aq->card->total_request_count); atomic64_inc(&aq->card->total_request_count);
} else } else {
rc = -ENODEV; rc = -ENODEV;
}
/* Send/receive as many request from the queue as possible. */ /* Send/receive as many request from the queue as possible. */
ap_wait(ap_sm_event_loop(aq, AP_SM_EVENT_POLL)); ap_wait(ap_sm_event_loop(aq, AP_SM_EVENT_POLL));
......
...@@ -232,7 +232,7 @@ static int pkey_ep11key2pkey(const u8 *key, struct pkey_protkey *pkey) ...@@ -232,7 +232,7 @@ static int pkey_ep11key2pkey(const u8 *key, struct pkey_protkey *pkey)
int i, rc; int i, rc;
u16 card, dom; u16 card, dom;
u32 nr_apqns, *apqns = NULL; u32 nr_apqns, *apqns = NULL;
struct ep11keyblob *kb = (struct ep11keyblob *) key; struct ep11keyblob *kb = (struct ep11keyblob *)key;
zcrypt_wait_api_operational(); zcrypt_wait_api_operational();
...@@ -267,12 +267,12 @@ static int pkey_verifykey(const struct pkey_seckey *seckey, ...@@ -267,12 +267,12 @@ static int pkey_verifykey(const struct pkey_seckey *seckey,
u16 *pcardnr, u16 *pdomain, u16 *pcardnr, u16 *pdomain,
u16 *pkeysize, u32 *pattributes) u16 *pkeysize, u32 *pattributes)
{ {
struct secaeskeytoken *t = (struct secaeskeytoken *) seckey; struct secaeskeytoken *t = (struct secaeskeytoken *)seckey;
u16 cardnr, domain; u16 cardnr, domain;
int rc; int rc;
/* check the secure key for valid AES secure key */ /* check the secure key for valid AES secure key */
rc = cca_check_secaeskeytoken(debug_info, 3, (u8 *) seckey, 0); rc = cca_check_secaeskeytoken(debug_info, 3, (u8 *)seckey, 0);
if (rc) if (rc)
goto out; goto out;
if (pattributes) if (pattributes)
...@@ -425,9 +425,9 @@ static int pkey_nonccatok2pkey(const u8 *key, u32 keylen, ...@@ -425,9 +425,9 @@ static int pkey_nonccatok2pkey(const u8 *key, u32 keylen,
t = (struct clearaeskeytoken *)key; t = (struct clearaeskeytoken *)key;
if (keylen != sizeof(*t) + t->len) if (keylen != sizeof(*t) + t->len)
goto out; goto out;
if ((t->keytype == PKEY_KEYTYPE_AES_128 && t->len == 16) if ((t->keytype == PKEY_KEYTYPE_AES_128 && t->len == 16) ||
|| (t->keytype == PKEY_KEYTYPE_AES_192 && t->len == 24) (t->keytype == PKEY_KEYTYPE_AES_192 && t->len == 24) ||
|| (t->keytype == PKEY_KEYTYPE_AES_256 && t->len == 32)) (t->keytype == PKEY_KEYTYPE_AES_256 && t->len == 32))
memcpy(ckey.clrkey, t->clearkey, t->len); memcpy(ckey.clrkey, t->clearkey, t->len);
else else
goto out; goto out;
...@@ -541,7 +541,6 @@ int pkey_keyblob2pkey(const u8 *key, u32 keylen, ...@@ -541,7 +541,6 @@ int pkey_keyblob2pkey(const u8 *key, u32 keylen,
DEBUG_DBG("%s rc=%d\n", __func__, rc); DEBUG_DBG("%s rc=%d\n", __func__, rc);
return rc; return rc;
} }
EXPORT_SYMBOL(pkey_keyblob2pkey); EXPORT_SYMBOL(pkey_keyblob2pkey);
...@@ -588,9 +587,11 @@ static int pkey_genseckey2(const struct pkey_apqn *apqns, size_t nr_apqns, ...@@ -588,9 +587,11 @@ static int pkey_genseckey2(const struct pkey_apqn *apqns, size_t nr_apqns,
} else if (ktype == PKEY_TYPE_CCA_DATA) { } else if (ktype == PKEY_TYPE_CCA_DATA) {
rc = cca_genseckey(card, dom, ksize, keybuf); rc = cca_genseckey(card, dom, ksize, keybuf);
*keybufsize = (rc ? 0 : SECKEYBLOBSIZE); *keybufsize = (rc ? 0 : SECKEYBLOBSIZE);
} else /* TOKVER_CCA_VLSC */ } else {
/* TOKVER_CCA_VLSC */
rc = cca_gencipherkey(card, dom, ksize, kflags, rc = cca_gencipherkey(card, dom, ksize, kflags,
keybuf, keybufsize); keybuf, keybufsize);
}
if (rc == 0) if (rc == 0)
break; break;
} }
...@@ -645,9 +646,11 @@ static int pkey_clr2seckey2(const struct pkey_apqn *apqns, size_t nr_apqns, ...@@ -645,9 +646,11 @@ static int pkey_clr2seckey2(const struct pkey_apqn *apqns, size_t nr_apqns,
rc = cca_clr2seckey(card, dom, ksize, rc = cca_clr2seckey(card, dom, ksize,
clrkey, keybuf); clrkey, keybuf);
*keybufsize = (rc ? 0 : SECKEYBLOBSIZE); *keybufsize = (rc ? 0 : SECKEYBLOBSIZE);
} else /* TOKVER_CCA_VLSC */ } else {
/* TOKVER_CCA_VLSC */
rc = cca_clr2cipherkey(card, dom, ksize, kflags, rc = cca_clr2cipherkey(card, dom, ksize, kflags,
clrkey, keybuf, keybufsize); clrkey, keybuf, keybufsize);
}
if (rc == 0) if (rc == 0)
break; break;
} }
...@@ -667,8 +670,8 @@ static int pkey_verifykey2(const u8 *key, size_t keylen, ...@@ -667,8 +670,8 @@ static int pkey_verifykey2(const u8 *key, size_t keylen,
if (keylen < sizeof(struct keytoken_header)) if (keylen < sizeof(struct keytoken_header))
return -EINVAL; return -EINVAL;
if (hdr->type == TOKTYPE_CCA_INTERNAL if (hdr->type == TOKTYPE_CCA_INTERNAL &&
&& hdr->version == TOKVER_CCA_AES) { hdr->version == TOKVER_CCA_AES) {
struct secaeskeytoken *t = (struct secaeskeytoken *)key; struct secaeskeytoken *t = (struct secaeskeytoken *)key;
rc = cca_check_secaeskeytoken(debug_info, 3, key, 0); rc = cca_check_secaeskeytoken(debug_info, 3, key, 0);
...@@ -677,7 +680,7 @@ static int pkey_verifykey2(const u8 *key, size_t keylen, ...@@ -677,7 +680,7 @@ static int pkey_verifykey2(const u8 *key, size_t keylen,
if (ktype) if (ktype)
*ktype = PKEY_TYPE_CCA_DATA; *ktype = PKEY_TYPE_CCA_DATA;
if (ksize) if (ksize)
*ksize = (enum pkey_key_size) t->bitsize; *ksize = (enum pkey_key_size)t->bitsize;
rc = cca_findcard2(&_apqns, &_nr_apqns, *cardnr, *domain, rc = cca_findcard2(&_apqns, &_nr_apqns, *cardnr, *domain,
ZCRYPT_CEX3C, AES_MK_SET, t->mkvp, 0, 1); ZCRYPT_CEX3C, AES_MK_SET, t->mkvp, 0, 1);
...@@ -697,8 +700,8 @@ static int pkey_verifykey2(const u8 *key, size_t keylen, ...@@ -697,8 +700,8 @@ static int pkey_verifykey2(const u8 *key, size_t keylen,
*cardnr = ((struct pkey_apqn *)_apqns)->card; *cardnr = ((struct pkey_apqn *)_apqns)->card;
*domain = ((struct pkey_apqn *)_apqns)->domain; *domain = ((struct pkey_apqn *)_apqns)->domain;
} else if (hdr->type == TOKTYPE_CCA_INTERNAL } else if (hdr->type == TOKTYPE_CCA_INTERNAL &&
&& hdr->version == TOKVER_CCA_VLSC) { hdr->version == TOKVER_CCA_VLSC) {
struct cipherkeytoken *t = (struct cipherkeytoken *)key; struct cipherkeytoken *t = (struct cipherkeytoken *)key;
rc = cca_check_secaescipherkey(debug_info, 3, key, 0, 1); rc = cca_check_secaescipherkey(debug_info, 3, key, 0, 1);
...@@ -734,8 +737,8 @@ static int pkey_verifykey2(const u8 *key, size_t keylen, ...@@ -734,8 +737,8 @@ static int pkey_verifykey2(const u8 *key, size_t keylen,
*cardnr = ((struct pkey_apqn *)_apqns)->card; *cardnr = ((struct pkey_apqn *)_apqns)->card;
*domain = ((struct pkey_apqn *)_apqns)->domain; *domain = ((struct pkey_apqn *)_apqns)->domain;
} else if (hdr->type == TOKTYPE_NON_CCA } else if (hdr->type == TOKTYPE_NON_CCA &&
&& hdr->version == TOKVER_EP11_AES) { hdr->version == TOKVER_EP11_AES) {
struct ep11keyblob *kb = (struct ep11keyblob *)key; struct ep11keyblob *kb = (struct ep11keyblob *)key;
rc = ep11_check_aes_key(debug_info, 3, key, keylen, 1); rc = ep11_check_aes_key(debug_info, 3, key, keylen, 1);
...@@ -757,8 +760,9 @@ static int pkey_verifykey2(const u8 *key, size_t keylen, ...@@ -757,8 +760,9 @@ static int pkey_verifykey2(const u8 *key, size_t keylen,
*cardnr = ((struct pkey_apqn *)_apqns)->card; *cardnr = ((struct pkey_apqn *)_apqns)->card;
*domain = ((struct pkey_apqn *)_apqns)->domain; *domain = ((struct pkey_apqn *)_apqns)->domain;
} else } else {
rc = -EINVAL; rc = -EINVAL;
}
out: out:
kfree(_apqns); kfree(_apqns);
...@@ -816,16 +820,17 @@ static int pkey_keyblob2pkey2(const struct pkey_apqn *apqns, size_t nr_apqns, ...@@ -816,16 +820,17 @@ static int pkey_keyblob2pkey2(const struct pkey_apqn *apqns, size_t nr_apqns,
for (i = 0, rc = -ENODEV; i < nr_apqns; i++) { for (i = 0, rc = -ENODEV; i < nr_apqns; i++) {
card = apqns[i].card; card = apqns[i].card;
dom = apqns[i].domain; dom = apqns[i].domain;
if (hdr->type == TOKTYPE_CCA_INTERNAL if (hdr->type == TOKTYPE_CCA_INTERNAL &&
&& hdr->version == TOKVER_CCA_AES) hdr->version == TOKVER_CCA_AES) {
rc = cca_sec2protkey(card, dom, key, pkey->protkey, rc = cca_sec2protkey(card, dom, key, pkey->protkey,
&pkey->len, &pkey->type); &pkey->len, &pkey->type);
else if (hdr->type == TOKTYPE_CCA_INTERNAL } else if (hdr->type == TOKTYPE_CCA_INTERNAL &&
&& hdr->version == TOKVER_CCA_VLSC) hdr->version == TOKVER_CCA_VLSC) {
rc = cca_cipher2protkey(card, dom, key, pkey->protkey, rc = cca_cipher2protkey(card, dom, key, pkey->protkey,
&pkey->len, &pkey->type); &pkey->len, &pkey->type);
else { /* EP11 AES secure key blob */ } else {
struct ep11keyblob *kb = (struct ep11keyblob *) key; /* EP11 AES secure key blob */
struct ep11keyblob *kb = (struct ep11keyblob *)key;
pkey->len = sizeof(pkey->protkey); pkey->len = sizeof(pkey->protkey);
rc = ep11_kblob2protkey(card, dom, key, kb->head.len, rc = ep11_kblob2protkey(card, dom, key, kb->head.len,
...@@ -851,10 +856,10 @@ static int pkey_apqns4key(const u8 *key, size_t keylen, u32 flags, ...@@ -851,10 +856,10 @@ static int pkey_apqns4key(const u8 *key, size_t keylen, u32 flags,
zcrypt_wait_api_operational(); zcrypt_wait_api_operational();
if (hdr->type == TOKTYPE_NON_CCA if (hdr->type == TOKTYPE_NON_CCA &&
&& (hdr->version == TOKVER_EP11_AES_WITH_HEADER (hdr->version == TOKVER_EP11_AES_WITH_HEADER ||
|| hdr->version == TOKVER_EP11_ECC_WITH_HEADER) hdr->version == TOKVER_EP11_ECC_WITH_HEADER) &&
&& is_ep11_keyblob(key + sizeof(struct ep11kblob_header))) { is_ep11_keyblob(key + sizeof(struct ep11kblob_header))) {
int minhwtype = 0, api = 0; int minhwtype = 0, api = 0;
struct ep11keyblob *kb = (struct ep11keyblob *) struct ep11keyblob *kb = (struct ep11keyblob *)
(key + sizeof(struct ep11kblob_header)); (key + sizeof(struct ep11kblob_header));
...@@ -869,11 +874,11 @@ static int pkey_apqns4key(const u8 *key, size_t keylen, u32 flags, ...@@ -869,11 +874,11 @@ static int pkey_apqns4key(const u8 *key, size_t keylen, u32 flags,
minhwtype, api, kb->wkvp); minhwtype, api, kb->wkvp);
if (rc) if (rc)
goto out; goto out;
} else if (hdr->type == TOKTYPE_NON_CCA } else if (hdr->type == TOKTYPE_NON_CCA &&
&& hdr->version == TOKVER_EP11_AES hdr->version == TOKVER_EP11_AES &&
&& is_ep11_keyblob(key)) { is_ep11_keyblob(key)) {
int minhwtype = 0, api = 0; int minhwtype = 0, api = 0;
struct ep11keyblob *kb = (struct ep11keyblob *) key; struct ep11keyblob *kb = (struct ep11keyblob *)key;
if (flags != PKEY_FLAGS_MATCH_CUR_MKVP) if (flags != PKEY_FLAGS_MATCH_CUR_MKVP)
return -EINVAL; return -EINVAL;
...@@ -931,8 +936,9 @@ static int pkey_apqns4key(const u8 *key, size_t keylen, u32 flags, ...@@ -931,8 +936,9 @@ static int pkey_apqns4key(const u8 *key, size_t keylen, u32 flags,
cur_mkvp, old_mkvp, 1); cur_mkvp, old_mkvp, 1);
if (rc) if (rc)
goto out; goto out;
} else } else {
return -EINVAL; return -EINVAL;
}
if (apqns) { if (apqns) {
if (*nr_apqns < _nr_apqns) if (*nr_apqns < _nr_apqns)
...@@ -961,9 +967,9 @@ static int pkey_apqns4keytype(enum pkey_key_type ktype, ...@@ -961,9 +967,9 @@ static int pkey_apqns4keytype(enum pkey_key_type ktype,
int minhwtype = ZCRYPT_CEX3C; int minhwtype = ZCRYPT_CEX3C;
if (flags & PKEY_FLAGS_MATCH_CUR_MKVP) if (flags & PKEY_FLAGS_MATCH_CUR_MKVP)
cur_mkvp = *((u64 *) cur_mkvp); cur_mkvp = *((u64 *)cur_mkvp);
if (flags & PKEY_FLAGS_MATCH_ALT_MKVP) if (flags & PKEY_FLAGS_MATCH_ALT_MKVP)
old_mkvp = *((u64 *) alt_mkvp); old_mkvp = *((u64 *)alt_mkvp);
if (ktype == PKEY_TYPE_CCA_CIPHER) if (ktype == PKEY_TYPE_CCA_CIPHER)
minhwtype = ZCRYPT_CEX6; minhwtype = ZCRYPT_CEX6;
rc = cca_findcard2(&_apqns, &_nr_apqns, 0xFFFF, 0xFFFF, rc = cca_findcard2(&_apqns, &_nr_apqns, 0xFFFF, 0xFFFF,
...@@ -975,9 +981,9 @@ static int pkey_apqns4keytype(enum pkey_key_type ktype, ...@@ -975,9 +981,9 @@ static int pkey_apqns4keytype(enum pkey_key_type ktype,
u64 cur_mkvp = 0, old_mkvp = 0; u64 cur_mkvp = 0, old_mkvp = 0;
if (flags & PKEY_FLAGS_MATCH_CUR_MKVP) if (flags & PKEY_FLAGS_MATCH_CUR_MKVP)
cur_mkvp = *((u64 *) cur_mkvp); cur_mkvp = *((u64 *)cur_mkvp);
if (flags & PKEY_FLAGS_MATCH_ALT_MKVP) if (flags & PKEY_FLAGS_MATCH_ALT_MKVP)
old_mkvp = *((u64 *) alt_mkvp); old_mkvp = *((u64 *)alt_mkvp);
rc = cca_findcard2(&_apqns, &_nr_apqns, 0xFFFF, 0xFFFF, rc = cca_findcard2(&_apqns, &_nr_apqns, 0xFFFF, 0xFFFF,
ZCRYPT_CEX7, APKA_MK_SET, ZCRYPT_CEX7, APKA_MK_SET,
cur_mkvp, old_mkvp, 1); cur_mkvp, old_mkvp, 1);
...@@ -996,8 +1002,9 @@ static int pkey_apqns4keytype(enum pkey_key_type ktype, ...@@ -996,8 +1002,9 @@ static int pkey_apqns4keytype(enum pkey_key_type ktype,
if (rc) if (rc)
goto out; goto out;
} else } else {
return -EINVAL; return -EINVAL;
}
if (apqns) { if (apqns) {
if (*nr_apqns < _nr_apqns) if (*nr_apqns < _nr_apqns)
...@@ -1026,21 +1033,21 @@ static int pkey_keyblob2pkey3(const struct pkey_apqn *apqns, size_t nr_apqns, ...@@ -1026,21 +1033,21 @@ static int pkey_keyblob2pkey3(const struct pkey_apqn *apqns, size_t nr_apqns,
if (keylen < sizeof(struct keytoken_header)) if (keylen < sizeof(struct keytoken_header))
return -EINVAL; return -EINVAL;
if (hdr->type == TOKTYPE_NON_CCA if (hdr->type == TOKTYPE_NON_CCA &&
&& hdr->version == TOKVER_EP11_AES_WITH_HEADER hdr->version == TOKVER_EP11_AES_WITH_HEADER &&
&& is_ep11_keyblob(key + sizeof(struct ep11kblob_header))) { is_ep11_keyblob(key + sizeof(struct ep11kblob_header))) {
/* EP11 AES key blob with header */ /* EP11 AES key blob with header */
if (ep11_check_aes_key_with_hdr(debug_info, 3, key, keylen, 1)) if (ep11_check_aes_key_with_hdr(debug_info, 3, key, keylen, 1))
return -EINVAL; return -EINVAL;
} else if (hdr->type == TOKTYPE_NON_CCA } else if (hdr->type == TOKTYPE_NON_CCA &&
&& hdr->version == TOKVER_EP11_ECC_WITH_HEADER hdr->version == TOKVER_EP11_ECC_WITH_HEADER &&
&& is_ep11_keyblob(key + sizeof(struct ep11kblob_header))) { is_ep11_keyblob(key + sizeof(struct ep11kblob_header))) {
/* EP11 ECC key blob with header */ /* EP11 ECC key blob with header */
if (ep11_check_ecc_key_with_hdr(debug_info, 3, key, keylen, 1)) if (ep11_check_ecc_key_with_hdr(debug_info, 3, key, keylen, 1))
return -EINVAL; return -EINVAL;
} else if (hdr->type == TOKTYPE_NON_CCA } else if (hdr->type == TOKTYPE_NON_CCA &&
&& hdr->version == TOKVER_EP11_AES hdr->version == TOKVER_EP11_AES &&
&& is_ep11_keyblob(key)) { is_ep11_keyblob(key)) {
/* EP11 AES key blob with header in session field */ /* EP11 AES key blob with header in session field */
if (ep11_check_aes_key(debug_info, 3, key, keylen, 1)) if (ep11_check_aes_key(debug_info, 3, key, keylen, 1))
return -EINVAL; return -EINVAL;
...@@ -1088,15 +1095,15 @@ static int pkey_keyblob2pkey3(const struct pkey_apqn *apqns, size_t nr_apqns, ...@@ -1088,15 +1095,15 @@ static int pkey_keyblob2pkey3(const struct pkey_apqn *apqns, size_t nr_apqns,
for (rc = -ENODEV, i = 0; rc && i < nr_apqns; i++) { for (rc = -ENODEV, i = 0; rc && i < nr_apqns; i++) {
card = apqns[i].card; card = apqns[i].card;
dom = apqns[i].domain; dom = apqns[i].domain;
if (hdr->type == TOKTYPE_NON_CCA if (hdr->type == TOKTYPE_NON_CCA &&
&& (hdr->version == TOKVER_EP11_AES_WITH_HEADER (hdr->version == TOKVER_EP11_AES_WITH_HEADER ||
|| hdr->version == TOKVER_EP11_ECC_WITH_HEADER) hdr->version == TOKVER_EP11_ECC_WITH_HEADER) &&
&& is_ep11_keyblob(key + sizeof(struct ep11kblob_header))) is_ep11_keyblob(key + sizeof(struct ep11kblob_header)))
rc = ep11_kblob2protkey(card, dom, key, hdr->len, rc = ep11_kblob2protkey(card, dom, key, hdr->len,
protkey, protkeylen, protkeytype); protkey, protkeylen, protkeytype);
else if (hdr->type == TOKTYPE_NON_CCA else if (hdr->type == TOKTYPE_NON_CCA &&
&& hdr->version == TOKVER_EP11_AES hdr->version == TOKVER_EP11_AES &&
&& is_ep11_keyblob(key)) is_ep11_keyblob(key))
rc = ep11_kblob2protkey(card, dom, key, hdr->len, rc = ep11_kblob2protkey(card, dom, key, hdr->len,
protkey, protkeylen, protkeytype); protkey, protkeylen, protkeytype);
else if (hdr->type == TOKTYPE_CCA_INTERNAL && else if (hdr->type == TOKTYPE_CCA_INTERNAL &&
...@@ -1144,7 +1151,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1144,7 +1151,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
switch (cmd) { switch (cmd) {
case PKEY_GENSECK: { case PKEY_GENSECK: {
struct pkey_genseck __user *ugs = (void __user *) arg; struct pkey_genseck __user *ugs = (void __user *)arg;
struct pkey_genseck kgs; struct pkey_genseck kgs;
if (copy_from_user(&kgs, ugs, sizeof(kgs))) if (copy_from_user(&kgs, ugs, sizeof(kgs)))
...@@ -1159,7 +1166,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1159,7 +1166,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_CLR2SECK: { case PKEY_CLR2SECK: {
struct pkey_clr2seck __user *ucs = (void __user *) arg; struct pkey_clr2seck __user *ucs = (void __user *)arg;
struct pkey_clr2seck kcs; struct pkey_clr2seck kcs;
if (copy_from_user(&kcs, ucs, sizeof(kcs))) if (copy_from_user(&kcs, ucs, sizeof(kcs)))
...@@ -1175,7 +1182,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1175,7 +1182,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_SEC2PROTK: { case PKEY_SEC2PROTK: {
struct pkey_sec2protk __user *usp = (void __user *) arg; struct pkey_sec2protk __user *usp = (void __user *)arg;
struct pkey_sec2protk ksp; struct pkey_sec2protk ksp;
if (copy_from_user(&ksp, usp, sizeof(ksp))) if (copy_from_user(&ksp, usp, sizeof(ksp)))
...@@ -1191,7 +1198,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1191,7 +1198,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_CLR2PROTK: { case PKEY_CLR2PROTK: {
struct pkey_clr2protk __user *ucp = (void __user *) arg; struct pkey_clr2protk __user *ucp = (void __user *)arg;
struct pkey_clr2protk kcp; struct pkey_clr2protk kcp;
if (copy_from_user(&kcp, ucp, sizeof(kcp))) if (copy_from_user(&kcp, ucp, sizeof(kcp)))
...@@ -1207,7 +1214,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1207,7 +1214,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_FINDCARD: { case PKEY_FINDCARD: {
struct pkey_findcard __user *ufc = (void __user *) arg; struct pkey_findcard __user *ufc = (void __user *)arg;
struct pkey_findcard kfc; struct pkey_findcard kfc;
if (copy_from_user(&kfc, ufc, sizeof(kfc))) if (copy_from_user(&kfc, ufc, sizeof(kfc)))
...@@ -1222,7 +1229,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1222,7 +1229,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_SKEY2PKEY: { case PKEY_SKEY2PKEY: {
struct pkey_skey2pkey __user *usp = (void __user *) arg; struct pkey_skey2pkey __user *usp = (void __user *)arg;
struct pkey_skey2pkey ksp; struct pkey_skey2pkey ksp;
if (copy_from_user(&ksp, usp, sizeof(ksp))) if (copy_from_user(&ksp, usp, sizeof(ksp)))
...@@ -1236,7 +1243,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1236,7 +1243,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_VERIFYKEY: { case PKEY_VERIFYKEY: {
struct pkey_verifykey __user *uvk = (void __user *) arg; struct pkey_verifykey __user *uvk = (void __user *)arg;
struct pkey_verifykey kvk; struct pkey_verifykey kvk;
if (copy_from_user(&kvk, uvk, sizeof(kvk))) if (copy_from_user(&kvk, uvk, sizeof(kvk)))
...@@ -1251,7 +1258,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1251,7 +1258,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_GENPROTK: { case PKEY_GENPROTK: {
struct pkey_genprotk __user *ugp = (void __user *) arg; struct pkey_genprotk __user *ugp = (void __user *)arg;
struct pkey_genprotk kgp; struct pkey_genprotk kgp;
if (copy_from_user(&kgp, ugp, sizeof(kgp))) if (copy_from_user(&kgp, ugp, sizeof(kgp)))
...@@ -1265,7 +1272,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1265,7 +1272,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_VERIFYPROTK: { case PKEY_VERIFYPROTK: {
struct pkey_verifyprotk __user *uvp = (void __user *) arg; struct pkey_verifyprotk __user *uvp = (void __user *)arg;
struct pkey_verifyprotk kvp; struct pkey_verifyprotk kvp;
if (copy_from_user(&kvp, uvp, sizeof(kvp))) if (copy_from_user(&kvp, uvp, sizeof(kvp)))
...@@ -1275,7 +1282,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1275,7 +1282,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_KBLOB2PROTK: { case PKEY_KBLOB2PROTK: {
struct pkey_kblob2pkey __user *utp = (void __user *) arg; struct pkey_kblob2pkey __user *utp = (void __user *)arg;
struct pkey_kblob2pkey ktp; struct pkey_kblob2pkey ktp;
u8 *kkey; u8 *kkey;
...@@ -1294,7 +1301,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1294,7 +1301,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_GENSECK2: { case PKEY_GENSECK2: {
struct pkey_genseck2 __user *ugs = (void __user *) arg; struct pkey_genseck2 __user *ugs = (void __user *)arg;
struct pkey_genseck2 kgs; struct pkey_genseck2 kgs;
struct pkey_apqn *apqns; struct pkey_apqn *apqns;
size_t klen = KEYBLOBBUFSIZE; size_t klen = KEYBLOBBUFSIZE;
...@@ -1336,7 +1343,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1336,7 +1343,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_CLR2SECK2: { case PKEY_CLR2SECK2: {
struct pkey_clr2seck2 __user *ucs = (void __user *) arg; struct pkey_clr2seck2 __user *ucs = (void __user *)arg;
struct pkey_clr2seck2 kcs; struct pkey_clr2seck2 kcs;
struct pkey_apqn *apqns; struct pkey_apqn *apqns;
size_t klen = KEYBLOBBUFSIZE; size_t klen = KEYBLOBBUFSIZE;
...@@ -1379,7 +1386,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1379,7 +1386,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_VERIFYKEY2: { case PKEY_VERIFYKEY2: {
struct pkey_verifykey2 __user *uvk = (void __user *) arg; struct pkey_verifykey2 __user *uvk = (void __user *)arg;
struct pkey_verifykey2 kvk; struct pkey_verifykey2 kvk;
u8 *kkey; u8 *kkey;
...@@ -1400,7 +1407,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1400,7 +1407,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_KBLOB2PROTK2: { case PKEY_KBLOB2PROTK2: {
struct pkey_kblob2pkey2 __user *utp = (void __user *) arg; struct pkey_kblob2pkey2 __user *utp = (void __user *)arg;
struct pkey_kblob2pkey2 ktp; struct pkey_kblob2pkey2 ktp;
struct pkey_apqn *apqns = NULL; struct pkey_apqn *apqns = NULL;
u8 *kkey; u8 *kkey;
...@@ -1427,7 +1434,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1427,7 +1434,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_APQNS4K: { case PKEY_APQNS4K: {
struct pkey_apqns4key __user *uak = (void __user *) arg; struct pkey_apqns4key __user *uak = (void __user *)arg;
struct pkey_apqns4key kak; struct pkey_apqns4key kak;
struct pkey_apqn *apqns = NULL; struct pkey_apqn *apqns = NULL;
size_t nr_apqns, len; size_t nr_apqns, len;
...@@ -1476,7 +1483,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1476,7 +1483,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_APQNS4KT: { case PKEY_APQNS4KT: {
struct pkey_apqns4keytype __user *uat = (void __user *) arg; struct pkey_apqns4keytype __user *uat = (void __user *)arg;
struct pkey_apqns4keytype kat; struct pkey_apqns4keytype kat;
struct pkey_apqn *apqns = NULL; struct pkey_apqn *apqns = NULL;
size_t nr_apqns, len; size_t nr_apqns, len;
...@@ -1518,7 +1525,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd, ...@@ -1518,7 +1525,7 @@ static long pkey_unlocked_ioctl(struct file *filp, unsigned int cmd,
break; break;
} }
case PKEY_KBLOB2PROTK3: { case PKEY_KBLOB2PROTK3: {
struct pkey_kblob2pkey3 __user *utp = (void __user *) arg; struct pkey_kblob2pkey3 __user *utp = (void __user *)arg;
struct pkey_kblob2pkey3 ktp; struct pkey_kblob2pkey3 ktp;
struct pkey_apqn *apqns = NULL; struct pkey_apqn *apqns = NULL;
u32 protkeylen = PROTKEYBLOBBUFSIZE; u32 protkeylen = PROTKEYBLOBBUFSIZE;
...@@ -1708,7 +1715,7 @@ static ssize_t pkey_ccadata_aes_attr_read(u32 keytype, bool is_xts, char *buf, ...@@ -1708,7 +1715,7 @@ static ssize_t pkey_ccadata_aes_attr_read(u32 keytype, bool is_xts, char *buf,
loff_t off, size_t count) loff_t off, size_t count)
{ {
int rc; int rc;
struct pkey_seckey *seckey = (struct pkey_seckey *) buf; struct pkey_seckey *seckey = (struct pkey_seckey *)buf;
if (off != 0 || count < sizeof(struct secaeskeytoken)) if (off != 0 || count < sizeof(struct secaeskeytoken))
return -EINVAL; return -EINVAL;
......
此差异已折叠。
...@@ -170,7 +170,7 @@ static inline unsigned long z_copy_from_user(bool userspace, ...@@ -170,7 +170,7 @@ static inline unsigned long z_copy_from_user(bool userspace,
{ {
if (likely(userspace)) if (likely(userspace))
return copy_from_user(to, from, n); return copy_from_user(to, from, n);
memcpy(to, (void __force *) from, n); memcpy(to, (void __force *)from, n);
return 0; return 0;
} }
...@@ -181,7 +181,7 @@ static inline unsigned long z_copy_to_user(bool userspace, ...@@ -181,7 +181,7 @@ static inline unsigned long z_copy_to_user(bool userspace,
{ {
if (likely(userspace)) if (likely(userspace))
return copy_to_user(to, from, n); return copy_to_user(to, from, n);
memcpy((void __force *) to, from, n); memcpy((void __force *)to, from, n);
return 0; return 0;
} }
......
...@@ -138,7 +138,7 @@ struct zcrypt_card *zcrypt_card_alloc(void) ...@@ -138,7 +138,7 @@ struct zcrypt_card *zcrypt_card_alloc(void)
{ {
struct zcrypt_card *zc; struct zcrypt_card *zc;
zc = kzalloc(sizeof(struct zcrypt_card), GFP_KERNEL); zc = kzalloc(sizeof(*zc), GFP_KERNEL);
if (!zc) if (!zc)
return NULL; return NULL;
INIT_LIST_HEAD(&zc->list); INIT_LIST_HEAD(&zc->list);
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#ifndef _ZCRYPT_CCA_KEY_H_ #ifndef _ZCRYPT_CCA_KEY_H_
#define _ZCRYPT_CCA_KEY_H_ #define _ZCRYPT_CCA_KEY_H_
struct T6_keyBlock_hdr { struct t6_keyblock_hdr {
unsigned short blen; unsigned short blen;
unsigned short ulen; unsigned short ulen;
unsigned short flags; unsigned short flags;
...@@ -63,7 +63,7 @@ struct cca_public_sec { ...@@ -63,7 +63,7 @@ struct cca_public_sec {
* complement of the residue modulo 8 of the sum of * complement of the residue modulo 8 of the sum of
* (p_len + q_len + dp_len + dq_len + u_len). * (p_len + q_len + dp_len + dq_len + u_len).
*/ */
struct cca_pvt_ext_CRT_sec { struct cca_pvt_ext_crt_sec {
unsigned char section_identifier; unsigned char section_identifier;
unsigned char version; unsigned char version;
unsigned short section_length; unsigned short section_length;
...@@ -108,9 +108,9 @@ static inline int zcrypt_type6_mex_key_en(struct ica_rsa_modexpo *mex, void *p) ...@@ -108,9 +108,9 @@ static inline int zcrypt_type6_mex_key_en(struct ica_rsa_modexpo *mex, void *p)
.section_identifier = 0x04, .section_identifier = 0x04,
}; };
struct { struct {
struct T6_keyBlock_hdr t6_hdr; struct t6_keyblock_hdr t6_hdr;
struct cca_token_hdr pubHdr; struct cca_token_hdr pubhdr;
struct cca_public_sec pubSec; struct cca_public_sec pubsec;
char exponent[0]; char exponent[0];
} __packed *key = p; } __packed *key = p;
unsigned char *temp; unsigned char *temp;
...@@ -127,8 +127,8 @@ static inline int zcrypt_type6_mex_key_en(struct ica_rsa_modexpo *mex, void *p) ...@@ -127,8 +127,8 @@ static inline int zcrypt_type6_mex_key_en(struct ica_rsa_modexpo *mex, void *p)
memset(key, 0, sizeof(*key)); memset(key, 0, sizeof(*key));
key->pubHdr = static_pub_hdr; key->pubhdr = static_pub_hdr;
key->pubSec = static_pub_sec; key->pubsec = static_pub_sec;
/* key parameter block */ /* key parameter block */
temp = key->exponent; temp = key->exponent;
...@@ -146,16 +146,16 @@ static inline int zcrypt_type6_mex_key_en(struct ica_rsa_modexpo *mex, void *p) ...@@ -146,16 +146,16 @@ static inline int zcrypt_type6_mex_key_en(struct ica_rsa_modexpo *mex, void *p)
if (copy_from_user(temp, mex->n_modulus, mex->inputdatalength)) if (copy_from_user(temp, mex->n_modulus, mex->inputdatalength))
return -EFAULT; return -EFAULT;
key->pubSec.modulus_bit_len = 8 * mex->inputdatalength; key->pubsec.modulus_bit_len = 8 * mex->inputdatalength;
key->pubSec.modulus_byte_len = mex->inputdatalength; key->pubsec.modulus_byte_len = mex->inputdatalength;
key->pubSec.exponent_len = mex->inputdatalength - i; key->pubsec.exponent_len = mex->inputdatalength - i;
key->pubSec.section_length = sizeof(key->pubSec) + key->pubsec.section_length = sizeof(key->pubsec) +
2*mex->inputdatalength - i; 2 * mex->inputdatalength - i;
key->pubHdr.token_length = key->pubhdr.token_length =
key->pubSec.section_length + sizeof(key->pubHdr); key->pubsec.section_length + sizeof(key->pubhdr);
key->t6_hdr.ulen = key->pubHdr.token_length + 4; key->t6_hdr.ulen = key->pubhdr.token_length + 4;
key->t6_hdr.blen = key->pubHdr.token_length + 6; key->t6_hdr.blen = key->pubhdr.token_length + 6;
return sizeof(*key) + 2*mex->inputdatalength - i; return sizeof(*key) + 2 * mex->inputdatalength - i;
} }
/** /**
...@@ -177,9 +177,9 @@ static inline int zcrypt_type6_crt_key(struct ica_rsa_modexpo_crt *crt, void *p) ...@@ -177,9 +177,9 @@ static inline int zcrypt_type6_crt_key(struct ica_rsa_modexpo_crt *crt, void *p)
}; };
static char pk_exponent[3] = { 0x01, 0x00, 0x01 }; static char pk_exponent[3] = { 0x01, 0x00, 0x01 };
struct { struct {
struct T6_keyBlock_hdr t6_hdr; struct t6_keyblock_hdr t6_hdr;
struct cca_token_hdr token; struct cca_token_hdr token;
struct cca_pvt_ext_CRT_sec pvt; struct cca_pvt_ext_crt_sec pvt;
char key_parts[0]; char key_parts[0];
} __packed *key = p; } __packed *key = p;
struct cca_public_sec *pub; struct cca_public_sec *pub;
...@@ -198,8 +198,8 @@ static inline int zcrypt_type6_crt_key(struct ica_rsa_modexpo_crt *crt, void *p) ...@@ -198,8 +198,8 @@ static inline int zcrypt_type6_crt_key(struct ica_rsa_modexpo_crt *crt, void *p)
short_len = (crt->inputdatalength + 1) / 2; short_len = (crt->inputdatalength + 1) / 2;
long_len = short_len + 8; long_len = short_len + 8;
pad_len = -(3*long_len + 2*short_len) & 7; pad_len = -(3 * long_len + 2 * short_len) & 7;
key_len = 3*long_len + 2*short_len + pad_len + crt->inputdatalength; key_len = 3 * long_len + 2 * short_len + pad_len + crt->inputdatalength;
size = sizeof(*key) + key_len + sizeof(*pub) + 3; size = sizeof(*key) + key_len + sizeof(*pub) + 3;
/* parameter block.key block */ /* parameter block.key block */
...@@ -223,15 +223,15 @@ static inline int zcrypt_type6_crt_key(struct ica_rsa_modexpo_crt *crt, void *p) ...@@ -223,15 +223,15 @@ static inline int zcrypt_type6_crt_key(struct ica_rsa_modexpo_crt *crt, void *p)
/* key parts */ /* key parts */
if (copy_from_user(key->key_parts, crt->np_prime, long_len) || if (copy_from_user(key->key_parts, crt->np_prime, long_len) ||
copy_from_user(key->key_parts + long_len, copy_from_user(key->key_parts + long_len,
crt->nq_prime, short_len) || crt->nq_prime, short_len) ||
copy_from_user(key->key_parts + long_len + short_len, copy_from_user(key->key_parts + long_len + short_len,
crt->bp_key, long_len) || crt->bp_key, long_len) ||
copy_from_user(key->key_parts + 2*long_len + short_len, copy_from_user(key->key_parts + 2 * long_len + short_len,
crt->bq_key, short_len) || crt->bq_key, short_len) ||
copy_from_user(key->key_parts + 2*long_len + 2*short_len, copy_from_user(key->key_parts + 2 * long_len + 2 * short_len,
crt->u_mult_inv, long_len)) crt->u_mult_inv, long_len))
return -EFAULT; return -EFAULT;
memset(key->key_parts + 3*long_len + 2*short_len + pad_len, memset(key->key_parts + 3 * long_len + 2 * short_len + pad_len,
0xff, crt->inputdatalength); 0xff, crt->inputdatalength);
pub = (struct cca_public_sec *)(key->key_parts + key_len); pub = (struct cca_public_sec *)(key->key_parts + key_len);
*pub = static_cca_pub_sec; *pub = static_cca_pub_sec;
...@@ -241,7 +241,7 @@ static inline int zcrypt_type6_crt_key(struct ica_rsa_modexpo_crt *crt, void *p) ...@@ -241,7 +241,7 @@ static inline int zcrypt_type6_crt_key(struct ica_rsa_modexpo_crt *crt, void *p)
* section. So, an arbitrary public exponent of 0x010001 will be * section. So, an arbitrary public exponent of 0x010001 will be
* used. * used.
*/ */
memcpy((char *) (pub + 1), pk_exponent, 3); memcpy((char *)(pub + 1), pk_exponent, 3);
return size; return size;
} }
......
...@@ -34,10 +34,11 @@ ...@@ -34,10 +34,11 @@
#define CEX3A_MAX_RESPONSE_SIZE 0x210 /* 512 bit modulus #define CEX3A_MAX_RESPONSE_SIZE 0x210 /* 512 bit modulus
* (max outputdatalength) + * (max outputdatalength) +
* type80_hdr*/ * type80_hdr
*/
#define CEX3A_MAX_MESSAGE_SIZE sizeof(struct type50_crb3_msg) #define CEX3A_MAX_MESSAGE_SIZE sizeof(struct type50_crb3_msg)
#define CEX2A_CLEANUP_TIME (15*HZ) #define CEX2A_CLEANUP_TIME (15 * HZ)
#define CEX3A_CLEANUP_TIME CEX2A_CLEANUP_TIME #define CEX3A_CLEANUP_TIME CEX2A_CLEANUP_TIME
MODULE_AUTHOR("IBM Corporation"); MODULE_AUTHOR("IBM Corporation");
...@@ -117,9 +118,8 @@ static int zcrypt_cex2a_card_probe(struct ap_device *ap_dev) ...@@ -117,9 +118,8 @@ static int zcrypt_cex2a_card_probe(struct ap_device *ap_dev)
zc->online = 1; zc->online = 1;
rc = zcrypt_card_register(zc); rc = zcrypt_card_register(zc);
if (rc) { if (rc)
zcrypt_card_free(zc); zcrypt_card_free(zc);
}
return rc; return rc;
} }
...@@ -176,9 +176,8 @@ static int zcrypt_cex2a_queue_probe(struct ap_device *ap_dev) ...@@ -176,9 +176,8 @@ static int zcrypt_cex2a_queue_probe(struct ap_device *ap_dev)
aq->request_timeout = CEX2A_CLEANUP_TIME; aq->request_timeout = CEX2A_CLEANUP_TIME;
dev_set_drvdata(&ap_dev->device, zq); dev_set_drvdata(&ap_dev->device, zq);
rc = zcrypt_queue_register(zq); rc = zcrypt_queue_register(zq);
if (rc) { if (rc)
zcrypt_queue_free(zq); zcrypt_queue_free(zq);
}
return rc; return rc;
} }
......
...@@ -31,8 +31,8 @@ ...@@ -31,8 +31,8 @@
#define CEX2C_MAX_MOD_SIZE 256 /* 2048 bits */ #define CEX2C_MAX_MOD_SIZE 256 /* 2048 bits */
#define CEX3C_MIN_MOD_SIZE 16 /* 128 bits */ #define CEX3C_MIN_MOD_SIZE 16 /* 128 bits */
#define CEX3C_MAX_MOD_SIZE 512 /* 4096 bits */ #define CEX3C_MAX_MOD_SIZE 512 /* 4096 bits */
#define CEX2C_MAX_XCRB_MESSAGE_SIZE (12*1024) #define CEX2C_MAX_XCRB_MESSAGE_SIZE (12 * 1024)
#define CEX2C_CLEANUP_TIME (15*HZ) #define CEX2C_CLEANUP_TIME (15 * HZ)
MODULE_AUTHOR("IBM Corporation"); MODULE_AUTHOR("IBM Corporation");
MODULE_DESCRIPTION("CEX2C/CEX3C Cryptographic Coprocessor device driver, " \ MODULE_DESCRIPTION("CEX2C/CEX3C Cryptographic Coprocessor device driver, " \
...@@ -200,11 +200,11 @@ static int zcrypt_cex2c_rng_supported(struct ap_queue *aq) ...@@ -200,11 +200,11 @@ static int zcrypt_cex2c_rng_supported(struct ap_queue *aq)
int rc, i; int rc, i;
ap_init_message(&ap_msg); ap_init_message(&ap_msg);
ap_msg.msg = (void *) get_zeroed_page(GFP_KERNEL); ap_msg.msg = (void *)get_zeroed_page(GFP_KERNEL);
if (!ap_msg.msg) if (!ap_msg.msg)
return -ENOMEM; return -ENOMEM;
rng_type6CPRB_msgX(&ap_msg, 4, &domain); rng_type6cprb_msgx(&ap_msg, 4, &domain);
msg = ap_msg.msg; msg = ap_msg.msg;
msg->cprbx.domain = AP_QID_QUEUE(aq->qid); msg->cprbx.domain = AP_QID_QUEUE(aq->qid);
...@@ -233,7 +233,7 @@ static int zcrypt_cex2c_rng_supported(struct ap_queue *aq) ...@@ -233,7 +233,7 @@ static int zcrypt_cex2c_rng_supported(struct ap_queue *aq)
else else
rc = 0; rc = 0;
out_free: out_free:
free_page((unsigned long) ap_msg.msg); free_page((unsigned long)ap_msg.msg);
return rc; return rc;
} }
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
* But the maximum time limit managed by the stomper code is set to 60sec. * But the maximum time limit managed by the stomper code is set to 60sec.
* Hence we have to wait at least that time period. * Hence we have to wait at least that time period.
*/ */
#define CEX4_CLEANUP_TIME (900*HZ) #define CEX4_CLEANUP_TIME (900 * HZ)
MODULE_AUTHOR("IBM Corporation"); MODULE_AUTHOR("IBM Corporation");
MODULE_DESCRIPTION("CEX[45678] Cryptographic Card device driver, " \ MODULE_DESCRIPTION("CEX[45678] Cryptographic Card device driver, " \
...@@ -364,8 +364,9 @@ static ssize_t ep11_mkvps_show(struct device *dev, ...@@ -364,8 +364,9 @@ static ssize_t ep11_mkvps_show(struct device *dev,
bin2hex(buf + n, di.cur_wkvp, sizeof(di.cur_wkvp)); bin2hex(buf + n, di.cur_wkvp, sizeof(di.cur_wkvp));
n += 2 * sizeof(di.cur_wkvp); n += 2 * sizeof(di.cur_wkvp);
n += scnprintf(buf + n, PAGE_SIZE - n, "\n"); n += scnprintf(buf + n, PAGE_SIZE - n, "\n");
} else } else {
n = scnprintf(buf, PAGE_SIZE, "WK CUR: - -\n"); n = scnprintf(buf, PAGE_SIZE, "WK CUR: - -\n");
}
if (di.new_wk_state == '0') { if (di.new_wk_state == '0') {
n += scnprintf(buf + n, PAGE_SIZE - n, "WK NEW: %s -\n", n += scnprintf(buf + n, PAGE_SIZE - n, "WK NEW: %s -\n",
...@@ -376,8 +377,9 @@ static ssize_t ep11_mkvps_show(struct device *dev, ...@@ -376,8 +377,9 @@ static ssize_t ep11_mkvps_show(struct device *dev,
bin2hex(buf + n, di.new_wkvp, sizeof(di.new_wkvp)); bin2hex(buf + n, di.new_wkvp, sizeof(di.new_wkvp));
n += 2 * sizeof(di.new_wkvp); n += 2 * sizeof(di.new_wkvp);
n += scnprintf(buf + n, PAGE_SIZE - n, "\n"); n += scnprintf(buf + n, PAGE_SIZE - n, "\n");
} else } else {
n += scnprintf(buf + n, PAGE_SIZE - n, "WK NEW: - -\n"); n += scnprintf(buf + n, PAGE_SIZE - n, "WK NEW: - -\n");
}
return n; return n;
} }
......
...@@ -50,7 +50,7 @@ struct ep11keyblob { ...@@ -50,7 +50,7 @@ struct ep11keyblob {
/* check ep11 key magic to find out if this is an ep11 key blob */ /* check ep11 key magic to find out if this is an ep11 key blob */
static inline bool is_ep11_keyblob(const u8 *key) static inline bool is_ep11_keyblob(const u8 *key)
{ {
struct ep11keyblob *kb = (struct ep11keyblob *) key; struct ep11keyblob *kb = (struct ep11keyblob *)key;
return (kb->version == EP11_STRUCT_MAGIC); return (kb->version == EP11_STRUCT_MAGIC);
} }
......
...@@ -121,10 +121,11 @@ static inline int convert_error(struct zcrypt_queue *zq, ...@@ -121,10 +121,11 @@ static inline int convert_error(struct zcrypt_queue *zq,
ZCRYPT_DBF_WARN( ZCRYPT_DBF_WARN(
"%s dev=%02x.%04x RY=0x%02x apfs=0x%x => bus rescan, rc=EAGAIN\n", "%s dev=%02x.%04x RY=0x%02x apfs=0x%x => bus rescan, rc=EAGAIN\n",
__func__, card, queue, ehdr->reply_code, apfs); __func__, card, queue, ehdr->reply_code, apfs);
} else } else {
ZCRYPT_DBF_WARN("%s dev=%02x.%04x RY=0x%02x => bus rescan, rc=EAGAIN\n", ZCRYPT_DBF_WARN("%s dev=%02x.%04x RY=0x%02x => bus rescan, rc=EAGAIN\n",
__func__, card, queue, __func__, card, queue,
ehdr->reply_code); ehdr->reply_code);
}
return -EAGAIN; return -EAGAIN;
default: default:
/* Assume request is valid and a retry will be worth it */ /* Assume request is valid and a retry will be worth it */
......
...@@ -158,7 +158,6 @@ struct type80_hdr { ...@@ -158,7 +158,6 @@ struct type80_hdr {
int get_rsa_modex_fc(struct ica_rsa_modexpo *mex, int *fcode) int get_rsa_modex_fc(struct ica_rsa_modexpo *mex, int *fcode)
{ {
if (!mex->inputdatalength) if (!mex->inputdatalength)
return -EINVAL; return -EINVAL;
...@@ -174,7 +173,6 @@ int get_rsa_modex_fc(struct ica_rsa_modexpo *mex, int *fcode) ...@@ -174,7 +173,6 @@ int get_rsa_modex_fc(struct ica_rsa_modexpo *mex, int *fcode)
int get_rsa_crt_fc(struct ica_rsa_modexpo_crt *crt, int *fcode) int get_rsa_crt_fc(struct ica_rsa_modexpo_crt *crt, int *fcode)
{ {
if (!crt->inputdatalength) if (!crt->inputdatalength)
return -EINVAL; return -EINVAL;
...@@ -239,8 +237,9 @@ static int ICAMEX_msg_to_type50MEX_msg(struct zcrypt_queue *zq, ...@@ -239,8 +237,9 @@ static int ICAMEX_msg_to_type50MEX_msg(struct zcrypt_queue *zq,
mod = meb3->modulus + sizeof(meb3->modulus) - mod_len; mod = meb3->modulus + sizeof(meb3->modulus) - mod_len;
exp = meb3->exponent + sizeof(meb3->exponent) - mod_len; exp = meb3->exponent + sizeof(meb3->exponent) - mod_len;
inp = meb3->message + sizeof(meb3->message) - mod_len; inp = meb3->message + sizeof(meb3->message) - mod_len;
} else } else {
return -EINVAL; return -EINVAL;
}
if (copy_from_user(mod, mex->n_modulus, mod_len) || if (copy_from_user(mod, mex->n_modulus, mod_len) ||
copy_from_user(exp, mex->b_key, mod_len) || copy_from_user(exp, mex->b_key, mod_len) ||
...@@ -323,8 +322,9 @@ static int ICACRT_msg_to_type50CRT_msg(struct zcrypt_queue *zq, ...@@ -323,8 +322,9 @@ static int ICACRT_msg_to_type50CRT_msg(struct zcrypt_queue *zq,
dq = crb3->dq + sizeof(crb3->dq) - short_len; dq = crb3->dq + sizeof(crb3->dq) - short_len;
u = crb3->u + sizeof(crb3->u) - short_len; u = crb3->u + sizeof(crb3->u) - short_len;
inp = crb3->message + sizeof(crb3->message) - mod_len; inp = crb3->message + sizeof(crb3->message) - mod_len;
} else } else {
return -EINVAL; return -EINVAL;
}
/* /*
* correct the offset of p, bp and mult_inv according zcrypt.h * correct the offset of p, bp and mult_inv according zcrypt.h
...@@ -392,7 +392,7 @@ static int convert_response_cex2a(struct zcrypt_queue *zq, ...@@ -392,7 +392,7 @@ static int convert_response_cex2a(struct zcrypt_queue *zq,
unsigned int outputdatalength) unsigned int outputdatalength)
{ {
/* Response type byte is the second byte in the response. */ /* Response type byte is the second byte in the response. */
unsigned char rtype = ((unsigned char *) reply->msg)[1]; unsigned char rtype = ((unsigned char *)reply->msg)[1];
switch (rtype) { switch (rtype) {
case TYPE82_RSP_CODE: case TYPE82_RSP_CODE:
...@@ -406,11 +406,11 @@ static int convert_response_cex2a(struct zcrypt_queue *zq, ...@@ -406,11 +406,11 @@ static int convert_response_cex2a(struct zcrypt_queue *zq,
pr_err("Crypto dev=%02x.%04x unknown response type 0x%02x => online=0 rc=EAGAIN\n", pr_err("Crypto dev=%02x.%04x unknown response type 0x%02x => online=0 rc=EAGAIN\n",
AP_QID_CARD(zq->queue->qid), AP_QID_CARD(zq->queue->qid),
AP_QID_QUEUE(zq->queue->qid), AP_QID_QUEUE(zq->queue->qid),
(int) rtype); (int)rtype);
ZCRYPT_DBF_ERR( ZCRYPT_DBF_ERR(
"%s dev=%02x.%04x unknown response type 0x%02x => online=0 rc=EAGAIN\n", "%s dev=%02x.%04x unknown response type 0x%02x => online=0 rc=EAGAIN\n",
__func__, AP_QID_CARD(zq->queue->qid), __func__, AP_QID_CARD(zq->queue->qid),
AP_QID_QUEUE(zq->queue->qid), (int) rtype); AP_QID_QUEUE(zq->queue->qid), (int)rtype);
ap_send_online_uevent(&zq->queue->ap_dev, zq->online); ap_send_online_uevent(&zq->queue->ap_dev, zq->online);
return -EAGAIN; return -EAGAIN;
} }
...@@ -447,10 +447,11 @@ static void zcrypt_cex2a_receive(struct ap_queue *aq, ...@@ -447,10 +447,11 @@ static void zcrypt_cex2a_receive(struct ap_queue *aq,
memcpy(msg->msg, reply->msg, len); memcpy(msg->msg, reply->msg, len);
msg->len = len; msg->len = len;
} }
} else } else {
memcpy(msg->msg, reply->msg, sizeof(error_reply)); memcpy(msg->msg, reply->msg, sizeof(error_reply));
}
out: out:
complete((struct completion *) msg->private); complete((struct completion *)msg->private);
} }
static atomic_t zcrypt_step = ATOMIC_INIT(0); static atomic_t zcrypt_step = ATOMIC_INIT(0);
...@@ -475,7 +476,7 @@ static long zcrypt_cex2a_modexpo(struct zcrypt_queue *zq, ...@@ -475,7 +476,7 @@ static long zcrypt_cex2a_modexpo(struct zcrypt_queue *zq,
if (!ap_msg->msg) if (!ap_msg->msg)
return -ENOMEM; return -ENOMEM;
ap_msg->receive = zcrypt_cex2a_receive; ap_msg->receive = zcrypt_cex2a_receive;
ap_msg->psmid = (((unsigned long long) current->pid) << 32) + ap_msg->psmid = (((unsigned long long)current->pid) << 32) +
atomic_inc_return(&zcrypt_step); atomic_inc_return(&zcrypt_step);
ap_msg->private = &work; ap_msg->private = &work;
rc = ICAMEX_msg_to_type50MEX_msg(zq, ap_msg, mex); rc = ICAMEX_msg_to_type50MEX_msg(zq, ap_msg, mex);
...@@ -492,9 +493,11 @@ static long zcrypt_cex2a_modexpo(struct zcrypt_queue *zq, ...@@ -492,9 +493,11 @@ static long zcrypt_cex2a_modexpo(struct zcrypt_queue *zq,
rc = convert_response_cex2a(zq, ap_msg, rc = convert_response_cex2a(zq, ap_msg,
mex->outputdata, mex->outputdata,
mex->outputdatalength); mex->outputdatalength);
} else } else {
/* Signal pending. */ /* Signal pending. */
ap_cancel_message(zq->queue, ap_msg); ap_cancel_message(zq->queue, ap_msg);
}
out: out:
ap_msg->private = NULL; ap_msg->private = NULL;
if (rc) if (rc)
...@@ -524,7 +527,7 @@ static long zcrypt_cex2a_modexpo_crt(struct zcrypt_queue *zq, ...@@ -524,7 +527,7 @@ static long zcrypt_cex2a_modexpo_crt(struct zcrypt_queue *zq,
if (!ap_msg->msg) if (!ap_msg->msg)
return -ENOMEM; return -ENOMEM;
ap_msg->receive = zcrypt_cex2a_receive; ap_msg->receive = zcrypt_cex2a_receive;
ap_msg->psmid = (((unsigned long long) current->pid) << 32) + ap_msg->psmid = (((unsigned long long)current->pid) << 32) +
atomic_inc_return(&zcrypt_step); atomic_inc_return(&zcrypt_step);
ap_msg->private = &work; ap_msg->private = &work;
rc = ICACRT_msg_to_type50CRT_msg(zq, ap_msg, crt); rc = ICACRT_msg_to_type50CRT_msg(zq, ap_msg, crt);
...@@ -541,9 +544,11 @@ static long zcrypt_cex2a_modexpo_crt(struct zcrypt_queue *zq, ...@@ -541,9 +544,11 @@ static long zcrypt_cex2a_modexpo_crt(struct zcrypt_queue *zq,
rc = convert_response_cex2a(zq, ap_msg, rc = convert_response_cex2a(zq, ap_msg,
crt->outputdata, crt->outputdata,
crt->outputdatalength); crt->outputdatalength);
} else } else {
/* Signal pending. */ /* Signal pending. */
ap_cancel_message(zq->queue, ap_msg); ap_cancel_message(zq->queue, ap_msg);
}
out: out:
ap_msg->private = NULL; ap_msg->private = NULL;
if (rc) if (rc)
......
...@@ -45,14 +45,14 @@ struct type6_hdr { ...@@ -45,14 +45,14 @@ struct type6_hdr {
unsigned char reserved5[2]; /* 0x0000 */ unsigned char reserved5[2]; /* 0x0000 */
unsigned char function_code[2]; /* for PKD, 0x5044 (ascii 'PD') */ unsigned char function_code[2]; /* for PKD, 0x5044 (ascii 'PD') */
unsigned char reserved6[2]; /* 0x0000 */ unsigned char reserved6[2]; /* 0x0000 */
unsigned int ToCardLen1; /* (request CPRB len + 3) & -4 */ unsigned int tocardlen1; /* (request CPRB len + 3) & -4 */
unsigned int ToCardLen2; /* db len 0x00000000 for PKD */ unsigned int tocardlen2; /* db len 0x00000000 for PKD */
unsigned int ToCardLen3; /* 0x00000000 */ unsigned int tocardlen3; /* 0x00000000 */
unsigned int ToCardLen4; /* 0x00000000 */ unsigned int tocardlen4; /* 0x00000000 */
unsigned int FromCardLen1; /* response buffer length */ unsigned int fromcardlen1; /* response buffer length */
unsigned int FromCardLen2; /* db len 0x00000000 for PKD */ unsigned int fromcardlen2; /* db len 0x00000000 for PKD */
unsigned int FromCardLen3; /* 0x00000000 */ unsigned int fromcardlen3; /* 0x00000000 */
unsigned int FromCardLen4; /* 0x00000000 */ unsigned int fromcardlen4; /* 0x00000000 */
} __packed; } __packed;
/** /**
...@@ -116,7 +116,7 @@ int speed_idx_ep11(int); ...@@ -116,7 +116,7 @@ int speed_idx_ep11(int);
* @ap_dev: AP device pointer * @ap_dev: AP device pointer
* @ap_msg: pointer to AP message * @ap_msg: pointer to AP message
*/ */
static inline void rng_type6CPRB_msgX(struct ap_message *ap_msg, static inline void rng_type6cprb_msgx(struct ap_message *ap_msg,
unsigned int random_number_length, unsigned int random_number_length,
unsigned int *domain) unsigned int *domain)
{ {
...@@ -134,8 +134,8 @@ static inline void rng_type6CPRB_msgX(struct ap_message *ap_msg, ...@@ -134,8 +134,8 @@ static inline void rng_type6CPRB_msgX(struct ap_message *ap_msg,
.offset1 = 0x00000058, .offset1 = 0x00000058,
.agent_id = {'C', 'A'}, .agent_id = {'C', 'A'},
.function_code = {'R', 'L'}, .function_code = {'R', 'L'},
.ToCardLen1 = sizeof(*msg) - sizeof(msg->hdr), .tocardlen1 = sizeof(*msg) - sizeof(msg->hdr),
.FromCardLen1 = sizeof(*msg) - sizeof(msg->hdr), .fromcardlen1 = sizeof(*msg) - sizeof(msg->hdr),
}; };
static struct CPRBX local_cprbx = { static struct CPRBX local_cprbx = {
.cprb_len = 0x00dc, .cprb_len = 0x00dc,
...@@ -147,9 +147,9 @@ static inline void rng_type6CPRB_msgX(struct ap_message *ap_msg, ...@@ -147,9 +147,9 @@ static inline void rng_type6CPRB_msgX(struct ap_message *ap_msg,
}; };
msg->hdr = static_type6_hdrX; msg->hdr = static_type6_hdrX;
msg->hdr.FromCardLen2 = random_number_length, msg->hdr.fromcardlen2 = random_number_length;
msg->cprbx = local_cprbx; msg->cprbx = local_cprbx;
msg->cprbx.rpl_datal = random_number_length, msg->cprbx.rpl_datal = random_number_length;
memcpy(msg->function_code, msg->hdr.function_code, 0x02); memcpy(msg->function_code, msg->hdr.function_code, 0x02);
msg->rule_length = 0x0a; msg->rule_length = 0x0a;
memcpy(msg->rule, "RANDOM ", 8); memcpy(msg->rule, "RANDOM ", 8);
......
...@@ -114,7 +114,7 @@ struct zcrypt_queue *zcrypt_queue_alloc(size_t reply_buf_size) ...@@ -114,7 +114,7 @@ struct zcrypt_queue *zcrypt_queue_alloc(size_t reply_buf_size)
{ {
struct zcrypt_queue *zq; struct zcrypt_queue *zq;
zq = kzalloc(sizeof(struct zcrypt_queue), GFP_KERNEL); zq = kzalloc(sizeof(*zq), GFP_KERNEL);
if (!zq) if (!zq)
return NULL; return NULL;
zq->reply.msg = kmalloc(reply_buf_size, GFP_KERNEL); zq->reply.msg = kmalloc(reply_buf_size, GFP_KERNEL);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册