pub struct AuthenticationDeviceLinkRequest {
pub relying_party_uuid: String,
pub relying_party_name: String,
pub initial_callback_url: Option<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>>,
}Expand description
Authentication Device Link Request
This struct represents a request for authentication using a device link or qr code 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.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.
§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, AuthenticationDeviceLinkRequest};
use smart_id_rust_client::models::interaction::Interaction;
use smart_id_rust_client::models::signature::{HashingAlgorithm, SignatureAlgorithm};
fn create_authentication_request(cfg: &SmartIDConfig) -> Result<AuthenticationDeviceLinkRequest> {
let interactions = vec![Interaction::DisplayTextAndPIN {
display_text_60: "Authenticate to Application: Test".to_string(),
}];
AuthenticationDeviceLinkRequest::new(
cfg,
interactions,
SignatureAlgorithm::RsassaPss,
AuthenticationCertificateLevel::QUALIFIED,
Some("https://example.com/callback".to_string()),
HashingAlgorithm::sha_256
)
}Fields§
§relying_party_uuid: String§relying_party_name: String§initial_callback_url: Option<String>§certificate_level: AuthenticationCertificateLevel§signature_protocol: SignatureProtocol§signature_protocol_parameters: SignatureProtocolParameters§interactions: String§request_properties: Option<RequestProperties>§capabilities: Option<Vec<String>>Implementations§
Source§impl AuthenticationDeviceLinkRequest
Creates a new AuthenticationDeviceLinkRequest.
impl AuthenticationDeviceLinkRequest
Creates a new AuthenticationDeviceLinkRequest.
§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::{AuthenticationDeviceLinkRequest, 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<AuthenticationDeviceLinkRequest> {
let interactions = vec![Interaction::DisplayTextAndPIN {
display_text_60: "Authenticate to Application: Test".to_string(),
}];
AuthenticationDeviceLinkRequest::new(
cfg,
interactions,
SignatureAlgorithm::RsassaPss,
AuthenticationCertificateLevel::QUALIFIED,
Some("https://example.com/callback".to_string()),
HashingAlgorithm::sha_256
)
}pub fn new( cfg: &SmartIDConfig, interactions: Vec<Interaction>, signature_algorithm: SignatureAlgorithm, authentication_certificate_level: AuthenticationCertificateLevel, initial_callback_url: Option<String>, hash_algorithm: HashingAlgorithm, ) -> Result<Self>
Trait Implementations§
Source§impl Clone for AuthenticationDeviceLinkRequest
impl Clone for AuthenticationDeviceLinkRequest
Source§fn clone(&self) -> AuthenticationDeviceLinkRequest
fn clone(&self) -> AuthenticationDeviceLinkRequest
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 AuthenticationDeviceLinkRequest
impl<'de> Deserialize<'de> for AuthenticationDeviceLinkRequest
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 AuthenticationDeviceLinkRequest
impl PartialEq for AuthenticationDeviceLinkRequest
Source§fn eq(&self, other: &AuthenticationDeviceLinkRequest) -> bool
fn eq(&self, other: &AuthenticationDeviceLinkRequest) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for AuthenticationDeviceLinkRequest
Auto Trait Implementations§
impl Freeze for AuthenticationDeviceLinkRequest
impl RefUnwindSafe for AuthenticationDeviceLinkRequest
impl Send for AuthenticationDeviceLinkRequest
impl Sync for AuthenticationDeviceLinkRequest
impl Unpin for AuthenticationDeviceLinkRequest
impl UnsafeUnpin for AuthenticationDeviceLinkRequest
impl UnwindSafe for AuthenticationDeviceLinkRequest
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