@umutcansu/react-native-pinvault 2.3.2 → 2.4.1

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.
@@ -7,13 +7,31 @@
7
7
  // { "configApis": [{ "id", "bootstrapPins", "signaturePublicKeys", "requiredSignatures",
8
8
  // "recoveryPublicKeys", "requiredRecoverySignatures", "serverScope",
9
9
  // "clientCaPins", "allowUnsigned", "allowUnpinnedConfigApi",
10
- // "allowServerGeneratedKey" }],
11
- // "staticPins": { "pins": [...], "version": 1 } }
10
+ // "allowServerGeneratedKey", "url", "attestation", "tokenHosts", "proofOfPossession",
11
+ // "clientCertHosts",
12
+ // "enrollmentUrl", "renewalUrl" }],
13
+ // "staticPins": { "pins": [...], "version": 1 },
14
+ // "require": { "requireUnlockedDevice", "requireHardwareBackedKeys",
15
+ // "requirePinnedReactNativeNetworking", "managedTrustRoots",
16
+ // "wipeVaultFilesOnRevocation", "requireCaTrust", "expectedBundleIds",
17
+ // "expectedTeamIds", "userAuthStrength", "expiredConfigGraceSeconds",
18
+ // "vaultFileMaxOfflineAgeSeconds", "expectedSignerSha256" (Android's, read for the shape) },
19
+ // "vaultFiles": [{ "key", "signaturePublicKey", "encryption", "userAuth", "maxOfflineAgeSeconds" }] }
12
20
  //
13
21
  // When the file is there: every JS Config API (and JS `staticPins`) must be
14
22
  // declared in it; a declared field is the value (JS may omit or repeat it, a
15
- // different value is refused); the three relaxations need the file's consent.
16
- // Without it, release builds refuse the three relaxations from JS.
23
+ // different value is refused); the three relaxations need the file's consent;
24
+ // `attestation: true` and `proofOfPossession: true` cannot be switched off; `require` only tightens (its
25
+ // protections stay on, its `requireCaTrust` hosts are added to JS's, its
26
+ // expected ids are fixed, its grace is the most JS may ask for); `vaultFiles`
27
+ // fixes those files' signature key, encryption and lock, and a JS vault file
28
+ // it does not name is refused.
29
+ //
30
+ // Without it, a release build refuses a config with Config APIs or static
31
+ // pins — the trust anchors would come from JS alone — unless the app's
32
+ // Info.plist says `PinVaultAllowNoNativeSecurityFile` = YES; the three
33
+ // relaxations stay refused from JS then. A release build caps
34
+ // `expiredConfigGrace` at 7 days whatever the file says.
17
35
  import Foundation
18
36
  import PinVault
19
37
 
@@ -32,12 +50,61 @@ public struct NativeSecurity {
32
50
  let allowUnsigned: Bool
33
51
  let allowUnpinnedConfigApi: Bool
34
52
  let allowServerGeneratedKey: Bool
53
+ var url: String? = nil
54
+ var attestation = false
55
+ var tokenHosts: [String]? = nil
56
+ var proofOfPossession = false
57
+ var clientCertHosts: [String]? = nil
58
+ var enrollmentUrl: String? = nil
59
+ var renewalUrl: String? = nil
60
+ }
61
+
62
+ /// The `require` section: protections JS cannot switch off.
63
+ public struct Require {
64
+ var requireUnlockedDevice = false
65
+ var requireHardwareBackedKeys = false
66
+ /// Pins `requirePinnedReactNativeNetworking`: JS cannot set it false (RN-3).
67
+ var requirePinnedReactNativeNetworking = false
68
+ var managedTrustRoots = false
69
+ var wipeVaultFilesOnRevocation = false
70
+ var requireCaTrust: [String]? = nil
71
+ var expectedBundleIds: [String]? = nil
72
+ var expectedTeamIds: [String]? = nil
73
+ /// The most `expiredConfigGrace` JS may set; nil = only the release cap.
74
+ var expiredConfigGraceMs: Int64? = nil
75
+ /// The most `vaultFileMaxOfflineAge` JS may set (and the value when JS sets none).
76
+ var vaultFileMaxOfflineAgeMs: Int64? = nil
77
+ /// `ios.userAuthStrength`, fixed.
78
+ var userAuthStrength: UserAuthStrength? = nil
35
79
  }
36
80
 
