def encrypt_and_pack(plaintext: bytes, ring: Keyring, privkey: bytes) -> str: symm_ciphertext, symm_key = _symmetric_encrypt(plaintext) group_keys = ring.encrypt(symm_key) fmt, ciphertext_block = pack_keys_and_ciphertext(group_keys, symm_ciphertext) sig = asymmetric.sign(ciphertext_block, privkey) fmt, packed = pack_sig_and_block(fmt, sig, ciphertext_block) string_data_to_write = serialize_everything(fmt, packed) return string_data_to_write