Struct x509_parser::signature_algorithm::RsaSsaPssParams
source · pub struct RsaSsaPssParams<'a> { /* private fields */ }
Implementations§
source§impl<'a> RsaSsaPssParams<'a>
impl<'a> RsaSsaPssParams<'a>
sourcepub fn hash_algorithm(&self) -> Option<&AlgorithmIdentifier<'_>>
pub fn hash_algorithm(&self) -> Option<&AlgorithmIdentifier<'_>>
Get a reference to the rsa ssa pss params’s hash algorithm.
sourcepub fn hash_algorithm_oid(&self) -> &'a Oid<'_>
pub fn hash_algorithm_oid(&self) -> &'a Oid<'_>
Return the hash algorithm OID, or SHA1 if absent (RFC4055)
Examples found in repository?
examples/print-cert.rs (line 244)
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290
fn print_x509_signature_algorithm(signature_algorithm: &AlgorithmIdentifier, indent: usize) {
match SignatureAlgorithm::try_from(signature_algorithm) {
Ok(sig_alg) => {
print!(" Signature Algorithm: ");
match sig_alg {
SignatureAlgorithm::DSA => println!("DSA"),
SignatureAlgorithm::ECDSA => println!("ECDSA"),
SignatureAlgorithm::ED25519 => println!("ED25519"),
SignatureAlgorithm::RSA => println!("RSA"),
SignatureAlgorithm::RSASSA_PSS(params) => {
println!("RSASSA-PSS");
let indent_s = format!("{:indent$}", "", indent = indent + 2);
println!(
"{}Hash Algorithm: {}",
indent_s,
format_oid(params.hash_algorithm_oid()),
);
print!("{}Mask Generation Function: ", indent_s);
if let Ok(mask_gen) = params.mask_gen_algorithm() {
println!(
"{}/{}",
format_oid(&mask_gen.mgf),
format_oid(&mask_gen.hash),
);
} else {
println!("INVALID");
}
println!("{}Salt Length: {}", indent_s, params.salt_length());
}
SignatureAlgorithm::RSAAES_OAEP(params) => {
println!("RSAAES-OAEP");
let indent_s = format!("{:indent$}", "", indent = indent + 2);
println!(
"{}Hash Algorithm: {}",
indent_s,
format_oid(params.hash_algorithm_oid()),
);
print!("{}Mask Generation Function: ", indent_s);
if let Ok(mask_gen) = params.mask_gen_algorithm() {
println!(
"{}/{}",
format_oid(&mask_gen.mgf),
format_oid(&mask_gen.hash),
);
} else {
println!("INVALID");
}
println!(
"{}pSourceFunc: {}",
indent_s,
format_oid(¶ms.p_source_alg().algorithm),
);
}
}
}
Err(e) => {
eprintln!("Could not parse signature algorithm: {}", e);
println!(" Signature Algorithm:");
print_x509_digest_algorithm(signature_algorithm, indent);
}
}
}
sourcepub fn mask_gen_algorithm_raw(&self) -> Option<&AlgorithmIdentifier<'_>>
pub fn mask_gen_algorithm_raw(&self) -> Option<&AlgorithmIdentifier<'_>>
Get a reference to the rsa ssa pss params’s mask generation algorithm.
sourcepub fn mask_gen_algorithm(&self) -> Result<MaskGenAlgorithm<'_, '_>, X509Error>
pub fn mask_gen_algorithm(&self) -> Result<MaskGenAlgorithm<'_, '_>, X509Error>
Get the rsa ssa pss params’s mask generation algorithm.
If the algorithm encoding is invalid, raise an error InvalidAlgorithmIdentifier
Examples found in repository?
examples/print-cert.rs (line 247)
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290
fn print_x509_signature_algorithm(signature_algorithm: &AlgorithmIdentifier, indent: usize) {
match SignatureAlgorithm::try_from(signature_algorithm) {
Ok(sig_alg) => {
print!(" Signature Algorithm: ");
match sig_alg {
SignatureAlgorithm::DSA => println!("DSA"),
SignatureAlgorithm::ECDSA => println!("ECDSA"),
SignatureAlgorithm::ED25519 => println!("ED25519"),
SignatureAlgorithm::RSA => println!("RSA"),
SignatureAlgorithm::RSASSA_PSS(params) => {
println!("RSASSA-PSS");
let indent_s = format!("{:indent$}", "", indent = indent + 2);
println!(
"{}Hash Algorithm: {}",
indent_s,
format_oid(params.hash_algorithm_oid()),
);
print!("{}Mask Generation Function: ", indent_s);
if let Ok(mask_gen) = params.mask_gen_algorithm() {
println!(
"{}/{}",
format_oid(&mask_gen.mgf),
format_oid(&mask_gen.hash),
);
} else {
println!("INVALID");
}
println!("{}Salt Length: {}", indent_s, params.salt_length());
}
SignatureAlgorithm::RSAAES_OAEP(params) => {
println!("RSAAES-OAEP");
let indent_s = format!("{:indent$}", "", indent = indent + 2);
println!(
"{}Hash Algorithm: {}",
indent_s,
format_oid(params.hash_algorithm_oid()),
);
print!("{}Mask Generation Function: ", indent_s);
if let Ok(mask_gen) = params.mask_gen_algorithm() {
println!(
"{}/{}",
format_oid(&mask_gen.mgf),
format_oid(&mask_gen.hash),
);
} else {
println!("INVALID");
}
println!(
"{}pSourceFunc: {}",
indent_s,
format_oid(¶ms.p_source_alg().algorithm),
);
}
}
}
Err(e) => {
eprintln!("Could not parse signature algorithm: {}", e);
println!(" Signature Algorithm:");
print_x509_digest_algorithm(signature_algorithm, indent);
}
}
}
sourcepub fn salt_length(&self) -> u32
pub fn salt_length(&self) -> u32
Return the salt length
Examples found in repository?
examples/print-cert.rs (line 256)
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290
fn print_x509_signature_algorithm(signature_algorithm: &AlgorithmIdentifier, indent: usize) {
match SignatureAlgorithm::try_from(signature_algorithm) {
Ok(sig_alg) => {
print!(" Signature Algorithm: ");
match sig_alg {
SignatureAlgorithm::DSA => println!("DSA"),
SignatureAlgorithm::ECDSA => println!("ECDSA"),
SignatureAlgorithm::ED25519 => println!("ED25519"),
SignatureAlgorithm::RSA => println!("RSA"),
SignatureAlgorithm::RSASSA_PSS(params) => {
println!("RSASSA-PSS");
let indent_s = format!("{:indent$}", "", indent = indent + 2);
println!(
"{}Hash Algorithm: {}",
indent_s,
format_oid(params.hash_algorithm_oid()),
);
print!("{}Mask Generation Function: ", indent_s);
if let Ok(mask_gen) = params.mask_gen_algorithm() {
println!(
"{}/{}",
format_oid(&mask_gen.mgf),
format_oid(&mask_gen.hash),
);
} else {
println!("INVALID");
}
println!("{}Salt Length: {}", indent_s, params.salt_length());
}
SignatureAlgorithm::RSAAES_OAEP(params) => {
println!("RSAAES-OAEP");
let indent_s = format!("{:indent$}", "", indent = indent + 2);
println!(
"{}Hash Algorithm: {}",
indent_s,
format_oid(params.hash_algorithm_oid()),
);
print!("{}Mask Generation Function: ", indent_s);
if let Ok(mask_gen) = params.mask_gen_algorithm() {
println!(
"{}/{}",
format_oid(&mask_gen.mgf),
format_oid(&mask_gen.hash),
);
} else {
println!("INVALID");
}
println!(
"{}pSourceFunc: {}",
indent_s,
format_oid(¶ms.p_source_alg().algorithm),
);
}
}
}
Err(e) => {
eprintln!("Could not parse signature algorithm: {}", e);
println!(" Signature Algorithm:");
print_x509_digest_algorithm(signature_algorithm, indent);
}
}
}
sourcepub fn trailer_field(&self) -> u32
pub fn trailer_field(&self) -> u32
Return the trailer field (value must be 1
according to RFC4055)
Trait Implementations§
source§impl CheckDerConstraints for RsaSsaPssParams<'_>
impl CheckDerConstraints for RsaSsaPssParams<'_>
source§impl<'a> Debug for RsaSsaPssParams<'a>
impl<'a> Debug for RsaSsaPssParams<'a>
source§impl<'a> PartialEq for RsaSsaPssParams<'a>
impl<'a> PartialEq for RsaSsaPssParams<'a>
source§fn eq(&self, other: &RsaSsaPssParams<'a>) -> bool
fn eq(&self, other: &RsaSsaPssParams<'a>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<'a, 'b> TryFrom<&'b Any<'a>> for RsaSsaPssParams<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for RsaSsaPssParams<'a>
source§impl<'a> TryFrom<Any<'a>> for RsaSsaPssParams<'a>
impl<'a> TryFrom<Any<'a>> for RsaSsaPssParams<'a>
impl DerAutoDerive for RsaSsaPssParams<'_>
impl<'a> StructuralPartialEq for RsaSsaPssParams<'a>
Auto Trait Implementations§
impl<'a> RefUnwindSafe for RsaSsaPssParams<'a>
impl<'a> Send for RsaSsaPssParams<'a>
impl<'a> Sync for RsaSsaPssParams<'a>
impl<'a> Unpin for RsaSsaPssParams<'a>
impl<'a> UnwindSafe for RsaSsaPssParams<'a>
Blanket Implementations§
source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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