@doko/react-native-yubikit 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +126 -0
  3. package/RNYubikit.podspec +22 -0
  4. package/android/build.gradle +63 -0
  5. package/android/src/main/AndroidManifest.xml +9 -0
  6. package/android/src/main/java/com/yubikit/YubiKitManagerHolder.kt +330 -0
  7. package/android/src/main/java/com/yubikit/YubikitCoreModule.kt +142 -0
  8. package/android/src/main/java/com/yubikit/YubikitFidoModule.kt +418 -0
  9. package/android/src/main/java/com/yubikit/YubikitManagementModule.kt +132 -0
  10. package/android/src/main/java/com/yubikit/YubikitOathModule.kt +224 -0
  11. package/android/src/main/java/com/yubikit/YubikitOpenPgpModule.kt +317 -0
  12. package/android/src/main/java/com/yubikit/YubikitPackage.kt +44 -0
  13. package/android/src/main/java/com/yubikit/YubikitPivModule.kt +310 -0
  14. package/android/src/main/java/com/yubikit/YubikitSupportModule.kt +108 -0
  15. package/android/src/main/java/com/yubikit/YubikitYubiOtpModule.kt +248 -0
  16. package/android/src/main/java/com/yubikit/utils/YubikitUtils.kt +321 -0
  17. package/ios/YubikitCore.h +5 -0
  18. package/ios/YubikitCore.mm +101 -0
  19. package/ios/YubikitDeviceInfoHelper.h +13 -0
  20. package/ios/YubikitDeviceInfoHelper.mm +110 -0
  21. package/ios/YubikitFido.h +5 -0
  22. package/ios/YubikitFido.mm +373 -0
  23. package/ios/YubikitManagement.h +5 -0
  24. package/ios/YubikitManagement.mm +153 -0
  25. package/ios/YubikitManager.h +27 -0
  26. package/ios/YubikitManager.m +169 -0
  27. package/ios/YubikitOath.h +5 -0
  28. package/ios/YubikitOath.mm +583 -0
  29. package/ios/YubikitOpenPgp.h +5 -0
  30. package/ios/YubikitOpenPgp.mm +210 -0
  31. package/ios/YubikitPiv.h +5 -0
  32. package/ios/YubikitPiv.mm +813 -0
  33. package/ios/YubikitSupport.h +5 -0
  34. package/ios/YubikitSupport.mm +58 -0
  35. package/ios/YubikitYubiOtp.h +5 -0
  36. package/ios/YubikitYubiOtp.mm +120 -0
  37. package/lib/module/core.js +34 -0
  38. package/lib/module/core.js.map +1 -0
  39. package/lib/module/fido.js +40 -0
  40. package/lib/module/fido.js.map +1 -0
  41. package/lib/module/hooks/index.js +5 -0
  42. package/lib/module/hooks/index.js.map +1 -0
  43. package/lib/module/hooks/use-yubikey.js +12 -0
  44. package/lib/module/hooks/use-yubikey.js.map +1 -0
  45. package/lib/module/hooks/yubikey-provider.js +85 -0
  46. package/lib/module/hooks/yubikey-provider.js.map +1 -0
  47. package/lib/module/index.js +12 -0
  48. package/lib/module/index.js.map +1 -0
  49. package/lib/module/management.js +17 -0
  50. package/lib/module/management.js.map +1 -0
  51. package/lib/module/oath.js +53 -0
  52. package/lib/module/oath.js.map +1 -0
  53. package/lib/module/openpgp.js +89 -0
  54. package/lib/module/openpgp.js.map +1 -0
  55. package/lib/module/package.json +1 -0
  56. package/lib/module/piv.js +71 -0
  57. package/lib/module/piv.js.map +1 -0
  58. package/lib/module/specs/NativeYubikitCore.js +10 -0
  59. package/lib/module/specs/NativeYubikitCore.js.map +1 -0
  60. package/lib/module/specs/NativeYubikitFido.js +5 -0
  61. package/lib/module/specs/NativeYubikitFido.js.map +1 -0
  62. package/lib/module/specs/NativeYubikitManagement.js +5 -0
  63. package/lib/module/specs/NativeYubikitManagement.js.map +1 -0
  64. package/lib/module/specs/NativeYubikitOath.js +5 -0
  65. package/lib/module/specs/NativeYubikitOath.js.map +1 -0
  66. package/lib/module/specs/NativeYubikitOpenPgp.js +5 -0
  67. package/lib/module/specs/NativeYubikitOpenPgp.js.map +1 -0
  68. package/lib/module/specs/NativeYubikitPiv.js +5 -0
  69. package/lib/module/specs/NativeYubikitPiv.js.map +1 -0
  70. package/lib/module/specs/NativeYubikitSupport.js +5 -0
  71. package/lib/module/specs/NativeYubikitSupport.js.map +1 -0
  72. package/lib/module/specs/NativeYubikitYubiOtp.js +5 -0
  73. package/lib/module/specs/NativeYubikitYubiOtp.js.map +1 -0
  74. package/lib/module/support.js +11 -0
  75. package/lib/module/support.js.map +1 -0
  76. package/lib/module/types.js +2 -0
  77. package/lib/module/types.js.map +1 -0
  78. package/lib/module/yubiotp.js +32 -0
  79. package/lib/module/yubiotp.js.map +1 -0
  80. package/lib/typescript/package.json +1 -0
  81. package/lib/typescript/src/core.d.ts +14 -0
  82. package/lib/typescript/src/core.d.ts.map +1 -0
  83. package/lib/typescript/src/fido.d.ts +24 -0
  84. package/lib/typescript/src/fido.d.ts.map +1 -0
  85. package/lib/typescript/src/hooks/index.d.ts +3 -0
  86. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  87. package/lib/typescript/src/hooks/use-yubikey.d.ts +3 -0
  88. package/lib/typescript/src/hooks/use-yubikey.d.ts.map +1 -0
  89. package/lib/typescript/src/hooks/yubikey-provider.d.ts +23 -0
  90. package/lib/typescript/src/hooks/yubikey-provider.d.ts.map +1 -0
  91. package/lib/typescript/src/index.d.ts +10 -0
  92. package/lib/typescript/src/index.d.ts.map +1 -0
  93. package/lib/typescript/src/management.d.ts +8 -0
  94. package/lib/typescript/src/management.d.ts.map +1 -0
  95. package/lib/typescript/src/oath.d.ts +20 -0
  96. package/lib/typescript/src/oath.d.ts.map +1 -0
  97. package/lib/typescript/src/openpgp.d.ts +35 -0
  98. package/lib/typescript/src/openpgp.d.ts.map +1 -0
  99. package/lib/typescript/src/piv.d.ts +26 -0
  100. package/lib/typescript/src/piv.d.ts.map +1 -0
  101. package/lib/typescript/src/specs/NativeYubikitCore.d.ts +49 -0
  102. package/lib/typescript/src/specs/NativeYubikitCore.d.ts.map +1 -0
  103. package/lib/typescript/src/specs/NativeYubikitFido.d.ts +121 -0
  104. package/lib/typescript/src/specs/NativeYubikitFido.d.ts.map +1 -0
  105. package/lib/typescript/src/specs/NativeYubikitManagement.d.ts +53 -0
  106. package/lib/typescript/src/specs/NativeYubikitManagement.d.ts.map +1 -0
  107. package/lib/typescript/src/specs/NativeYubikitOath.d.ts +70 -0
  108. package/lib/typescript/src/specs/NativeYubikitOath.d.ts.map +1 -0
  109. package/lib/typescript/src/specs/NativeYubikitOpenPgp.d.ts +53 -0
  110. package/lib/typescript/src/specs/NativeYubikitOpenPgp.d.ts.map +1 -0
  111. package/lib/typescript/src/specs/NativeYubikitPiv.d.ts +47 -0
  112. package/lib/typescript/src/specs/NativeYubikitPiv.d.ts.map +1 -0
  113. package/lib/typescript/src/specs/NativeYubikitSupport.d.ts +49 -0
  114. package/lib/typescript/src/specs/NativeYubikitSupport.d.ts.map +1 -0
  115. package/lib/typescript/src/specs/NativeYubikitYubiOtp.d.ts +45 -0
  116. package/lib/typescript/src/specs/NativeYubikitYubiOtp.d.ts.map +1 -0
  117. package/lib/typescript/src/support.d.ts +6 -0
  118. package/lib/typescript/src/support.d.ts.map +1 -0
  119. package/lib/typescript/src/types.d.ts +293 -0
  120. package/lib/typescript/src/types.d.ts.map +1 -0
  121. package/lib/typescript/src/yubiotp.d.ts +13 -0
  122. package/lib/typescript/src/yubiotp.d.ts.map +1 -0
  123. package/package.json +181 -0
  124. package/src/core.ts +58 -0
  125. package/src/fido.ts +112 -0
  126. package/src/hooks/index.tsx +2 -0
  127. package/src/hooks/use-yubikey.tsx +10 -0
  128. package/src/hooks/yubikey-provider.tsx +146 -0
  129. package/src/index.tsx +10 -0
  130. package/src/management.ts +44 -0
  131. package/src/oath.ts +134 -0
  132. package/src/openpgp.ts +220 -0
  133. package/src/piv.ts +193 -0
  134. package/src/specs/NativeYubikitCore.ts +68 -0
  135. package/src/specs/NativeYubikitFido.ts +149 -0
  136. package/src/specs/NativeYubikitManagement.ts +78 -0
  137. package/src/specs/NativeYubikitOath.ts +110 -0
  138. package/src/specs/NativeYubikitOpenPgp.ts +148 -0
  139. package/src/specs/NativeYubikitPiv.ts +108 -0
  140. package/src/specs/NativeYubikitSupport.ts +61 -0
  141. package/src/specs/NativeYubikitYubiOtp.ts +82 -0
  142. package/src/support.ts +18 -0
  143. package/src/types.ts +404 -0
  144. package/src/yubiotp.ts +96 -0
