1
- from __future__ import with_statement , division
1
+ from __future__ import with_statement , division , print_function
2
2
3
3
try :
4
4
import unittest2 as unittest
16
16
from hypothesis import given , settings
17
17
import hypothesis .strategies as st
18
18
19
- from six import b , print_ , binary_type
19
+ from six import binary_type
20
20
from .keys import SigningKey , VerifyingKey
21
21
from .keys import BadSignatureError , MalformedPointError , BadDigestError
22
22
from . import util
@@ -365,9 +365,7 @@ def test_sk_to_der_with_invalid_point_encoding(self):
365
365
366
366
def test_vk_from_der_garbage_after_curve_oid (self ):
367
367
type_oid_der = encoded_oid_ecPublicKey
368
- curve_oid_der = der .encode_oid (* (1 , 2 , 840 , 10045 , 3 , 1 , 1 )) + b (
369
- "garbage"
370
- )
368
+ curve_oid_der = der .encode_oid (* (1 , 2 , 840 , 10045 , 3 , 1 , 1 )) + b"garbage"
371
369
enc_type_der = der .encode_sequence (type_oid_der , curve_oid_der )
372
370
point_der = der .encode_bitstring (b"\x00 \xff " , None )
373
371
to_decode = der .encode_sequence (enc_type_der , point_der )
@@ -770,10 +768,10 @@ def test_encoding(self):
770
768
sk = SigningKey .from_secret_exponent (123456789 )
771
769
vk = sk .verifying_key
772
770
773
- exp = b (
774
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
775
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
776
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
771
+ exp = (
772
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
773
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
774
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
777
775
)
778
776
self .assertEqual (vk .to_string (), exp )
779
777
self .assertEqual (vk .to_string ("raw" ), exp )
@@ -785,10 +783,10 @@ def test_decoding(self):
785
783
sk = SigningKey .from_secret_exponent (123456789 )
786
784
vk = sk .verifying_key
787
785
788
- enc = b (
789
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
790
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
791
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
786
+ enc = (
787
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
788
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
789
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
792
790
)
793
791
794
792
from_raw = VerifyingKey .from_string (enc )
@@ -804,22 +802,22 @@ def test_decoding(self):
804
802
self .assertEqual (from_uncompressed .pubkey .point , vk .pubkey .point )
805
803
806
804
def test_uncompressed_decoding_as_only_alowed (self ):
807
- enc = b (
808
- "\x04 "
809
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
810
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
811
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
805
+ enc = (
806
+ b "\x04 "
807
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
808
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
809
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
812
810
)
813
811
vk = VerifyingKey .from_string (enc , valid_encodings = ("uncompressed" ,))
814
812
sk = SigningKey .from_secret_exponent (123456789 )
815
813
816
814
self .assertEqual (vk , sk .verifying_key )
817
815
818
816
def test_raw_decoding_with_blocked_format (self ):
819
- enc = b (
820
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
821
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
822
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
817
+ enc = (
818
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
819
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
820
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
823
821
)
824
822
with self .assertRaises (MalformedPointError ) as exp :
825
823
VerifyingKey .from_string (enc , valid_encodings = ("hybrid" ,))
@@ -833,76 +831,76 @@ def test_decoding_with_unknown_format(self):
833
831
self .assertIn ("Only uncompressed, compressed" , str (e .exception ))
834
832
835
833
def test_uncompressed_decoding_with_blocked_format (self ):
836
- enc = b (
837
- "\x04 "
838
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
839
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
840
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
834
+ enc = (
835
+ b "\x04 "
836
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
837
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
838
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
841
839
)
842
840
with self .assertRaises (MalformedPointError ) as exp :
843
841
VerifyingKey .from_string (enc , valid_encodings = ("hybrid" ,))
844
842
845
843
self .assertIn ("Invalid X9.62 encoding" , str (exp .exception ))
846
844
847
845
def test_hybrid_decoding_with_blocked_format (self ):
848
- enc = b (
849
- "\x06 "
850
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
851
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
852
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
846
+ enc = (
847
+ b "\x06 "
848
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
849
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
850
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
853
851
)
854
852
with self .assertRaises (MalformedPointError ) as exp :
855
853
VerifyingKey .from_string (enc , valid_encodings = ("uncompressed" ,))
856
854
857
855
self .assertIn ("Invalid X9.62 encoding" , str (exp .exception ))
858
856
859
857
def test_compressed_decoding_with_blocked_format (self ):
860
- enc = b (
861
- "\x02 "
862
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
863
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
864
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
858
+ enc = (
859
+ b "\x02 "
860
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
861
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
862
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
865
863
)[:25 ]
866
864
with self .assertRaises (MalformedPointError ) as exp :
867
865
VerifyingKey .from_string (enc , valid_encodings = ("hybrid" , "raw" ))
868
866
869
867
self .assertIn ("(hybrid, raw)" , str (exp .exception ))
870
868
871
869
def test_decoding_with_malformed_uncompressed (self ):
872
- enc = b (
873
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
874
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
875
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
870
+ enc = (
871
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
872
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
873
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
876
874
)
877
875
878
876
with self .assertRaises (MalformedPointError ):
879
877
VerifyingKey .from_string (b"\x02 " + enc )
880
878
881
879
def test_decoding_with_malformed_compressed (self ):
882
- enc = b (
883
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
884
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
885
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
880
+ enc = (
881
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
882
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
883
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
886
884
)
887
885
888
886
with self .assertRaises (MalformedPointError ):
889
887
VerifyingKey .from_string (b"\x01 " + enc [:24 ])
890
888
891
889
def test_decoding_with_inconsistent_hybrid (self ):
892
- enc = b (
893
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
894
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
895
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
890
+ enc = (
891
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
892
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
893
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
896
894
)
897
895
898
896
with self .assertRaises (MalformedPointError ):
899
897
VerifyingKey .from_string (b"\x07 " + enc )
900
898
901
899
def test_decoding_with_point_not_on_curve (self ):
902
- enc = b (
903
- "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
904
- "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
905
- "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
900
+ enc = (
901
+ b "\x0c \xe0 \x1d \xe0 d\x1c \x8e S\x8a \xc0 \x9e K\xa8 x !\xd5 \xc2 \xc3 "
902
+ b "\xfd \xc8 \xa0 c\xff \xfb \x02 \xb9 \xc4 \x84 )\x1a \x0f \x8b \x87 \xa4 "
903
+ b "z\x8a #\xb5 \x97 \xec O\xb6 \xa0 HQ\x89 *"
906
904
)
907
905
908
906
with self .assertRaises (MalformedPointError ):
@@ -1894,7 +1892,7 @@ def OFF_test_prove_uniformity(self): # pragma: no cover
1894
1892
# this technique should use the full range
1895
1893
self .assertTrue (counts [order - 1 ])
1896
1894
for i in range (1 , order ):
1897
- print_ ("%3d: %s" % (i , "*" * (counts [i ] // 100 )))
1895
+ print ("%3d: %s" % (i , "*" * (counts [i ] // 100 )))
1898
1896
1899
1897
1900
1898
class RFC6979 (unittest .TestCase ):
@@ -1981,9 +1979,7 @@ def test_1(self):
1981
1979
),
1982
1980
secexp = int ("09A4D6792295A7F730FC3F2B49CBC0F62E862272F" , 16 ),
1983
1981
hsh = unhexlify (
1984
- b (
1985
- "AF2BDBE1AA9B6EC1E2ADE1D694F41FC71A831D0268E9891562113D8A62ADD1BF"
1986
- )
1982
+ b"AF2BDBE1AA9B6EC1E2ADE1D694F41FC71A831D0268E9891562113D8A62ADD1BF"
1987
1983
),
1988
1984
hash_func = hashlib .sha256 ,
1989
1985
expected = int ("23AF4074C90A02B3FE61D286D5C87F425E6BDD81B" , 16 ),
0 commit comments