def test_RSAKey_errors(self): rsa_key = { "kty": "RSA", "kid": "*****@*****.**", "use": "sig", "n": "n4EPtAOCc9AlkeQHPzHStgAbgs7bTZLwUBZdR8_KuKPEHLd4rHVTeT-O-XV2jRojdNhxJWTDvNd7nqQ0VEiZQHz_AJmSCpMaJMRBSFKrKb2wqVwGU_NsYOYL-QtiWN2lbzcEe6XC0dApr5ydQLrHqkHHig3RBordaZ6Aj-oBHqFEHYpPe7Tpe-OfVfHd1E6cS6M1FZcD1NNLYD5lFHpPI9bTwJlsde3uhGqC0ZCuEHg8lhzwOHrtIQbS0FVbb9k3-tVTU4fg_3L_vniUFAKwuCLqKnS2BYwdq_mzSnbLY7h_qixoR7jig3__kRhuaxwUkRz5iaiQkqgc5gHdrNP5zw", "e": "AQAB" } with pytest.raises(JWKError): key = RSAKey(rsa_key, 'HS256') rsa_key = { "kty": "oct", "kid": "*****@*****.**", "use": "sig", "n": "n4EPtAOCc9AlkeQHPzHStgAbgs7bTZLwUBZdR8_KuKPEHLd4rHVTeT-O-XV2jRojdNhxJWTDvNd7nqQ0VEiZQHz_AJmSCpMaJMRBSFKrKb2wqVwGU_NsYOYL-QtiWN2lbzcEe6XC0dApr5ydQLrHqkHHig3RBordaZ6Aj-oBHqFEHYpPe7Tpe-OfVfHd1E6cS6M1FZcD1NNLYD5lFHpPI9bTwJlsde3uhGqC0ZCuEHg8lhzwOHrtIQbS0FVbb9k3-tVTU4fg_3L_vniUFAKwuCLqKnS2BYwdq_mzSnbLY7h_qixoR7jig3__kRhuaxwUkRz5iaiQkqgc5gHdrNP5zw", "e": "AQAB" } with pytest.raises(JWKError): key = RSAKey(rsa_key, 'RS256') # noqa: F841
def test_pycrypto_wrap_key_unencoded_cleartext(private_key_pem, algorithm): private_key = PyCryptoRSAKey(private_key_pem, algorithm) key = b'test' public_key = private_key.public_key() wrapped = public_key.wrap_key(key) unwrapped = private_key.unwrap_key(wrapped) assert unwrapped == key
def test_pycrypto_unencoded_cleartext(private_key): key = PyCryptoRSAKey(private_key, ALGORITHMS.RS256) msg = b'test' signature = key.sign(msg) public_key = key.public_key() assert bool(public_key.verify(msg, signature)) assert not bool(public_key.verify(msg, 1))
def test_pycrypto_invalid_signature(self): key = RSAKey(private_key, ALGORITHMS.RS256) msg = b'test' signature = key.sign(msg) public_key = key.public_key() assert public_key.verify(msg, signature) == True assert public_key.verify(msg, 1) == False
def test_signing_parity(self): key1 = RSAKey(private_key, ALGORITHMS.RS256) vkey1 = key1.public_key() key2 = CryptographyRSAKey(private_key, ALGORITHMS.RS256) vkey2 = key2.public_key() msg = b'test' sig1 = key1.sign(msg) sig2 = key2.sign(msg) assert vkey1.verify(msg, sig1) assert vkey1.verify(msg, sig2) assert vkey2.verify(msg, sig1) assert vkey2.verify(msg, sig2) # invalid signature assert not vkey2.verify(msg, b'n' * 64)
def test_invalid_hash_alg(self): with pytest.raises(JWKError): key = jwk.HMACKey(hmac_key, 'RS512') with pytest.raises(JWKError): key = RSAKey(rsa_key, 'HS512') with pytest.raises(JWKError): key = ECDSAECKey(ec_key, 'RS512') # noqa: F841
def test_invalid_jwk(self): with pytest.raises(JWKError): key = jwk.HMACKey(rsa_key, 'HS256') with pytest.raises(JWKError): key = RSAKey(hmac_key, 'RS256') with pytest.raises(JWKError): key = ECDSAECKey(rsa_key, 'ES256') # noqa: F841
def test_get_public_key(self): key = CryptographyRSAKey(private_key, ALGORITHMS.RS256) public_key = key.public_key() public_key2 = public_key.public_key() assert public_key == public_key2 key = RSAKey(private_key, ALGORITHMS.RS256) public_key = key.public_key() public_key2 = public_key.public_key() assert public_key == public_key2
def test_pycrypto_unencoded_cleartext(self, Backend): key = Backend(private_key, ALGORITHMS.RS256) key = RSAKey(private_key, ALGORITHMS.RS256) msg = b'test' signature = key.sign(msg) public_key = key.public_key() assert public_key.verify(msg, signature) == True assert public_key.verify(msg, 1) == False
def test_pycrypto_RSA_key_instance(self): key = RSA.construct((long( 26057131595212989515105618545799160306093557851986992545257129318694524535510983041068168825614868056510242030438003863929818932202262132630250203397069801217463517914103389095129323580576852108653940669240896817348477800490303630912852266209307160550655497615975529276169196271699168537716821419779900117025818140018436554173242441334827711966499484119233207097432165756707507563413323850255548329534279691658369466534587631102538061857114141268972476680597988266772849780811214198186940677291891818952682545840788356616771009013059992237747149380197028452160324144544057074406611859615973035412993832273216732343819 ), long(65537))) RSAKey(key, ALGORITHMS.RS256)
def test_bad_cert(self): key = '-----BEGIN CERTIFICATE-----' with pytest.raises(JOSEError): RSAKey(key, ALGORITHMS.RS256)
def test_object(self): key = object() with pytest.raises(JOSEError): RSAKey(key, ALGORITHMS.RS256)
def test_string_secret(self): key = 'secret' with pytest.raises(JOSEError): RSAKey(key, ALGORITHMS.RS256)
def test_RSA_key(self): RSAKey(private_key, ALGORITHMS.RS256)
def test_to_pem(self): key = CryptographyRSAKey(private_key, ALGORITHMS.RS256) assert key.to_pem().strip() == private_key.strip() key = RSAKey(private_key, ALGORITHMS.RS256) assert key.to_pem().strip() == private_key.strip()