@@ -0,0 +1,5 @@
1
+ #import <YubikitSpec/YubikitSpec.h>
2
+
3
+ @interface YubikitSupport : NSObject <NativeYubikitSupportSpec>
4
+
5
+ @end
@@ -0,0 +1,58 @@
1
+ #import "YubikitSupport.h"
2
+ #import "YubikitDeviceInfoHelper.h"
3
+ #import "YubikitManager.h"
4
+ #import <YubiKit/YubiKit.h>
5
+
6
+ @implementation YubikitSupport
7
+
8
+ RCT_EXPORT_MODULE(YubikitSupport)
9
+
10
+ - (void)readInfo:(NSString *)deviceHandle
11
+ pid:(NSNumber *)pid
12
+ resolve:(RCTPromiseResolveBlock)resolve
13
+ reject:(RCTPromiseRejectBlock)reject {
14
+ id<YKFConnectionProtocol> connection = [[YubikitManager shared] connectionForHandle:deviceHandle];
15
+ if (connection == nil) {
16
+ reject(@"CONNECTION_ERROR", @"No device found for handle", nil);
17
+ return;
18
+ }
19
+
20
+ [connection managementSession:^(YKFManagementSession *_Nullable session, NSError *_Nullable error) {
21
+ if (error || session == nil) {
22
+ reject(@"SUPPORT_ERROR", error ? error.localizedDescription : @"Management session not available", error);
23
+ return;
24
+ }
25
+
26
+ [session getDeviceInfoWithCompletion:^(YKFManagementDeviceInfo *_Nullable deviceInfo, NSError *_Nullable error) {
27
+ if (error || deviceInfo == nil) {
28
+ reject(@"SUPPORT_ERROR", error ? error.localizedDescription : @"Failed to read device info", error);
29
+ return;
30
+ }
31
+
32
+ resolve([YubikitDeviceInfoHelper dictionaryFromDeviceInfo:deviceInfo]);
33
+ }];
34
+ }];
35
+ }
36
+
37
+ - (NSString *)getName:(JS::NativeYubikitSupport::DeviceInfo &)info
38
+ keyType:(NSString *)keyType {
39
+ NSString *formFactor = info.formFactor();
40
+ // USB_A_KEYCHAIN and USB_C_KEYCHAIN are shared by both NFC and non-NFC Yubico
41
+ // SKUs, so form factor alone can't tell them apart - hasTransportNfc must be
42
+ // checked, same as the Android SDK's own DeviceUtil.getName() does.
43
+ BOOL hasNfc = info.hasTransportNfc();
44
+ if ([formFactor isEqualToString:@"USB_A_KEYCHAIN"]) return hasNfc ? @"YubiKey 5 NFC" : @"YubiKey 5 A";
45
+ if ([formFactor isEqualToString:@"USB_A_NANO"]) return @"YubiKey 5 Nano";
46
+ if ([formFactor isEqualToString:@"USB_C_KEYCHAIN"]) return hasNfc ? @"YubiKey 5C NFC" : @"YubiKey 5C";
47
+ if ([formFactor isEqualToString:@"USB_C_NANO"]) return @"YubiKey 5C Nano";
48
+ if ([formFactor isEqualToString:@"USB_C_LIGHTNING"]) return @"YubiKey 5Ci";
49
+ if ([formFactor isEqualToString:@"USB_A_BIO"]) return @"YubiKey Bio";
50
+ if ([formFactor isEqualToString:@"USB_C_BIO"]) return @"YubiKey C Bio";
51
+ return @"YubiKey";
52
+ }
53
+
54
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params {
55
+ return std::make_shared<facebook::react::NativeYubikitSupportSpecJSI>(params);
56
+ }
57
+
58
+ @end
@@ -0,0 +1,5 @@
1
+ #import <YubikitSpec/YubikitSpec.h>
2
+
3
+ @interface YubikitYubiOtp : NSObject <NativeYubikitYubiOtpSpec>
4
+
5
+ @end
@@ -0,0 +1,120 @@
1
+ #import "YubikitYubiOtp.h"
2
+ #import "YubikitManager.h"
3
+ #import <YubiKit/YubiKit.h>
4
+
5
+ @implementation YubikitYubiOtp
6
+
7
+ #pragma mark - Helpers
8
+
9
+ - (id<YKFConnectionProtocol>)connectionForHandle:(NSString *)deviceHandle
10
+ reject:(RCTPromiseRejectBlock)reject {
11
+ id<YKFConnectionProtocol> connection = [[YubikitManager shared] connectionForHandle:deviceHandle];
12
+ if (connection == nil) {
13
+ reject(@"CONNECTION_ERROR", @"No device found for handle", nil);
14
+ }
15
+ return connection;
16
+ }
17
+
18
+ - (YKFSlot)slotFromString:(NSString *)slot {
19
+ return [slot isEqualToString:@"TWO"] ? YKFSlotTwo : YKFSlotOne;
20
+ }
21
+
22
+ RCT_EXPORT_MODULE(YubikitYubiOtp)
23
+
24
+ - (void)getConfigurationState:(NSString *)deviceHandle
25
+ resolve:(RCTPromiseResolveBlock)resolve
26
+ reject:(RCTPromiseRejectBlock)reject {
27
+ reject(@"YUBIOTP_ERROR", @"Not implemented on iOS", nil);
28
+ }
29
+
30
+ - (void)getVersion:(NSString *)deviceHandle
31
+ resolve:(RCTPromiseResolveBlock)resolve
32
+ reject:(RCTPromiseRejectBlock)reject {
33
+ reject(@"YUBIOTP_ERROR", @"Not implemented on iOS", nil);
34
+ }
35
+
36
+ - (void)getSerialNumber:(NSString *)deviceHandle
37
+ resolve:(RCTPromiseResolveBlock)resolve
38
+ reject:(RCTPromiseRejectBlock)reject {
39
+ reject(@"YUBIOTP_ERROR", @"Not implemented on iOS", nil);
40
+ }
41
+
42
+ - (void)swapConfigurations:(NSString *)deviceHandle
43
+ resolve:(RCTPromiseResolveBlock)resolve
44
+ reject:(RCTPromiseRejectBlock)reject {
45
+ reject(@"YUBIOTP_ERROR", @"Not implemented on iOS", nil);
46
+ }
47
+
48
+ - (void)deleteConfiguration:(NSString *)deviceHandle
49
+ slot:(NSString *)slot
50
+ currentAccessCode:(NSString *)currentAccessCode
51
+ resolve:(RCTPromiseResolveBlock)resolve
52
+ reject:(RCTPromiseRejectBlock)reject {
53
+ reject(@"YUBIOTP_ERROR", @"Not implemented on iOS", nil);
54
+ }
55
+
56
+ - (void)putConfiguration:(NSString *)deviceHandle
57
+ slot:(NSString *)slot
58
+ configuration:(JS::NativeYubikitYubiOtp::OtpSlotConfiguration &)configuration
59
+ accessCode:(NSString *)accessCode
60
+ currentAccessCode:(NSString *)currentAccessCode
61
+ resolve:(RCTPromiseResolveBlock)resolve
62
+ reject:(RCTPromiseRejectBlock)reject {
63
+ reject(@"YUBIOTP_ERROR", @"Not implemented on iOS", nil);
64
+ }
65
+
66
+ - (void)updateConfiguration:(NSString *)deviceHandle
67
+ slot:(NSString *)slot
68
+ configuration:(JS::NativeYubikitYubiOtp::OtpSlotConfiguration &)configuration
69
+ accessCode:(NSString *)accessCode
70
+ currentAccessCode:(NSString *)currentAccessCode
71
+ resolve:(RCTPromiseResolveBlock)resolve
72
+ reject:(RCTPromiseRejectBlock)reject {
73
+ reject(@"YUBIOTP_ERROR", @"Not implemented on iOS", nil);
74
+ }
75
+
76
+ - (void)setNdefConfiguration:(NSString *)deviceHandle
77
+ slot:(NSString *)slot
78
+ uri:(NSString *)uri
79
+ currentAccessCode:(NSString *)currentAccessCode
80
+ resolve:(RCTPromiseResolveBlock)resolve
81
+ reject:(RCTPromiseRejectBlock)reject {
82
+ reject(@"YUBIOTP_ERROR", @"Not implemented on iOS", nil);
83
+ }
84
+
85
+ - (void)calculateHmacSha1:(NSString *)deviceHandle
86
+ slot:(NSString *)slot
87
+ challenge:(NSString *)challenge
88
+ resolve:(RCTPromiseResolveBlock)resolve
89
+ reject:(RCTPromiseRejectBlock)reject {
90
+ id<YKFConnectionProtocol> connection = [self connectionForHandle:deviceHandle reject:reject];
91
+ if (!connection) return;
92
+
93
+ NSData *challengeData = [[NSData alloc] initWithBase64EncodedString:challenge options:0];
94
+ if (challengeData == nil) {
95
+ reject(@"YUBIOTP_ERROR", @"Invalid base64 challenge", nil);
96
+ return;
97
+ }
98
+
99
+ [connection challengeResponseSession:^(YKFChallengeResponseSession *_Nullable session, NSError *_Nullable error) {
100
+ if (error || session == nil) {
101
+ reject(@"YUBIOTP_ERROR", error ? error.localizedDescription : @"Challenge-response session not available", error);
102
+ return;
103
+ }
104
+ [session sendChallenge:challengeData
105
+ slot:[self slotFromString:slot]
106
+ completion:^(NSData *_Nullable response, NSError *_Nullable error) {
107
+ if (error) {
108
+ reject(@"YUBIOTP_ERROR", error.localizedDescription, error);
109
+ return;
110
+ }
111
+ resolve([response base64EncodedStringWithOptions:0]);
112
+ }];
113
+ }];
114
+ }
115
+
116
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params {
117
+ return std::make_shared<facebook::react::NativeYubikitYubiOtpSpecJSI>(params);
118
+ }
119
+
120
+ @end
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ import NativeYubikitCore from "./specs/NativeYubikitCore.js";
4
+ export function startUsbDiscovery(config) {
5
+ NativeYubikitCore.startUsbDiscovery(config ?? {});
6
+ }
7
+ export function stopUsbDiscovery() {
8
+ NativeYubikitCore.stopUsbDiscovery();
9
+ }
10
+ export function startNfcDiscovery(config) {
11
+ NativeYubikitCore.startNfcDiscovery(config ?? {});
12
+ }
13
+ export function stopNfcDiscovery() {
14
+ NativeYubikitCore.stopNfcDiscovery();
15
+ }
16
+ export function requestConnection(deviceHandle, connectionType) {
17
+ return NativeYubikitCore.requestConnection(deviceHandle, connectionType);
18
+ }
19
+ export function sendApdu(connectionHandle, apdu) {
20
+ return NativeYubikitCore.sendApdu(connectionHandle, apdu);
21
+ }
22
+ export function closeConnection(connectionHandle) {
23
+ NativeYubikitCore.closeConnection(connectionHandle);
24
+ }
25
+ export function getDiscoveredDevices() {
26
+ return NativeYubikitCore.getDiscoveredDevices();
27
+ }
28
+ export function addYubiKeyListener(listener) {
29
+ return NativeYubikitCore.onYubiKeyEvent(payload => {
30
+ listener(payload);
31
+ });
32
+ }
33
+ export { NativeYubikitCore };
34
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeYubikitCore","startUsbDiscovery","config","stopUsbDiscovery","startNfcDiscovery","stopNfcDiscovery","requestConnection","deviceHandle","connectionType","sendApdu","connectionHandle","apdu","closeConnection","getDiscoveredDevices","addYubiKeyListener","listener","onYubiKeyEvent","payload"],"sourceRoot":"../../src","sources":["core.ts"],"mappings":";;AAAA,OAAOA,iBAAiB,MAAM,8BAA2B;AAWzD,OAAO,SAASC,iBAAiBA,CAACC,MAAyB,EAAQ;EACjEF,iBAAiB,CAACC,iBAAiB,CAACC,MAAM,IAAI,CAAC,CAAC,CAAC;AACnD;AAEA,OAAO,SAASC,gBAAgBA,CAAA,EAAS;EACvCH,iBAAiB,CAACG,gBAAgB,CAAC,CAAC;AACtC;AAEA,OAAO,SAASC,iBAAiBA,CAACF,MAAyB,EAAQ;EACjEF,iBAAiB,CAACI,iBAAiB,CAACF,MAAM,IAAI,CAAC,CAAC,CAAC;AACnD;AAEA,OAAO,SAASG,gBAAgBA,CAAA,EAAS;EACvCL,iBAAiB,CAACK,gBAAgB,CAAC,CAAC;AACtC;AAEA,OAAO,SAASC,iBAAiBA,CAC/BC,YAAoB,EACpBC,cAA8B,EACb;EACjB,OAAOR,iBAAiB,CAACM,iBAAiB,CAACC,YAAY,EAAEC,cAAc,CAAC;AAC1E;AAEA,OAAO,SAASC,QAAQA,CACtBC,gBAAwB,EACxBC,IAAkB,EACK;EACvB,OAAOX,iBAAiB,CAACS,QAAQ,CAACC,gBAAgB,EAAEC,IAAI,CAAC;AAC3D;AAEA,OAAO,SAASC,eAAeA,CAACF,gBAAwB,EAAQ;EAC9DV,iBAAiB,CAACY,eAAe,CAACF,gBAAgB,CAAC;AACrD;AAEA,OAAO,SAASG,oBAAoBA,CAAA,EAAoB;EACtD,OAAOb,iBAAiB,CAACa,oBAAoB,CAAC,CAAC;AACjD;AAEA,OAAO,SAASC,kBAAkBA,CAChCC,QAAuC,EACpB;EACnB,OAAOf,iBAAiB,CAACgB,cAAc,CAAEC,OAAO,IAAK;IACnDF,QAAQ,CAACE,OAAkC,CAAC;EAC9C,CAAC,CAAC;AACJ;AAEA,SAASjB,iBAAiB","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ import NativeYubikitFido from "./specs/NativeYubikitFido.js";
4
+ /** COSE algorithm identifiers (RFC 8152 §8), as used in `pubKeyCredParams`. */
5
+ export const COSE_ALGORITHM = {
6
+ ES256: -7,
7
+ ES384: -35,
8
+ ES512: -36,
9
+ RS256: -257,
10
+ EdDSA: -8
11
+ };
12
+ export function getInfo(deviceHandle) {
13
+ return NativeYubikitFido.getInfo(deviceHandle);
14
+ }
15
+ export function makeCredential(deviceHandle, options, effectiveDomain, pin, enterpriseAttestation) {
16
+ return NativeYubikitFido.makeCredential(deviceHandle, options, effectiveDomain, pin, enterpriseAttestation);
17
+ }
18
+ export function getAssertion(deviceHandle, options, effectiveDomain, pin) {
19
+ return NativeYubikitFido.getAssertion(deviceHandle, options, effectiveDomain, pin);
20
+ }
21
+ export function reset(deviceHandle) {
22
+ return NativeYubikitFido.reset(deviceHandle);
23
+ }
24
+ export function getCredentialCount(deviceHandle, pin) {
25
+ return NativeYubikitFido.getCredentialCount(deviceHandle, pin);
26
+ }
27
+ export function getRpIdList(deviceHandle, pin) {
28
+ return NativeYubikitFido.getRpIdList(deviceHandle, pin);
29
+ }
30
+ export function getCredentials(deviceHandle, rpId, pin) {
31
+ return NativeYubikitFido.getCredentials(deviceHandle, rpId, pin);
32
+ }
33
+ export function deleteCredential(deviceHandle, credential, pin) {
34
+ return NativeYubikitFido.deleteCredential(deviceHandle, credential, pin);
35
+ }
36
+ export function updateUserInformation(deviceHandle, credential, user, pin) {
37
+ return NativeYubikitFido.updateUserInformation(deviceHandle, credential, user, pin);
38
+ }
39
+ export { NativeYubikitFido };
40
+ //# sourceMappingURL=fido.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeYubikitFido","COSE_ALGORITHM","ES256","ES384","ES512","RS256","EdDSA","getInfo","deviceHandle","makeCredential","options","effectiveDomain","pin","enterpriseAttestation","getAssertion","reset","getCredentialCount","getRpIdList","getCredentials","rpId","deleteCredential","credential","updateUserInformation","user"],"sourceRoot":"../../src","sources":["fido.ts"],"mappings":";;AAAA,OAAOA,iBAAiB,MAAM,8BAA2B;AAUzD;AACA,OAAO,MAAMC,cAAc,GAAG;EAC5BC,KAAK,EAAE,CAAC,CAAC;EACTC,KAAK,EAAE,CAAC,EAAE;EACVC,KAAK,EAAE,CAAC,EAAE;EACVC,KAAK,EAAE,CAAC,GAAG;EACXC,KAAK,EAAE,CAAC;AACV,CAAU;AAEV,OAAO,SAASC,OAAOA,CAACC,YAAoB,EAAsB;EAChE,OAAOR,iBAAiB,CAACO,OAAO,CAACC,YAAY,CAAC;AAChD;AAEA,OAAO,SAASC,cAAcA,CAC5BD,YAAoB,EACpBE,OAA2C,EAC3CC,eAAuB,EACvBC,GAAY,EACZC,qBAA8B,EACA;EAC9B,OAAOb,iBAAiB,CAACS,cAAc,CACrCD,YAAY,EACZE,OAAO,EACPC,eAAe,EACfC,GAAG,EACHC,qBACF,CAAC;AACH;AAEA,OAAO,SAASC,YAAYA,CAC1BN,YAAoB,EACpBE,OAA0C,EAC1CC,eAAuB,EACvBC,GAAY,EACkB;EAC9B,OAAOZ,iBAAiB,CAACc,YAAY,CACnCN,YAAY,EACZE,OAAO,EACPC,eAAe,EACfC,GACF,CAAC;AACH;AAEA,OAAO,SAASG,KAAKA,CAACP,YAAoB,EAAiB;EACzD,OAAOR,iBAAiB,CAACe,KAAK,CAACP,YAAY,CAAC;AAC9C;AAEA,OAAO,SAASQ,kBAAkBA,CAChCR,YAAoB,EACpBI,GAAW,EACM;EACjB,OAAOZ,iBAAiB,CAACgB,kBAAkB,CAACR,YAAY,EAAEI,GAAG,CAAC;AAChE;AAEA,OAAO,SAASK,WAAWA,CACzBT,YAAoB,EACpBI,GAAW,EACQ;EACnB,OAAOZ,iBAAiB,CAACiB,WAAW,CAACT,YAAY,EAAEI,GAAG,CAAC;AACzD;AAEA,OAAO,SAASM,cAAcA,CAC5BV,YAAoB,EACpBW,IAAY,EACZP,GAAW,EAMX;EACA,OAAOZ,iBAAiB,CAACkB,cAAc,CAACV,YAAY,EAAEW,IAAI,EAAEP,GAAG,CAAC;AAMlE;AAEA,OAAO,SAASQ,gBAAgBA,CAC9BZ,YAAoB,EACpBa,UAAoC,EACpCT,GAAW,EACI;EACf,OAAOZ,iBAAiB,CAACoB,gBAAgB,CAACZ,YAAY,EAAEa,UAAU,EAAET,GAAG,CAAC;AAC1E;AAEA,OAAO,SAASU,qBAAqBA,CACnCd,YAAoB,EACpBa,UAAoC,EACpCE,IAA8B,EAC9BX,GAAW,EACI;EACf,OAAOZ,iBAAiB,CAACsB,qBAAqB,CAC5Cd,YAAY,EACZa,UAAU,EACVE,IAAI,EACJX,GACF,CAAC;AACH;AAEA,SAASZ,iBAAiB","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from "./yubikey-provider.js";
4
+ export * from "./use-yubikey.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["hooks/index.tsx"],"mappings":";;AAAA,cAAc,uBAAoB;AAClC,cAAc,kBAAe","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ import { useContext } from 'react';
4
+ import { YubiKeyContext } from "./yubikey-provider.js";
5
+ export function useYubiKey() {
6
+ const ctx = useContext(YubiKeyContext);
7
+ if (!ctx) {
8
+ throw new Error('useYubiKey must be used within a <YubiKeyProvider>');
9
+ }
10
+ return ctx;
11
+ }
12
+ //# sourceMappingURL=use-yubikey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useContext","YubiKeyContext","useYubiKey","ctx","Error"],"sourceRoot":"../../../src","sources":["hooks/use-yubikey.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,cAAc,QAAkC,uBAAoB;AAE7E,OAAO,SAASC,UAAUA,CAAA,EAAwB;EAChD,MAAMC,GAAG,GAAGH,UAAU,CAACC,cAAc,CAAC;EACtC,IAAI,CAACE,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOD,GAAG;AACZ","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ import { createContext, useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
+ import * as Core from "../core.js";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export const YubiKeyContext = /*#__PURE__*/createContext(null);
7
+ export function YubiKeyProvider({
8
+ children
9
+ }) {
10
+ const [devices, setDevices] = useState(() => Core.getDiscoveredDevices());
11
+ const [selectedHandle, setSelectedHandle] = useState(null);
12
+ const [isUsbDiscovering, setIsUsbDiscovering] = useState(false);
13
+ const [isNfcDiscovering, setIsNfcDiscovering] = useState(false);
14
+ const [lastError, setLastError] = useState(null);
15
+ const isUsbDiscoveringRef = useRef(isUsbDiscovering);
16
+ const isNfcDiscoveringRef = useRef(isNfcDiscovering);
17
+ useEffect(() => {
18
+ isUsbDiscoveringRef.current = isUsbDiscovering;
19
+ }, [isUsbDiscovering]);
20
+ useEffect(() => {
21
+ isNfcDiscoveringRef.current = isNfcDiscovering;
22
+ }, [isNfcDiscovering]);
23
+ useEffect(() => {
24
+ const subscription = Core.addYubiKeyListener(event => {
25
+ if (event.type === 'attached') {
26
+ setDevices(prev => [event.device, ...prev.filter(d => d.handle !== event.device.handle)]);
27
+ return;
28
+ }
29
+ if (event.type === 'detached') {
30
+ setDevices(prev => prev.filter(d => d.handle !== event.handle));
31
+ setSelectedHandle(prev => prev === event.handle ? null : prev);
32
+ return;
33
+ }
34
+ setLastError(event.error);
35
+ });
36
+ return () => subscription.remove();
37
+ }, []);
38
+ const startUsbDiscovery = useCallback(config => {
39
+ Core.startUsbDiscovery(config);
40
+ setIsUsbDiscovering(true);
41
+ }, []);
42
+ const stopUsbDiscovery = useCallback(() => {
43
+ Core.stopUsbDiscovery();
44
+ setIsUsbDiscovering(false);
45
+ }, []);
46
+ const startNfcDiscovery = useCallback(config => {
47
+ Core.startNfcDiscovery(config);
48
+ setIsNfcDiscovering(true);
49
+ }, []);
50
+ const stopNfcDiscovery = useCallback(() => {
51
+ Core.stopNfcDiscovery();
52
+ setIsNfcDiscovering(false);
53
+ }, []);
54
+
55
+ // Discovery is a global, imperative native API (not tied to this component's
56
+ // lifetime by the native side), but leaving it running past the provider that
57
+ // started it would leak a dangling USB/NFC session the app can no longer see.
58
+ useEffect(() => {
59
+ return () => {
60
+ if (isUsbDiscoveringRef.current) Core.stopUsbDiscovery();
61
+ if (isNfcDiscoveringRef.current) Core.stopNfcDiscovery();
62
+ };
63
+ }, []);
64
+ const selectDevice = useCallback(handle => {
65
+ setSelectedHandle(handle);
66
+ }, []);
67
+ const selectedDevice = useMemo(() => devices.find(d => d.handle === selectedHandle) ?? devices[0] ?? null, [devices, selectedHandle]);
68
+ const value = useMemo(() => ({
69
+ devices,
70
+ selectedDevice,
71
+ selectDevice,
72
+ isUsbDiscovering,
73
+ isNfcDiscovering,
74
+ startUsbDiscovery,
75
+ stopUsbDiscovery,
76
+ startNfcDiscovery,
77
+ stopNfcDiscovery,
78
+ lastError
79
+ }), [devices, selectedDevice, selectDevice, isUsbDiscovering, isNfcDiscovering, startUsbDiscovery, stopUsbDiscovery, startNfcDiscovery, stopNfcDiscovery, lastError]);
80
+ return /*#__PURE__*/_jsx(YubiKeyContext.Provider, {
81
+ value: value,
82
+ children: children
83
+ });
84
+ }
85
+ //# sourceMappingURL=yubikey-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useCallback","useEffect","useMemo","useRef","useState","Core","jsx","_jsx","YubiKeyContext","YubiKeyProvider","children","devices","setDevices","getDiscoveredDevices","selectedHandle","setSelectedHandle","isUsbDiscovering","setIsUsbDiscovering","isNfcDiscovering","setIsNfcDiscovering","lastError","setLastError","isUsbDiscoveringRef","isNfcDiscoveringRef","current","subscription","addYubiKeyListener","event","type","prev","device","filter","d","handle","error","remove","startUsbDiscovery","config","stopUsbDiscovery","startNfcDiscovery","stopNfcDiscovery","selectDevice","selectedDevice","find","value","Provider"],"sourceRoot":"../../../src","sources":["hooks/yubikey-provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ export * from "./types.js";
4
+ export * as Core from "./core.js";
5
+ export * as Management from "./management.js";
6
+ export * as Oath from "./oath.js";
7
+ export * as Piv from "./piv.js";
8
+ export * as OpenPgp from "./openpgp.js";
9
+ export * as YubiOtp from "./yubiotp.js";
10
+ export * as Fido from "./fido.js";
11
+ export * as Support from "./support.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Core","Management","Oath","Piv","OpenPgp","YubiOtp","Fido","Support"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,YAAS;AAEvB,OAAO,KAAKA,IAAI,MAAM,WAAQ;AAC9B,OAAO,KAAKC,UAAU,MAAM,iBAAc;AAC1C,OAAO,KAAKC,IAAI,MAAM,WAAQ;AAC9B,OAAO,KAAKC,GAAG,MAAM,UAAO;AAC5B,OAAO,KAAKC,OAAO,MAAM,cAAW;AACpC,OAAO,KAAKC,OAAO,MAAM,cAAW;AACpC,OAAO,KAAKC,IAAI,MAAM,WAAQ;AAC9B,OAAO,KAAKC,OAAO,MAAM,cAAW","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ import NativeYubikitManagement from "./specs/NativeYubikitManagement.js";
4
+ export function getDeviceInfo(deviceHandle) {
5
+ return NativeYubikitManagement.getDeviceInfo(deviceHandle);
6
+ }
7
+ export function updateDeviceConfig(deviceHandle, config, reboot, currentLockCode, newLockCode) {
8
+ return NativeYubikitManagement.updateDeviceConfig(deviceHandle, config, reboot, currentLockCode, newLockCode);
9
+ }
10
+ export function setMode(deviceHandle, mode, chalrespTimeout, autoejectTimeout) {
11
+ return NativeYubikitManagement.setMode(deviceHandle, mode, chalrespTimeout, autoejectTimeout);
12
+ }
13
+ export function deviceReset(deviceHandle) {
14
+ return NativeYubikitManagement.deviceReset(deviceHandle);
15
+ }
16
+ export { NativeYubikitManagement };
17
+ //# sourceMappingURL=management.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeYubikitManagement","getDeviceInfo","deviceHandle","updateDeviceConfig","config","reboot","currentLockCode","newLockCode","setMode","mode","chalrespTimeout","autoejectTimeout","deviceReset"],"sourceRoot":"../../src","sources":["management.ts"],"mappings":";;AAAA,OAAOA,uBAAuB,MAAM,oCAAiC;AAGrE,OAAO,SAASC,aAAaA,CAACC,YAAoB,EAAuB;EACvE,OAAOF,uBAAuB,CAACC,aAAa,CAC1CC,YACF,CAAC;AACH;AAEA,OAAO,SAASC,kBAAkBA,CAChCD,YAAoB,EACpBE,MAAoB,EACpBC,MAAe,EACfC,eAA8B,EAC9BC,WAA0B,EACX;EACf,OAAOP,uBAAuB,CAACG,kBAAkB,CAC/CD,YAAY,EACZE,MAAM,EACNC,MAAM,EACNC,eAAe,EACfC,WACF,CAAC;AACH;AAEA,OAAO,SAASC,OAAOA,CACrBN,YAAoB,EACpBO,IAAa,EACbC,eAAuB,EACvBC,gBAAwB,EACT;EACf,OAAOX,uBAAuB,CAACQ,OAAO,CACpCN,YAAY,EACZO,IAAI,EACJC,eAAe,EACfC,gBACF,CAAC;AACH;AAEA,OAAO,SAASC,WAAWA,CAACV,YAAoB,EAAiB;EAC/D,OAAOF,uBAAuB,CAACY,WAAW,CAACV,YAAY,CAAC;AAC1D;AAEA,SAASF,uBAAuB","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ import NativeYubikitOath from "./specs/NativeYubikitOath.js";
4
+ export function getDeviceId(deviceHandle) {
5
+ return NativeYubikitOath.getDeviceId(deviceHandle);
6
+ }
7
+ export function reset(deviceHandle) {
8
+ return NativeYubikitOath.reset(deviceHandle);
9
+ }
10
+ export function isAccessKeySet(deviceHandle) {
11
+ return NativeYubikitOath.isAccessKeySet(deviceHandle);
12
+ }
13
+ export function isLocked(deviceHandle) {
14
+ return NativeYubikitOath.isLocked(deviceHandle);
15
+ }
16
+ export function unlockWithPassword(deviceHandle, password) {
17
+ return NativeYubikitOath.unlockWithPassword(deviceHandle, password);
18
+ }
19
+ export function unlockWithAccessKey(deviceHandle, accessKey) {
20
+ return NativeYubikitOath.unlockWithAccessKey(deviceHandle, accessKey);
21
+ }
22
+ export function setPassword(deviceHandle, password) {
23
+ return NativeYubikitOath.setPassword(deviceHandle, password);
24
+ }
25
+ export function setAccessKey(deviceHandle, accessKey) {
26
+ return NativeYubikitOath.setAccessKey(deviceHandle, accessKey);
27
+ }
28
+ export function deleteAccessKey(deviceHandle) {
29
+ return NativeYubikitOath.deleteAccessKey(deviceHandle);
30
+ }
31
+ export function getCredentials(deviceHandle) {
32
+ return NativeYubikitOath.getCredentials(deviceHandle);
33
+ }
34
+ export function calculateCodes(deviceHandle, timestamp) {
35
+ return NativeYubikitOath.calculateCodes(deviceHandle, timestamp);
36
+ }
37
+ export function calculateResponse(deviceHandle, credentialId, challenge) {
38
+ return NativeYubikitOath.calculateResponse(deviceHandle, credentialId, challenge);
39
+ }
40
+ export function calculateCode(deviceHandle, credentialId, timestamp) {
41
+ return NativeYubikitOath.calculateCode(deviceHandle, credentialId, timestamp);
42
+ }
43
+ export function putCredential(deviceHandle, credentialData, requireTouch) {
44
+ return NativeYubikitOath.putCredential(deviceHandle, credentialData, requireTouch);
45
+ }
46
+ export function deleteCredential(deviceHandle, credentialId) {
47
+ return NativeYubikitOath.deleteCredential(deviceHandle, credentialId);
48
+ }
49
+ export function renameCredential(deviceHandle, credentialId, newAccountName, newIssuer) {
50
+ return NativeYubikitOath.renameCredential(deviceHandle, credentialId, newAccountName, newIssuer);
51
+ }
52
+ export { NativeYubikitOath };
53
+ //# sourceMappingURL=oath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeYubikitOath","getDeviceId","deviceHandle","reset","isAccessKeySet","isLocked","unlockWithPassword","password","unlockWithAccessKey","accessKey","setPassword","setAccessKey","deleteAccessKey","getCredentials","calculateCodes","timestamp","calculateResponse","credentialId","challenge","calculateCode","putCredential","credentialData","requireTouch","deleteCredential","renameCredential","newAccountName","newIssuer"],"sourceRoot":"../../src","sources":["oath.ts"],"mappings":";;AAAA,OAAOA,iBAAiB,MAAM,8BAA2B;AAUzD,OAAO,SAASC,WAAWA,CAACC,YAAoB,EAAmB;EACjE,OAAOF,iBAAiB,CAACC,WAAW,CAACC,YAAY,CAAC;AACpD;AAEA,OAAO,SAASC,KAAKA,CAACD,YAAoB,EAAiB;EACzD,OAAOF,iBAAiB,CAACG,KAAK,CAACD,YAAY,CAAC;AAC9C;AAEA,OAAO,SAASE,cAAcA,CAACF,YAAoB,EAAoB;EACrE,OAAOF,iBAAiB,CAACI,cAAc,CAACF,YAAY,CAAC;AACvD;AAEA,OAAO,SAASG,QAAQA,CAACH,YAAoB,EAAoB;EAC/D,OAAOF,iBAAiB,CAACK,QAAQ,CAACH,YAAY,CAAC;AACjD;AAEA,OAAO,SAASI,kBAAkBA,CAChCJ,YAAoB,EACpBK,QAAgB,EACE;EAClB,OAAOP,iBAAiB,CAACM,kBAAkB,CAACJ,YAAY,EAAEK,QAAQ,CAAC;AACrE;AAEA,OAAO,SAASC,mBAAmBA,CACjCN,YAAoB,EACpBO,SAAuB,EACL;EAClB,OAAOT,iBAAiB,CAACQ,mBAAmB,CAACN,YAAY,EAAEO,SAAS,CAAC;AACvE;AAEA,OAAO,SAASC,WAAWA,CACzBR,YAAoB,EACpBK,QAAgB,EACD;EACf,OAAOP,iBAAiB,CAACU,WAAW,CAACR,YAAY,EAAEK,QAAQ,CAAC;AAC9D;AAEA,OAAO,SAASI,YAAYA,CAC1BT,YAAoB,EACpBO,SAAuB,EACR;EACf,OAAOT,iBAAiB,CAACW,YAAY,CAACT,YAAY,EAAEO,SAAS,CAAC;AAChE;AAEA,OAAO,SAASG,eAAeA,CAACV,YAAoB,EAAiB;EACnE,OAAOF,iBAAiB,CAACY,eAAe,CAACV,YAAY,CAAC;AACxD;AAEA,OAAO,SAASW,cAAcA,CAC5BX,YAAoB,EACY;EAChC,OAAOF,iBAAiB,CAACa,cAAc,CACrCX,YACF,CAAC;AACH;AAEA,OAAO,SAASY,cAAcA,CAC5BZ,YAAoB,EACpBa,SAAkB,EACQ;EAC1B,OAAOf,iBAAiB,CAACc,cAAc,CACrCZ,YAAY,EACZa,SACF,CAAC;AACH;AAEA,OAAO,SAASC,iBAAiBA,CAC/Bd,YAAoB,EACpBe,YAA0B,EAC1BC,SAAuB,EACA;EACvB,OAAOlB,iBAAiB,CAACgB,iBAAiB,CACxCd,YAAY,EACZe,YAAY,EACZC,SACF,CAAC;AACH;AAEA,OAAO,SAASC,aAAaA,CAC3BjB,YAAoB,EACpBe,YAA0B,EAC1BF,SAAkB,EACH;EACf,OAAOf,iBAAiB,CAACmB,aAAa,CACpCjB,YAAY,EACZe,YAAY,EACZF,SACF,CAAC;AACH;AAEA,OAAO,SAASK,aAAaA,CAC3BlB,YAAoB,EACpBmB,cAA8B,EAC9BC,YAAqB,EACA;EACrB,OAAOtB,iBAAiB,CAACoB,aAAa,CACpClB,YAAY,EACZmB,cAAc,EACdC,YACF,CAAC;AACH;AAEA,OAAO,SAASC,gBAAgBA,CAC9BrB,YAAoB,EACpBe,YAA0B,EACX;EACf,OAAOjB,iBAAiB,CAACuB,gBAAgB,CAACrB,YAAY,EAAEe,YAAY,CAAC;AACvE;AAEA,OAAO,SAASO,gBAAgBA,CAC9BtB,YAAoB,EACpBe,YAA0B,EAC1BQ,cAAsB,EACtBC,SAAkB,EACG;EACrB,OAAO1B,iBAAiB,CAACwB,gBAAgB,CACvCtB,YAAY,EACZe,YAAY,EACZQ,cAAc,EACdC,SACF,CAAC;AACH;AAEA,SAAS1B,iBAAiB","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ import NativeYubikitOpenPgp from "./specs/NativeYubikitOpenPgp.js";
4
+ export function getVersion(deviceHandle) {
5
+ return NativeYubikitOpenPgp.getVersion(deviceHandle);
6
+ }
7
+ export function getApplicationRelatedData(deviceHandle) {
8
+ return NativeYubikitOpenPgp.getApplicationRelatedData(deviceHandle);
9
+ }
10
+ export function verifyUserPin(deviceHandle, pin, extended) {
11
+ return NativeYubikitOpenPgp.verifyUserPin(deviceHandle, pin, extended);
12
+ }
13
+ export function verifyAdminPin(deviceHandle, pin) {
14
+ return NativeYubikitOpenPgp.verifyAdminPin(deviceHandle, pin);
15
+ }
16
+ export function unverifyUserPin(deviceHandle) {
17
+ return NativeYubikitOpenPgp.unverifyUserPin(deviceHandle);
18
+ }
19
+ export function unverifyAdminPin(deviceHandle) {
20
+ return NativeYubikitOpenPgp.unverifyAdminPin(deviceHandle);
21
+ }
22
+ export function getSignatureCounter(deviceHandle) {
23
+ return NativeYubikitOpenPgp.getSignatureCounter(deviceHandle);
24
+ }
25
+ export function getChallenge(deviceHandle, length) {
26
+ return NativeYubikitOpenPgp.getChallenge(deviceHandle, length);
27
+ }
28
+ export function reset(deviceHandle) {
29
+ return NativeYubikitOpenPgp.reset(deviceHandle);
30
+ }
31
+ export function setPinAttempts(deviceHandle, userAttempts, resetAttempts, adminAttempts) {
32
+ return NativeYubikitOpenPgp.setPinAttempts(deviceHandle, userAttempts, resetAttempts, adminAttempts);
33
+ }
34
+ export function changeUserPin(deviceHandle, pin, newPin) {
35
+ return NativeYubikitOpenPgp.changeUserPin(deviceHandle, pin, newPin);
36
+ }
37
+ export function changeAdminPin(deviceHandle, pin, newPin) {
38
+ return NativeYubikitOpenPgp.changeAdminPin(deviceHandle, pin, newPin);
39
+ }
40
+ export function setSignaturePinPolicy(deviceHandle, policy) {
41
+ return NativeYubikitOpenPgp.setSignaturePinPolicy(deviceHandle, policy);
42
+ }
43
+ export function getUif(deviceHandle, keyRef) {
44
+ return NativeYubikitOpenPgp.getUif(deviceHandle, keyRef);
45
+ }
46
+ export function setUif(deviceHandle, keyRef, uif) {
47
+ return NativeYubikitOpenPgp.setUif(deviceHandle, keyRef, uif);
48
+ }
49
+ export function getAlgorithmInformation(deviceHandle) {
50
+ return NativeYubikitOpenPgp.getAlgorithmInformation(deviceHandle);
51
+ }
52
+ export function setAlgorithmAttributes(deviceHandle, keyRef, attributes) {
53
+ return NativeYubikitOpenPgp.setAlgorithmAttributes(deviceHandle, keyRef, attributes);
54
+ }
55
+ export function getCertificate(deviceHandle, keyRef) {
56
+ return NativeYubikitOpenPgp.getCertificate(deviceHandle, keyRef);
57
+ }
58
+ export function putCertificate(deviceHandle, keyRef, certificate) {
59
+ return NativeYubikitOpenPgp.putCertificate(deviceHandle, keyRef, certificate);
60
+ }
61
+ export function deleteCertificate(deviceHandle, keyRef) {
62
+ return NativeYubikitOpenPgp.deleteCertificate(deviceHandle, keyRef);
63
+ }
64
+ export function generateRsaKey(deviceHandle, keyRef, keySize) {
65
+ return NativeYubikitOpenPgp.generateRsaKey(deviceHandle, keyRef, keySize);
66
+ }
67
+ export function generateEcKey(deviceHandle, keyRef, curve) {
68
+ return NativeYubikitOpenPgp.generateEcKey(deviceHandle, keyRef, curve);
69
+ }
70
+ export function getPublicKey(deviceHandle, keyRef) {
71
+ return NativeYubikitOpenPgp.getPublicKey(deviceHandle, keyRef);
72
+ }
73
+ export function deleteKey(deviceHandle, keyRef) {
74
+ return NativeYubikitOpenPgp.deleteKey(deviceHandle, keyRef);
75
+ }
76
+ export function sign(deviceHandle, payload) {
77
+ return NativeYubikitOpenPgp.sign(deviceHandle, payload);
78
+ }
79
+ export function decrypt(deviceHandle, payload) {
80
+ return NativeYubikitOpenPgp.decrypt(deviceHandle, payload);
81
+ }
82
+ export function authenticate(deviceHandle, payload) {
83
+ return NativeYubikitOpenPgp.authenticate(deviceHandle, payload);
84
+ }
85
+ export function attestKey(deviceHandle, keyRef) {
86
+ return NativeYubikitOpenPgp.attestKey(deviceHandle, keyRef);
87
+ }
88
+ export { NativeYubikitOpenPgp };
89
+ //# sourceMappingURL=openpgp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeYubikitOpenPgp","getVersion","deviceHandle","getApplicationRelatedData","verifyUserPin","pin","extended","verifyAdminPin","unverifyUserPin","unverifyAdminPin","getSignatureCounter","getChallenge","length","reset","setPinAttempts","userAttempts","resetAttempts","adminAttempts","changeUserPin","newPin","changeAdminPin","setSignaturePinPolicy","policy","getUif","keyRef","setUif","uif","getAlgorithmInformation","setAlgorithmAttributes","attributes","getCertificate","putCertificate","certificate","deleteCertificate","generateRsaKey","keySize","generateEcKey","curve","getPublicKey","deleteKey","sign","payload","decrypt","authenticate","attestKey"],"sourceRoot":"../../src","sources":["openpgp.ts"],"mappings":";;AAAA,OAAOA,oBAAoB,MAAM,iCAA8B;AAY/D,OAAO,SAASC,UAAUA,CAACC,YAAoB,EAAoB;EACjE,OAAOF,oBAAoB,CAACC,UAAU,CAACC,YAAY,CAAC;AACtD;AAEA,OAAO,SAASC,yBAAyBA,CACvCD,YAAoB,EACoB;EACxC,OAAOF,oBAAoB,CAACG,yBAAyB,CACnDD,YACF,CAAC;AACH;AAEA,OAAO,SAASE,aAAaA,CAC3BF,YAAoB,EACpBG,GAAW,EACXC,QAAkB,EACH;EACf,OAAON,oBAAoB,CAACI,aAAa,CAACF,YAAY,EAAEG,GAAG,EAAEC,QAAQ,CAAC;AACxE;AAEA,OAAO,SAASC,cAAcA,CAC5BL,YAAoB,EACpBG,GAAW,EACI;EACf,OAAOL,oBAAoB,CAACO,cAAc,CAACL,YAAY,EAAEG,GAAG,CAAC;AAC/D;AAEA,OAAO,SAASG,eAAeA,CAACN,YAAoB,EAAiB;EACnE,OAAOF,oBAAoB,CAACQ,eAAe,CAACN,YAAY,CAAC;AAC3D;AAEA,OAAO,SAASO,gBAAgBA,CAACP,YAAoB,EAAiB;EACpE,OAAOF,oBAAoB,CAACS,gBAAgB,CAACP,YAAY,CAAC;AAC5D;AAEA,OAAO,SAASQ,mBAAmBA,CAACR,YAAoB,EAAmB;EACzE,OAAOF,oBAAoB,CAACU,mBAAmB,CAACR,YAAY,CAAC;AAC/D;AAEA,OAAO,SAASS,YAAYA,CAC1BT,YAAoB,EACpBU,MAAc,EACS;EACvB,OAAOZ,oBAAoB,CAACW,YAAY,CAACT,YAAY,EAAEU,MAAM,CAAC;AAChE;AAEA,OAAO,SAASC,KAAKA,CAACX,YAAoB,EAAiB;EACzD,OAAOF,oBAAoB,CAACa,KAAK,CAACX,YAAY,CAAC;AACjD;AAEA,OAAO,SAASY,cAAcA,CAC5BZ,YAAoB,EACpBa,YAAoB,EACpBC,aAAqB,EACrBC,aAAqB,EACN;EACf,OAAOjB,oBAAoB,CAACc,cAAc,CACxCZ,YAAY,EACZa,YAAY,EACZC,aAAa,EACbC,aACF,CAAC;AACH;AAEA,OAAO,SAASC,aAAaA,CAC3BhB,YAAoB,EACpBG,GAAW,EACXc,MAAc,EACC;EACf,OAAOnB,oBAAoB,CAACkB,aAAa,CAAChB,YAAY,EAAEG,GAAG,EAAEc,MAAM,CAAC;AACtE;AAEA,OAAO,SAASC,cAAcA,CAC5BlB,YAAoB,EACpBG,GAAW,EACXc,MAAc,EACC;EACf,OAAOnB,oBAAoB,CAACoB,cAAc,CAAClB,YAAY,EAAEG,GAAG,EAAEc,MAAM,CAAC;AACvE;AAEA,OAAO,SAASE,qBAAqBA,CACnCnB,YAAoB,EACpBoB,MAAwB,EACT;EACf,OAAOtB,oBAAoB,CAACqB,qBAAqB,CAACnB,YAAY,EAAEoB,MAAM,CAAC;AACzE;AAEA,OAAO,SAASC,MAAMA,CACpBrB,YAAoB,EACpBsB,MAAqB,EACA;EACrB,OAAOxB,oBAAoB,CAACuB,MAAM,CAChCrB,YAAY,EACZsB,MACF,CAAC;AACH;AAEA,OAAO,SAASC,MAAMA,CACpBvB,YAAoB,EACpBsB,MAAqB,EACrBE,GAAe,EACA;EACf,OAAO1B,oBAAoB,CAACyB,MAAM,CAACvB,YAAY,EAAEsB,MAAM,EAAEE,GAAG,CAAC;AAC/D;AAEA,OAAO,SAASC,uBAAuBA,CACrCzB,YAAoB,EAGpB;EACA,OAAOF,oBAAoB,CAAC2B,uBAAuB,CAACzB,YAAY,CAAC;AAGnE;AAEA,OAAO,SAAS0B,sBAAsBA,CACpC1B,YAAoB,EACpBsB,MAAqB,EACrBK,UAAsC,EACvB;EACf,OAAO7B,oBAAoB,CAAC4B,sBAAsB,CAChD1B,YAAY,EACZsB,MAAM,EACNK,UACF,CAAC;AACH;AAEA,OAAO,SAASC,cAAcA,CAC5B5B,YAAoB,EACpBsB,MAAqB,EACE;EACvB,OAAOxB,oBAAoB,CAAC8B,cAAc,CAAC5B,YAAY,EAAEsB,MAAM,CAAC;AAClE;AAEA,OAAO,SAASO,cAAcA,CAC5B7B,YAAoB,EACpBsB,MAAqB,EACrBQ,WAAyB,EACV;EACf,OAAOhC,oBAAoB,CAAC+B,cAAc,CAAC7B,YAAY,EAAEsB,MAAM,EAAEQ,WAAW,CAAC;AAC/E;AAEA,OAAO,SAASC,iBAAiBA,CAC/B/B,YAAoB,EACpBsB,MAAqB,EACN;EACf,OAAOxB,oBAAoB,CAACiC,iBAAiB,CAAC/B,YAAY,EAAEsB,MAAM,CAAC;AACrE;AAEA,OAAO,SAASU,cAAcA,CAC5BhC,YAAoB,EACpBsB,MAAqB,EACrBW,OAAe,EACQ;EACvB,OAAOnC,oBAAoB,CAACkC,cAAc,CAAChC,YAAY,EAAEsB,MAAM,EAAEW,OAAO,CAAC;AAC3E;AAEA,OAAO,SAASC,aAAaA,CAC3BlC,YAAoB,EACpBsB,MAAqB,EACrBa,KAAmB,EACI;EACvB,OAAOrC,oBAAoB,CAACoC,aAAa,CAAClC,YAAY,EAAEsB,MAAM,EAAEa,KAAK,CAAC;AACxE;AAEA,OAAO,SAASC,YAAYA,CAC1BpC,YAAoB,EACpBsB,MAAqB,EACE;EACvB,OAAOxB,oBAAoB,CAACsC,YAAY,CAACpC,YAAY,EAAEsB,MAAM,CAAC;AAChE;AAEA,OAAO,SAASe,SAASA,CACvBrC,YAAoB,EACpBsB,MAAqB,EACN;EACf,OAAOxB,oBAAoB,CAACuC,SAAS,CAACrC,YAAY,EAAEsB,MAAM,CAAC;AAC7D;AAEA,OAAO,SAASgB,IAAIA,CAClBtC,YAAoB,EACpBuC,OAAqB,EACE;EACvB,OAAOzC,oBAAoB,CAACwC,IAAI,CAACtC,YAAY,EAAEuC,OAAO,CAAC;AACzD;AAEA,OAAO,SAASC,OAAOA,CACrBxC,YAAoB,EACpBuC,OAAqB,EACE;EACvB,OAAOzC,oBAAoB,CAAC0C,OAAO,CAACxC,YAAY,EAAEuC,OAAO,CAAC;AAC5D;AAEA,OAAO,SAASE,YAAYA,CAC1BzC,YAAoB,EACpBuC,OAAqB,EACE;EACvB,OAAOzC,oBAAoB,CAAC2C,YAAY,CAACzC,YAAY,EAAEuC,OAAO,CAAC;AACjE;AAEA,OAAO,SAASG,SAASA,CACvB1C,YAAoB,EACpBsB,MAAqB,EACE;EACvB,OAAOxB,oBAAoB,CAAC4C,SAAS,CAAC1C,YAAY,EAAEsB,MAAM,CAAC;AAC7D;AAEA,SAASxB,oBAAoB","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}