X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=pygost%2Ftest_cms.py;h=31fb7d931b3f282ac21c2e311bf9c39fb62ace1f;hb=61d68bda6f6d7c39243701b5f647f62cc4d9d286;hp=b6595816feb4b091efeb4027c2cde0dbdede9fd4;hpb=51d8bc7d4d177738189dc696a21326456f05bb74;p=pygost.git diff --git a/pygost/test_cms.py b/pygost/test_cms.py index b659581..31fb7d9 100644 --- a/pygost/test_cms.py +++ b/pygost/test_cms.py @@ -86,7 +86,6 @@ class TestSigned(TestCase): prv_key_raw, curve_name, hasher, - mode, ): content_info, tail = ContentInfo().decode(content_info_raw) self.assertSequenceEqual(tail, b"") @@ -99,7 +98,6 @@ class TestSigned(TestCase): public_key(curve, prv_unmarshal(prv_key_raw)), hasher(bytes(signed_data["encapContentInfo"]["eContent"])).digest()[::-1], bytes(signed_data["signerInfos"][0]["signature"]), - mode=mode, )) def test_256(self): @@ -117,7 +115,6 @@ VNwDQ8enFItJZ8DEX4blZ8QtziNCMl5HbA== prv_key_raw, "id-GostR3410-2001-CryptoPro-XchA-ParamSet", GOST34112012256, - 2001, ) def test_512(self): @@ -136,7 +133,6 @@ PS+KRYxT8vhcsBLWWxDkc1McI7aF09hqtED36mQOfACzeJjEoUjALpmJob1V prv_key_raw, "id-tc26-gost-3410-12-512-paramSetB", GOST34112012512, - 2012, ) @@ -313,7 +309,6 @@ pRmMVN+YtRsrEHwH3ToQ/i4vrtgA+eONuKT2uKZFikxA+VNmeeGdhkgqETMihQ== prv_unmarshal(prv), pub_unmarshal(pub), ukm_unmarshal(ukm), - mode=2001, ) self.process_cms( @@ -343,7 +338,7 @@ FTAVBAj+1QzaXaN9FwYJKoUDBwECBQEBgAyK54euw0sHhEVEkA0= return kek_34102012256( curve, prv_unmarshal(prv), - pub_unmarshal(pub, mode=2012), + pub_unmarshal(pub), ukm_unmarshal(ukm), ) @@ -446,7 +441,6 @@ UNjyuY+54uVcHw== prv_unmarshal(prv), pub_unmarshal(pub), ukm_unmarshal(ukm), - mode=2001, ) self.process_cms( @@ -476,7 +470,7 @@ WFUZEnEuAKcuG6dTOawEBLhi9hIwOgYJKoZIhvcNAQcBMB8GBiqFAwICFTAVBAiD return kek_34102012256( curve, prv_unmarshal(prv), - pub_unmarshal(pub, mode=2012), + pub_unmarshal(pub), ukm_unmarshal(ukm), ) @@ -493,13 +487,14 @@ WFUZEnEuAKcuG6dTOawEBLhi9hIwOgYJKoZIhvcNAQcBMB8GBiqFAwICFTAVBAiD class TestR132356510252019(TestCase): """Test vectors from Р 1323565.1.025-2019 """ - curve256 = CURVES["id-tc26-gost-3410-2012-256-paramSetA"] - curve512 = CURVES["id-tc26-gost-3410-12-512-paramSetA"] - psk = hexdec("8F5EEF8814D228FB2BBC5612323730CFA33DB7263CC2C0A01A6C6953F33D61D5")[::-1] + def setUp(self): + self.curve256 = CURVES["id-tc26-gost-3410-2012-256-paramSetA"] + self.curve512 = CURVES["id-tc26-gost-3410-12-512-paramSetA"] + self.psk = hexdec("8F5EEF8814D228FB2BBC5612323730CFA33DB7263CC2C0A01A6C6953F33D61D5")[::-1] - ca_prv = prv_unmarshal(hexdec("092F8D059E97E22B90B1AE99F0087FC4D26620B91550CBB437C191005A290810")[::-1]) - ca_pub = public_key(curve256, ca_prv) - ca_cert = Certificate().decod(b64decode(""" + self.ca_prv = prv_unmarshal(hexdec("092F8D059E97E22B90B1AE99F0087FC4D26620B91550CBB437C191005A290810")[::-1]) + self.ca_pub = public_key(self.curve256, self.ca_prv) + self.ca_cert = Certificate().decod(b64decode(""" MIIB8DCCAZ2gAwIBAgIEAYy6gTAKBggqhQMHAQEDAjA4MQ0wCwYDVQQKEwRUSzI2 MScwJQYDVQQDEx5DQSBUSzI2OiBHT1NUIDM0LjEwLTEyIDI1Ni1iaXQwHhcNMDEw MTAxMDAwMDAwWhcNNDkxMjMxMDAwMDAwWjA4MQ0wCwYDVQQKEwRUSzI2MScwJQYD @@ -513,9 +508,9 @@ AgNBAAgv248F4OeNCkhlzJWec0evHYnMBlSzk1lDm0F875B7CqMrKh2MtJHXenbj Gc2uRn2IwgmSf/LZDrYsKKqZSxk= """)) - sender256_prv = prv_unmarshal(hexdec("0B20810E449978C7C3B76C6FF77A16C532421139344A058EF56310B6B6F377E8")[::-1]) - sender256_pub = public_key(curve256, sender256_prv) - sender256_cert = Certificate().decod(b64decode(""" + self.sender256_prv = prv_unmarshal(hexdec("0B20810E449978C7C3B76C6FF77A16C532421139344A058EF56310B6B6F377E8")[::-1]) + self.sender256_pub = public_key(self.curve256, self.sender256_prv) + self.sender256_cert = Certificate().decod(b64decode(""" MIIB8zCCAaCgAwIBAgIEAYy6gjAKBggqhQMHAQEDAjA4MQ0wCwYDVQQKEwRUSzI2 MScwJQYDVQQDEx5DQSBUSzI2OiBHT1NUIDM0LjEwLTEyIDI1Ni1iaXQwHhcNMDEw MTAxMDAwMDAwWhcNNDkxMjMxMDAwMDAwWjA7MQ0wCwYDVQQKEwRUSzI2MSowKAYD @@ -529,9 +524,9 @@ AQEDAgNBAB41oijaXSEn58l78y2rhxY35/lKEq4XWZ70FtsNlVxWATyzgO5Wliwn t1O4GoZsxx8r6T/i7VG65UNmQlwdOKQ= """)) - recipient256_prv = prv_unmarshal(hexdec("0DC8DC1FF2BC114BABC3F1CA8C51E4F58610427E197B1C2FBDBA4AE58CBFB7CE")[::-1]) - recipient256_pub = public_key(curve256, recipient256_prv) - recipient256_cert = Certificate().decod(b64decode(""" + self.recipient256_prv = prv_unmarshal(hexdec("0DC8DC1FF2BC114BABC3F1CA8C51E4F58610427E197B1C2FBDBA4AE58CBFB7CE")[::-1]) + self.recipient256_pub = public_key(self.curve256, self.recipient256_prv) + self.recipient256_cert = Certificate().decod(b64decode(""" MIIB8jCCAZ+gAwIBAgIEAYy6gzAKBggqhQMHAQEDAjA4MQ0wCwYDVQQKEwRUSzI2 MScwJQYDVQQDEx5DQSBUSzI2OiBHT1NUIDM0LjEwLTEyIDI1Ni1iaXQwHhcNMDEw MTAxMDAwMDAwWhcNNDkxMjMxMDAwMDAwWjA6MQ0wCwYDVQQKEwRUSzI2MSkwJwYD @@ -545,9 +540,9 @@ AQMCA0EAPP9Oad1/5jwokSjPpccsQ0xCdVYM+mGQ0IbpiZxQj8gnkt8sq4jR6Ya+ I/BDkbZNDNE27TU1p3t5rE9NMEeViA== """)) - sender512_prv = prv_unmarshal(hexdec("F95A5D44C5245F63F2E7DF8E782C1924EADCB8D06C52D91023179786154CBDB1561B4DF759D69F67EE1FBD5B68800E134BAA12818DA4F3AC75B0E5E6F9256911")[::-1]) - sender512_pub = public_key(curve512, sender512_prv) - sender512_cert = Certificate().decod(b64decode(""" + self.sender512_prv = prv_unmarshal(hexdec("F95A5D44C5245F63F2E7DF8E782C1924EADCB8D06C52D91023179786154CBDB1561B4DF759D69F67EE1FBD5B68800E134BAA12818DA4F3AC75B0E5E6F9256911")[::-1]) + self.sender512_pub = public_key(self.curve512, self.sender512_prv) + self.sender512_cert = Certificate().decod(b64decode(""" MIICNjCCAeOgAwIBAgIEAYy6hDAKBggqhQMHAQEDAjA4MQ0wCwYDVQQKEwRUSzI2 MScwJQYDVQQDEx5DQSBUSzI2OiBHT1NUIDM0LjEwLTEyIDI1Ni1iaXQwHhcNMDEw MTAxMDAwMDAwWhcNNDkxMjMxMDAwMDAwWjA7MQ0wCwYDVQQKEwRUSzI2MSowKAYD @@ -562,9 +557,9 @@ zCcRpxRAmFHvlXowCgYIKoUDBwEBAwIDQQAbjA0Q41/rIKOOvjHKsAsoEJM+WJf6 /PKXg2JaStthmw99bdtwwkU/qDbcje2tF6mt+XWyQBXwvfeES1GFY9fJ """)) - recipient512_prv = prv_unmarshal(hexdec("A50315981F0A7C7FC05B4EB9591A62B1F84BD6FD518ACFCEDF0A7C9CF388D1F18757C056ADA5B38CBF24CDDB0F1519EF72DB1712CEF1920952E94AF1F9C575DC")[::-1]) - recipient512_pub = public_key(curve512, recipient512_prv) - recipient512_cert = Certificate().decod(b64decode(""" + self.recipient512_prv = prv_unmarshal(hexdec("A50315981F0A7C7FC05B4EB9591A62B1F84BD6FD518ACFCEDF0A7C9CF388D1F18757C056ADA5B38CBF24CDDB0F1519EF72DB1712CEF1920952E94AF1F9C575DC")[::-1]) + self.recipient512_pub = public_key(self.curve512, self.recipient512_prv) + self.recipient512_cert = Certificate().decod(b64decode(""" MIICNTCCAeKgAwIBAgIEAYy6hTAKBggqhQMHAQEDAjA4MQ0wCwYDVQQKEwRUSzI2 MScwJQYDVQQDEx5DQSBUSzI2OiBHT1NUIDM0LjEwLTEyIDI1Ni1iaXQwHhcNMDEw MTAxMDAwMDAwWhcNNDkxMjMxMDAwMDAwWjA6MQ0wCwYDVQQKEwRUSzI2MSkwJwYD @@ -582,17 +577,17 @@ ja64NaM5h+cAFoHm6t/k+ziLh2A11rTakR+5of4NQ3EjEhuPtomP2tc= def test_certs(self): """Certificates signatures """ - for prv, pub, curve, mode, cert in ( - (self.ca_prv, self.ca_pub, self.curve256, 2001, self.ca_cert), - (self.sender256_prv, self.sender256_pub, self.curve256, 2001, self.sender256_cert), - (self.recipient256_prv, self.recipient256_pub, self.curve256, 2001, self.recipient256_cert), - (self.sender512_prv, self.sender512_pub, self.curve512, 2012, self.sender512_cert), - (self.recipient512_prv, self.recipient512_pub, self.curve512, 2012, self.recipient512_cert), + for prv, pub, curve, cert in ( + (self.ca_prv, self.ca_pub, self.curve256, self.ca_cert), + (self.sender256_prv, self.sender256_pub, self.curve256, self.sender256_cert), + (self.recipient256_prv, self.recipient256_pub, self.curve256, self.recipient256_cert), + (self.sender512_prv, self.sender512_pub, self.curve512, self.sender512_cert), + (self.recipient512_prv, self.recipient512_pub, self.curve512, self.recipient512_cert), ): pub_our = public_key(curve, prv) self.assertEqual(pub_our, pub) self.assertSequenceEqual( - pub_marshal(pub_our, mode=mode), + pub_marshal(pub_our), bytes(OctetString().decod(bytes( cert["tbsCertificate"]["subjectPublicKeyInfo"]["subjectPublicKey"] ))), @@ -610,7 +605,6 @@ ja64NaM5h+cAFoHm6t/k+ziLh2A11rTakR+5of4NQ3EjEhuPtomP2tc= self.ca_pub, GOST34112012256(cert["tbsCertificate"].encode()).digest()[::-1], bytes(cert["signatureValue"]), - mode=2001, )) def test_signed_with_attrs(self): @@ -662,7 +656,6 @@ bLx5whxd+mzlpekL5i6ImRX+TpERxrA/xSe5 SignedAttributes(si["signedAttrs"]).encode() ).digest()[::-1], bytes(si["signature"]), - mode=2012, )) def test_signed_without_attrs(self): @@ -701,7 +694,6 @@ Ni1iaXQCBAGMuoIwCgYIKoUDBwEBAgIwCgYIKoUDBwEBAQEEQC6jZPA59szL9FiA self.sender256_pub, GOST34112012256(content).digest()[::-1], bytes(si["signature"]), - mode=2001, )) def test_kari_ephemeral(self): @@ -730,7 +722,6 @@ ITAfBgkqhQMHAQAGAQExEgQQs1t6D3J3WCEvxunnEE15NQ== ) orig_pub = pub_unmarshal( bytes(OctetString().decod(bytes(orig_key["publicKey"]))), - mode=2012, ) ukm = bytes(kari["ukm"]) self.assertEqual( @@ -742,7 +733,7 @@ ITAfBgkqhQMHAQAGAQExEgQQs1t6D3J3WCEvxunnEE15NQ== id_tc26_agreement_gost3410_2012_512, ) kexp = bytes(kari["recipientEncryptedKeys"][0]["encryptedKey"]) - keymat = keg(self.curve512, self.recipient512_prv, orig_pub, ukm, mode=2012) + keymat = keg(self.curve512, self.recipient512_prv, orig_pub, ukm) kim, kek = keymat[:KEYSIZE], keymat[KEYSIZE:] cek = kimp15( GOST3412Kuznechik(kek).encrypt, @@ -816,7 +807,6 @@ L0jFhWHTF1tcAxYmd9pX5i89UwIxhtYqyjX1QHju2g== self.recipient256_prv, self.sender256_pub, ukm, - mode=2001, ) kim, kek = keymat[:KEYSIZE], keymat[KEYSIZE:] cek = kimp15( @@ -876,10 +866,10 @@ LzdPJe1MkYV0qQgdC1zI3nQ7/4taf+4zRA== ) pub = pub_unmarshal(bytes(OctetString().decod( bytes(encrypted_key["ephemeralPublicKey"]["subjectPublicKey"]) - )), mode=2001) + ))) ukm = bytes(encrypted_key["ukm"]) kexp = bytes(encrypted_key["encryptedKey"]) - keymat = keg(self.curve256, self.recipient256_prv, pub, ukm, mode=2001) + keymat = keg(self.curve256, self.recipient256_prv, pub, ukm) kim, kek = keymat[:KEYSIZE], keymat[KEYSIZE:] cek = kimp15( GOST3412Kuznechik(kek).encrypt, @@ -941,11 +931,10 @@ LuZ22Yw= bytes(OctetString().decod( bytes(encrypted_key["ephemeralPublicKey"]["subjectPublicKey"]) )), - mode=2012, ) ukm = bytes(encrypted_key["ukm"]) kexp = bytes(encrypted_key["encryptedKey"]) - keymat = keg(self.curve512, self.recipient512_prv, pub, ukm, mode=2012) + keymat = keg(self.curve512, self.recipient512_prv, pub, ukm) kim, kek = keymat[:KEYSIZE], keymat[KEYSIZE:] cek = kimp15( GOST3412Magma(kek).encrypt,