81
+ /// One `vaultFiles` entry: what JS cannot change about that file.
82
+ struct VaultFilePolicy {
83
+ let signaturePublicKey: String?
84
+ let encryption: VaultFileEncryption?
85
+ let userAuth: UserAuth?
86
+ /// The most `maxOfflineAge` JS may give this file (and the value when JS gives none).
87
+ var maxOfflineAgeMs: Int64? = nil
88
+ }
89
+
90
+ /// The Info.plist key with which an app accepts a release start without the file.
91
+ public static let noFileInfoKey = "PinVaultAllowNoNativeSecurityFile"
92
+ /// The longest `expiredConfigGrace` a release build takes.
93
+ public static let maxReleaseGraceMs: Int64 = 7 * 24 * 3600 * 1000
94
+ static let maxOfflineAgeS: Int64 = 10 * 365 * 24 * 3600
95
+
37
96
  /// Where the file came from, for messages.
38
97
  public let source: String
39
98
  let blocks: [String: Block]
40
99
  let staticPins: CertificateConfig?
100
+ var require = Require()
101
+ /// Nil when the file has no `vaultFiles` section.
102
+ var vaultFiles: [String: VaultFilePolicy]? = nil
103
+
104
+ /// True when the app's Info.plist accepts a release start without the file.
105
+ public static func noFileAllowed(_ bundle: Bundle = .main) -> Bool {
106
+ (bundle.object(forInfoDictionaryKey: noFileInfoKey) as? Bool) == true
107
+ }
41
108
 
42
109
  /// The file from `bundle`; nil when the app ships none. A broken file throws `BridgeInputError`.
43
110
  public static func load(from bundle: Bundle = .main) throws -> NativeSecurity? {
@@ -69,16 +136,59 @@ public struct NativeSecurity {
69
136
  clientCaPins: try b.stringList("clientCaPins", maxItems: 16, maxLength: 128),
70
137
  allowUnsigned: try b.bool("allowUnsigned") == true,
71
138
  allowUnpinnedConfigApi: try b.bool("allowUnpinnedConfigApi") == true,
72
- allowServerGeneratedKey: try b.bool("allowServerGeneratedKey") == true
139
+ allowServerGeneratedKey: try b.bool("allowServerGeneratedKey") == true,
140
+ url: try ConfigParser.httpsUrl(b, "url"),
141
+ attestation: try b.bool("attestation") == true,
142
+ tokenHosts: try b.stringList("tokenHosts", maxItems: 64, maxLength: 255),
143
+ proofOfPossession: try b.bool("proofOfPossession") == true,
144
+ clientCertHosts: try b.stringList("clientCertHosts", maxItems: 64, maxLength: 2048),
145
+ enrollmentUrl: try ConfigParser.httpsUrl(b, "enrollmentUrl"),
146
+ renewalUrl: try ConfigParser.httpsUrl(b, "renewalUrl")
73
147
  )
74
148
  try b.finish()
75
149
  }
76
150
  let staticPins = try root.object("staticPins").map(ConfigParser.staticPins)
151
+ var require = Require()
152
+ if let r = try root.object("require") {
153
+ require.requireUnlockedDevice = try r.bool("requireUnlockedDevice") == true
154
+ require.requireHardwareBackedKeys = try r.bool("requireHardwareBackedKeys") == true
155
+ require.requirePinnedReactNativeNetworking = try r.bool("requirePinnedReactNativeNetworking") == true
156
+ require.managedTrustRoots = try r.bool("managedTrustRoots") == true
157
+ require.wipeVaultFilesOnRevocation = try r.bool("wipeVaultFilesOnRevocation") == true
158
+ require.requireCaTrust = try r.stringList("requireCaTrust", maxItems: 64, maxLength: 255)
159
+ require.expectedBundleIds = try r.stringList("expectedBundleIds", maxItems: 16, maxLength: 255)
160
+ require.expectedTeamIds = try r.stringList("expectedTeamIds", maxItems: 16, maxLength: 32)
161
+ require.expiredConfigGraceMs = try r.int64("expiredConfigGraceSeconds", min: 0, max: maxReleaseGraceMs / 1000).map { $0 * 1000 }
162
+ require.vaultFileMaxOfflineAgeMs = try r.int64("vaultFileMaxOfflineAgeSeconds", min: 1, max: maxOfflineAgeS).map { $0 * 1000 }
163
+ require.userAuthStrength = try r.enumValue("userAuthStrength", UserAuthStrength.self)
164
+ // Android-only (signer digests): read for the shape, used by the Android side.
165
+ _ = try r.stringList("expectedSignerSha256", maxItems: 16, maxLength: 128)
166
+ try r.finish()
167
+ }
168
+ var vaultFiles: [String: VaultFilePolicy]?
169
+ if let list = try root.objectList("vaultFiles", maxItems: ConfigParser.maxVaultFiles) {
170
+ var map: [String: VaultFilePolicy] = [:]
171
+ for f in list {
172
+ let key = try f.requireString("key", maxLength: 128)
173
+ if map[key] != nil { throw BridgeInputError("\(f.path).key: '\(key)' is declared twice") }
174
+ map[key] = VaultFilePolicy(
175
+ signaturePublicKey: try f.string("signaturePublicKey", maxLength: ConfigParser.keyLength, multiline: true),
176
+ encryption: try f.enumValue("encryption", VaultFileEncryption.self),
177
+ userAuth: try f.enumValue("userAuth", UserAuth.self),
178
+ maxOfflineAgeMs: try f.int64("maxOfflineAgeSeconds", min: 1, max: maxOfflineAgeS).map { $0 * 1000 }
179
+ )
180
+ try f.finish()
181
+ }
182
+ vaultFiles = map
183
+ }
77
184
  try root.finish()
