You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-lang/python/files/3.6.1-test_socket-AEAD.patch

76 lines
3.4 KiB

From 4ac01f0ff3e3c9c02f5cc8c55f2fbe4639808f5e Mon Sep 17 00:00:00 2001
From: Mariatta <Mariatta@users.noreply.github.com>
Date: Thu, 16 Mar 2017 20:58:42 -0700
Subject: [PATCH] update test_socket AEAD test for kernel 4.9 and up (GH-133)
(GH-548)
(cherry picked from commit 9764c151c51480a7ca6042b1ccd69be2620ff360)
---
Lib/test/test_socket.py | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 5315d475df..1508f20c9f 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -5479,7 +5479,7 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
self.assertEqual(len(dec), msglen * multiplier)
self.assertEqual(dec, msg * multiplier)
- @support.requires_linux_version(4, 3) # see test_aes_cbc
+ @support.requires_linux_version(4, 9) # see issue29324
def test_aead_aes_gcm(self):
key = bytes.fromhex('c939cc13397c1d37de6ae0e1cb7c423c')
iv = bytes.fromhex('b3d8cc017cbb89b39e0f67e2')
@@ -5502,8 +5502,7 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
op.sendmsg_afalg(op=socket.ALG_OP_ENCRYPT, iv=iv,
assoclen=assoclen, flags=socket.MSG_MORE)
op.sendall(assoc, socket.MSG_MORE)
- op.sendall(plain, socket.MSG_MORE)
- op.sendall(b'\x00' * taglen)
+ op.sendall(plain)
res = op.recv(assoclen + len(plain) + taglen)
self.assertEqual(expected_ct, res[assoclen:-taglen])
self.assertEqual(expected_tag, res[-taglen:])
@@ -5511,7 +5510,7 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
# now with msg
op, _ = algo.accept()
with op:
- msg = assoc + plain + b'\x00' * taglen
+ msg = assoc + plain
op.sendmsg_afalg([msg], op=socket.ALG_OP_ENCRYPT, iv=iv,
assoclen=assoclen)
res = op.recv(assoclen + len(plain) + taglen)
@@ -5522,7 +5521,7 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
pack_uint32 = struct.Struct('I').pack
op, _ = algo.accept()
with op:
- msg = assoc + plain + b'\x00' * taglen
+ msg = assoc + plain
op.sendmsg(
[msg],
([socket.SOL_ALG, socket.ALG_SET_OP, pack_uint32(socket.ALG_OP_ENCRYPT)],
@@ -5530,7 +5529,7 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
[socket.SOL_ALG, socket.ALG_SET_AEAD_ASSOCLEN, pack_uint32(assoclen)],
)
)
- res = op.recv(len(msg))
+ res = op.recv(len(msg) + taglen)
self.assertEqual(expected_ct, res[assoclen:-taglen])
self.assertEqual(expected_tag, res[-taglen:])
@@ -5540,8 +5539,8 @@ class LinuxKernelCryptoAPI(unittest.TestCase):
msg = assoc + expected_ct + expected_tag
op.sendmsg_afalg([msg], op=socket.ALG_OP_DECRYPT, iv=iv,
assoclen=assoclen)
- res = op.recv(len(msg))
- self.assertEqual(plain, res[assoclen:-taglen])
+ res = op.recv(len(msg) - taglen)
+ self.assertEqual(plain, res[assoclen:])
@support.requires_linux_version(4, 3) # see test_aes_cbc
def test_drbg_pr_sha256(self):
--
2.12.2