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_RANDOM
if 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_length
method.
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_SMALL
for 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
BadAccountKey
if the key doesn’t match the one the account was encrypted withInvalidBase64
if decoding the suppliedpickled
string 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
InvalidBase64
on invalid base64 coding for supplied argumentsBadMessageVersion
on unsupported protocol versionBadMessageFormat
on failing to decode the messageBadMessageMac
on invalid message MAC
§Panics
OutputBufferTooSmall
on 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.