pub struct PrivateKey { /* private fields */ }Implementations§
Source§impl PrivateKey
impl PrivateKey
Sourcepub fn type_id() -> usize
pub fn type_id() -> usize
Examples found in repository?
examples/15_key_encrypt_export.rs (line 34)
5fn main() -> Result<(), Box<dyn std::error::Error>> {
6 let private_key = PrivateKey::from_data(
7 &std::fs::read("tests/fixtures/test-key-rsa.pkcs1.der")?,
8 KeyType::Rsa,
9 2048,
10 )?;
11 let public_key = private_key.public_key()?;
12
13 let ciphertext = public_key.encrypt(
14 EncryptionAlgorithm::RsaEncryptionOaepSha256,
15 b"security-rs example",
16 )?;
17 let plaintext =
18 private_key.decrypt(EncryptionAlgorithm::RsaEncryptionOaepSha256, &ciphertext)?;
19 assert_eq!(plaintext, b"security-rs example");
20
21 let signature = private_key.sign(
22 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
23 b"security-rs example",
24 )?;
25 let certificate = Certificate::from_pem(&std::fs::read("tests/fixtures/test-cert.pem")?)?;
26 assert!(certificate.public_key()?.verify_signature(
27 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
28 b"security-rs example",
29 &signature,
30 )?);
31
32 println!(
33 "key_type_id={} block_size={} exported_private={} exported_public={}",
34 PrivateKey::type_id(),
35 public_key.block_size(),
36 private_key.external_representation()?.len(),
37 public_key.external_representation()?.len(),
38 );
39
40 Ok(())
41}Sourcepub fn from_data(
data: &[u8],
key_type: KeyType,
key_size_bits: usize,
) -> Result<Self>
pub fn from_data( data: &[u8], key_type: KeyType, key_size_bits: usize, ) -> Result<Self>
Examples found in repository?
examples/14_key_import_sign_verify.rs (lines 7-11)
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7 let raw_key = PrivateKey::from_data(
8 &support::fixture("test-key-rsa.pkcs1.der"),
9 KeyType::Rsa,
10 2048,
11 )?;
12 let signature = raw_key.sign(
13 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
14 b"security-rs",
15 )?;
16 let certificate = Certificate::from_pem(&support::fixture("test-cert.pem"))?;
17 let verified = certificate.public_key()?.verify_signature(
18 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
19 b"security-rs",
20 &signature,
21 )?;
22 println!("signature_len={} verified={verified}", signature.len());
23 Ok(())
24}More examples
examples/15_key_encrypt_export.rs (lines 6-10)
5fn main() -> Result<(), Box<dyn std::error::Error>> {
6 let private_key = PrivateKey::from_data(
7 &std::fs::read("tests/fixtures/test-key-rsa.pkcs1.der")?,
8 KeyType::Rsa,
9 2048,
10 )?;
11 let public_key = private_key.public_key()?;
12
13 let ciphertext = public_key.encrypt(
14 EncryptionAlgorithm::RsaEncryptionOaepSha256,
15 b"security-rs example",
16 )?;
17 let plaintext =
18 private_key.decrypt(EncryptionAlgorithm::RsaEncryptionOaepSha256, &ciphertext)?;
19 assert_eq!(plaintext, b"security-rs example");
20
21 let signature = private_key.sign(
22 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
23 b"security-rs example",
24 )?;
25 let certificate = Certificate::from_pem(&std::fs::read("tests/fixtures/test-cert.pem")?)?;
26 assert!(certificate.public_key()?.verify_signature(
27 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
28 b"security-rs example",
29 &signature,
30 )?);
31
32 println!(
33 "key_type_id={} block_size={} exported_private={} exported_public={}",
34 PrivateKey::type_id(),
35 public_key.block_size(),
36 private_key.external_representation()?.len(),
37 public_key.external_representation()?.len(),
38 );
39
40 Ok(())
41}pub fn import_item( data: &[u8], file_name_or_extension: Option<&str>, format: ExternalFormat, item_type: ExternalItemType, ) -> Result<Self>
pub fn import_pem(pem: &[u8]) -> Result<Self>
Sourcepub fn public_key(&self) -> Result<PublicKey>
pub fn public_key(&self) -> Result<PublicKey>
Examples found in repository?
examples/15_key_encrypt_export.rs (line 11)
5fn main() -> Result<(), Box<dyn std::error::Error>> {
6 let private_key = PrivateKey::from_data(
7 &std::fs::read("tests/fixtures/test-key-rsa.pkcs1.der")?,
8 KeyType::Rsa,
9 2048,
10 )?;
11 let public_key = private_key.public_key()?;
12
13 let ciphertext = public_key.encrypt(
14 EncryptionAlgorithm::RsaEncryptionOaepSha256,
15 b"security-rs example",
16 )?;
17 let plaintext =
18 private_key.decrypt(EncryptionAlgorithm::RsaEncryptionOaepSha256, &ciphertext)?;
19 assert_eq!(plaintext, b"security-rs example");
20
21 let signature = private_key.sign(
22 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
23 b"security-rs example",
24 )?;
25 let certificate = Certificate::from_pem(&std::fs::read("tests/fixtures/test-cert.pem")?)?;
26 assert!(certificate.public_key()?.verify_signature(
27 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
28 b"security-rs example",
29 &signature,
30 )?);
31
32 println!(
33 "key_type_id={} block_size={} exported_private={} exported_public={}",
34 PrivateKey::type_id(),
35 public_key.block_size(),
36 private_key.external_representation()?.len(),
37 public_key.external_representation()?.len(),
38 );
39
40 Ok(())
41}pub fn attributes(&self) -> Result<Value>
pub fn block_size(&self) -> usize
Sourcepub fn external_representation(&self) -> Result<Vec<u8>>
pub fn external_representation(&self) -> Result<Vec<u8>>
Examples found in repository?
examples/15_key_encrypt_export.rs (line 36)
5fn main() -> Result<(), Box<dyn std::error::Error>> {
6 let private_key = PrivateKey::from_data(
7 &std::fs::read("tests/fixtures/test-key-rsa.pkcs1.der")?,
8 KeyType::Rsa,
9 2048,
10 )?;
11 let public_key = private_key.public_key()?;
12
13 let ciphertext = public_key.encrypt(
14 EncryptionAlgorithm::RsaEncryptionOaepSha256,
15 b"security-rs example",
16 )?;
17 let plaintext =
18 private_key.decrypt(EncryptionAlgorithm::RsaEncryptionOaepSha256, &ciphertext)?;
19 assert_eq!(plaintext, b"security-rs example");
20
21 let signature = private_key.sign(
22 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
23 b"security-rs example",
24 )?;
25 let certificate = Certificate::from_pem(&std::fs::read("tests/fixtures/test-cert.pem")?)?;
26 assert!(certificate.public_key()?.verify_signature(
27 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
28 b"security-rs example",
29 &signature,
30 )?);
31
32 println!(
33 "key_type_id={} block_size={} exported_private={} exported_public={}",
34 PrivateKey::type_id(),
35 public_key.block_size(),
36 private_key.external_representation()?.len(),
37 public_key.external_representation()?.len(),
38 );
39
40 Ok(())
41}Sourcepub fn sign(
&self,
algorithm: SignatureAlgorithm,
data: &[u8],
) -> Result<Vec<u8>>
pub fn sign( &self, algorithm: SignatureAlgorithm, data: &[u8], ) -> Result<Vec<u8>>
Examples found in repository?
examples/14_key_import_sign_verify.rs (lines 12-15)
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7 let raw_key = PrivateKey::from_data(
8 &support::fixture("test-key-rsa.pkcs1.der"),
9 KeyType::Rsa,
10 2048,
11 )?;
12 let signature = raw_key.sign(
13 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
14 b"security-rs",
15 )?;
16 let certificate = Certificate::from_pem(&support::fixture("test-cert.pem"))?;
17 let verified = certificate.public_key()?.verify_signature(
18 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
19 b"security-rs",
20 &signature,
21 )?;
22 println!("signature_len={} verified={verified}", signature.len());
23 Ok(())
24}More examples
examples/15_key_encrypt_export.rs (lines 21-24)
5fn main() -> Result<(), Box<dyn std::error::Error>> {
6 let private_key = PrivateKey::from_data(
7 &std::fs::read("tests/fixtures/test-key-rsa.pkcs1.der")?,
8 KeyType::Rsa,
9 2048,
10 )?;
11 let public_key = private_key.public_key()?;
12
13 let ciphertext = public_key.encrypt(
14 EncryptionAlgorithm::RsaEncryptionOaepSha256,
15 b"security-rs example",
16 )?;
17 let plaintext =
18 private_key.decrypt(EncryptionAlgorithm::RsaEncryptionOaepSha256, &ciphertext)?;
19 assert_eq!(plaintext, b"security-rs example");
20
21 let signature = private_key.sign(
22 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
23 b"security-rs example",
24 )?;
25 let certificate = Certificate::from_pem(&std::fs::read("tests/fixtures/test-cert.pem")?)?;
26 assert!(certificate.public_key()?.verify_signature(
27 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
28 b"security-rs example",
29 &signature,
30 )?);
31
32 println!(
33 "key_type_id={} block_size={} exported_private={} exported_public={}",
34 PrivateKey::type_id(),
35 public_key.block_size(),
36 private_key.external_representation()?.len(),
37 public_key.external_representation()?.len(),
38 );
39
40 Ok(())
41}Sourcepub fn decrypt(
&self,
algorithm: EncryptionAlgorithm,
ciphertext: &[u8],
) -> Result<Vec<u8>>
pub fn decrypt( &self, algorithm: EncryptionAlgorithm, ciphertext: &[u8], ) -> Result<Vec<u8>>
Examples found in repository?
examples/15_key_encrypt_export.rs (line 18)
5fn main() -> Result<(), Box<dyn std::error::Error>> {
6 let private_key = PrivateKey::from_data(
7 &std::fs::read("tests/fixtures/test-key-rsa.pkcs1.der")?,
8 KeyType::Rsa,
9 2048,
10 )?;
11 let public_key = private_key.public_key()?;
12
13 let ciphertext = public_key.encrypt(
14 EncryptionAlgorithm::RsaEncryptionOaepSha256,
15 b"security-rs example",
16 )?;
17 let plaintext =
18 private_key.decrypt(EncryptionAlgorithm::RsaEncryptionOaepSha256, &ciphertext)?;
19 assert_eq!(plaintext, b"security-rs example");
20
21 let signature = private_key.sign(
22 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
23 b"security-rs example",
24 )?;
25 let certificate = Certificate::from_pem(&std::fs::read("tests/fixtures/test-cert.pem")?)?;
26 assert!(certificate.public_key()?.verify_signature(
27 SignatureAlgorithm::RsaSignatureMessagePkcs1v15Sha256,
28 b"security-rs example",
29 &signature,
30 )?);
31
32 println!(
33 "key_type_id={} block_size={} exported_private={} exported_public={}",
34 PrivateKey::type_id(),
35 public_key.block_size(),
36 private_key.external_representation()?.len(),
37 public_key.external_representation()?.len(),
38 );
39
40 Ok(())
41}Trait Implementations§
Auto Trait Implementations§
impl Freeze for PrivateKey
impl RefUnwindSafe for PrivateKey
impl !Send for PrivateKey
impl !Sync for PrivateKey
impl Unpin for PrivateKey
impl UnsafeUnpin for PrivateKey
impl UnwindSafe for PrivateKey
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