Skip to content

Commit

Permalink
[PATCH] s390: CEX2A crt message length
Browse files Browse the repository at this point in the history
Undetected edge case for CRT messages to CEX2A caused length to be too short,
thus truncating the message.  The solution was to check a different variable
which actually determines which key type is being used.

Increment version number in z90main.c to correct level of 1.3.3, fix copyright
year and add comment about bitlength limit of CEX2A.

Signed-off-by: Eric Rossman <edrossma@us.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Eric Rossman authored and Linus Torvalds committed Mar 24, 2006
1 parent b6cba4e commit 96641ee
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
10 changes: 9 additions & 1 deletion drivers/s390/crypto/z90hardware.c
Original file line number Diff line number Diff line change
Expand Up @@ -2214,7 +2214,7 @@ ICACRT_msg_to_type50CRT_msg(struct ica_rsa_modexpo_crt *icaMsg_p,
long_len = 128;
}

tmp_size = ((mod_len <= 128) ? TYPE50_CRB1_LEN : TYPE50_CRB2_LEN) +
tmp_size = ((long_len <= 64) ? TYPE50_CRB1_LEN : TYPE50_CRB2_LEN) +
CALLER_HEADER;

memset(z90cMsg_p, 0, tmp_size);
Expand Down Expand Up @@ -2479,8 +2479,16 @@ convert_response(unsigned char *response, unsigned char *buffer,

if (reply_code)
switch (reply_code) {
case REP82_ERROR_MACHINE_FAILURE:
if (errh_p->type == TYPE82_RSP_CODE)
PRINTKW("Machine check failure\n");
else
PRINTKW("Module failure\n");
return REC_HARDWAR_ERR;
case REP82_ERROR_OPERAND_INVALID:
return REC_OPERAND_INV;
case REP88_ERROR_MESSAGE_MALFORMD:
PRINTKW("Message malformed\n");
return REC_OPERAND_INV;
case REP82_ERROR_OPERAND_SIZE:
return REC_OPERAND_SIZE;
Expand Down
5 changes: 3 additions & 2 deletions drivers/s390/crypto/z90main.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/*
* linux/drivers/s390/crypto/z90main.c
*
* z90crypt 1.3.2
* z90crypt 1.3.3
*
* Copyright (C) 2001, 2004 IBM Corporation
* Copyright (C) 2001, 2005 IBM Corporation
* Author(s): Robert Burroughs (burrough@us.ibm.com)
* Eric Rossman (edrossma@us.ibm.com)
*
Expand Down Expand Up @@ -991,6 +991,7 @@ remove_device(struct device *device_p)
* PCIXCC_MCL2 512-2048 ----- (applying any GA LIC will make an MCL3 card)
* PCIXCC_MCL3 ----- 128-2048
* CEX2C 512-2048 128-2048
* CEX2A ??-2048 same (the lower limit is less than 128 bit...)
*
* ext_bitlens (extended bitlengths) is a global, since you should not apply an
* MCL to just one card in a machine. We assume, at first, that all cards have
Expand Down

0 comments on commit 96641ee

Please sign in to comment.