def testImportKey12(self):
     """Verify import of RSAPublicKey DER SEQUENCE, encoded with PEM"""
     der = asn1.DerSequence([17, 3]).encode()
     pem = der2pem(der)
     key = RSA.importKey(pem)
     self.assertEqual(key.n, 17)
     self.assertEqual(key.e, 3)
 def test_import_key_windows_cr_lf(self):
     pem_cr_lf = "\r\n".join(self.rsaKeyPEM.splitlines())
     key = RSA.importKey(pem_cr_lf)
     self.assertEqual(key.n, self.n)
     self.assertEqual(key.e, self.e)
     self.assertEqual(key.d, self.d)
     self.assertEqual(key.p, self.p)
     self.assertEqual(key.q, self.q)
 def testImportKey10(self):
     """Verify import of unencrypted PrivateKeyInfo DER SEQUENCE, encoded with PEM"""
     key = RSA.importKey(self.rsaKeyPEM8)
     self.assertTrue(key.has_private())
     self.assertEqual(key.n, self.n)
     self.assertEqual(key.e, self.e)
     self.assertEqual(key.d, self.d)
     self.assertEqual(key.p, self.p)
     self.assertEqual(key.q, self.q)
 def testImportKey3bytes(self):
     """Verify import of RSAPrivateKey DER SEQUENCE, encoded with PEM as byte string"""
     key = RSA.importKey(b(self.rsaKeyPEM))
     self.assertEqual(key.has_private(), True)  # assert_
     self.assertEqual(key.n, self.n)
     self.assertEqual(key.e, self.e)
     self.assertEqual(key.d, self.d)
     self.assertEqual(key.p, self.p)
     self.assertEqual(key.q, self.q)
 def testImportKey1(self):
     """Verify import of RSAPrivateKey DER SEQUENCE"""
     key = RSA.importKey(self.rsaKeyDER)
     self.assertTrue(key.has_private())
     self.assertEqual(key.n, self.n)
     self.assertEqual(key.e, self.e)
     self.assertEqual(key.d, self.d)
     self.assertEqual(key.p, self.p)
     self.assertEqual(key.q, self.q)
 def testImportKey8(self):
     """Verify import of encrypted PrivateKeyInfo DER SEQUENCE"""
     for t in self.rsaKeyEncryptedPEM:
         key = RSA.importKey(t[1], t[0])
         self.assertTrue(key.has_private())
         self.assertEqual(key.n, self.n)
         self.assertEqual(key.e, self.e)
         self.assertEqual(key.d, self.d)
         self.assertEqual(key.p, self.p)
         self.assertEqual(key.q, self.q)
def main():
    """主函数"""
    # 生成密钥对
    key_pair = RSA.generate(1024)
    # 导入公钥
    pub_key = RSA.importKey(key_pair.publickey().exportKey())
    # 导入私钥
    pri_key = RSA.importKey(key_pair.exportKey())
    message1 = 'hello, world!'
    # 加密数据
    data = pub_key.encrypt(message1.encode(), None)
    # 对加密数据进行BASE64编码
    message2 = base64.b64encode(data[0])
    print(message2)
    # 对加密数据进行BASE64解码
    data = base64.b64decode(message2)
    # 解密数据
    message3 = pri_key.decrypt(data)
    print(message3.decode())
Example #8
0
    def runTest(self):
        key = RSA.generate(1024)
        hashed = SHA1.new(b("Test"))
        good_signature = PKCS1_PSS.new(key).sign(hashed)
        verifier = PKCS1_PSS.new(key.publickey())

        self.assertEqual(verifier.verify(hashed, good_signature), True)

        # Flip a few bits in the signature
        bad_signature = strxor(good_signature, bchr(1) * len(good_signature))
        self.assertEqual(verifier.verify(hashed, bad_signature), False)