<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: 11.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 4.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CryptoTokenKit",
  "identifier" : "/documentation/CryptoTokenKit/TKSmartCardUserInteractionForPINOperation",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "CryptoTokenKit"
    ],
    "preciseIdentifier" : "c:objc(cs)TKSmartCardUserInteractionForPINOperation"
  },
  "title" : "TKSmartCardUserInteractionForPINOperation"
}
-->

# TKSmartCardUserInteractionForPINOperation

A representation of user interaction for secure PIN operations on a Smart Card reader.

```
class TKSmartCardUserInteractionForPINOperation
```

## Overview

There are two types of user interactions: those for secure PIN change and those for secure PIN validation. These interactions are instances of the [`TKSmartCardUserInteractionForSecurePINChange`](/documentation/CryptoTokenKit/TKSmartCardUserInteractionForSecurePINChange), or [`TKSmartCardUserInteractionForSecurePINVerification`](/documentation/CryptoTokenKit/TKSmartCardUserInteractionForSecurePINVerification) subclasses of [`TKSmartCardUserInteractionForPINOperation`](/documentation/CryptoTokenKit/TKSmartCardUserInteractionForPINOperation), respectively.

You interact with instances of one of the subclasses of [`TKSmartCardUserInteractionForPINOperation`](/documentation/CryptoTokenKit/TKSmartCardUserInteractionForPINOperation) when calling the [`userInteractionForSecurePINChange(_:apdu:currentPINByteOffset:newPINByteOffset:)`](/documentation/CryptoTokenKit/TKSmartCard/userInteractionForSecurePINChange(_:apdu:currentPINByteOffset:newPINByteOffset:)) and [`userInteractionForSecurePINVerification(_:apdu:pinByteOffset:)`](/documentation/CryptoTokenKit/TKSmartCard/userInteractionForSecurePINVerification(_:apdu:pinByteOffset:)) methods on an [`TKSmartCard`](/documentation/CryptoTokenKit/TKSmartCard) object.

The result of a user interaction is available once the interaction has completed.

## Topics

### Managing Pin Completion

[`pinCompletion`](/documentation/CryptoTokenKit/TKSmartCardUserInteractionForPINOperation/pinCompletion)

The conditions under which PIN entry should be considered complete.

[`TKSmartCardUserInteractionForPINOperation.Completion`](/documentation/CryptoTokenKit/TKSmartCardUserInteractionForPINOperation/Completion)

### Configuring Messages

[`pinMessageIndices`](/documentation/CryptoTokenKit/TKSmartCardUserInteractionForPINOperation/pinMessageIndices)

A list of message indices referring to a predefined message table, used to specify the type and number of messages displayed during the PIN operation. `nil` by default.

[`locale`](/documentation/CryptoTokenKit/TKSmartCardUserInteractionForPINOperation/locale)

The locale for the displayed messages. If `nil`, the user’s current locale is used. By default, this value is the current locale of the system.

### Accessing Response Data

[`resultSW`](/documentation/CryptoTokenKit/TKSmartCardUserInteractionForPINOperation/resultSW)

The SW1-SW2 status bytes.

[`resultData`](/documentation/CryptoTokenKit/TKSmartCardUserInteractionForPINOperation/resultData)

The returned data without SW1-SW2 bytes, if any.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)