[][src]Struct pcsc::Card

pub struct Card { /* fields omitted */ }

A connection to a smart card.

This structure wraps SCARDHANDLE.

Methods

impl Card[src]

pub fn transaction(&mut self) -> Result<Transaction, Error>[src]

Start a new exclusive transaction with the card.

Operations on the card for the duration of the transaction can only be performed through the returned Transaction.

This function wraps SCardBeginTransaction (pcsclite, MSDN).

pub fn reconnect(
    &mut self,
    share_mode: ShareMode,
    preferred_protocols: Protocols,
    initialization: Disposition
) -> Result<(), Error>
[src]

Reconnect to the card.

This function wraps SCardReconnect (pcsclite, MSDN).

pub fn disconnect(self, disposition: Disposition) -> Result<(), (Card, Error)>[src]

Disconnect from the card.

In case of error, ownership of the card is returned to the caller.

This function wraps SCardDisconnect (pcsclite, MSDN).

Note

Card implements Drop which automatically disconnects the card using Disposition::ResetCard; you only need to call this function if you want to handle errors or use a different disposition method.

pub fn status(&self) -> Result<(Status, Protocol), Error>[src]

Deprecated since 2.3.0:

Not portable; use status2() instead.

Get current info on the card.

This function wraps SCardStatus (pcsclite, MSDN).

Deprecated

The Status return value is not portable to Windows.

The reader names and ATR return values are missing.

Use status2() instead.

pub fn status2<'names_buf, 'atr_buf>(
    &self,
    names_buffer: &'names_buf mut [u8],
    atr_buffer: &'atr_buf mut [u8]
) -> Result<CardStatus<'names_buf, 'atr_buf>, Error>
[src]

Get current info on the card.

names_buffer is a buffer that should be large enough to hold all of the reader names.

atr_buffer is a buffer that should be large enough to hold the ATR. The recommended size is MAX_ATR_SIZE, which should be always sufficent.

The function status2_len can be used to find the exact required lengths.

If the buffers are not large enough to hold all of the names or the ATR, Error::InsufficientBuffer is returned.

This function wraps SCardStatus (pcsclite, MSDN).

pub fn status2_len(&self) -> Result<(usize, usize), Error>[src]

Get the needed length of the names buffer (first result) and ATR buffer (second result) to be passed to status2.

This function wraps SCardStatus (pcsclite, MSDN).

pub fn get_attribute<'buf>(
    &self,
    attribute: Attribute,
    buffer: &'buf mut [u8]
) -> Result<&'buf [u8], Error>
[src]

Get an attribute of the card or card reader.

buffer is a buffer that should be large enough for the attribute data. The function get_attribute_len can be used to find the exact required length.

Returns a slice into buffer containing the attribute data.

If the buffer is not large enough, Error::InsufficientBuffer is returned.

This function wraps SCardGetAttrib (pcsclite, MSDN).

pub fn get_attribute_len(&self, attribute: Attribute) -> Result<usize, Error>[src]

Get the needed length of a buffer to be passed to get_attribute.

This function wraps SCardGetAttrib (pcsclite, MSDN).

pub fn set_attribute(
    &self,
    attribute: Attribute,
    attribute_data: &[u8]
) -> Result<(), Error>
[src]

Set an attribute of the card or card reader.

This function wraps SCardSetAttrib (pcsclite, MSDN).

pub fn transmit<'buf>(
    &self,
    send_buffer: &[u8],
    receive_buffer: &'buf mut [u8]
) -> Result<&'buf [u8], Error>
[src]

Transmit an APDU command to the card.

receive_buffer is a buffer that should be large enough to hold the APDU response.

Returns a slice into receive_buffer containing the APDU response.

If receive_buffer is not large enough to hold the APDU response, Error::InsufficientBuffer is returned.

This function wraps SCardTransmit (pcsclite, MSDN).

pub fn control<'buf>(
    &self,
    control_code: DWORD,
    send_buffer: &[u8],
    receive_buffer: &'buf mut [u8]
) -> Result<&'buf [u8], Error>
[src]

Sends a command directly to the reader (driver).

control_code is the reader-specific control code. You may need to pass it through the ctl_code() function, according to the driver documentation.

receive_buffer is a buffer that should be large enough to hold the response.

Returns a slice into receive_buffer containing the response.

If receive_buffer is not large enough to hold the response, Error::InsufficientBuffer is returned.

This function wraps SCardControl (pcsclite, MSDN).

Trait Implementations

impl Drop for Card[src]

impl Send for Card[src]

impl Sync for Card[src]

Auto Trait Implementations

impl RefUnwindSafe for Card

impl Unpin for Card

impl UnwindSafe for Card

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.