mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
linux-kselftest-fixes-5.14-rc6
This Kselftest fixes update for Linux 5.14-rc6 consists of a single patch to sgx test to fix Q1 and Q2 calculation. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEPZKym/RZuOCGeA/kCwJExA0NQxwFAmEW0ZkACgkQCwJExA0N QxzJ2BAAvybJttpYcfSPPAjtMksWLR96QbMiU9AbgwMrBNePKwdnAwg21uI1qEKT HOEED0LqmPN3dcUMPtLAj/yGBMXu/ByAL3/A1q613JUatauUyT1hZp870vbSac8+ RB+RNGa9Hgw8Xg0tAGgtdCMr5p46lE/6oGeAY179DTsm5Haj0x0Kho87REWaAKL+ xvPtD+SEBNm4yOUlUzUlmeO30g/Zjh0WJRp7biEarhx+z/HS7kE43G88NGJY32Vf MYmAIEf7dOw9Z3ZFyng6K5l6DPM5pep6FTI6GP1EKbFse4YdGYE573qSDfsusDGv 9XKTZny4WIcKUXMR6vCM4vGaruOavhLtJLM7L8/FEOFcGfr+LH4RRxikSG1YSxwv L8wvdzYw3pY3agovaR1zLqTlXIYi281EXhpAorQFA+r3PySCXXkOb+ZhtYUbXUId 3qQj6fuvMv094mR38a5C+yAwFV6V6ojmQjho2XZfkMaoSYFGsMt0L23zHpsnbmb/ frTakZaLkUY2Y9mZ06JaevhP6ebtYBYj6yOwFz3JRqi7rt/ArL7OsfKdEoDNNzQE LwDWOzkvBRTZuZ9CbYTxQpKT0rnSGhZpBig+hBFKGZkqOd4884Z6L5eBB7DQLZ/F rifqdxtxiHZO4Q7WikebvSX7M+LXUJzOIrQML4acxkQjiNVoGYw= =wKY6 -----END PGP SIGNATURE----- Merge tag 'linux-kselftest-fixes-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull Kselftest fix from Shuah Khan: "A single patch to sgx test to fix Q1 and Q2 calculation" * tag 'linux-kselftest-fixes-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests/sgx: Fix Q1 and Q2 calculation in sigstruct.c
This commit is contained in:
commit
a83ed22577
1 changed files with 21 additions and 20 deletions
|
@ -55,10 +55,27 @@ static bool alloc_q1q2_ctx(const uint8_t *s, const uint8_t *m,
|
|||
return true;
|
||||
}
|
||||
|
||||
static void reverse_bytes(void *data, int length)
|
||||
{
|
||||
int i = 0;
|
||||
int j = length - 1;
|
||||
uint8_t temp;
|
||||
uint8_t *ptr = data;
|
||||
|
||||
while (i < j) {
|
||||
temp = ptr[i];
|
||||
ptr[i] = ptr[j];
|
||||
ptr[j] = temp;
|
||||
i++;
|
||||
j--;
|
||||
}
|
||||
}
|
||||
|
||||
static bool calc_q1q2(const uint8_t *s, const uint8_t *m, uint8_t *q1,
|
||||
uint8_t *q2)
|
||||
{
|
||||
struct q1q2_ctx ctx;
|
||||
int len;
|
||||
|
||||
if (!alloc_q1q2_ctx(s, m, &ctx)) {
|
||||
fprintf(stderr, "Not enough memory for Q1Q2 calculation\n");
|
||||
|
@ -89,8 +106,10 @@ static bool calc_q1q2(const uint8_t *s, const uint8_t *m, uint8_t *q1,
|
|||
goto out;
|
||||
}
|
||||
|
||||
BN_bn2bin(ctx.q1, q1);
|
||||
BN_bn2bin(ctx.q2, q2);
|
||||
len = BN_bn2bin(ctx.q1, q1);
|
||||
reverse_bytes(q1, len);
|
||||
len = BN_bn2bin(ctx.q2, q2);
|
||||
reverse_bytes(q2, len);
|
||||
|
||||
free_q1q2_ctx(&ctx);
|
||||
return true;
|
||||
|
@ -152,22 +171,6 @@ static RSA *gen_sign_key(void)
|
|||
return key;
|
||||
}
|
||||
|
||||
static void reverse_bytes(void *data, int length)
|
||||
{
|
||||
int i = 0;
|
||||
int j = length - 1;
|
||||
uint8_t temp;
|
||||
uint8_t *ptr = data;
|
||||
|
||||
while (i < j) {
|
||||
temp = ptr[i];
|
||||
ptr[i] = ptr[j];
|
||||
ptr[j] = temp;
|
||||
i++;
|
||||
j--;
|
||||
}
|
||||
}
|
||||
|
||||
enum mrtags {
|
||||
MRECREATE = 0x0045544145524345,
|
||||
MREADD = 0x0000000044444145,
|
||||
|
@ -367,8 +370,6 @@ bool encl_measure(struct encl *encl)
|
|||
/* BE -> LE */
|
||||
reverse_bytes(sigstruct->signature, SGX_MODULUS_SIZE);
|
||||
reverse_bytes(sigstruct->modulus, SGX_MODULUS_SIZE);
|
||||
reverse_bytes(sigstruct->q1, SGX_MODULUS_SIZE);
|
||||
reverse_bytes(sigstruct->q2, SGX_MODULUS_SIZE);
|
||||
|
||||
EVP_MD_CTX_destroy(ctx);
|
||||
RSA_free(key);
|
||||
|
|
Loading…
Reference in a new issue