pub struct LAPrivateKey { /* private fields */ }Expand description
Managed wrapper around Apple’s LAPrivateKey.
Implementations§
Source§impl LAPrivateKey
impl LAPrivateKey
Sourcepub fn public_key(&self) -> Result<LAPublicKey>
pub fn public_key(&self) -> Result<LAPublicKey>
Borrow the public-key counterpart of this private key.
§Errors
Returns an error if the Swift bridge rejects the request.
Sourcepub fn can_sign_using(&self, algorithm: &SecKeyAlgorithm) -> Result<bool>
pub fn can_sign_using(&self, algorithm: &SecKeyAlgorithm) -> Result<bool>
Check whether an algorithm can sign with this key.
§Errors
Returns an error if the Swift bridge rejects the request.
Examples found in repository?
examples/09_public_key.rs (line 29)
12fn main() -> Result<(), Box<dyn std::error::Error>> {
13 let store = LARightStore::shared()?;
14 let right = LARight::new()?;
15 let identifier = unique_identifier("public-key");
16
17 match store.save_right(&right, &identifier) {
18 Ok(persisted) => {
19 let public_key = persisted.public_key()?;
20 let sign = SecKeyAlgorithm::ecdsa_signature_message_x962_sha256();
21 let encrypt =
22 SecKeyAlgorithm::ecies_encryption_cofactor_variable_iv_x963_sha256_aes_gcm();
23
24 println!("public key bytes: {}", public_key.export_bytes()?.len());
25 println!("can verify: {}", public_key.can_verify_using(&sign)?);
26 println!("can encrypt: {}", public_key.can_encrypt_using(&encrypt)?);
27 println!(
28 "private key can sign: {}",
29 persisted.key()?.can_sign_using(&sign)?
30 );
31 store.remove_right(&persisted)?;
32 }
33 Err(error) => {
34 println!("public-key APIs need entitlements on many systems: {error}");
35 }
36 }
37
38 println!("✅ public-key smoke OK");
39 Ok(())
40}Sourcepub fn can_decrypt_using(&self, algorithm: &SecKeyAlgorithm) -> Result<bool>
pub fn can_decrypt_using(&self, algorithm: &SecKeyAlgorithm) -> Result<bool>
Check whether an algorithm can decrypt with this key.
§Errors
Returns an error if the Swift bridge rejects the request.
Sourcepub fn can_exchange_keys_using(
&self,
algorithm: &SecKeyAlgorithm,
) -> Result<bool>
pub fn can_exchange_keys_using( &self, algorithm: &SecKeyAlgorithm, ) -> Result<bool>
Check whether an algorithm can be used for key exchange.
§Errors
Returns an error if the Swift bridge rejects the request.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LAPrivateKey
impl RefUnwindSafe for LAPrivateKey
impl !Send for LAPrivateKey
impl !Sync for LAPrivateKey
impl Unpin for LAPrivateKey
impl UnsafeUnpin for LAPrivateKey
impl UnwindSafe for LAPrivateKey
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more