objc2-crypto-token-kit 0.3.2

Bindings to the CryptoTokenKit framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

extern_class!(
    /// Provides a centralized management system for registering and unregistering smartcards
    /// using their token IDs.
    ///
    ///
    /// `Registered smartcard` keeps its itself accessible via Keychain and system will automatically
    /// invoke an NFC slot when a cryptographic operation is required and asks to provide the registered card.
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/cryptotokenkit/tksmartcardtokenregistrationmanager?language=objc)
    #[unsafe(super(NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct TKSmartCardTokenRegistrationManager;
);

unsafe impl Send for TKSmartCardTokenRegistrationManager {}

unsafe impl Sync for TKSmartCardTokenRegistrationManager {}

extern_conformance!(
    unsafe impl NSObjectProtocol for TKSmartCardTokenRegistrationManager {}
);

impl TKSmartCardTokenRegistrationManager {
    extern_methods!(
        /// Default instance of registration manager
        #[unsafe(method(defaultManager))]
        #[unsafe(method_family = none)]
        pub unsafe fn defaultManager() -> Retained<TKSmartCardTokenRegistrationManager>;

        /// Returns the tokenIDs of all currently registered smart card tokens
        #[unsafe(method(registeredSmartCardTokens))]
        #[unsafe(method_family = none)]
        pub unsafe fn registeredSmartCardTokens(&self) -> Retained<NSArray<NSString>>;

        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        /// Registers a smartcard with a specific token ID.
        ///
        /// Parameter `tokenID`: ID of the smartcard
        ///
        /// Parameter `promptMessage`: Message that will be shown in the presented system UI when an operation with this smartcard is requested.
        ///
        /// Parameter `error`: On failure, this parameter is set to error describing the failure. On success, it is set to 'nil'.
        ///
        /// In case the same tokenID is already registered, the registration data are overwritten.
        /// In case the smartcard with provided tokenID isn't found in the system, failure is returned.
        #[unsafe(method(registerSmartCardWithTokenID:promptMessage:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn registerSmartCardWithTokenID_promptMessage_error(
            &self,
            token_id: &NSString,
            prompt_message: &NSString,
        ) -> Result<(), Retained<NSError>>;

        /// Unregisters a smartcard for the provided token ID.
        ///
        /// Parameter `tokenID`: ID of the smartcard
        ///
        /// Parameter `error`: On failure, this parameter is set to error describing the failure. On success, it is set to 'nil'.
        ///
        /// In case the tokenID is not found, failure is returned.
        #[unsafe(method(unregisterSmartCardWithTokenID:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn unregisterSmartCardWithTokenID_error(
            &self,
            token_id: &NSString,
        ) -> Result<(), Retained<NSError>>;
    );
}

/// Methods declared on superclass `NSObject`.
impl TKSmartCardTokenRegistrationManager {
    extern_methods!(
        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new() -> Retained<Self>;
    );
}