78
185
  if blocks.isEmpty && staticPins == nil {
79
186
  throw BridgeInputError("\(source): declares neither configApis nor staticPins")
80
187
  }
81
- return NativeSecurity(source: source, blocks: blocks, staticPins: staticPins)
188
+ var native = NativeSecurity(source: source, blocks: blocks, staticPins: staticPins)
189
+ native.require = require
190
+ native.vaultFiles = vaultFiles
191
+ return native
82
192
  } catch let e as BridgeInputError {
83
193
  throw e.message.hasPrefix("native security file") ? e : BridgeInputError("native security file \(e.message)")
84
194
  } catch {
@@ -149,6 +259,17 @@ enum SecurityPolicy {
149
259
  try relaxation("allowUnpinnedConfigApi", js.allowUnpinned, block.allowUnpinnedConfigApi)
150
260
  try relaxation("allowServerGeneratedKey", js.allowServerKey, block.allowServerGeneratedKey)
151
261
 
262
+ // A release build's trust anchors come from the file, so a declared block
263
+ // must carry them: a bare `{"id": …}` would hand pins and keys to the bundle.
264
+ if release {
265
+ func anchor(_ key: String, _ relaxation: String) -> BridgeInputError {
266
+ BridgeInputError("\(path).\(key): a release build takes it only from the app's native security file (\(native.source)); "
267
+ + "declare \(key) for Config API '\(id)' there (or \(relaxation))")
268
+ }
269
+ if block.bootstrapPins == nil && !block.allowUnpinnedConfigApi { throw anchor("bootstrapPins", "allowUnpinnedConfigApi") }
270
+ if block.signaturePublicKeys == nil && !block.allowUnsigned { throw anchor("signaturePublicKeys", "allowUnsigned") }
271
+ }
272
+
152
273
  var out = js
153
274
  if let n = block.bootstrapPins {
154
275
  if let j = js.bootstrapPins, !NativeSecurity.samePins(j, n) { throw fixed("bootstrapPins") }
@@ -29,6 +29,9 @@ public final class PinVaultBridge: NSObject {
29
29
  /// RNPinVault.mm: whether RCTNetworking hands an https request to
30
30
  /// RNPinVaultURLRequestHandler (true), to another handler (false), or nil = unknown.
31
31
  @objc public var reactNetworkingIsPinned: (() -> NSNumber?)?
32
+ /// RNPinVault.mm: whether SocketRocket hands every wss socket to PinVault
33
+ /// (RNPinVaultWebSocketPinning); nil = treated as not pinned.
34
+ @objc public var reactWebSocketIsPinned: (() -> Bool)?
32
35
 
33
36
  /// `PinVault.shared.registerBackgroundTask()` for the app's AppDelegate (before launch ends):
34
37
  /// the app target does not link the PinVault package itself.
@@ -92,8 +95,15 @@ public final class PinVaultBridge: NSObject {
92
95
  return ["exceptionName": mapped["name"] ?? "Error", "exceptionMessage": mapped["message"] ?? NSNull()]
93
96
  }
94
97
 
98
+ /// A vault file key: the library's rule (it names the stored copy's file).
95
99
  private static func checkKey(_ key: String) throws {
96
- if key.isEmpty || key.count > 128 { throw BridgeInputError("key: must be 1 to 128 characters") }
100
+ let allowed = key.utf8.allSatisfy { byte in
101
+ (byte >= 0x30 && byte <= 0x39) || (byte >= 0x41 && byte <= 0x5A) || (byte >= 0x61 && byte <= 0x7A) ||
102
+ byte == 0x2E || byte == 0x5F || byte == 0x2D
103
+ }
104
+ if key.isEmpty || key.utf8.count > 64 || !allowed || key.allSatisfy({ $0 == "." }) {
105
+ throw BridgeInputError("key: must match [A-Za-z0-9._-]{1,64} and not be only dots")
106
+ }
97
107
  }
98
108
 
99
109
  private static func checkToken(_ token: String?) throws {
@@ -129,7 +139,9 @@ public final class PinVaultBridge: NSObject {
129
139
  bridge.emitConnectionEvent?(bridge.mapper.event(event))
130
140
  },
131
141
  native: try NativeSecurity.load(),
132
- release: release
142
+ release: release,
143
+ noFileAllowed: NativeSecurity.noFileAllowed(),
144
+ reactNetworkingEnabled: PinVaultReactNetworking.enabled
133
145
  )
134
146
  } catch let e as BridgeInputError {
135
147
  // The guard of the running config stays: a refused config changes nothing.
@@ -141,12 +153,14 @@ public final class PinVaultBridge: NSObject {
141
153
  return
142
154
  }
143
155
  let pinned = self.reactNetworkingIsPinned?()?.boolValue
144
- if pinned != true {
156
+ let socketPinned = self.reactWebSocketIsPinned?() ?? false
157
+ if pinned != true || !socketPinned {
145
158
  let why = !PinVaultReactNetworking.enabled
146
159
  ? "Info.plist PinVaultPinReactNativeNetworking is NO"
147
160
  : pinned == nil ? "RCTNetworking's handler could not be checked"
148
- : "RCTNetworking hands https to another RCTURLRequestHandler"
149
- NSLog("PinVault: React Native's own fetch / XMLHttpRequest / images may NOT be pinned (\(why)); README, \"Networking\"")
161
+ : pinned == false ? "RCTNetworking hands https to another RCTURLRequestHandler"
162
+ : "SocketRocket's WebSocket initializer is not PinVault's (wss is not pinned)"
163
+ NSLog("PinVault: React Native's own fetch / XMLHttpRequest / images / WebSocket may NOT be pinned (\(why)); README, \"Networking\"")
150
164
  if parsed.requirePinnedReactNativeNetworking {
151
165
  reject("E_NETWORKING_NOT_PINNED", "requirePinnedReactNativeNetworking: \(why)", nil)
152
166
  return
@@ -162,7 +176,10 @@ public final class PinVaultBridge: NSObject {
162
176
  // INIT, and ENROLL for a pending enrollment the start picks up.
163
177
  let result = await Self.guarded([.start, .enroll]) { await PinVault.shared.start(config: parsed.config) }
164
178
  Self.locked { Self.startedInProcess = true }
165
- resolve(self.mapper.initResult(result))
179
+ // Says whether the anchors came from the native security file (README "Native security file").
180
+ var answer = self.mapper.initResult(result)
181
+ answer["nativeSecurityApplied"] = parsed.nativeSecurityApplied
182
+ resolve(answer)
166
183
  }
167
184
  }
168
185
  }
@@ -335,7 +352,7 @@ public final class PinVaultBridge: NSObject {
335
352
  run(resolve, reject) {
336
353
  try Self.checkKey(key)
337
354
  let enc = try ResultMapper.checkEncoding(encoding)
338
- return PinVault.shared.loadFile(key).map { ResultMapper.encode($0, enc) }
355
+ return await Self.guarded([.loadFile]) { PinVault.shared.loadFile(key) }.map { ResultMapper.encode($0, enc) }
339
356
  }
340
357
  }
341
358
 
@@ -2,6 +2,7 @@
2
2
  // requests (fetch, XMLHttpRequest, <Image>) through PinVault's pinned session.
3
3
  // The rules live in Core/ReactNetworking.swift.
4
4
  import Foundation
5
+ import Security
5
6
  import PinVault
6
7
 
7
8
  @objc(RNPinVaultReactNetworking)
@@ -17,6 +18,21 @@ public final class PinVaultReactNetworking: NSObject {
17
18
  enabled && ReactNetworking.handles(request)
18
19
  }
19
20
 
21
+ /// The server-trust check of a `wss` WebSocket (RNPinVaultWebSocketPinning.mm):
22
+ /// the decision of every PinVault session for the host and port the socket
23
+ /// was opened for. Fail-closed: before `start`, after a failed one, or
24
+ /// while a restart resets the library, every handshake is refused.
25
+ @objc public static func acceptsWebSocketTrust(_ trust: SecTrust, host: String, port: Int) -> Bool {
26
+ do {
27
+ try PinVault.shared.evaluateServerTrust(trust, host: host, port: port)
28
+ return true
29
+ } catch {
30
+ let (name, message) = PinVaultBridge.describe(error)
31
+ NSLog("PinVault: WebSocket to %@:%ld refused (%@: %@)", host, port, name, message)
32
+ return false
33
+ }
34
+ }
35
+
20
36
  /// The request token for RN; nothing reaches the blocks before `resume()`.
21
37
  @objc public static func prepare(
22
38
  _ request: URLRequest,
package/ios/RNPinVault.mm CHANGED
@@ -3,6 +3,8 @@
3
3
  #import <objc/message.h>
4
4
  #import <React/RCTBridgeModule.h>
5
5
 
6
+ #import "RNPinVaultWebSocketPinning.h"
7
+
6
8
  #if __has_include(<RNPinVault/RNPinVault-Swift.h>)
7
9
  #import <RNPinVault/RNPinVault-Swift.h>
8
10
  #else
@@ -51,6 +53,10 @@
51
53
  id handler = ((id(*)(id, SEL, NSURLRequest *))objc_msgSend)(networking, selector, probe);
52
54
  return @([handler isKindOfClass:ours]);
53
55
  };
56
+ // Whether SocketRocket's initializer still hands every wss socket to PinVault.
57
+ _bridge.reactWebSocketIsPinned = ^BOOL {
58
+ return [RNPinVaultWebSocketPinning isPinned];
59
+ };
54
60
  }
55
61
  return self;
56
62
  }
@@ -0,0 +1,21 @@
1
+ // RNPinVaultWebSocketPinning — React Native's WebSocket (SocketRocket) through
2
+ // PinVault's pins on iOS. See RNPinVaultWebSocketPinning.mm.
3
+ #import <Foundation/Foundation.h>
4
+
5
+ NS_ASSUME_NONNULL_BEGIN
6
+
7
+ @interface RNPinVaultWebSocketPinning : NSObject
8
+
9
+ /// Installs the hook when it is not in place yet (it is installed at load;
10
+ /// this covers a SocketRocket image loaded later). NO when it cannot be:
11
+ /// Info.plist opt-out, no SocketRocket initializer of the known shape.
12
+ + (BOOL)install;
13
+
14
+ /// Whether every SocketRocket socket to a `wss` / `https` URL is judged by
15
+ /// PinVault right now: the hook is installed and still the initializer's
16
+ /// implementation (nothing replaced it since). YES without SocketRocket in the app.
17
+ + (BOOL)isPinned;
18
+
19
+ @end
20
+
21
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,170 @@
1
+ // RNPinVaultWebSocketPinning — React Native's WebSocket through PinVault's
2
+ // pins on iOS.
3
+ //
4
+ // RCTWebSocketModule opens every socket with SocketRocket (SRWebSocket on
5
+ // CFStream), outside URLSession, so the URLRequestHandler never sees it. Every
6
+ // SRWebSocket initializer ends in -initWithURLRequest:protocols:securityPolicy:
7
+ // (SocketRocket 0.7.x, SRWebSocket.m). This file replaces that method at load:
8
+ // a socket to a wss / https URL (SocketRocket's SRURLRequiresSSL) always gets a
9
+ // policy that asks PinVault, whatever policy its creator passed.
10
+ //
11
+ // RCTSetCustomSRWebSocketProvider is not used: its block gets only the
12
+ // request, so the subprotocols RN hands the initializer (graphql-ws, MQTT,
13
+ // STOMP) would be lost, and a provider set later by another library would
14
+ // replace ours without a trace.
15
+ //
16
+ // SocketRocket checks the server trust in -stream:handleEvent: before it
17
+ // writes the upgrade request: a refused chain sends no header and no cookie.
18
+ //
19
+ // The policy is a runtime subclass of SRSecurityPolicy, so the plugin needs
20
+ // neither SocketRocket's headers nor a link to it: no chain validation in the
21
+ // stream (pins replace CA trust, as in every PinVault session), the TLS 1.2
22
+ // floor of SocketRocket's default, and -evaluateServerTrust:forDomain: →
23
+ // PinVault for the host and port of the socket's own URL.
24
+ #import "RNPinVaultWebSocketPinning.h"
25
+
26
+ #import <Security/Security.h>
27
+ #import <objc/runtime.h>
28
+ #import <os/lock.h>
29
+
30
+ #if __has_include(<RNPinVault/RNPinVault-Swift.h>)
31
+ #import <RNPinVault/RNPinVault-Swift.h>
32
+ #else
33
+ #import "RNPinVault-Swift.h"
34
+ #endif
35
+
36
+ typedef id (*RNPVSocketInit)(id, SEL, NSURLRequest *, NSArray *, id);
37
+
38
+ static os_unfair_lock gLock = OS_UNFAIR_LOCK_INIT;
39
+ static RNPVSocketInit gOriginalInit = NULL;
40
+ static Class gPolicyClass = Nil;
41
+ static char kHostKey;
42
+ static char kPortKey;
43
+
44
+ static NSString *const kSocketClass = @"SRWebSocket";
45
+ static NSString *const kPolicyClass = @"SRSecurityPolicy";
46
+ static NSString *const kInitSelector = @"initWithURLRequest:protocols:securityPolicy:";
47
+ static NSString *const kUpdateSelector = @"updateSecurityOptionsInStream:";
48
+ static NSString *const kEvaluateSelector = @"evaluateServerTrust:forDomain:";
49
+
50
+ // SocketRocket's SRURLRequiresSSL.
51
+ static BOOL RequiresTLS(NSURL *url)
52
+ {
53
+ NSString *scheme = url.scheme.lowercaseString;
54
+ return [scheme isEqualToString:@"wss"] || [scheme isEqualToString:@"https"];
55
+ }
56
+
57
+ static void PinnedUpdateSecurityOptions(id self, SEL _cmd, NSStream *stream)
58
+ {
59
+ [stream setProperty:(__bridge id)CFSTR("kCFStreamSocketSecurityLevelTLSv1_2")
60
+ forKey:(__bridge NSString *)kCFStreamPropertySocketSecurityLevel];
61
+ [stream setProperty:@{(__bridge NSString *)kCFStreamSSLValidatesCertificateChain : @NO}
62
+ forKey:(__bridge NSString *)kCFStreamPropertySSLSettings];
63
+ }
64
+
65
+ static BOOL PinnedEvaluateServerTrust(id self, SEL _cmd, SecTrustRef trust, NSString *domain)
66
+ {
67
+ NSString *host = objc_getAssociatedObject(self, &kHostKey);
68
+ NSNumber *port = objc_getAssociatedObject(self, &kPortKey);
69
+ if (trust == NULL || host.length == 0 || port == nil) {
70
+ return NO;
71
+ }
72
+ return [RNPinVaultReactNetworking acceptsWebSocketTrust:trust host:host port:port.integerValue];
73
+ }
74
+
75
+ // The policy class, made once; Nil when SocketRocket's is missing or has another shape.
76
+ static Class PolicyClass(void)
77
+ {
78
+ static dispatch_once_t once;
79
+ dispatch_once(&once, ^{
80
+ Class base = NSClassFromString(kPolicyClass);
81
+ SEL update = NSSelectorFromString(kUpdateSelector);
82
+ SEL evaluate = NSSelectorFromString(kEvaluateSelector);
83
+ Method baseUpdate = base ? class_getInstanceMethod(base, update) : NULL;
84
+ Method baseEvaluate = base ? class_getInstanceMethod(base, evaluate) : NULL;
85
+ if (baseUpdate == NULL || baseEvaluate == NULL) {
86
+ return;
87
+ }
88
+ Class sub = objc_allocateClassPair(base, "RNPinVaultSRSecurityPolicy", 0);
89
+ if (sub == Nil) {
90
+ return;
91
+ }
92
+ class_addMethod(sub, update, (IMP)PinnedUpdateSecurityOptions, method_getTypeEncoding(baseUpdate));
93
+ class_addMethod(sub, evaluate, (IMP)PinnedEvaluateServerTrust, method_getTypeEncoding(baseEvaluate));
94
+ objc_registerClassPair(sub);
95
+ gPolicyClass = sub;
96
+ });
97
+ return gPolicyClass;
98
+ }
99
+
100
+ // A policy for one socket: the host and port SocketRocket connects to (port 0 → 443, as SRProxyConnect).
101
+ static id PolicyFor(NSURL *url)
102
+ {
103
+ Class cls = PolicyClass();
104
+ if (cls == Nil) {
105
+ return nil; // SocketRocket asks nil, which answers NO: refused.
106
+ }
107
+ id policy = [[cls alloc] init];
108
+ NSUInteger port = url.port.unsignedIntValue;
109
+ objc_setAssociatedObject(policy, &kHostKey, url.host, OBJC_ASSOCIATION_COPY_NONATOMIC);
110
+ objc_setAssociatedObject(policy, &kPortKey, @(port == 0 ? 443 : port), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
111
+ return policy;
112
+ }
113
+
114
+ static id PinnedInit(id self, SEL _cmd, NSURLRequest *request, NSArray *protocols, id securityPolicy)
115
+ {
116
+ if (RequiresTLS(request.URL)) {
117
+ securityPolicy = PolicyFor(request.URL);
118
+ }
119
+ return gOriginalInit(self, _cmd, request, protocols, securityPolicy);
120
+ }
121
+
122
+ static Method SocketInit(void)
123
+ {
124
+ Class socket = NSClassFromString(kSocketClass);
125
+ return socket ? class_getInstanceMethod(socket, NSSelectorFromString(kInitSelector)) : NULL;
126
+ }
127
+
128
+ // Info.plist PinVaultPinReactNativeNetworking = NO: the native opt-out of the https handler covers this too.
129
+ static BOOL Enabled(void)
130
+ {
131
+ id value = [NSBundle.mainBundle objectForInfoDictionaryKey:@"PinVaultPinReactNativeNetworking"];
132
+ return ![value respondsToSelector:@selector(boolValue)] || [value boolValue];
133
+ }
134
+
135
+ @implementation RNPinVaultWebSocketPinning
136
+
137
+ + (void)load
138
+ {
139
+ [self install];
140
+ }
141
+
142
+ + (BOOL)install
143
+ {
144
+ if (!Enabled()) {
145
+ return NO;
146
+ }
147
+ os_unfair_lock_lock(&gLock);
148
+ BOOL installed = NO;
149
+ Method method = SocketInit();
150
+ if (method != NULL && gOriginalInit != NULL) {
151
+ installed = method_getImplementation(method) == (IMP)PinnedInit;
152
+ } else if (method != NULL && PolicyClass() != Nil &&
153
+ strcmp(method_getTypeEncoding(method) ?: "", "@40@0:8@16@24@32") == 0) {
154
+ gOriginalInit = (RNPVSocketInit)method_getImplementation(method);
155
+ method_setImplementation(method, (IMP)PinnedInit);
156
+ installed = YES;
157
+ }
158
+ os_unfair_lock_unlock(&gLock);
159
+ return installed;
160
+ }
161
+
162
+ + (BOOL)isPinned
163
+ {
164
+ if (NSClassFromString(kSocketClass) == Nil) {
165
+ return YES; // No SocketRocket: React Native has no WebSocket to pin.
166
+ }
167
+ return [self install];
168
+ }
169
+
170
+ @end
@@ -110,7 +110,13 @@ export async function evaluateGuard(guard, operation, timeoutMs) {
110
110
  if (timer !== undefined) clearTimeout(timer);
111
111
  }
112
112
  }
113
- const GUARDED_OPERATIONS = new Set(['INIT', 'ENROLL', 'FETCH_FILE', 'UNLOCK_FILE']);
113
+ const GUARDED_OPERATIONS = new Set(['INIT', 'ENROLL', 'FETCH_FILE', 'UNLOCK_FILE', 'LOAD_FILE']);
114
+
115
+ /** The guard of the running config, put back when a new config is refused. */
116
+ let activeGuard = {
117
+ guard: undefined,
118
+ timeoutMs: DEFAULT_GUARD_TIMEOUT_MS
119
+ };
114
120
  function installGuard(guard, timeoutMs) {
115
121
  guardSubscription?.remove();
116
122
  guardSubscription = null;
@@ -157,8 +163,21 @@ export async function start(config) {
157
163
  timeoutMs
158
164
  };
159
165
  const json = strictJson(nativeConfig, 'config', 'E_INVALID_CONFIG');
166
+ // The new guard answers during start (INIT is asked then). A config the
167
+ // native side refuses changes nothing, so the running config's guard comes back.
168
+ const previous = activeGuard;
160
169
  installGuard(environmentGuard, timeoutMs);
161
- return call(NativePinVault.start(json));
170
+ try {
171
+ const result = await call(NativePinVault.start(json));
172
+ activeGuard = {
173
+ guard: environmentGuard,
174
+ timeoutMs
175
+ };
176
+ return result;
177
+ } catch (error) {
178
+ installGuard(previous.guard, previous.timeoutMs);
179
+ throw error;
180
+ }
162
181
  }
163
182
  export const updateNow = () => call(NativePinVault.updateNow());
164
183
  export const currentVersion = () => call(NativePinVault.currentVersion());
@@ -1 +1 @@
1
- {"version":3,"names":["NativePinVault","PinVaultError","Error","constructor","code","message","exception","name","KNOWN_CODES","Set","toPinVaultError","error","e","has","info","userInfo","exceptionName","exceptionMessage","call","promise","MAX_DEPTH","assertPlainData","value","path","depth","Number","isFinite","Array","isArray","forEach","item","i","undefined","proto","Object","getPrototypeOf","prototype","k","v","entries","strictJson","JSON","stringify","DEFAULT_GUARD_TIMEOUT_MS","guardSubscription","evaluateGuard","guard","operation","timeoutMs","timer","verdict","Promise","race","resolve","then","setTimeout","__DEV__","console","warn","clearTimeout","GUARDED_OPERATIONS","installGuard","remove","jsTimeout","Math","max","onGuardRequest","request","answerGuard","requestId","allowed","start","config","environmentGuard","environmentGuardTimeoutMs","rest","isInteger","nativeConfig","json","updateNow","currentVersion","hostPinVersions","pinsForHost","hostname","result","pins","signingStatus","configApiId","isForceUpdate","reset","schedulePeriodicUpdates","intervalHours","cancelPeriodicUpdates","enableDebugLogging","fetch","url","init","response","ok","status","deviceId","enrollForResult","token","label","autoEnrollForResult","checkPendingEnrollment","isEnrolled","isEnrollmentPending","enrollmentVerificationCode","enrolledClientCN","enrolledClientNotAfter","unenroll","options","wipeVaultFiles","identityKeySecurityLevel","setVaultToken","key","clearVaultTokens","fetchFile","loadFile","encoding","fileStatus","unlockFile","prompt","isFileLocked","hasFile","fileVersion","clearFile","syncAllFiles","attestNow","fetchAttestationToken","host","attestationStatus","attestationHeaderName","addConnectionListener","listener","onConnectionEvent","event","PinVault"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativePinVault","PinVaultError","Error","constructor","code","message","exception","name","KNOWN_CODES","Set","toPinVaultError","error","e","has","info","userInfo","exceptionName","exceptionMessage","call","promise","MAX_DEPTH","assertPlainData","value","path","depth","Number","isFinite","Array","isArray","forEach","item","i","undefined","proto","Object","getPrototypeOf","prototype","k","v","entries","strictJson","JSON","stringify","DEFAULT_GUARD_TIMEOUT_MS","guardSubscription","evaluateGuard","guard","operation","timeoutMs","timer","verdict","Promise","race","resolve","then","setTimeout","__DEV__","console","warn","clearTimeout","GUARDED_OPERATIONS","activeGuard","installGuard","remove","jsTimeout","Math","max","onGuardRequest","request","answerGuard","requestId","allowed","start","config","environmentGuard","environmentGuardTimeoutMs","rest","isInteger","nativeConfig","json","previous","result","updateNow","currentVersion","hostPinVersions","pinsForHost","hostname","pins","signingStatus","configApiId","isForceUpdate","reset","schedulePeriodicUpdates","intervalHours","cancelPeriodicUpdates","enableDebugLogging","fetch","url","init","response","ok","status","deviceId","enrollForResult","token","label","autoEnrollForResult","checkPendingEnrollment","isEnrolled","isEnrollmentPending","enrollmentVerificationCode","enrolledClientCN","enrolledClientNotAfter","unenroll","options","wipeVaultFiles","identityKeySecurityLevel","setVaultToken","key","clearVaultTokens","fetchFile","loadFile","encoding","fileStatus","unlockFile","prompt","isFileLocked","hasFile","fileVersion","clearFile","syncAllFiles","attestNow","fetchAttestationToken","host","attestationStatus","attestationHeaderName","addConnectionListener","listener","onConnectionEvent","event","PinVault"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}