|
| 1 | +// RUN: %target-parse-verify-swift |
| 2 | + |
| 3 | +// REQUIRES: objc_interop |
| 4 | +// UNSUPPORTED: OS=watchos |
| 5 | +// UNSUPPORTED: OS=tvos |
| 6 | +// UNSUPPORTED: OS=ios |
| 7 | + |
| 8 | +import CryptoTokenKit |
| 9 | +import Security |
| 10 | + |
| 11 | +if #available(OSX 10.12, *) { |
| 12 | + struct TKSmartCardTest { |
| 13 | + func t1(manager: TKSmartCardSlotManager, name: String) { |
| 14 | + manager.getSlot(withName: name) { (slot: TKSmartCardSlot?) in |
| 15 | + let _: TKSmartCardSlot.State = slot!.state |
| 16 | + } |
| 17 | + } |
| 18 | + |
| 19 | + let p1 = TKSmartCardPINFormat.Charset.numeric |
| 20 | + let p2 = TKSmartCardPINFormat.Encoding.ascii |
| 21 | + let p3 = TKSmartCardPINFormat.Encoding.bcd |
| 22 | + let p4 = TKSmartCardPINFormat.Justification.left |
| 23 | + let p5 = TKSmartCardUserInteractionForPINOperation.Completion.key |
| 24 | + let p6 = TKSmartCardUserInteractionForSecurePINChange.Confirmation.current |
| 25 | + let p7 = TKSmartCardProtocol.t0 |
| 26 | + let p8 = TKSmartCardProtocol.t1 |
| 27 | + let p9 = TKSmartCardProtocol.t15 |
| 28 | + let p10 = TKSmartCardATR.InterfaceGroup() |
| 29 | + |
| 30 | + func t2(card: TKSmartCard) throws { |
| 31 | + card.isSensitive = card.isValid |
| 32 | + card.transmit(Data()) { (response: Data?, error: Error?) in |
| 33 | + } |
| 34 | + |
| 35 | + card.userInteractionForSecurePINVerification(TKSmartCardPINFormat(), |
| 36 | + apdu: Data(), pinByteOffset: 0) |
| 37 | + card.userInteractionForSecurePINChange(TKSmartCardPINFormat(), |
| 38 | + apdu: Data(), currentPINByteOffset: 0, newPINByteOffset: 0) |
| 39 | + |
| 40 | + card.send(ins: 0xa4, p1: 0x04, p2: 0x00, data:Data(), le: 0) { |
| 41 | + (response: Data?, sw: UInt16, error: Error?) in |
| 42 | + } |
| 43 | + |
| 44 | + card.send(ins: 0xa4, p1: 0x04, p2: 0x00, le: 0) { |
| 45 | + (response: Data?, sw: UInt16, error: Error?) in |
| 46 | + } |
| 47 | + |
| 48 | + card.send(ins: 0xa4, p1: 0x04, p2: 0x00, data:Data()) { |
| 49 | + (response: Data?, sw: UInt16, error: Error?) in |
| 50 | + } |
| 51 | + |
| 52 | + card.send(ins: 0xa4, p1: 0x04, p2: 0x00) { |
| 53 | + (response: Data?, sw: UInt16, error: Error?) in |
| 54 | + } |
| 55 | + |
| 56 | + let _: Int = try card.withSession() { |
| 57 | + let (_, _): (UInt16, Data) = try card.send(ins: 0xa4, p1: 0x04, |
| 58 | + p2: 0x00, data: Data(), le: 0) |
| 59 | + let (_, _): (UInt16, Data) = try card.send(ins: 0xa4, p1: 0x04, |
| 60 | + p2: 0x00, le: 0) |
| 61 | + let (_, _): (UInt16, Data) = try card.send(ins: 0xa4, p1: 0x04, |
| 62 | + p2: 0x00, data: Data()) |
| 63 | + let (_, _): (UInt16, Data) = try card.send(ins: 0xa4, p1: 0x04, |
| 64 | + p2: 0x00) |
| 65 | + return 1 |
| 66 | + } |
| 67 | + } |
| 68 | + } |
| 69 | + |
| 70 | + struct TKTokenTest { |
| 71 | + func f1(session: TKTokenSession, sessionDelegate: TKTokenSessionDelegate, |
| 72 | + algorithm: TKTokenSessionDelegate.KeyAlgorithm, |
| 73 | + parameters: TKTokenSessionDelegate.KeyExchangeParameters) throws { |
| 74 | + let _: Bool = sessionDelegate.tokenSession!(session, supports: .none, |
| 75 | + keyObjectID: "", algorithm: algorithm) |
| 76 | + let _: Data = try sessionDelegate.tokenSession!(session, sign: Data(), |
| 77 | + keyObjectID: "", algorithm: algorithm) |
| 78 | + let _: Data = try sessionDelegate.tokenSession!(session, decrypt: Data(), |
| 79 | + keyObjectID: "", algorithm: algorithm) |
| 80 | + let _: Data = try sessionDelegate.tokenSession!(session, |
| 81 | + performKeyExchange: Data(), keyObjectID: "", algorithm: algorithm, |
| 82 | + parameters: parameters) |
| 83 | + let _: Bool = algorithm.isAlgorithm(.rsaSignatureDigestPKCS1v15SHA1) |
| 84 | + let _: Bool = algorithm.supportsAlgorithm(.rsaSignatureDigestPKCS1v15SHA1) |
| 85 | + } |
| 86 | + |
| 87 | + func f2(token: TKToken, delegate: TKTokenDelegate) throws { |
| 88 | + let _: TKTokenSession = try delegate.createSession(token) |
| 89 | + } |
| 90 | + } |
| 91 | +} |
0 commit comments