class TestDes3(unittest.TestCase): key = h2b("0123456789abcdeffedeba987654321089abcdef01234567") IV = h2b("1234567890abcdef") plain = t2b("Now is the time for all ") cipher = h2b("43a0297ed184f80e8964843212d508981894157487127db0") def setUp(self): self.des3 = Des3.new(self.key, MODE_CBC, self.IV) def test_raises(self): # invalid key length self.assertRaises(ValueError, Des3.new, "key", MODE_CBC, self.IV) # invalid mode self.assertRaises(ValueError, Des3.new, self.key, MODE_ECB, self.IV) # invalid iv length self.assertRaises(ValueError, Des3.new, self.key, MODE_CBC, "IV") # invalid data length self.assertRaises(ValueError, self.des3.encrypt, "foo") self.assertRaises(ValueError, self.des3.decrypt, "bar") def test_single_encryption(self): assert self.des3.encrypt(self.plain) == self.cipher def test_multi_encryption(self): result = t2b("") segments = tuple(self.plain[i:i + Des3.block_size] \ for i in range(0, len(self.plain), Des3.block_size)) for segment in segments: result += self.des3.encrypt(segment) assert result == self.cipher def test_single_decryption(self): assert self.des3.decrypt(self.cipher) == self.plain def test_multi_decryption(self): result = t2b("") segments = tuple(self.cipher[i:i + Des3.block_size] \ for i in range(0, len(self.cipher), Des3.block_size)) for segment in segments: result += self.des3.decrypt(segment) assert result == self.plain
class TestAes(unittest.TestCase): key = "0123456789abcdef" IV = "1234567890abcdef" plain = t2b("now is the time ") cipher = h2b("959492575f4281532ccc9d4677a233cb") def setUp(self): self.aes = Aes.new(self.key, MODE_CBC, self.IV) def test_raises(self): # invalid key length self.assertRaises(ValueError, Aes.new, "key", MODE_CBC, self.IV) # invalid mode self.assertRaises(ValueError, Aes.new, self.key, MODE_ECB, self.IV) # invalid iv length self.assertRaises(ValueError, Aes.new, self.key, MODE_CBC, "IV") # invalid data length self.assertRaises(ValueError, self.aes.encrypt, "foo") self.assertRaises(ValueError, self.aes.decrypt, "bar") def test_single_encryption(self): assert self.aes.encrypt(self.plain) == self.cipher def test_multi_encryption(self): result = t2b("") segments = tuple(self.plain[i:i + self.aes.block_size] \ for i in range(0, len(self.plain), self.aes.block_size)) for segment in segments: result += self.aes.encrypt(segment) assert result == self.cipher def test_single_decryption(self): assert self.aes.decrypt(self.cipher) == self.plain def test_multi_decryption(self): result = t2b("") segments = tuple(self.cipher[i:i + self.aes.block_size] \ for i in range(0, len(self.cipher), self.aes.block_size)) for segment in segments: result += self.aes.decrypt(segment) assert result == self.plain
def signature_vectors(): TestVector = namedtuple( "TestVector", """data signature hash_cls pub_key priv_key""") TestVector.__new__.__defaults__ = (None, ) * len(TestVector._fields) vectors = [] with open(os.path.join(certs_dir, "server-keyPub.pem"), "rb") as f: pub_key_pem = f.read() with open(os.path.join(certs_dir, "server-key.pem"), "rb") as f: priv_key_pem = f.read() # Signature computed with: # echo -n "wolfcrypt is the best crypto around" | \ # openssl dgst -hex -sha256 -sign tests/certs/server-key.pem if _lib.ASN_ENABLED and _lib.SHA256_ENABLED and _lib.RSA_ENABLED: vectors.append( TestVector( data="wolfcrypt is the best crypto around", signature=h2b( "1d65f21df8fdc9f3c2351792840423481c6b0f2332105abd9248" "9e0dc8f6f8c740e267cf49f522f771eabd484f961eaf9f907c97" "b513bb9de7411b508c4e7ab7dc4438890ca161a9e24addaffd3c" "86821f2431f55fde5d131dfbe5805dea74e8882bfbfbf451f809" "ed792dfb0b17c799e6a39f866ed9cf613138c9e5e99f757ea13a" "2b9c167c294cd89f38365ab40175d4e29c24d672cd5ad2d57fec" "e9ea2b29c1866235c791ec5b635b858512c2b832b1b8f1dc6854" "cd4927df5519eefee439848c7f109548b3a3c8265658e009899a" "51a4edaf9f1199f93e448482f27c43a53e0bc65b04e9848128e3" "60314e864190e6bb9812bfbf4b40994f2c1d4ca7aad9"), hash_cls=Sha256, pub_key=RsaPublic.from_pem(pub_key_pem), priv_key=RsaPrivate.from_pem(priv_key_pem))) return vectors
def setUp(self): self.rsa = RsaPrivate(h2b(self.key))
def setUp(self): self.private = RsaPrivate(h2b(self.prv)) self.public = RsaPublic(h2b(self.pub))
def vectors(): TestVector = namedtuple("TestVector", "key iv plaintext ciphertext raw_key") TestVector.__new__.__defaults__ = (None,) * len(TestVector._fields) return { Aes: TestVector( key="0123456789abcdef", iv="1234567890abcdef", plaintext=t2b("now is the time "), ciphertext=h2b("959492575f4281532ccc9d4677a233cb") ), Des3: TestVector( key=h2b("0123456789abcdeffedeba987654321089abcdef01234567"), iv=h2b("1234567890abcdef"), plaintext=t2b("Now is the time for all "), ciphertext=h2b("43a0297ed184f80e8964843212d508981894157487127db0") ), RsaPublic: TestVector( key=h2b( "30819F300D06092A864886F70D010101050003818D0030818902818100BC" "730EA849F374A2A9EF18A5DA559921F9C8ECB36D48E53535757737ECD161" "905F3ED9E4D5DF94CAC1A9D719DA86C9E84DC4613682FEABAD7E7725BB8D" "11A5BC623AA838CC39A20466B4F7F7F3AADA4D020EBB5E8D6948DC77C928" "0E22E96BA426BA4CE8C1FD4A6F2B1FEF8AAEF69062E5641EEB2B3C67C8DC" "2700F6916865A90203010001") ), RsaPrivate: TestVector( key=h2b( "3082025C02010002818100BC730EA849F374A2A9EF18A5DA559921F9C8EC" "B36D48E53535757737ECD161905F3ED9E4D5DF94CAC1A9D719DA86C9E84D" "C4613682FEABAD7E7725BB8D11A5BC623AA838CC39A20466B4F7F7F3AADA" "4D020EBB5E8D6948DC77C9280E22E96BA426BA4CE8C1FD4A6F2B1FEF8AAE" "F69062E5641EEB2B3C67C8DC2700F6916865A902030100010281801397EA" "E8387825A25C04CE0D407C31E5C470CD9B823B5809863B665FDC3190F14F" "D5DB15DDDED73B95933118310E5EA3D6A21A716E81481C4BCFDB8E7A8661" "32DCFB55C1166D279224458BF1B848B14B1DACDEDADD8E2FC291FBA5A96E" "F83A6AF1FD5018EF9FE7C3CA78EA56D3D3725B96DD4E064E3AC3D9BE72B6" "6507074C01024100FA47D47A7C923C55EF81F041302DA3CF8F1CE6872705" "700DDF9835D6F18B382F24B5D084B6794F7129945AF0646AACE772C6ED4D" "59983E673AF3742CF9611769024100C0C1820D0CEBC62FDC92F99D821A31" "E9E9F74BF282871CEE166AD11D188270F3C0B62FF6F3F71DF18623C84EEB" "8F568E8FF5BFF1F72BB5CC3DC657390C1B54410241009D7E05DEEDF4B7B2" "FBFC304B551DE32F0147966905CD0E2E2CBD8363B6AB7CB76DCA5B64A7CE" "BE86DF3B53DE61D21EEBA5F637EDACAB78D94CE755FBD71199C102401898" "1829E61E2739702168AC0A2FA172C121869538C65890A0579CBAE3A7B115" "C8DEF61BC2612376EFB09D1C44BE1343396717C89DCAFBF545648B38822C" "F28102403989E59C195530BAB7488C48140EF49F7E779743E1B419353123" "759C3B44AD691256EE0061641666D37C742B15B4A2FEBF086B1A5D3F9012" "B105863129DBD9E2") ), EccPublic: TestVector( key=h2b( "3059301306072A8648CE3D020106082A8648CE3D0301070342000455BFF4" "0F44509A3DCE9BB7F0C54DF5707BD4EC248E1980EC5A4CA22403622C9BDA" "EFA2351243847616C6569506CC01A9BDF6751A42F7BDA9B236225FC75D7F" "B4" ), raw_key=h2b( "55bff40f44509a3dce9bb7f0c54df5707bd4ec248e1980ec5a4ca22403622c9b" "daefa2351243847616c6569506cc01a9bdf6751a42f7bda9b236225fc75d7fb4" ) ), EccPrivate: TestVector( key=h2b( "30770201010420F8CF926BBD1E28F1A8ABA1234F3274188850AD7EC7EC92" "F88F974DAF568965C7A00A06082A8648CE3D030107A1440342000455BFF4" "0F44509A3DCE9BB7F0C54DF5707BD4EC248E1980EC5A4CA22403622C9BDA" "EFA2351243847616C6569506CC01A9BDF6751A42F7BDA9B236225FC75D7F" "B4" ), raw_key=h2b( "55bff40f44509a3dce9bb7f0c54df5707bd4ec248e1980ec5a4ca22403622c9b" "daefa2351243847616c6569506cc01a9bdf6751a42f7bda9b236225fc75d7fb4" "f8cf926bbd1e28f1a8aba1234f3274188850ad7ec7ec92f88f974daf568965c7" ) ), Ed25519Private: TestVector( key = h2b( "47CD22B276161AA18BA1E0D13DBE84FE4840E4395D784F555A92E8CF739B" "F86B" ) ), Ed25519Public: TestVector( key=h2b( "8498C65F4841145F9C51E8BFF4504B5527E0D5753964B7CB3C707A2B9747" "FC96" ) ) }
def vectors(): TestVector = namedtuple( "TestVector", """key iv plaintext ciphertext ciphertext_ctr raw_key pkcs8_key pem""") TestVector.__new__.__defaults__ = (None, ) * len(TestVector._fields) # test vector dictionary vectorArray = {} if _lib.AES_ENABLED: vectorArray[Aes] = TestVector( key="0123456789abcdef", iv="1234567890abcdef", plaintext=t2b("now is the time "), ciphertext=h2b("959492575f4281532ccc9d4677a233cb"), ciphertext_ctr=h2b('287528ddf484b1055debbe751eb52b8a')) if _lib.CHACHA_ENABLED: vectorArray[ChaCha] = TestVector( key="0123456789abcdef01234567890abcdef", iv="1234567890abcdef", ) if _lib.DES3_ENABLED: vectorArray[Des3] = TestVector( key=h2b("0123456789abcdeffedeba987654321089abcdef01234567"), iv=h2b("1234567890abcdef"), plaintext=t2b("Now is the time for all "), ciphertext=h2b("43a0297ed184f80e8964843212d508981894157487127db0")) if _lib.RSA_ENABLED: vectorArray[RsaPublic] = TestVector(key=h2b( "30819F300D06092A864886F70D010101050003818D0030818902818100BC" "730EA849F374A2A9EF18A5DA559921F9C8ECB36D48E53535757737ECD161" "905F3ED9E4D5DF94CAC1A9D719DA86C9E84DC4613682FEABAD7E7725BB8D" "11A5BC623AA838CC39A20466B4F7F7F3AADA4D020EBB5E8D6948DC77C928" "0E22E96BA426BA4CE8C1FD4A6F2B1FEF8AAEF69062E5641EEB2B3C67C8DC" "2700F6916865A90203010001"), pem=os.path.join( certs_dir, "server-keyPub.pem")) vectorArray[RsaPrivate] = TestVector( key=h2b( "3082025C02010002818100BC730EA849F374A2A9EF18A5DA559921F9C8EC" "B36D48E53535757737ECD161905F3ED9E4D5DF94CAC1A9D719DA86C9E84D" "C4613682FEABAD7E7725BB8D11A5BC623AA838CC39A20466B4F7F7F3AADA" "4D020EBB5E8D6948DC77C9280E22E96BA426BA4CE8C1FD4A6F2B1FEF8AAE" "F69062E5641EEB2B3C67C8DC2700F6916865A902030100010281801397EA" "E8387825A25C04CE0D407C31E5C470CD9B823B5809863B665FDC3190F14F" "D5DB15DDDED73B95933118310E5EA3D6A21A716E81481C4BCFDB8E7A8661" "32DCFB55C1166D279224458BF1B848B14B1DACDEDADD8E2FC291FBA5A96E" "F83A6AF1FD5018EF9FE7C3CA78EA56D3D3725B96DD4E064E3AC3D9BE72B6" "6507074C01024100FA47D47A7C923C55EF81F041302DA3CF8F1CE6872705" "700DDF9835D6F18B382F24B5D084B6794F7129945AF0646AACE772C6ED4D" "59983E673AF3742CF9611769024100C0C1820D0CEBC62FDC92F99D821A31" "E9E9F74BF282871CEE166AD11D188270F3C0B62FF6F3F71DF18623C84EEB" "8F568E8FF5BFF1F72BB5CC3DC657390C1B54410241009D7E05DEEDF4B7B2" "FBFC304B551DE32F0147966905CD0E2E2CBD8363B6AB7CB76DCA5B64A7CE" "BE86DF3B53DE61D21EEBA5F637EDACAB78D94CE755FBD71199C102401898" "1829E61E2739702168AC0A2FA172C121869538C65890A0579CBAE3A7B115" "C8DEF61BC2612376EFB09D1C44BE1343396717C89DCAFBF545648B38822C" "F28102403989E59C195530BAB7488C48140EF49F7E779743E1B419353123" "759C3B44AD691256EE0061641666D37C742B15B4A2FEBF086B1A5D3F9012" "B105863129DBD9E2"), pkcs8_key=h2b("30820276020100300d06092a864886f7" "0d0101010500048202603082025c0201" "0002818100bc730ea849f374a2a9ef18" "a5da559921f9c8ecb36d48e535357577" "37ecd161905f3ed9e4d5df94cac1a9d7" "19da86c9e84dc4613682feabad7e7725" "bb8d11a5bc623aa838cc39a20466b4f7" "f7f3aada4d020ebb5e8d6948dc77c928" "0e22e96ba426ba4ce8c1fd4a6f2b1fef" "8aaef69062e5641eeb2b3c67c8dc2700" "f6916865a902030100010281801397ea" "e8387825a25c04ce0d407c31e5c470cd" "9b823b5809863b665fdc3190f14fd5db" "15ddded73b95933118310e5ea3d6a21a" "716e81481c4bcfdb8e7a866132dcfb55" "c1166d279224458bf1b848b14b1dacde" "dadd8e2fc291fba5a96ef83a6af1fd50" "18ef9fe7c3ca78ea56d3d3725b96dd4e" "064e3ac3d9be72b66507074c01024100" "fa47d47a7c923c55ef81f041302da3cf" "8f1ce6872705700ddf9835d6f18b382f" "24b5d084b6794f7129945af0646aace7" "72c6ed4d59983e673af3742cf9611769" "024100c0c1820d0cebc62fdc92f99d82" "1a31e9e9f74bf282871cee166ad11d18" "8270f3c0b62ff6f3f71df18623c84eeb" "8f568e8ff5bff1f72bb5cc3dc657390c" "1b54410241009d7e05deedf4b7b2fbfc" "304b551de32f0147966905cd0e2e2cbd" "8363b6ab7cb76dca5b64a7cebe86df3b" "53de61d21eeba5f637edacab78d94ce7" "55fbd71199c1024018981829e61e2739" "702168ac0a2fa172c121869538c65890" "a0579cbae3a7b115c8def61bc2612376" "efb09d1c44be1343396717c89dcafbf5" "45648b38822cf28102403989e59c1955" "30bab7488c48140ef49f7e779743e1b4" "19353123759c3b44ad691256ee006164" "1666d37c742b15b4a2febf086b1a5d3f" "9012b105863129dbd9e2"), pem=os.path.join(certs_dir, "server-key.pem")) if _lib.ECC_ENABLED: vectorArray[EccPublic] = TestVector( key=h2b( "3059301306072A8648CE3D020106082A8648CE3D0301070342000455BFF4" "0F44509A3DCE9BB7F0C54DF5707BD4EC248E1980EC5A4CA22403622C9BDA" "EFA2351243847616C6569506CC01A9BDF6751A42F7BDA9B236225FC75D7F" "B4"), raw_key=h2b( "55bff40f44509a3dce9bb7f0c54df5707bd4ec248e1980ec5a4ca22403622c9b" "daefa2351243847616c6569506cc01a9bdf6751a42f7bda9b236225fc75d7fb4" )) vectorArray[EccPrivate] = TestVector( key=h2b( "30770201010420F8CF926BBD1E28F1A8ABA1234F3274188850AD7EC7EC92" "F88F974DAF568965C7A00A06082A8648CE3D030107A1440342000455BFF4" "0F44509A3DCE9BB7F0C54DF5707BD4EC248E1980EC5A4CA22403622C9BDA" "EFA2351243847616C6569506CC01A9BDF6751A42F7BDA9B236225FC75D7F" "B4"), raw_key=h2b( "55bff40f44509a3dce9bb7f0c54df5707bd4ec248e1980ec5a4ca22403622c9b" "daefa2351243847616c6569506cc01a9bdf6751a42f7bda9b236225fc75d7fb4" "f8cf926bbd1e28f1a8aba1234f3274188850ad7ec7ec92f88f974daf568965c7" )) if _lib.ED25519_ENABLED: vectorArray[Ed25519Private] = TestVector(key=h2b( "47CD22B276161AA18BA1E0D13DBE84FE4840E4395D784F555A92E8CF739B" "F86B")) vectorArray[Ed25519Public] = TestVector(key=h2b( "8498C65F4841145F9C51E8BFF4504B5527E0D5753964B7CB3C707A2B9747" "FC96")) if _lib.ED448_ENABLED: vectorArray[Ed448Private] = TestVector( key=h2b("c2b29804e9a893c9e275cac1f8a3033f3d4b78b79eb427ed359fdeb8" "82d657c129c7930936b181971b795167ad18cabeeb52b59b94f115ad" "59")) vectorArray[Ed448Public] = TestVector( key=h2b("89fb2b5a5ab67dd317794cc5f1700cace295b043f3ad73a66299e10a" "d3fc0a28289ddd1c641598a354113867a42e82ad844b4d858d92e4e7" "80")) return vectorArray
def test_hash_update_002(self): self.hash.update("wolf") self.hash.update("crypt") assert self.hash.hexdigest() == self.digest assert self.hash.digest() == h2b(self.digest)
def vectors(): TestVector = namedtuple("TestVector", "key iv plaintext ciphertext raw_key") TestVector.__new__.__defaults__ = (None,) * len(TestVector._fields) # test vector dictionary vectorArray = {} if _lib.AES_ENABLED: vectorArray[Aes]=TestVector( key="0123456789abcdef", iv="1234567890abcdef", plaintext=t2b("now is the time "), ciphertext=h2b("959492575f4281532ccc9d4677a233cb") ) if _lib.CHACHA_ENABLED: vectorArray[ChaCha]=TestVector( key="0123456789abcdef01234567890abcdef", iv="1234567890abcdef", ) if _lib.DES3_ENABLED: vectorArray[Des3]=TestVector( key=h2b("0123456789abcdeffedeba987654321089abcdef01234567"), iv=h2b("1234567890abcdef"), plaintext=t2b("Now is the time for all "), ciphertext=h2b("43a0297ed184f80e8964843212d508981894157487127db0") ) if _lib.RSA_ENABLED: vectorArray[RsaPublic]=TestVector( key=h2b( "30819F300D06092A864886F70D010101050003818D0030818902818100BC" "730EA849F374A2A9EF18A5DA559921F9C8ECB36D48E53535757737ECD161" "905F3ED9E4D5DF94CAC1A9D719DA86C9E84DC4613682FEABAD7E7725BB8D" "11A5BC623AA838CC39A20466B4F7F7F3AADA4D020EBB5E8D6948DC77C928" "0E22E96BA426BA4CE8C1FD4A6F2B1FEF8AAEF69062E5641EEB2B3C67C8DC" "2700F6916865A90203010001") ) vectorArray[RsaPrivate]=TestVector( key=h2b( "3082025C02010002818100BC730EA849F374A2A9EF18A5DA559921F9C8EC" "B36D48E53535757737ECD161905F3ED9E4D5DF94CAC1A9D719DA86C9E84D" "C4613682FEABAD7E7725BB8D11A5BC623AA838CC39A20466B4F7F7F3AADA" "4D020EBB5E8D6948DC77C9280E22E96BA426BA4CE8C1FD4A6F2B1FEF8AAE" "F69062E5641EEB2B3C67C8DC2700F6916865A902030100010281801397EA" "E8387825A25C04CE0D407C31E5C470CD9B823B5809863B665FDC3190F14F" "D5DB15DDDED73B95933118310E5EA3D6A21A716E81481C4BCFDB8E7A8661" "32DCFB55C1166D279224458BF1B848B14B1DACDEDADD8E2FC291FBA5A96E" "F83A6AF1FD5018EF9FE7C3CA78EA56D3D3725B96DD4E064E3AC3D9BE72B6" "6507074C01024100FA47D47A7C923C55EF81F041302DA3CF8F1CE6872705" "700DDF9835D6F18B382F24B5D084B6794F7129945AF0646AACE772C6ED4D" "59983E673AF3742CF9611769024100C0C1820D0CEBC62FDC92F99D821A31" "E9E9F74BF282871CEE166AD11D188270F3C0B62FF6F3F71DF18623C84EEB" "8F568E8FF5BFF1F72BB5CC3DC657390C1B54410241009D7E05DEEDF4B7B2" "FBFC304B551DE32F0147966905CD0E2E2CBD8363B6AB7CB76DCA5B64A7CE" "BE86DF3B53DE61D21EEBA5F637EDACAB78D94CE755FBD71199C102401898" "1829E61E2739702168AC0A2FA172C121869538C65890A0579CBAE3A7B115" "C8DEF61BC2612376EFB09D1C44BE1343396717C89DCAFBF545648B38822C" "F28102403989E59C195530BAB7488C48140EF49F7E779743E1B419353123" "759C3B44AD691256EE0061641666D37C742B15B4A2FEBF086B1A5D3F9012" "B105863129DBD9E2") ) if _lib.ECC_ENABLED: vectorArray[EccPublic]=TestVector( key=h2b( "3059301306072A8648CE3D020106082A8648CE3D0301070342000455BFF4" "0F44509A3DCE9BB7F0C54DF5707BD4EC248E1980EC5A4CA22403622C9BDA" "EFA2351243847616C6569506CC01A9BDF6751A42F7BDA9B236225FC75D7F" "B4" ), raw_key=h2b( "55bff40f44509a3dce9bb7f0c54df5707bd4ec248e1980ec5a4ca22403622c9b" "daefa2351243847616c6569506cc01a9bdf6751a42f7bda9b236225fc75d7fb4" ) ) vectorArray[EccPrivate]=TestVector( key=h2b( "30770201010420F8CF926BBD1E28F1A8ABA1234F3274188850AD7EC7EC92" "F88F974DAF568965C7A00A06082A8648CE3D030107A1440342000455BFF4" "0F44509A3DCE9BB7F0C54DF5707BD4EC248E1980EC5A4CA22403622C9BDA" "EFA2351243847616C6569506CC01A9BDF6751A42F7BDA9B236225FC75D7F" "B4" ), raw_key=h2b( "55bff40f44509a3dce9bb7f0c54df5707bd4ec248e1980ec5a4ca22403622c9b" "daefa2351243847616c6569506cc01a9bdf6751a42f7bda9b236225fc75d7fb4" "f8cf926bbd1e28f1a8aba1234f3274188850ad7ec7ec92f88f974daf568965c7" ) ) if _lib.ED25519_ENABLED: vectorArray[Ed25519Private]=TestVector( key = h2b( "47CD22B276161AA18BA1E0D13DBE84FE4840E4395D784F555A92E8CF739B" "F86B" ) ) vectorArray[Ed25519Public]=TestVector( key=h2b( "8498C65F4841145F9C51E8BFF4504B5527E0D5753964B7CB3C707A2B9747" "FC96" ) ) return vectorArray
"F18623C84EEB8F568E8FF5BFF1F72BB5CC3DC657390C1B54410241009D7E05DE" + "EDF4B7B2FBFC304B551DE32F0147966905CD0E2E2CBD8363B6AB7CB76DCA5B64" + "A7CEBE86DF3B53DE61D21EEBA5F637EDACAB78D94CE755FBD71199C102401898" + "1829E61E2739702168AC0A2FA172C121869538C65890A0579CBAE3A7B115C8DE" + "F61BC2612376EFB09D1C44BE1343396717C89DCAFBF545648B38822CF2810240" + "3989E59C195530BAB7488C48140EF49F7E779743E1B419353123759C3B44AD69" + "1256EE0061641666D37C742B15B4A2FEBF086B1A5D3F9012B105863129DBD9E2") public = ( "30819F300D06092A864886F70D010101050003818D0030818902818100BC730E" + "A849F374A2A9EF18A5DA559921F9C8ECB36D48E53535757737ECD161905F3ED9" + "E4D5DF94CAC1A9D719DA86C9E84DC4613682FEABAD7E7725BB8D11A5BC623AA8" + "38CC39A20466B4F7F7F3AADA4D020EBB5E8D6948DC77C9280E22E96BA426BA4C" + "E8C1FD4A6F2B1FEF8AAEF69062E5641EEB2B3C67C8DC2700F6916865A90203010001") prv = RsaPrivate(h2b(private)) pub = RsaPublic(h2b(public)) plaintext = "AgentBlueServer: :GetActiveHosts:JU13Tm0jqU1V2YAs:e9a7d3a0b6381315900b6539078a106e966c14c14e3006912260aa6572110d0a" ciphertext = pub.encrypt(plaintext) deciphertext = prv.decrypt(ciphertext) print(deciphertext.decode("utf-8"), end="\n\n") print(deciphertext.hex(), end="\n\n") print(bytes.fromhex(deciphertext.hex()).decode("utf-8"), end="\n\n") # signature = prv.sign(plaintext) # print(signature, end='\n\n') # print(signature.hex(), end='\n\n') # print(bytes.fromhex(signature.hex()), end='\n\n')