pub struct OlmPkDecryption { /* private fields */ }Expand description
The decryption part of a PK encrypted channel.
Implementations§
Source§impl OlmPkDecryption
impl OlmPkDecryption
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new PK decryption object initializing the private key to a random value.
§Panics
NOT_ENOUGH_RANDOMif there’s not enough random data provided when creating the OlmPkDecryption object.- on malformed UTF-8 coding of the public key that is generated by libolm.
Sourcepub fn private_key_length() -> usize
pub fn private_key_length() -> usize
Get the number of bytes a private key needs to have.
Sourcepub fn from_bytes(bytes: &[u8]) -> Result<Self, OlmPkDecryptionError>
pub fn from_bytes(bytes: &[u8]) -> Result<Self, OlmPkDecryptionError>
Create a new PK decryption object from the given private key.
§Arguments
bytes- An array of random bytes, the number of bytes this method expects can be checked using theOlmPkDecryption::private_key_lengthmethod.
Warning: The caller needs to ensure that the passed in bytes are cryptographically sound.
§Panics
- on malformed UTF-8 coding of the public key that is generated by libolm.
Sourcepub fn pickle(&self, mode: PicklingMode) -> String
pub fn pickle(&self, mode: PicklingMode) -> String
Store a PkDecryption object.
Stores a OlmPkDecryption object as a base64 string. Encrypts the object
using the supplied passphrase. Returns a byte object containing the
base64 encoded string of the pickled session.
§Arguments
mode- The pickle mode that should be used to store the decryption object.
§Panics
OUTPUT_BUFFER_TOO_SMALLfor OlmSession’s pickled buffer- on malformed UTF-8 coding of the pickling provided by libolm
Sourcepub fn unpickle(
pickle: String,
mode: PicklingMode,
) -> Result<Self, OlmPkDecryptionError>
pub fn unpickle( pickle: String, mode: PicklingMode, ) -> Result<Self, OlmPkDecryptionError>
Restore a previously stored OlmPkDecryption object.
Creates a OlmPkDecryption object from a pickled base64 string. Decrypts
the pickled object using the supplied passphrase.
§Arguments
mode- The pickle mode that should be used to store the decryption object.
§C-API equivalent
olm_unpickle_pk_decryption
§Errors
BadAccountKeyif the key doesn’t match the one the account was encrypted withInvalidBase64if decoding the suppliedpickledstring slice fails
§Panics
- on malformed UTF-8 coding of the public key that is generated by libolm.
Sourcepub fn decrypt(
&self,
message: PkMessage,
) -> Result<String, OlmPkDecryptionError>
pub fn decrypt( &self, message: PkMessage, ) -> Result<String, OlmPkDecryptionError>
Decrypts a PK message using this decryption object.
Decoding is lossy, meaing if the decrypted plaintext contains invalid
UTF-8 symbols, they will be returned as U+FFFD (�).
§Arguments
message- The encrypted PkMessage that should be decrypted.
§C-API equivalent
olm_pk_decrypt
§Errors
InvalidBase64on invalid base64 coding for supplied argumentsBadMessageVersionon unsupported protocol versionBadMessageFormaton failing to decode the messageBadMessageMacon invalid message MAC
§Panics
OutputBufferTooSmallon plaintext output buffer
Sourcepub fn public_key(&self) -> &str
pub fn public_key(&self) -> &str
Get the public key of the decryption object.
This can be used to initialize a encryption object to encrypt messages for this decryption object.