pub struct AuthenticationNotificationRequest {
pub relying_party_uuid: String,
pub relying_party_name: String,
pub certificate_level: AuthenticationCertificateLevel,
pub signature_protocol: SignatureProtocol,
pub signature_protocol_parameters: SignatureProtocolParameters,
pub interactions: String,
pub request_properties: Option<RequestProperties>,
pub capabilities: Option<Vec<String>>,
pub vc_type: VCCodeType,
}Expand description
Authentication Notification Request
This struct represents a request for authentication using a push notification with the Smart ID service. It includes various parameters required for the authentication process.
§Properties
relying_party_uuid- The UUID of the relying party, provided by Smart ID.relying_party_name- The name of the relying party, provided by Smart ID.initial_callback_url- The initial callback URL for the authentication request, provided by Smart ID.certificate_level- The level of the certificate required for authentication.signature_protocol- The protocol used for the signature, currently only ACSP_V2 is supported.signature_protocol_parameters- The parameters for the signature protocol.signature_algorithm_parameters- The parameters for the signature algorithm.interactions- A vector of interactions allowed during the authentication session. At least one interaction is required.request_properties- Optional properties for the request.capabilities- Used only when agreed with Smart-ID provider. When omitted request capabilities are derived from certificateLevel parameter.vc_type- The type of the verification code used in the authentication request. Always numeric right now.
§Example
use smart_id_rust_client::error::Result;
use smart_id_rust_client::config::SmartIDConfig;
use smart_id_rust_client::models::api::authentication_session::{AuthenticationCertificateLevel, AuthenticationNotificationRequest};
use smart_id_rust_client::models::interaction::Interaction;
use smart_id_rust_client::models::signature::{HashingAlgorithm, SignatureAlgorithm};
fn create_authentication_request(cfg: &SmartIDConfig) -> Result<AuthenticationNotificationRequest> {
let interactions = vec![Interaction::DisplayTextAndPIN {
display_text_60: "Authenticate to Application: Test".to_string(),
}];
AuthenticationNotificationRequest::new(
cfg,
interactions,
SignatureAlgorithm::RsassaPss,
AuthenticationCertificateLevel::QUALIFIED,
HashingAlgorithm::sha_256,
)
}Fields§
§relying_party_uuid: String§relying_party_name: String§certificate_level: AuthenticationCertificateLevel§signature_protocol: SignatureProtocol§signature_protocol_parameters: SignatureProtocolParameters§interactions: String§request_properties: Option<RequestProperties>§capabilities: Option<Vec<String>>§vc_type: VCCodeTypeImplementations§
Source§impl AuthenticationNotificationRequest
Creates a new AuthenticationNotificationRequest.
impl AuthenticationNotificationRequest
Creates a new AuthenticationNotificationRequest.
§Arguments
cfg- The configuration for the Smart-ID service.interactions- A vector of interactions allowed during the authentication session. At least one interaction is required.signature_algorithm- The algorithm used for the signature.authentication_certificate_level- The level of the certificate required for authentication.initial_callback_url- The initial callback URL for the authentication request, provided by Smart ID.hash_algorithm- The hashing algorithm used for the signature request.
§Errors
Returns an error if no interactions are defined or if any interaction has invalid text length.
§Example
use smart_id_rust_client::error::Result;
use smart_id_rust_client::config::SmartIDConfig;
use smart_id_rust_client::models::api::authentication_session::{AuthenticationNotificationRequest, AuthenticationCertificateLevel};
use smart_id_rust_client::models::interaction::Interaction;
use smart_id_rust_client::models::signature::{HashingAlgorithm, SignatureAlgorithm};
fn create_authentication_request(cfg: &SmartIDConfig) -> Result<AuthenticationNotificationRequest> {
let interactions = vec![Interaction::DisplayTextAndPIN {
display_text_60: "Authenticate to Application: Test".to_string(),
}];
AuthenticationNotificationRequest::new(
cfg,
interactions,
SignatureAlgorithm::RsassaPss,
AuthenticationCertificateLevel::QUALIFIED,
HashingAlgorithm::sha_256,
)
}pub fn new( cfg: &SmartIDConfig, interactions: Vec<Interaction>, signature_algorithm: SignatureAlgorithm, authentication_certificate_level: AuthenticationCertificateLevel, hash_algorithm: HashingAlgorithm, ) -> Result<Self>
Trait Implementations§
Source§impl Clone for AuthenticationNotificationRequest
impl Clone for AuthenticationNotificationRequest
Source§fn clone(&self) -> AuthenticationNotificationRequest
fn clone(&self) -> AuthenticationNotificationRequest
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'de> Deserialize<'de> for AuthenticationNotificationRequest
impl<'de> Deserialize<'de> for AuthenticationNotificationRequest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for AuthenticationNotificationRequest
impl PartialEq for AuthenticationNotificationRequest
Source§fn eq(&self, other: &AuthenticationNotificationRequest) -> bool
fn eq(&self, other: &AuthenticationNotificationRequest) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for AuthenticationNotificationRequest
Auto Trait Implementations§
impl Freeze for AuthenticationNotificationRequest
impl RefUnwindSafe for AuthenticationNotificationRequest
impl Send for AuthenticationNotificationRequest
impl Sync for AuthenticationNotificationRequest
impl Unpin for AuthenticationNotificationRequest
impl UnsafeUnpin for AuthenticationNotificationRequest
impl UnwindSafe for AuthenticationNotificationRequest
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