def test_AsymCrypto_With_Seeded_Keypair(self): msg = "correct horse battery staple" nonce = pysodium.randombytes(pysodium.crypto_box_NONCEBYTES) pk, sk = pysodium.crypto_box_seed_keypair("howdy") c = pysodium.crypto_box_easy(msg, nonce, pk, sk) m = pysodium.crypto_box_open_easy(c, nonce, pk, sk) self.assertEqual(msg, m)
def encrypt(ssk, spk, rpk, msg): """ Encrypt a message using the provided information. """ ssk = base64.b64decode(ssk) rpk = base64.b64decode(rpk) nonce = pysodium.randombytes(pysodium.crypto_box_NONCEBYTES) enc = pysodium.crypto_box_easy(msg, nonce, rpk, ssk) nonce = base64.b64encode(nonce) enc = base64.b64encode(enc) # Return sender's public_key, nonce, and the encrypted message return b':'.join([spk, nonce, enc])