@oiti/rn-liveness3d 2.9.0 → 3.2.0

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 (102) hide show
  1. package/android/build.gradle +1 -1
  2. package/ios/Podfile +2 -2
  3. package/ios/Podfile.lock +12 -12
  4. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/Info.plist +7 -7
  5. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Assets.car +0 -0
  6. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Headers/OILiveness3D-Swift.h +1 -1
  7. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Info.plist +0 -0
  8. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/Por_favor_pressione_o_botao_para_iniciar.mp3 +0 -0
  9. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/Toque_duas_veezs_em_qualquer_lugar_da_tela.mp3 +0 -0
  10. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/carregando.mp3 +0 -0
  11. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/escaneamento_feito_com_sucesso.mp3 +0 -0
  12. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/por_favor_chegue_mais_perto.mp3 +0 -0
  13. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/por_favor_tente_novamente.mp3 +0 -0
  14. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/prepare-se_para_seu_reconhecimento_facial.mp3 +0 -0
  15. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/rosto_muito_longe.mp3 +0 -0
  16. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/segure_firme.mp3 +0 -0
  17. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/suporte_vocal_desligado.mp3 +0 -0
  18. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Media/suporte_vocal_ligado.mp3 +0 -0
  19. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Modules/OILiveness3D.swiftmodule/arm64-apple-ios.private.swiftinterface +2 -3
  20. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Modules/OILiveness3D.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  21. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/Modules/OILiveness3D.swiftmodule/arm64-apple-ios.swiftinterface +2 -3
  22. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/OILiveness3D.framework/OILiveness3D +0 -0
  23. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/dSYMs/OILiveness3D.framework.dSYM/Contents/Info.plist +1 -1
  24. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/dSYMs/OILiveness3D.framework.dSYM/Contents/Resources/DWARF/OILiveness3D +0 -0
  25. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64/dSYMs/OILiveness3D.framework.dSYM/Contents/Resources/Swift/aarch64/OISecurity.swiftinterface +16 -10
  26. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Assets.car +0 -0
  27. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Headers/OILiveness3D-Swift.h +2 -2
  28. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Info.plist +0 -0
  29. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/Por_favor_pressione_o_botao_para_iniciar.mp3 +0 -0
  30. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/Toque_duas_veezs_em_qualquer_lugar_da_tela.mp3 +0 -0
  31. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/carregando.mp3 +0 -0
  32. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/escaneamento_feito_com_sucesso.mp3 +0 -0
  33. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/por_favor_chegue_mais_perto.mp3 +0 -0
  34. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/por_favor_tente_novamente.mp3 +0 -0
  35. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/prepare-se_para_seu_reconhecimento_facial.mp3 +0 -0
  36. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/rosto_muito_longe.mp3 +0 -0
  37. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/segure_firme.mp3 +0 -0
  38. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/suporte_vocal_desligado.mp3 +0 -0
  39. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Media/suporte_vocal_ligado.mp3 +0 -0
  40. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Modules/OILiveness3D.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +2 -3
  41. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Modules/OILiveness3D.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  42. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Modules/OILiveness3D.swiftmodule/arm64-apple-ios-simulator.swiftinterface +2 -3
  43. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Modules/OILiveness3D.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +2 -3
  44. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Modules/OILiveness3D.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  45. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/Modules/OILiveness3D.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +2 -3
  46. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/OILiveness3D +0 -0
  47. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework/ios-arm64_x86_64-simulator/OILiveness3D.framework/_CodeSignature/CodeResources +142 -21
  48. package/ios/Pods/OILiveness3D/Framework/OILiveness3D.xcframework.zip +0 -0
  49. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/Assets.car +0 -0
  50. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/FaceTecSDK +0 -0
  51. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/Info.plist +0 -0
  52. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/Storyboard.storyboardc/9Uo-4b-JiE-view-Ae0-rb-UqS.nib +0 -0
  53. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/1f5b84f51ce0fcfbb76e904b7bcaa7560f601e1394a0b29367a09385312287eb +0 -0
  54. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/2b075ac1a6132b5b8a4c9ef0ba6b0cd84db7838aca9a000e50d907f40770a4ab +0 -0
  55. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/59cc2a9af81aaca2376702c2490650f4da2775fa673274db98aad41b7ef101c0 +0 -0
  56. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/5b63e98b991aedabb60665503384f30bffd939decf9433883b30b78011ee501a +0 -0
  57. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/66388dc76dc16bc6b76b682edd218a575bf45b9b +0 -0
  58. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/6b3133f0f39ff89a2a169d61176ee17cafacc5e288f334e2b64ee82892d11ccd +0 -0
  59. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/9077d16225f9314163ef1e7db6fc7d4088bb903d134bd95f23d5591ca4dfbfca +0 -0
  60. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/a74f2afb9d20f2375ccbd14e67c094b85c89ceb608f7cf8ae04f3f646a6c5672 +0 -0
  61. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/b501893e75f62ee1707643e35b21109927b07ed5b202321c961b424cbc2e4695 +0 -0
  62. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/dbd7a353f0130bb983d6ba05917e9be991d70e8f028df4b74e30bc6497ef7f71 +0 -0
  63. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/f2.xml +0 -0
  64. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/fd6d368a5658496536e2bfae170d1b823a3629b242cafc09784bfba4e56d8c80 +0 -0
  65. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64/FaceTecSDK.framework/cache_uyertuazlkxcjrlwkejr/39bb748b334003e3fa/vu0ilin6we3lrzo5f83f7qs2jul4aq7v4aoynrmch8zfvpi8ezrfyafa4t0fx87l +0 -0
  66. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64_x86_64-simulator/FaceTecSDK.framework/FaceTecSDK +0 -0
  67. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64_x86_64-simulator/FaceTecSDK.framework/Info.plist +0 -0
  68. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework/ios-arm64_x86_64-simulator/FaceTecSDK.framework/_CodeSignature/CodeResources +1 -1
  69. package/ios/Pods/OILiveness3D_FT/Framework/FaceTecSDK.xcframework.zip +0 -0
  70. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/Info.plist +7 -7
  71. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64/OISecurity.framework/Headers/OISecurity-Swift.h +1 -1
  72. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64/OISecurity.framework/Info.plist +0 -0
  73. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64/OISecurity.framework/Modules/OISecurity.swiftmodule/arm64-apple-ios.private.swiftinterface +16 -10
  74. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64/OISecurity.framework/Modules/OISecurity.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  75. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64/OISecurity.framework/Modules/OISecurity.swiftmodule/arm64-apple-ios.swiftinterface +16 -10
  76. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64/OISecurity.framework/OISecurity +0 -0
  77. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64/dSYMs/OISecurity.framework.dSYM/Contents/Info.plist +1 -1
  78. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64/dSYMs/OISecurity.framework.dSYM/Contents/Resources/DWARF/OISecurity +0 -0
  79. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64/dSYMs/OISecurity.framework.dSYM/Contents/Resources/Swift/aarch64/OICommons.swiftinterface +1818 -0
  80. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64_x86_64-simulator/OISecurity.framework/Headers/OISecurity-Swift.h +2 -2
  81. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64_x86_64-simulator/OISecurity.framework/Info.plist +0 -0
  82. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64_x86_64-simulator/OISecurity.framework/Modules/OISecurity.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +16 -10
  83. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64_x86_64-simulator/OISecurity.framework/Modules/OISecurity.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  84. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64_x86_64-simulator/OISecurity.framework/Modules/OISecurity.swiftmodule/arm64-apple-ios-simulator.swiftinterface +16 -10
  85. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64_x86_64-simulator/OISecurity.framework/Modules/OISecurity.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +16 -10
  86. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64_x86_64-simulator/OISecurity.framework/Modules/OISecurity.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  87. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64_x86_64-simulator/OISecurity.framework/Modules/OISecurity.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +16 -10
  88. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64_x86_64-simulator/OISecurity.framework/OISecurity +0 -0
  89. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework/ios-arm64_x86_64-simulator/OISecurity.framework/_CodeSignature/CodeResources +19 -19
  90. package/ios/Pods/OISecurity/Frameworks/OISecurity.xcframework.zip +0 -0
  91. package/ios/Pods/Pods.xcodeproj/project.pbxproj +230 -213
  92. package/ios/Pods/Pods.xcodeproj/xcuserdata/gabrielcatelligoulart.xcuserdatad/xcschemes/OICommons.xcscheme +1 -1
  93. package/ios/Pods/Pods.xcodeproj/xcuserdata/gabrielcatelligoulart.xcuserdatad/xcschemes/OIComponents.xcscheme +1 -1
  94. package/ios/Pods/Pods.xcodeproj/xcuserdata/gabrielcatelligoulart.xcuserdatad/xcschemes/OILiveness3D.xcscheme +1 -1
  95. package/ios/Pods/Pods.xcodeproj/xcuserdata/gabrielcatelligoulart.xcuserdatad/xcschemes/OILiveness3D_FT.xcscheme +1 -1
  96. package/ios/Pods/Pods.xcodeproj/xcuserdata/gabrielcatelligoulart.xcuserdatad/xcschemes/OINetwork.xcscheme +1 -1
  97. package/ios/Pods/Pods.xcodeproj/xcuserdata/gabrielcatelligoulart.xcuserdatad/xcschemes/OISecurity.xcscheme +1 -1
  98. package/ios/Pods/Pods.xcodeproj/xcuserdata/gabrielcatelligoulart.xcuserdatad/xcschemes/Pods-RnLiveness3d.xcscheme +1 -1
  99. package/ios/Pods/Target Support Files/Pods-RnLiveness3d/Pods-RnLiveness3d.debug.xcconfig +1 -0
  100. package/ios/Pods/Target Support Files/Pods-RnLiveness3d/Pods-RnLiveness3d.release.xcconfig +1 -0
  101. package/oiti-rn-liveness3d.podspec +2 -2
  102. package/package.json +1 -1
@@ -0,0 +1,1818 @@
1
+ // swift-interface-format-version: 1.0
2
+ // swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
3
+ // swift-module-flags: -target arm64-apple-ios12.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name OICommons
4
+ // swift-module-flags-ignorable: -enable-bare-slash-regex
5
+ import AVFoundation
6
+ import CoreGraphics
7
+ import CoreText
8
+ import Darwin
9
+ import Foundation
10
+ @_exported import OICommons
11
+ import Swift
12
+ import SystemConfiguration
13
+ import UIKit
14
+ import _Concurrency
15
+ import _StringProcessing
16
+ import _SwiftConcurrencyShims
17
+ extension Swift.UInt32 {
18
+ @_specialize(exported: false, kind: full, where T == Swift.ArraySlice<Swift.UInt8>)
19
+ @inlinable internal init<T>(bytes: T, fromIndex index: T.Index) where T : Swift.Collection, T.Element == Swift.UInt8, T.Index == Swift.Int {
20
+ if bytes.isEmpty {
21
+ self = 0
22
+ return
23
+ }
24
+
25
+ let count = bytes.count
26
+
27
+ let val0 = count > 0 ? UInt32(bytes[index.advanced(by: 0)]) << 24 : 0
28
+ let val1 = count > 1 ? UInt32(bytes[index.advanced(by: 1)]) << 16 : 0
29
+ let val2 = count > 2 ? UInt32(bytes[index.advanced(by: 2)]) << 8 : 0
30
+ let val3 = count > 3 ? UInt32(bytes[index.advanced(by: 3)]) : 0
31
+
32
+ self = val0 | val1 | val2 | val3
33
+ }
34
+ }
35
+ extension Swift.Collection where Self.Element == Swift.UInt8, Self.Index == Swift.Int {
36
+ @inlinable internal func toUInt32Array() -> Swift.Array<Swift.UInt32> {
37
+ guard !isEmpty else {
38
+ return []
39
+ }
40
+
41
+ let c = strideCount(from: startIndex, to: endIndex, by: 4)
42
+ return Array<UInt32>(unsafeUninitializedCapacity: c) { buf, count in
43
+ var counter = 0
44
+ for idx in stride(from: startIndex, to: endIndex, by: 4) {
45
+ let val = UInt32(bytes: self, fromIndex: idx).bigEndian
46
+ buf[counter] = val
47
+ counter += 1
48
+ }
49
+ count = counter
50
+ assert(counter == c)
51
+ }
52
+ }
53
+ @inlinable internal func toUInt64Array() -> Swift.Array<Swift.UInt64> {
54
+ guard !isEmpty else {
55
+ return []
56
+ }
57
+
58
+ let c = strideCount(from: startIndex, to: endIndex, by: 8)
59
+ return Array<UInt64>(unsafeUninitializedCapacity: c) { buf, count in
60
+ var counter = 0
61
+ for idx in stride(from: startIndex, to: endIndex, by: 8) {
62
+ let val = UInt64(bytes: self, fromIndex: idx).bigEndian
63
+ buf[counter] = val
64
+ counter += 1
65
+ }
66
+ count = counter
67
+ assert(counter == c)
68
+ }
69
+ }
70
+ }
71
+ @usableFromInline
72
+ internal func strideCount(from: Swift.Int, to: Swift.Int, by: Swift.Int) -> Swift.Int
73
+ @_hasMissingDesignatedInitializers public class FontUtil {
74
+ public static func registerFonts()
75
+ @objc deinit
76
+ }
77
+ final public class AES {
78
+ public enum Error : Swift.Error {
79
+ case invalidKeySize
80
+ case dataPaddingRequired
81
+ case invalidData
82
+ public static func == (a: OICommons.AES.Error, b: OICommons.AES.Error) -> Swift.Bool
83
+ public func hash(into hasher: inout Swift.Hasher)
84
+ public var hashValue: Swift.Int {
85
+ get
86
+ }
87
+ }
88
+ public enum Variant : Swift.Int {
89
+ case aes128, aes192, aes256
90
+ public init?(rawValue: Swift.Int)
91
+ public typealias RawValue = Swift.Int
92
+ public var rawValue: Swift.Int {
93
+ get
94
+ }
95
+ }
96
+ @usableFromInline
97
+ final internal let variantNr: Swift.Int
98
+ @usableFromInline
99
+ final internal let variantNb: Swift.Int
100
+ @usableFromInline
101
+ final internal let variantNk: Swift.Int
102
+ public static let blockSize: Swift.Int
103
+ final public let keySize: Swift.Int
104
+ final public let variant: OICommons.AES.Variant
105
+ @usableFromInline
106
+ final internal let blockMode: any OICommons.BlockMode
107
+ @usableFromInline
108
+ final internal let padding: OICommons.Padding
109
+ @usableFromInline
110
+ final internal var expandedKey: Swift.Array<Swift.Array<Swift.UInt32>> {
111
+ get
112
+ set
113
+ }
114
+ @usableFromInline
115
+ final internal var expandedKeyInv: Swift.Array<Swift.Array<Swift.UInt32>> {
116
+ get
117
+ set
118
+ }
119
+ @usableFromInline
120
+ internal static let T0: [Swift.UInt32]
121
+ @usableFromInline
122
+ internal static let T0_INV: [Swift.UInt32]
123
+ @usableFromInline
124
+ internal static let T1: [Swift.UInt32]
125
+ @usableFromInline
126
+ internal static let T1_INV: [Swift.UInt32]
127
+ @usableFromInline
128
+ internal static let T2: [Swift.UInt32]
129
+ @usableFromInline
130
+ internal static let T2_INV: [Swift.UInt32]
131
+ @usableFromInline
132
+ internal static let T3: [Swift.UInt32]
133
+ @usableFromInline
134
+ internal static let T3_INV: [Swift.UInt32]
135
+ @usableFromInline
136
+ internal static let U1: [Swift.UInt32]
137
+ @usableFromInline
138
+ internal static let U2: [Swift.UInt32]
139
+ @usableFromInline
140
+ internal static let U3: [Swift.UInt32]
141
+ @usableFromInline
142
+ internal static let U4: [Swift.UInt32]
143
+ public init(key: Swift.Array<Swift.UInt8>, blockMode: any OICommons.BlockMode, padding: OICommons.Padding = .pkcs7) throws
144
+ @inlinable final internal func encrypt(block: Swift.ArraySlice<Swift.UInt8>) -> Swift.Array<Swift.UInt8>? {
145
+ if self.blockMode.options.contains(.paddingRequired) && block.count != AES.blockSize {
146
+ return Array(block)
147
+ }
148
+
149
+ let rounds = self.variantNr
150
+ let rk = self.expandedKey
151
+
152
+ let b00 = UInt32(block[block.startIndex.advanced(by: 0)])
153
+ let b01 = UInt32(block[block.startIndex.advanced(by: 1)]) << 8
154
+ let b02 = UInt32(block[block.startIndex.advanced(by: 2)]) << 16
155
+ let b03 = UInt32(block[block.startIndex.advanced(by: 3)]) << 24
156
+ var b0 = b00 | b01 | b02 | b03
157
+
158
+ let b10 = UInt32(block[block.startIndex.advanced(by: 4)])
159
+ let b11 = UInt32(block[block.startIndex.advanced(by: 5)]) << 8
160
+ let b12 = UInt32(block[block.startIndex.advanced(by: 6)]) << 16
161
+ let b13 = UInt32(block[block.startIndex.advanced(by: 7)]) << 24
162
+ var b1 = b10 | b11 | b12 | b13
163
+
164
+ let b20 = UInt32(block[block.startIndex.advanced(by: 8)])
165
+ let b21 = UInt32(block[block.startIndex.advanced(by: 9)]) << 8
166
+ let b22 = UInt32(block[block.startIndex.advanced(by: 10)]) << 16
167
+ let b23 = UInt32(block[block.startIndex.advanced(by: 11)]) << 24
168
+ var b2 = b20 | b21 | b22 | b23
169
+
170
+ let b30 = UInt32(block[block.startIndex.advanced(by: 12)])
171
+ let b31 = UInt32(block[block.startIndex.advanced(by: 13)]) << 8
172
+ let b32 = UInt32(block[block.startIndex.advanced(by: 14)]) << 16
173
+ let b33 = UInt32(block[block.startIndex.advanced(by: 15)]) << 24
174
+ var b3 = b30 | b31 | b32 | b33
175
+
176
+ let tLength = 4
177
+ let t = UnsafeMutablePointer<UInt32>.allocate(capacity: tLength)
178
+ t.initialize(repeating: 0, count: tLength)
179
+ defer {
180
+ t.deinitialize(count: tLength)
181
+ t.deallocate()
182
+ }
183
+
184
+ for r in 0..<rounds - 1 {
185
+ t[0] = b0 ^ rk[r][0]
186
+ t[1] = b1 ^ rk[r][1]
187
+ t[2] = b2 ^ rk[r][2]
188
+ t[3] = b3 ^ rk[r][3]
189
+
190
+ let lb00 = AES.T0[Int(t[0] & 0xff)]
191
+ let lb01 = AES.T1[Int((t[1] >> 8) & 0xff)]
192
+ let lb02 = AES.T2[Int((t[2] >> 16) & 0xff)]
193
+ let lb03 = AES.T3[Int(t[3] >> 24)]
194
+ b0 = lb00 ^ lb01 ^ lb02 ^ lb03
195
+
196
+ let lb10 = AES.T0[Int(t[1] & 0xff)]
197
+ let lb11 = AES.T1[Int((t[2] >> 8) & 0xff)]
198
+ let lb12 = AES.T2[Int((t[3] >> 16) & 0xff)]
199
+ let lb13 = AES.T3[Int(t[0] >> 24)]
200
+ b1 = lb10 ^ lb11 ^ lb12 ^ lb13
201
+
202
+ let lb20 = AES.T0[Int(t[2] & 0xff)]
203
+ let lb21 = AES.T1[Int((t[3] >> 8) & 0xff)]
204
+ let lb22 = AES.T2[Int((t[0] >> 16) & 0xff)]
205
+ let lb23 = AES.T3[Int(t[1] >> 24)]
206
+ b2 = lb20 ^ lb21 ^ lb22 ^ lb23
207
+
208
+ let lb30 = AES.T0[Int(t[3] & 0xff)]
209
+ let lb31 = AES.T1[Int((t[0] >> 8) & 0xff)]
210
+ let lb32 = AES.T2[Int((t[1] >> 16) & 0xff)]
211
+ let lb33 = AES.T3[Int(t[2] >> 24)]
212
+ b3 = lb30 ^ lb31 ^ lb32 ^ lb33
213
+ }
214
+
215
+ // last round
216
+ let r = rounds - 1
217
+
218
+ t[0] = b0 ^ rk[r][0]
219
+ t[1] = b1 ^ rk[r][1]
220
+ t[2] = b2 ^ rk[r][2]
221
+ t[3] = b3 ^ rk[r][3]
222
+
223
+ // rounds
224
+ b0 = F1(t[0], t[1], t[2], t[3]) ^ rk[rounds][0]
225
+ b1 = F1(t[1], t[2], t[3], t[0]) ^ rk[rounds][1]
226
+ b2 = F1(t[2], t[3], t[0], t[1]) ^ rk[rounds][2]
227
+ b3 = F1(t[3], t[0], t[1], t[2]) ^ rk[rounds][3]
228
+
229
+ let encrypted: Array<UInt8> = [
230
+ UInt8(b0 & 0xff), UInt8((b0 >> 8) & 0xff), UInt8((b0 >> 16) & 0xff), UInt8((b0 >> 24) & 0xff),
231
+ UInt8(b1 & 0xff), UInt8((b1 >> 8) & 0xff), UInt8((b1 >> 16) & 0xff), UInt8((b1 >> 24) & 0xff),
232
+ UInt8(b2 & 0xff), UInt8((b2 >> 8) & 0xff), UInt8((b2 >> 16) & 0xff), UInt8((b2 >> 24) & 0xff),
233
+ UInt8(b3 & 0xff), UInt8((b3 >> 8) & 0xff), UInt8((b3 >> 16) & 0xff), UInt8((b3 >> 24) & 0xff)
234
+ ]
235
+ return encrypted
236
+ }
237
+ @usableFromInline
238
+ final internal func decrypt(block: Swift.ArraySlice<Swift.UInt8>) -> Swift.Array<Swift.UInt8>?
239
+ @objc deinit
240
+ }
241
+ extension OICommons.AES {
242
+ @usableFromInline
243
+ @inline(__always) final internal func F1(_ x0: Swift.UInt32, _ x1: Swift.UInt32, _ x2: Swift.UInt32, _ x3: Swift.UInt32) -> Swift.UInt32
244
+ }
245
+ extension OICommons.AES : OICommons.Cipher {
246
+ @inlinable final public func encrypt(_ bytes: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8> {
247
+ let blockSize = self.blockMode.customBlockSize ?? AES.blockSize
248
+ let chunks = bytes.batched(by: blockSize)
249
+
250
+ var oneTimeCryptor = try makeEncryptor()
251
+ var out = Array<UInt8>(reserveCapacity: bytes.count)
252
+ for chunk in chunks {
253
+ out += try oneTimeCryptor.update(withBytes: chunk, isLast: false)
254
+ }
255
+ // Padding may be added at the very end
256
+ out += try oneTimeCryptor.finish()
257
+
258
+ if self.blockMode.options.contains(.paddingRequired) && (out.count % AES.blockSize != 0) {
259
+ throw Error.dataPaddingRequired
260
+ }
261
+
262
+ return out
263
+ }
264
+ @inlinable final public func decrypt(_ bytes: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8> {
265
+ if self.blockMode.options.contains(.paddingRequired) && (bytes.count % AES.blockSize != 0) {
266
+ throw Error.dataPaddingRequired
267
+ }
268
+
269
+ var oneTimeCryptor = try makeDecryptor()
270
+ let chunks = bytes.batched(by: AES.blockSize)
271
+ if chunks.isEmpty {
272
+ throw Error.invalidData
273
+ }
274
+
275
+ var out = Array<UInt8>(reserveCapacity: bytes.count)
276
+
277
+ var lastIdx = chunks.startIndex
278
+ chunks.indices.formIndex(&lastIdx, offsetBy: chunks.count - 1)
279
+
280
+ // To properly remove padding, `isLast` has to be known when called with the last chunk of ciphertext
281
+ // Last chunk of ciphertext may contains padded data so next call to update(..) won't be able to remove it
282
+ for idx in chunks.indices {
283
+ out += try oneTimeCryptor.update(withBytes: chunks[idx], isLast: idx == lastIdx)
284
+ }
285
+ return out
286
+ }
287
+ }
288
+ @_inheritsConvenienceInitializers final public class CBCMAC : OICommons.CMAC {
289
+ override final public func authenticate(_ bytes: Swift.Array<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
290
+ override public init(key: Swift.Array<Swift.UInt8>) throws
291
+ @objc deinit
292
+ }
293
+ extension Swift.UInt64 {
294
+ @_specialize(exported: false, kind: full, where T == Swift.ArraySlice<Swift.UInt8>)
295
+ @inlinable internal init<T>(bytes: T, fromIndex index: T.Index) where T : Swift.Collection, T.Element == Swift.UInt8, T.Index == Swift.Int {
296
+ if bytes.isEmpty {
297
+ self = 0
298
+ return
299
+ }
300
+
301
+ let count = bytes.count
302
+
303
+ let val0 = count > 0 ? UInt64(bytes[index.advanced(by: 0)]) << 56 : 0
304
+ let val1 = count > 1 ? UInt64(bytes[index.advanced(by: 1)]) << 48 : 0
305
+ let val2 = count > 2 ? UInt64(bytes[index.advanced(by: 2)]) << 40 : 0
306
+ let val3 = count > 3 ? UInt64(bytes[index.advanced(by: 3)]) << 32 : 0
307
+ let val4 = count > 4 ? UInt64(bytes[index.advanced(by: 4)]) << 24 : 0
308
+ let val5 = count > 5 ? UInt64(bytes[index.advanced(by: 5)]) << 16 : 0
309
+ let val6 = count > 6 ? UInt64(bytes[index.advanced(by: 6)]) << 8 : 0
310
+ let val7 = count > 7 ? UInt64(bytes[index.advanced(by: 7)]) : 0
311
+
312
+ self = val0 | val1 | val2 | val3 | val4 | val5 | val6 | val7
313
+ }
314
+ }
315
+ final public class OCB : OICommons.BlockMode {
316
+ public enum Mode {
317
+ case combined
318
+ case detached
319
+ public static func == (a: OICommons.OCB.Mode, b: OICommons.OCB.Mode) -> Swift.Bool
320
+ public func hash(into hasher: inout Swift.Hasher)
321
+ public var hashValue: Swift.Int {
322
+ get
323
+ }
324
+ }
325
+ final public let options: OICommons.BlockModeOption
326
+ public enum Error : Swift.Error {
327
+ case invalidNonce
328
+ case fail
329
+ public static func == (a: OICommons.OCB.Error, b: OICommons.OCB.Error) -> Swift.Bool
330
+ public func hash(into hasher: inout Swift.Hasher)
331
+ public var hashValue: Swift.Int {
332
+ get
333
+ }
334
+ }
335
+ final public let customBlockSize: Swift.Int?
336
+ final public var authenticationTag: Swift.Array<Swift.UInt8>?
337
+ public init(nonce N: Swift.Array<Swift.UInt8>, additionalAuthenticatedData: Swift.Array<Swift.UInt8>? = nil, tagLength: Swift.Int = 16, mode: OICommons.OCB.Mode = .detached)
338
+ @inlinable convenience public init(nonce N: Swift.Array<Swift.UInt8>, authenticationTag: Swift.Array<Swift.UInt8>, additionalAuthenticatedData: Swift.Array<Swift.UInt8>? = nil, mode: OICommons.OCB.Mode = .detached) {
339
+ self.init(nonce: N, additionalAuthenticatedData: additionalAuthenticatedData, tagLength: authenticationTag.count, mode: mode)
340
+ self.authenticationTag = authenticationTag
341
+ }
342
+ final public func worker(blockSize: Swift.Int, cipherOperation: @escaping OICommons.CipherOperationOnBlock, encryptionOperation: @escaping OICommons.CipherOperationOnBlock) throws -> any OICommons.CipherModeWorker
343
+ @objc deinit
344
+ }
345
+ @usableFromInline
346
+ final internal class BlockEncryptor : OICommons.Cryptor, OICommons.Updatable {
347
+ @usableFromInline
348
+ internal init(blockSize: Swift.Int, padding: OICommons.Padding, _ worker: any OICommons.CipherModeWorker) throws
349
+ final public func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool) throws -> Swift.Array<Swift.UInt8>
350
+ @usableFromInline
351
+ final internal func seek(to: Swift.Int) throws
352
+ @objc @usableFromInline
353
+ deinit
354
+ }
355
+ public enum EnvironmentManager {
356
+ public static func facecaptchaBaseUrl(from environment: OICommons.Environment) -> Swift.String
357
+ public static func certifaceBaseUrl(from environment: OICommons.Environment) -> Swift.String
358
+ }
359
+ extension OICommons.HMAC {
360
+ convenience public init(key: Swift.String, variant: OICommons.HMAC.Variant = .md5) throws
361
+ }
362
+ @_hasMissingDesignatedInitializers final public class FCWrapper {
363
+ final public var ok: Swift.Bool
364
+ public init(json: Swift.String)
365
+ final public func map<T>(optional: Swift.Bool = false, withClosure closure: ((OICommons.FCWrapper) -> (T?))? = nil) -> T?
366
+ final public func mapArrayOfObjects<T>(optional: Swift.Bool = false, withClosure closure: (OICommons.FCWrapper) -> (T.Iterator.Element)) -> T? where T : Swift.Collection
367
+ final public subscript(name: Swift.String) -> OICommons.FCWrapper {
368
+ get
369
+ }
370
+ @objc deinit
371
+ }
372
+ public enum Environment : Swift.String, Swift.CaseIterable {
373
+ case HML
374
+ case PRD
375
+ public init?(rawValue: Swift.String)
376
+ public typealias AllCases = [OICommons.Environment]
377
+ public typealias RawValue = Swift.String
378
+ public static var allCases: [OICommons.Environment] {
379
+ get
380
+ }
381
+ public var rawValue: Swift.String {
382
+ get
383
+ }
384
+ }
385
+ final public class MD5 {
386
+ public init()
387
+ final public func calculate(for bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8>
388
+ @objc deinit
389
+ }
390
+ extension OICommons.MD5 : OICommons.Updatable {
391
+ final public func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool = false) throws -> Swift.Array<Swift.UInt8>
392
+ }
393
+ extension Swift.FixedWidthInteger {
394
+ @inlinable internal func bytes(totalBytes: Swift.Int = MemoryLayout<Self>.size) -> Swift.Array<Swift.UInt8> {
395
+ arrayOfBytes(value: self.littleEndian, length: totalBytes)
396
+ // TODO: adjust bytes order
397
+ // var value = self.littleEndian
398
+ // return withUnsafeBytes(of: &value, Array.init).reversed()
399
+ }
400
+ }
401
+ extension OICommons.PKCS5 {
402
+ public struct PBKDF1 {
403
+ public enum Error : Swift.Error {
404
+ case invalidInput
405
+ case derivedKeyTooLong
406
+ public static func == (a: OICommons.PKCS5.PBKDF1.Error, b: OICommons.PKCS5.PBKDF1.Error) -> Swift.Bool
407
+ public func hash(into hasher: inout Swift.Hasher)
408
+ public var hashValue: Swift.Int {
409
+ get
410
+ }
411
+ }
412
+ public enum Variant {
413
+ case md5, sha1
414
+ @usableFromInline
415
+ internal var size: Swift.Int {
416
+ get
417
+ }
418
+ @usableFromInline
419
+ internal func calculateHash(_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8>
420
+ public static func == (a: OICommons.PKCS5.PBKDF1.Variant, b: OICommons.PKCS5.PBKDF1.Variant) -> Swift.Bool
421
+ public func hash(into hasher: inout Swift.Hasher)
422
+ public var hashValue: Swift.Int {
423
+ get
424
+ }
425
+ }
426
+ @usableFromInline
427
+ internal let iterations: Swift.Int
428
+ @usableFromInline
429
+ internal let variant: OICommons.PKCS5.PBKDF1.Variant
430
+ @usableFromInline
431
+ internal let keyLength: Swift.Int
432
+ @usableFromInline
433
+ internal let t1: Swift.Array<Swift.UInt8>
434
+ public init(password: Swift.Array<Swift.UInt8>, salt: Swift.Array<Swift.UInt8>, variant: OICommons.PKCS5.PBKDF1.Variant = .sha1, iterations: Swift.Int = 4096, keyLength: Swift.Int? = nil) throws
435
+ @inlinable public func calculate() -> Swift.Array<Swift.UInt8> {
436
+ var t = self.t1
437
+ for _ in 2...self.iterations {
438
+ t = self.variant.calculateHash(t)
439
+ }
440
+ return Array(t[0..<self.keyLength])
441
+ }
442
+ }
443
+ }
444
+ public struct ECB : OICommons.BlockMode {
445
+ public let options: OICommons.BlockModeOption
446
+ public let customBlockSize: Swift.Int?
447
+ public init()
448
+ public func worker(blockSize: Swift.Int, cipherOperation: @escaping OICommons.CipherOperationOnBlock, encryptionOperation: @escaping OICommons.CipherOperationOnBlock) throws -> any OICommons.CipherModeWorker
449
+ }
450
+ public struct CTR {
451
+ public enum Error : Swift.Error {
452
+ case invalidInitializationVector
453
+ public static func == (a: OICommons.CTR.Error, b: OICommons.CTR.Error) -> Swift.Bool
454
+ public func hash(into hasher: inout Swift.Hasher)
455
+ public var hashValue: Swift.Int {
456
+ get
457
+ }
458
+ }
459
+ public let options: OICommons.BlockModeOption
460
+ public let customBlockSize: Swift.Int?
461
+ public init(iv: Swift.Array<Swift.UInt8>, counter: Swift.Int = 0)
462
+ public func worker(blockSize: Swift.Int, cipherOperation: @escaping OICommons.CipherOperationOnBlock, encryptionOperation: @escaping OICommons.CipherOperationOnBlock) throws -> any OICommons.CipherModeWorker
463
+ }
464
+ @usableFromInline
465
+ final internal class StreamEncryptor : OICommons.Cryptor, OICommons.Updatable {
466
+ @usableFromInline
467
+ final internal let blockSize: Swift.Int
468
+ @usableFromInline
469
+ final internal var worker: any OICommons.CipherModeWorker
470
+ @usableFromInline
471
+ final internal let padding: OICommons.Padding
472
+ @usableFromInline
473
+ final internal var lastBlockRemainder: Swift.Int
474
+ @usableFromInline
475
+ internal init(blockSize: Swift.Int, padding: OICommons.Padding, _ worker: any OICommons.CipherModeWorker) throws
476
+ @inlinable final public func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool) throws -> Swift.Array<Swift.UInt8> {
477
+ var accumulated = Array(bytes)
478
+ if isLast {
479
+ // CTR doesn't need padding. Really. Add padding to the last block if really want. but... don't.
480
+ accumulated = self.padding.add(to: accumulated, blockSize: self.blockSize - self.lastBlockRemainder)
481
+ }
482
+
483
+ var encrypted = Array<UInt8>(reserveCapacity: bytes.count)
484
+ for chunk in accumulated.batched(by: self.blockSize) {
485
+ encrypted += self.worker.encrypt(block: chunk)
486
+ }
487
+
488
+ // omit unecessary calculation if not needed
489
+ if self.padding != .noPadding {
490
+ self.lastBlockRemainder = encrypted.count.quotientAndRemainder(dividingBy: self.blockSize).remainder
491
+ }
492
+
493
+ if var finalizingWorker = worker as? FinalizingEncryptModeWorker, isLast == true {
494
+ encrypted = Array(try finalizingWorker.finalize(encrypt: encrypted.slice))
495
+ }
496
+
497
+ return encrypted
498
+ }
499
+ @usableFromInline
500
+ final internal func seek(to: Swift.Int) throws
501
+ @objc @usableFromInline
502
+ deinit
503
+ }
504
+ public protocol AEAD {
505
+ static var kLen: Swift.Int { get }
506
+ static var ivRange: Swift.Range<Swift.Int> { get }
507
+ }
508
+ @_specialize(exported: false, kind: full, where T == Swift.Int)
509
+ @_specialize(exported: false, kind: full, where T == Swift.UInt)
510
+ @_specialize(exported: false, kind: full, where T == Swift.UInt8)
511
+ @_specialize(exported: false, kind: full, where T == Swift.UInt16)
512
+ @_specialize(exported: false, kind: full, where T == Swift.UInt32)
513
+ @_specialize(exported: false, kind: full, where T == Swift.UInt64)
514
+ @inlinable internal func arrayOfBytes<T>(value: T, length totalBytes: Swift.Int = MemoryLayout<T>.size) -> Swift.Array<Swift.UInt8> where T : Swift.FixedWidthInteger {
515
+ let valuePointer = UnsafeMutablePointer<T>.allocate(capacity: 1)
516
+ valuePointer.pointee = value
517
+
518
+ let bytesPointer = UnsafeMutablePointer<UInt8>(OpaquePointer(valuePointer))
519
+ var bytes = Array<UInt8>(repeating: 0, count: totalBytes)
520
+ for j in 0..<min(MemoryLayout<T>.size, totalBytes) {
521
+ bytes[totalBytes - 1 - j] = (bytesPointer + j).pointee
522
+ }
523
+
524
+ valuePointer.deinitialize(count: 1)
525
+ valuePointer.deallocate()
526
+
527
+ return bytes
528
+ }
529
+ public protocol _UInt8Type {
530
+ }
531
+ extension Swift.UInt8 : OICommons._UInt8Type {
532
+ }
533
+ extension Swift.UInt8 {
534
+ public func bits() -> [OICommons.Bit]
535
+ public func bits() -> Swift.String
536
+ }
537
+ final public class SHA1 {
538
+ @usableFromInline
539
+ internal static let digestLength: Swift.Int
540
+ @usableFromInline
541
+ internal static let blockSize: Swift.Int
542
+ @usableFromInline
543
+ internal static let hashInitialValue: Swift.ContiguousArray<Swift.UInt32>
544
+ @usableFromInline
545
+ final internal var accumulated: [Swift.UInt8]
546
+ @usableFromInline
547
+ final internal var processedBytesTotalCount: Swift.Int
548
+ @usableFromInline
549
+ final internal var accumulatedHash: Swift.ContiguousArray<Swift.UInt32>
550
+ public init()
551
+ @inlinable final public func calculate(for bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8> {
552
+ do {
553
+ return try update(withBytes: bytes.slice, isLast: true)
554
+ } catch {
555
+ return []
556
+ }
557
+ }
558
+ @usableFromInline
559
+ final internal func process(block chunk: Swift.ArraySlice<Swift.UInt8>, currentHash hh: inout Swift.ContiguousArray<Swift.UInt32>)
560
+ @objc deinit
561
+ }
562
+ extension OICommons.SHA1 : OICommons.Updatable {
563
+ @discardableResult
564
+ @inlinable final public func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool = false) throws -> Swift.Array<Swift.UInt8> {
565
+ self.accumulated += bytes
566
+
567
+ if isLast {
568
+ let lengthInBits = (processedBytesTotalCount + self.accumulated.count) * 8
569
+ let lengthBytes = lengthInBits.bytes(totalBytes: 64 / 8) // A 64-bit representation of b
570
+
571
+ // Step 1. Append padding
572
+ bitPadding(to: &self.accumulated, blockSize: SHA1.blockSize, allowance: 64 / 8)
573
+
574
+ // Step 2. Append Length a 64-bit representation of lengthInBits
575
+ self.accumulated += lengthBytes
576
+ }
577
+
578
+ var processedBytes = 0
579
+ for chunk in self.accumulated.batched(by: SHA1.blockSize) {
580
+ if isLast || (self.accumulated.count - processedBytes) >= SHA1.blockSize {
581
+ self.process(block: chunk, currentHash: &self.accumulatedHash)
582
+ processedBytes += chunk.count
583
+ }
584
+ }
585
+ self.accumulated.removeFirst(processedBytes)
586
+ self.processedBytesTotalCount += processedBytes
587
+
588
+ // output current hash
589
+ var result = Array<UInt8>(repeating: 0, count: SHA1.digestLength)
590
+ var pos = 0
591
+ for idx in 0..<self.accumulatedHash.count {
592
+ let h = self.accumulatedHash[idx]
593
+ result[pos + 0] = UInt8((h >> 24) & 0xff)
594
+ result[pos + 1] = UInt8((h >> 16) & 0xff)
595
+ result[pos + 2] = UInt8((h >> 8) & 0xff)
596
+ result[pos + 3] = UInt8(h & 0xff)
597
+ pos += 4
598
+ }
599
+
600
+ // reset hash value for instance
601
+ if isLast {
602
+ self.accumulatedHash = SHA1.hashInitialValue
603
+ }
604
+
605
+ return result
606
+ }
607
+ }
608
+ final public class Checksum {
609
+ @usableFromInline
610
+ internal static let table32: [Swift.UInt32]
611
+ @usableFromInline
612
+ internal static let table32c: [Swift.UInt32]
613
+ @usableFromInline
614
+ internal static let table16: [Swift.UInt16]
615
+ @usableFromInline
616
+ internal init()
617
+ @inlinable final internal func crc32(_ message: Swift.Array<Swift.UInt8>, seed: Swift.UInt32? = nil, reflect: Swift.Bool = true) -> Swift.UInt32 {
618
+ var crc: UInt32 = seed != nil ? seed! : 0xFFFF_FFFF
619
+ for chunk in message.batched(by: 256) {
620
+ for b in chunk {
621
+ let idx = Int((crc ^ UInt32(reflect ? b : reversed(b))) & 0xFF)
622
+ crc = (crc >> 8) ^ Checksum.table32[idx]
623
+ }
624
+ }
625
+ return (reflect ? crc : reversed(crc)) ^ 0xFFFF_FFFF
626
+ }
627
+ @inlinable final internal func crc32c(_ message: Swift.Array<Swift.UInt8>, seed: Swift.UInt32? = nil, reflect: Swift.Bool = true) -> Swift.UInt32 {
628
+ var crc: UInt32 = seed != nil ? seed! : 0xFFFF_FFFF
629
+ for chunk in message.batched(by: 256) {
630
+ for b in chunk {
631
+ let idx = Int((crc ^ UInt32(reflect ? b : reversed(b))) & 0xFF)
632
+ crc = (crc >> 8) ^ Checksum.table32c[idx]
633
+ }
634
+ }
635
+ return (reflect ? crc : reversed(crc)) ^ 0xFFFF_FFFF
636
+ }
637
+ @inlinable final internal func crc16(_ message: Swift.Array<Swift.UInt8>, seed: Swift.UInt16? = nil) -> Swift.UInt16 {
638
+ var crc: UInt16 = seed != nil ? seed! : 0x0000
639
+ for chunk in message.batched(by: 256) {
640
+ for b in chunk {
641
+ crc = (crc >> 8) ^ Checksum.table16[Int((crc ^ UInt16(b)) & 0xFF)]
642
+ }
643
+ }
644
+ return crc
645
+ }
646
+ @objc deinit
647
+ }
648
+ extension OICommons.Checksum {
649
+ @inlinable public static func crc32(_ message: Swift.Array<Swift.UInt8>, seed: Swift.UInt32? = nil, reflect: Swift.Bool = true) -> Swift.UInt32 {
650
+ Checksum().crc32(message, seed: seed, reflect: reflect)
651
+ }
652
+ @inlinable public static func crc32c(_ message: Swift.Array<Swift.UInt8>, seed: Swift.UInt32? = nil, reflect: Swift.Bool = true) -> Swift.UInt32 {
653
+ Checksum().crc32c(message, seed: seed, reflect: reflect)
654
+ }
655
+ @inlinable public static func crc16(_ message: Swift.Array<Swift.UInt8>, seed: Swift.UInt16? = nil) -> Swift.UInt16 {
656
+ Checksum().crc16(message, seed: seed)
657
+ }
658
+ }
659
+ final public class Scrypt {
660
+ public init(password: Swift.Array<Swift.UInt8>, salt: Swift.Array<Swift.UInt8>, dkLen: Swift.Int, N: Swift.Int, r: Swift.Int, p: Swift.Int) throws
661
+ final public func calculate() throws -> [Swift.UInt8]
662
+ @objc deinit
663
+ }
664
+ extension OICommons.PKCS5 {
665
+ public struct PBKDF2 {
666
+ public enum Error : Swift.Error {
667
+ case invalidInput
668
+ case derivedKeyTooLong
669
+ public static func == (a: OICommons.PKCS5.PBKDF2.Error, b: OICommons.PKCS5.PBKDF2.Error) -> Swift.Bool
670
+ public func hash(into hasher: inout Swift.Hasher)
671
+ public var hashValue: Swift.Int {
672
+ get
673
+ }
674
+ }
675
+ public init(password: Swift.Array<Swift.UInt8>, salt: Swift.Array<Swift.UInt8>, iterations: Swift.Int = 4096, keyLength: Swift.Int? = nil, variant: OICommons.HMAC.Variant = .sha256) throws
676
+ public func calculate() throws -> Swift.Array<Swift.UInt8>
677
+ }
678
+ }
679
+ final public class SHA3 {
680
+ final public let blockSize: Swift.Int
681
+ final public let digestLength: Swift.Int
682
+ final public let markByte: Swift.UInt8
683
+ @usableFromInline
684
+ final internal var accumulated: [Swift.UInt8]
685
+ @usableFromInline
686
+ final internal var accumulatedHash: Swift.Array<Swift.UInt64>
687
+ public enum Variant {
688
+ case sha224, sha256, sha384, sha512, keccak224, keccak256, keccak384, keccak512
689
+ public var outputLength: Swift.Int {
690
+ get
691
+ }
692
+ public static func == (a: OICommons.SHA3.Variant, b: OICommons.SHA3.Variant) -> Swift.Bool
693
+ public func hash(into hasher: inout Swift.Hasher)
694
+ public var hashValue: Swift.Int {
695
+ get
696
+ }
697
+ }
698
+ public init(variant: OICommons.SHA3.Variant)
699
+ @inlinable final public func calculate(for bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8> {
700
+ do {
701
+ return try update(withBytes: bytes.slice, isLast: true)
702
+ } catch {
703
+ return []
704
+ }
705
+ }
706
+ @usableFromInline
707
+ final internal func process(block chunk: Swift.ArraySlice<Swift.UInt64>, currentHash hh: inout Swift.Array<Swift.UInt64>)
708
+ @objc deinit
709
+ }
710
+ extension OICommons.SHA3 : OICommons.Updatable {
711
+ @inlinable final public func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool = false) throws -> Swift.Array<Swift.UInt8> {
712
+ self.accumulated += bytes
713
+
714
+ if isLast {
715
+ // Add padding
716
+ let markByteIndex = self.accumulated.count
717
+
718
+ // We need to always pad the input. Even if the input is a multiple of blockSize.
719
+ let r = self.blockSize * 8
720
+ let q = (r / 8) - (accumulated.count % (r / 8))
721
+ self.accumulated += Array<UInt8>(repeating: 0, count: q)
722
+
723
+ self.accumulated[markByteIndex] |= self.markByte
724
+ self.accumulated[self.accumulated.count - 1] |= 0x80
725
+ }
726
+
727
+ var processedBytes = 0
728
+ for chunk in self.accumulated.batched(by: self.blockSize) {
729
+ if isLast || (self.accumulated.count - processedBytes) >= self.blockSize {
730
+ self.process(block: chunk.toUInt64Array().slice, currentHash: &self.accumulatedHash)
731
+ processedBytes += chunk.count
732
+ }
733
+ }
734
+ self.accumulated.removeFirst(processedBytes)
735
+
736
+ // TODO: verify performance, reduce vs for..in
737
+ let result = self.accumulatedHash.reduce(into: Array<UInt8>()) { (result, value) in
738
+ result += value.bigEndian.bytes()
739
+ }
740
+
741
+ // reset hash value for instance
742
+ if isLast {
743
+ self.accumulatedHash = Array<UInt64>(repeating: 0, count: self.digestLength)
744
+ }
745
+
746
+ return Array(result[0..<self.digestLength])
747
+ }
748
+ }
749
+ extension Swift.Array {
750
+ @inlinable internal init(reserveCapacity: Swift.Int) {
751
+ self = Array<Element>()
752
+ self.reserveCapacity(reserveCapacity)
753
+ }
754
+ @inlinable internal var slice: Swift.ArraySlice<Element> {
755
+ get {
756
+ self[self.startIndex ..< self.endIndex]
757
+ }
758
+ }
759
+ }
760
+ extension Swift.Array where Element == Swift.UInt8 {
761
+ public init(hex: Swift.String)
762
+ public func toHexString() -> Swift.String
763
+ }
764
+ extension Swift.Array where Element == Swift.UInt8 {
765
+ @available(*, deprecated)
766
+ public func chunks(size chunksize: Swift.Int) -> Swift.Array<Swift.Array<Element>>
767
+ public func md5() -> [Element]
768
+ public func sha1() -> [Element]
769
+ public func sha224() -> [Element]
770
+ public func sha256() -> [Element]
771
+ public func sha384() -> [Element]
772
+ public func sha512() -> [Element]
773
+ public func sha2(_ variant: OICommons.SHA2.Variant) -> [Element]
774
+ public func sha3(_ variant: OICommons.SHA3.Variant) -> [Element]
775
+ public func crc32(seed: Swift.UInt32? = nil, reflect: Swift.Bool = true) -> Swift.UInt32
776
+ public func crc32c(seed: Swift.UInt32? = nil, reflect: Swift.Bool = true) -> Swift.UInt32
777
+ public func crc16(seed: Swift.UInt16? = nil) -> Swift.UInt16
778
+ public func encrypt(cipher: any OICommons.Cipher) throws -> [Element]
779
+ public func decrypt(cipher: any OICommons.Cipher) throws -> [Element]
780
+ public func authenticate<A>(with authenticator: A) throws -> [Element] where A : OICommons.Authenticator
781
+ }
782
+ extension UIKit.UIView {
783
+ @_Concurrency.MainActor(unsafe) public func createImageFromView() -> UIKit.UIImage
784
+ }
785
+ public protocol Cryptor {
786
+ mutating func seek(to: Swift.Int) throws
787
+ }
788
+ final public class SHA2 {
789
+ @usableFromInline
790
+ final internal let variant: OICommons.SHA2.Variant
791
+ @usableFromInline
792
+ final internal let size: Swift.Int
793
+ @usableFromInline
794
+ final internal let blockSize: Swift.Int
795
+ @usableFromInline
796
+ final internal let digestLength: Swift.Int
797
+ @usableFromInline
798
+ final internal var accumulated: [Swift.UInt8]
799
+ @usableFromInline
800
+ final internal var processedBytesTotalCount: Swift.Int
801
+ @usableFromInline
802
+ final internal var accumulatedHash32: [Swift.UInt32]
803
+ @usableFromInline
804
+ final internal var accumulatedHash64: [Swift.UInt64]
805
+ public enum Variant : Swift.RawRepresentable {
806
+ case sha224, sha256, sha384, sha512
807
+ public var digestLength: Swift.Int {
808
+ get
809
+ }
810
+ public var blockSize: Swift.Int {
811
+ get
812
+ }
813
+ public typealias RawValue = Swift.Int
814
+ public var rawValue: OICommons.SHA2.Variant.RawValue {
815
+ get
816
+ }
817
+ public init?(rawValue: OICommons.SHA2.Variant.RawValue)
818
+ @usableFromInline
819
+ internal var h: Swift.Array<Swift.UInt64> {
820
+ get
821
+ }
822
+ @usableFromInline
823
+ internal var finalLength: Swift.Int {
824
+ get
825
+ }
826
+ }
827
+ public init(variant: OICommons.SHA2.Variant)
828
+ @inlinable final public func calculate(for bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8> {
829
+ do {
830
+ return try update(withBytes: bytes.slice, isLast: true)
831
+ } catch {
832
+ return []
833
+ }
834
+ }
835
+ @usableFromInline
836
+ final internal func process64(block chunk: Swift.ArraySlice<Swift.UInt8>, currentHash hh: inout Swift.Array<Swift.UInt64>)
837
+ @usableFromInline
838
+ final internal func process32(block chunk: Swift.ArraySlice<Swift.UInt8>, currentHash hh: inout Swift.Array<Swift.UInt32>)
839
+ @objc deinit
840
+ }
841
+ extension OICommons.SHA2 : OICommons.Updatable {
842
+ @inlinable final public func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool = false) throws -> Swift.Array<Swift.UInt8> {
843
+ self.accumulated += bytes
844
+
845
+ if isLast {
846
+ let lengthInBits = (processedBytesTotalCount + self.accumulated.count) * 8
847
+ let lengthBytes = lengthInBits.bytes(totalBytes: self.blockSize / 8) // A 64-bit/128-bit representation of b. blockSize fit by accident.
848
+
849
+ // Step 1. Append padding
850
+ bitPadding(to: &self.accumulated, blockSize: self.blockSize, allowance: self.blockSize / 8)
851
+
852
+ // Step 2. Append Length a 64-bit representation of lengthInBits
853
+ self.accumulated += lengthBytes
854
+ }
855
+
856
+ var processedBytes = 0
857
+ for chunk in self.accumulated.batched(by: self.blockSize) {
858
+ if isLast || (self.accumulated.count - processedBytes) >= self.blockSize {
859
+ switch self.variant {
860
+ case .sha224, .sha256:
861
+ self.process32(block: chunk, currentHash: &self.accumulatedHash32)
862
+ case .sha384, .sha512:
863
+ self.process64(block: chunk, currentHash: &self.accumulatedHash64)
864
+ @unknown default:
865
+ preconditionFailure()
866
+ }
867
+ processedBytes += chunk.count
868
+ }
869
+ }
870
+ self.accumulated.removeFirst(processedBytes)
871
+ self.processedBytesTotalCount += processedBytes
872
+
873
+ // output current hash
874
+ var result = Array<UInt8>(repeating: 0, count: variant.digestLength)
875
+ switch self.variant {
876
+ case .sha224, .sha256:
877
+ var pos = 0
878
+ for idx in 0..<self.accumulatedHash32.count where idx < self.variant.finalLength {
879
+ let h = accumulatedHash32[idx]
880
+ result[pos + 0] = UInt8((h >> 24) & 0xff)
881
+ result[pos + 1] = UInt8((h >> 16) & 0xff)
882
+ result[pos + 2] = UInt8((h >> 8) & 0xff)
883
+ result[pos + 3] = UInt8(h & 0xff)
884
+ pos += 4
885
+ }
886
+ case .sha384, .sha512:
887
+ var pos = 0
888
+ for idx in 0..<self.accumulatedHash64.count where idx < self.variant.finalLength {
889
+ let h = accumulatedHash64[idx]
890
+ result[pos + 0] = UInt8((h >> 56) & 0xff)
891
+ result[pos + 1] = UInt8((h >> 48) & 0xff)
892
+ result[pos + 2] = UInt8((h >> 40) & 0xff)
893
+ result[pos + 3] = UInt8((h >> 32) & 0xff)
894
+ result[pos + 4] = UInt8((h >> 24) & 0xff)
895
+ result[pos + 5] = UInt8((h >> 16) & 0xff)
896
+ result[pos + 6] = UInt8((h >> 8) & 0xff)
897
+ result[pos + 7] = UInt8(h & 0xff)
898
+ pos += 8
899
+ }
900
+ @unknown default:
901
+ preconditionFailure()
902
+ }
903
+
904
+ // reset hash value for instance
905
+ if isLast {
906
+ switch self.variant {
907
+ case .sha224, .sha256:
908
+ self.accumulatedHash32 = self.variant.h.lazy.map { UInt32($0) } // FIXME: UInt64 for process64
909
+ case .sha384, .sha512:
910
+ self.accumulatedHash64 = self.variant.h
911
+ @unknown default:
912
+ preconditionFailure()
913
+ }
914
+ }
915
+
916
+ return result
917
+ }
918
+ }
919
+ extension OICommons.AES {
920
+ convenience public init(key: Swift.String, iv: Swift.String, padding: OICommons.Padding = .pkcs7) throws
921
+ }
922
+ public protocol CipherModeWorker {
923
+ var cipherOperation: OICommons.CipherOperationOnBlock { get }
924
+ var additionalBufferSize: Swift.Int { get }
925
+ @inlinable mutating func encrypt(block plaintext: Swift.ArraySlice<Swift.UInt8>) -> Swift.Array<Swift.UInt8>
926
+ @inlinable mutating func decrypt(block ciphertext: Swift.ArraySlice<Swift.UInt8>) -> Swift.Array<Swift.UInt8>
927
+ }
928
+ public protocol BlockModeWorker : OICommons.CipherModeWorker {
929
+ var blockSize: Swift.Int { get }
930
+ }
931
+ public protocol CounterModeWorker : OICommons.CipherModeWorker {
932
+ associatedtype Counter
933
+ var counter: Self.Counter { get set }
934
+ }
935
+ public protocol SeekableModeWorker : OICommons.CipherModeWorker {
936
+ mutating func seek(to position: Swift.Int) throws
937
+ }
938
+ public protocol StreamModeWorker : OICommons.CipherModeWorker {
939
+ }
940
+ public protocol FinalizingEncryptModeWorker : OICommons.CipherModeWorker {
941
+ mutating func finalize(encrypt ciphertext: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.ArraySlice<Swift.UInt8>
942
+ }
943
+ public protocol FinalizingDecryptModeWorker : OICommons.CipherModeWorker {
944
+ @discardableResult
945
+ mutating func willDecryptLast(bytes ciphertext: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.ArraySlice<Swift.UInt8>
946
+ mutating func didDecryptLast(bytes plaintext: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.ArraySlice<Swift.UInt8>
947
+ mutating func finalize(decrypt plaintext: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.ArraySlice<Swift.UInt8>
948
+ }
949
+ @available(*, renamed: "Digest")
950
+ public typealias Hash = OICommons.Digest
951
+ public struct Digest {
952
+ public static func md5(_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8>
953
+ public static func sha1(_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8>
954
+ public static func sha224(_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8>
955
+ public static func sha256(_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8>
956
+ public static func sha384(_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8>
957
+ public static func sha512(_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Array<Swift.UInt8>
958
+ public static func sha2(_ bytes: Swift.Array<Swift.UInt8>, variant: OICommons.SHA2.Variant) -> Swift.Array<Swift.UInt8>
959
+ public static func sha3(_ bytes: Swift.Array<Swift.UInt8>, variant: OICommons.SHA3.Variant) -> Swift.Array<Swift.UInt8>
960
+ }
961
+ extension UIKit.UIImage {
962
+ public static func rotatedImage(from cgImage: CoreGraphics.CGImage, rotatedBy degrees: Swift.Double) -> UIKit.UIImage?
963
+ }
964
+ @usableFromInline
965
+ internal struct BatchedCollectionIndex<Base> where Base : Swift.Collection {
966
+ }
967
+ extension OICommons.BatchedCollectionIndex : Swift.Comparable {
968
+ @usableFromInline
969
+ internal static func == <Base>(lhs: OICommons.BatchedCollectionIndex<Base>, rhs: OICommons.BatchedCollectionIndex<Base>) -> Swift.Bool where Base : Swift.Collection
970
+ @usableFromInline
971
+ internal static func < <Base>(lhs: OICommons.BatchedCollectionIndex<Base>, rhs: OICommons.BatchedCollectionIndex<Base>) -> Swift.Bool where Base : Swift.Collection
972
+ }
973
+ @usableFromInline
974
+ internal struct BatchedCollection<Base> : Swift.Collection where Base : Swift.Collection {
975
+ @usableFromInline
976
+ internal init(base: Base, size: Swift.Int)
977
+ @usableFromInline
978
+ internal typealias Index = OICommons.BatchedCollectionIndex<Base>
979
+ @usableFromInline
980
+ internal var startIndex: OICommons.BatchedCollection<Base>.Index {
981
+ get
982
+ }
983
+ @usableFromInline
984
+ internal var endIndex: OICommons.BatchedCollection<Base>.Index {
985
+ get
986
+ }
987
+ @usableFromInline
988
+ internal func index(after idx: OICommons.BatchedCollection<Base>.Index) -> OICommons.BatchedCollection<Base>.Index
989
+ @usableFromInline
990
+ internal subscript(idx: OICommons.BatchedCollection<Base>.Index) -> Base.SubSequence {
991
+ get
992
+ }
993
+ @usableFromInline
994
+ internal typealias Element = Base.SubSequence
995
+ @usableFromInline
996
+ internal typealias Indices = Swift.DefaultIndices<OICommons.BatchedCollection<Base>>
997
+ @usableFromInline
998
+ internal typealias Iterator = Swift.IndexingIterator<OICommons.BatchedCollection<Base>>
999
+ @usableFromInline
1000
+ internal typealias SubSequence = Swift.Slice<OICommons.BatchedCollection<Base>>
1001
+ }
1002
+ extension Swift.Collection {
1003
+ @inlinable internal func batched(by size: Swift.Int) -> OICommons.BatchedCollection<Self> {
1004
+ BatchedCollection(base: self, size: size)
1005
+ }
1006
+ }
1007
+ public struct CFB : OICommons.BlockMode {
1008
+ public enum Error : Swift.Error {
1009
+ case invalidInitializationVector
1010
+ public static func == (a: OICommons.CFB.Error, b: OICommons.CFB.Error) -> Swift.Bool
1011
+ public func hash(into hasher: inout Swift.Hasher)
1012
+ public var hashValue: Swift.Int {
1013
+ get
1014
+ }
1015
+ }
1016
+ public enum SegmentSize : Swift.Int {
1017
+ case cfb8
1018
+ case cfb128
1019
+ public init?(rawValue: Swift.Int)
1020
+ public typealias RawValue = Swift.Int
1021
+ public var rawValue: Swift.Int {
1022
+ get
1023
+ }
1024
+ }
1025
+ public let options: OICommons.BlockModeOption
1026
+ public let customBlockSize: Swift.Int?
1027
+ public init(iv: Swift.Array<Swift.UInt8>, segmentSize: OICommons.CFB.SegmentSize = .cfb128)
1028
+ public func worker(blockSize: Swift.Int, cipherOperation: @escaping OICommons.CipherOperationOnBlock, encryptionOperation: @escaping OICommons.CipherOperationOnBlock) throws -> any OICommons.CipherModeWorker
1029
+ }
1030
+ @_hasMissingDesignatedInitializers public class FCCipher {
1031
+ public static let key: [Swift.UInt8]
1032
+ public static let iv: [Swift.UInt8]
1033
+ public static let key_string: Swift.String
1034
+ public static let key_iv_string: Swift.String
1035
+ public static func padMsg(_ source: Swift.String) -> Swift.String
1036
+ public static func padKey(_ source: Swift.String) -> Swift.String
1037
+ @objc deinit
1038
+ }
1039
+ extension OICommons.FCCipher {
1040
+ public static func aesEncrypt(_ str: Swift.String, _ appKey: Swift.String) -> Swift.String
1041
+ public static func aesDecrypt(_ str: Swift.String, _ appKey: Swift.String) -> Swift.String
1042
+ }
1043
+ public struct BlockModeOption : Swift.OptionSet {
1044
+ public let rawValue: Swift.Int
1045
+ public init(rawValue: Swift.Int)
1046
+ @usableFromInline
1047
+ internal static let none: OICommons.BlockModeOption
1048
+ @usableFromInline
1049
+ internal static let initializationVectorRequired: OICommons.BlockModeOption
1050
+ @usableFromInline
1051
+ internal static let paddingRequired: OICommons.BlockModeOption
1052
+ @usableFromInline
1053
+ internal static let useEncryptToDecrypt: OICommons.BlockModeOption
1054
+ public typealias ArrayLiteralElement = OICommons.BlockModeOption
1055
+ public typealias Element = OICommons.BlockModeOption
1056
+ public typealias RawValue = Swift.Int
1057
+ }
1058
+ final public class Poly1305 : OICommons.Authenticator {
1059
+ public enum Error : Swift.Error {
1060
+ case authenticateError
1061
+ public static func == (a: OICommons.Poly1305.Error, b: OICommons.Poly1305.Error) -> Swift.Bool
1062
+ public func hash(into hasher: inout Swift.Hasher)
1063
+ public var hashValue: Swift.Int {
1064
+ get
1065
+ }
1066
+ }
1067
+ public static let blockSize: Swift.Int
1068
+ public init(key: Swift.Array<Swift.UInt8>)
1069
+ final public func authenticate(_ bytes: Swift.Array<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1070
+ @objc deinit
1071
+ }
1072
+ extension Swift.String {
1073
+ public func addingPercentEncodingForURLQueryValue() -> Swift.String?
1074
+ public func base64Encoded() -> Swift.String?
1075
+ public func base64Decoded() -> Swift.String?
1076
+ public func encodeURIComponent() -> Swift.String?
1077
+ }
1078
+ extension Swift.Dictionary {
1079
+ public func stringFromHttpParameters() -> Swift.String
1080
+ }
1081
+ extension Swift.String {
1082
+ @inlinable public var bytes: Swift.Array<Swift.UInt8> {
1083
+ get {
1084
+ data(using: String.Encoding.utf8, allowLossyConversion: true)?.bytes ?? Array(utf8)
1085
+ }
1086
+ }
1087
+ @inlinable public func md5() -> Swift.String {
1088
+ self.bytes.md5().toHexString()
1089
+ }
1090
+ @inlinable public func sha1() -> Swift.String {
1091
+ self.bytes.sha1().toHexString()
1092
+ }
1093
+ @inlinable public func sha224() -> Swift.String {
1094
+ self.bytes.sha224().toHexString()
1095
+ }
1096
+ @inlinable public func sha256() -> Swift.String {
1097
+ self.bytes.sha256().toHexString()
1098
+ }
1099
+ @inlinable public func sha384() -> Swift.String {
1100
+ self.bytes.sha384().toHexString()
1101
+ }
1102
+ @inlinable public func sha512() -> Swift.String {
1103
+ self.bytes.sha512().toHexString()
1104
+ }
1105
+ @inlinable public func sha3(_ variant: OICommons.SHA3.Variant) -> Swift.String {
1106
+ self.bytes.sha3(variant).toHexString()
1107
+ }
1108
+ @inlinable public func crc32(seed: Swift.UInt32? = nil, reflect: Swift.Bool = true) -> Swift.String {
1109
+ self.bytes.crc32(seed: seed, reflect: reflect).bytes().toHexString()
1110
+ }
1111
+ @inlinable public func crc32c(seed: Swift.UInt32? = nil, reflect: Swift.Bool = true) -> Swift.String {
1112
+ self.bytes.crc32c(seed: seed, reflect: reflect).bytes().toHexString()
1113
+ }
1114
+ @inlinable public func crc16(seed: Swift.UInt16? = nil) -> Swift.String {
1115
+ self.bytes.crc16(seed: seed).bytes().toHexString()
1116
+ }
1117
+ @inlinable public func encrypt(cipher: any OICommons.Cipher) throws -> Swift.String {
1118
+ try self.bytes.encrypt(cipher: cipher).toHexString()
1119
+ }
1120
+ @inlinable public func encryptToBase64(cipher: any OICommons.Cipher) throws -> Swift.String? {
1121
+ try self.bytes.encrypt(cipher: cipher).toBase64()
1122
+ }
1123
+ @inlinable public func authenticate<A>(with authenticator: A) throws -> Swift.String where A : OICommons.Authenticator {
1124
+ try self.bytes.authenticate(with: authenticator).toHexString()
1125
+ }
1126
+ }
1127
+ public enum HardwareStatusManager {
1128
+ public static func checkCameraPermission(completion: @escaping (_ granted: Swift.Bool) -> Swift.Void)
1129
+ public static func isConnectedToNetwork() -> Swift.Bool
1130
+ }
1131
+ final public class Blowfish {
1132
+ public enum Error : Swift.Error {
1133
+ case dataPaddingRequired
1134
+ case invalidKeyOrInitializationVector
1135
+ case invalidInitializationVector
1136
+ case invalidBlockMode
1137
+ public static func == (a: OICommons.Blowfish.Error, b: OICommons.Blowfish.Error) -> Swift.Bool
1138
+ public func hash(into hasher: inout Swift.Hasher)
1139
+ public var hashValue: Swift.Int {
1140
+ get
1141
+ }
1142
+ }
1143
+ public static let blockSize: Swift.Int
1144
+ final public let keySize: Swift.Int
1145
+ public init(key: Swift.Array<Swift.UInt8>, blockMode: any OICommons.BlockMode = CBC(iv: Array<UInt8>(repeating: 0, count: Blowfish.blockSize)), padding: OICommons.Padding) throws
1146
+ @objc deinit
1147
+ }
1148
+ extension OICommons.Blowfish : OICommons.Cipher {
1149
+ final public func encrypt<C>(_ bytes: C) throws -> Swift.Array<Swift.UInt8> where C : Swift.Collection, C.Element == Swift.UInt8, C.Index == Swift.Int
1150
+ final public func decrypt<C>(_ bytes: C) throws -> Swift.Array<Swift.UInt8> where C : Swift.Collection, C.Element == Swift.UInt8, C.Index == Swift.Int
1151
+ }
1152
+ extension Swift.Array where Element == Swift.UInt8 {
1153
+ public func toBase64() -> Swift.String?
1154
+ public init(base64: Swift.String)
1155
+ }
1156
+ extension OICommons.Blowfish {
1157
+ convenience public init(key: Swift.String, iv: Swift.String, padding: OICommons.Padding = .pkcs7) throws
1158
+ }
1159
+ extension UIKit.UIImage {
1160
+ public static func fromGif(resourceName: Swift.String, bundle externalBundle: Foundation.Bundle? = nil, durationPerFrame duration: CoreFoundation.CGFloat) -> UIKit.UIImage?
1161
+ }
1162
+ public struct Constants {
1163
+ public static var FaceCaptchaImageHeight: Swift.Int
1164
+ public static var FaceCaptchaImageWidth: Swift.Int
1165
+ public static var FaceCaptchaImageQuality: Swift.Double
1166
+ public static var DocLandscapeImageHeight: Swift.Int
1167
+ public static var DocLandscapeImageWidth: Swift.Int
1168
+ public static var DocPortraitImageHeight: Swift.Int
1169
+ public static var DocPortraitImageWidth: Swift.Int
1170
+ public static var DocImageQuality: Swift.Double
1171
+ }
1172
+ public protocol Updatable {
1173
+ mutating func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool) throws -> Swift.Array<Swift.UInt8>
1174
+ mutating func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool, output: (_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Void) throws
1175
+ }
1176
+ extension OICommons.Updatable {
1177
+ @inlinable public mutating func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool = false, output: (_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Void) throws {
1178
+ let processed = try update(withBytes: bytes, isLast: isLast)
1179
+ if !processed.isEmpty {
1180
+ output(processed)
1181
+ }
1182
+ }
1183
+ @inlinable public mutating func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool = false) throws -> Swift.Array<Swift.UInt8> {
1184
+ try self.update(withBytes: bytes, isLast: isLast)
1185
+ }
1186
+ @inlinable public mutating func update(withBytes bytes: Swift.Array<Swift.UInt8>, isLast: Swift.Bool = false) throws -> Swift.Array<Swift.UInt8> {
1187
+ try self.update(withBytes: bytes.slice, isLast: isLast)
1188
+ }
1189
+ @inlinable public mutating func update(withBytes bytes: Swift.Array<Swift.UInt8>, isLast: Swift.Bool = false, output: (_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Void) throws {
1190
+ try self.update(withBytes: bytes.slice, isLast: isLast, output: output)
1191
+ }
1192
+ @inlinable public mutating func finish(withBytes bytes: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8> {
1193
+ try self.update(withBytes: bytes, isLast: true)
1194
+ }
1195
+ @inlinable public mutating func finish(withBytes bytes: Swift.Array<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8> {
1196
+ try self.finish(withBytes: bytes.slice)
1197
+ }
1198
+ @inlinable public mutating func finish() throws -> Swift.Array<Swift.UInt8> {
1199
+ try self.update(withBytes: [], isLast: true)
1200
+ }
1201
+ @inlinable public mutating func finish(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, output: (_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Void) throws {
1202
+ let processed = try update(withBytes: bytes, isLast: true)
1203
+ if !processed.isEmpty {
1204
+ output(processed)
1205
+ }
1206
+ }
1207
+ @inlinable public mutating func finish(withBytes bytes: Swift.Array<Swift.UInt8>, output: (_ bytes: Swift.Array<Swift.UInt8>) -> Swift.Void) throws {
1208
+ try self.finish(withBytes: bytes.slice, output: output)
1209
+ }
1210
+ @inlinable public mutating func finish(output: (Swift.Array<Swift.UInt8>) -> Swift.Void) throws {
1211
+ try self.finish(withBytes: [], output: output)
1212
+ }
1213
+ }
1214
+ @_hasMissingDesignatedInitializers final public class AEADChaCha20Poly1305 : OICommons.AEAD {
1215
+ public static let kLen: Swift.Int
1216
+ public static var ivRange: Swift.Range<Swift.Int>
1217
+ public static func encrypt(_ plainText: Swift.Array<Swift.UInt8>, key: Swift.Array<Swift.UInt8>, iv: Swift.Array<Swift.UInt8>, authenticationHeader: Swift.Array<Swift.UInt8>) throws -> (cipherText: Swift.Array<Swift.UInt8>, authenticationTag: Swift.Array<Swift.UInt8>)
1218
+ public static func decrypt(_ cipherText: Swift.Array<Swift.UInt8>, key: Swift.Array<Swift.UInt8>, iv: Swift.Array<Swift.UInt8>, authenticationHeader: Swift.Array<Swift.UInt8>, authenticationTag: Swift.Array<Swift.UInt8>) throws -> (plainText: Swift.Array<Swift.UInt8>, success: Swift.Bool)
1219
+ @objc deinit
1220
+ }
1221
+ public struct OFB : OICommons.BlockMode {
1222
+ public enum Error : Swift.Error {
1223
+ case invalidInitializationVector
1224
+ public static func == (a: OICommons.OFB.Error, b: OICommons.OFB.Error) -> Swift.Bool
1225
+ public func hash(into hasher: inout Swift.Hasher)
1226
+ public var hashValue: Swift.Int {
1227
+ get
1228
+ }
1229
+ }
1230
+ public let options: OICommons.BlockModeOption
1231
+ public let customBlockSize: Swift.Int?
1232
+ public init(iv: Swift.Array<Swift.UInt8>)
1233
+ public func worker(blockSize: Swift.Int, cipherOperation: @escaping OICommons.CipherOperationOnBlock, encryptionOperation: @escaping OICommons.CipherOperationOnBlock) throws -> any OICommons.CipherModeWorker
1234
+ }
1235
+ final public class ChaCha20 {
1236
+ public enum Error : Swift.Error {
1237
+ case invalidKeyOrInitializationVector
1238
+ case notSupported
1239
+ public static func == (a: OICommons.ChaCha20.Error, b: OICommons.ChaCha20.Error) -> Swift.Bool
1240
+ public func hash(into hasher: inout Swift.Hasher)
1241
+ public var hashValue: Swift.Int {
1242
+ get
1243
+ }
1244
+ }
1245
+ public static let blockSize: Swift.Int
1246
+ final public let keySize: Swift.Int
1247
+ public init(key: Swift.Array<Swift.UInt8>, iv nonce: Swift.Array<Swift.UInt8>) throws
1248
+ @objc deinit
1249
+ }
1250
+ extension OICommons.ChaCha20 : OICommons.Cipher {
1251
+ final public func encrypt(_ bytes: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1252
+ final public func decrypt(_ bytes: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1253
+ }
1254
+ extension OICommons.ChaCha20 {
1255
+ public struct ChaChaEncryptor : OICommons.Cryptor, OICommons.Updatable {
1256
+ public mutating func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool = false) throws -> Swift.Array<Swift.UInt8>
1257
+ public func seek(to: Swift.Int) throws
1258
+ }
1259
+ }
1260
+ extension OICommons.ChaCha20 {
1261
+ public struct ChaChaDecryptor : OICommons.Cryptor, OICommons.Updatable {
1262
+ public mutating func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool = true) throws -> Swift.Array<Swift.UInt8>
1263
+ public func seek(to: Swift.Int) throws
1264
+ }
1265
+ }
1266
+ extension OICommons.ChaCha20 : OICommons.Cryptors {
1267
+ final public func makeEncryptor() -> any OICommons.Cryptor & OICommons.Updatable
1268
+ final public func makeDecryptor() -> any OICommons.Cryptor & OICommons.Updatable
1269
+ }
1270
+ public class CMAC : OICommons.Authenticator {
1271
+ public enum Error : Swift.Error {
1272
+ case wrongKeyLength
1273
+ public static func == (a: OICommons.CMAC.Error, b: OICommons.CMAC.Error) -> Swift.Bool
1274
+ public func hash(into hasher: inout Swift.Hasher)
1275
+ public var hashValue: Swift.Int {
1276
+ get
1277
+ }
1278
+ }
1279
+ public init(key: Swift.Array<Swift.UInt8>) throws
1280
+ public func authenticate(_ bytes: Swift.Array<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1281
+ public func authenticate(_ bytes: Swift.Array<Swift.UInt8>, cipher: any OICommons.Cipher) throws -> Swift.Array<Swift.UInt8>
1282
+ @objc deinit
1283
+ }
1284
+ extension UIKit.UIImage {
1285
+ public func resizeImage(targetSize: CoreFoundation.CGSize) -> UIKit.UIImage?
1286
+ public func toBase64(withSizeInMb expectedSizeInMb: Swift.Float) -> Swift.String?
1287
+ }
1288
+ extension Swift.String {
1289
+ public func decryptBase64ToString(cipher: any OICommons.Cipher) throws -> Swift.String
1290
+ public func decryptBase64(cipher: any OICommons.Cipher) throws -> Swift.Array<Swift.UInt8>
1291
+ }
1292
+ final public class HMAC : OICommons.Authenticator {
1293
+ public enum Error : Swift.Error {
1294
+ case authenticateError
1295
+ case invalidInput
1296
+ public static func == (a: OICommons.HMAC.Error, b: OICommons.HMAC.Error) -> Swift.Bool
1297
+ public func hash(into hasher: inout Swift.Hasher)
1298
+ public var hashValue: Swift.Int {
1299
+ get
1300
+ }
1301
+ }
1302
+ public enum Variant {
1303
+ case sha1, sha256, sha384, sha512, md5
1304
+ public static func == (a: OICommons.HMAC.Variant, b: OICommons.HMAC.Variant) -> Swift.Bool
1305
+ public func hash(into hasher: inout Swift.Hasher)
1306
+ public var hashValue: Swift.Int {
1307
+ get
1308
+ }
1309
+ }
1310
+ public init(key: Swift.Array<Swift.UInt8>, variant: OICommons.HMAC.Variant = .md5)
1311
+ final public func authenticate(_ bytes: Swift.Array<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1312
+ @objc deinit
1313
+ }
1314
+ public enum CipherError : Swift.Error {
1315
+ case encrypt
1316
+ case decrypt
1317
+ public static func == (a: OICommons.CipherError, b: OICommons.CipherError) -> Swift.Bool
1318
+ public func hash(into hasher: inout Swift.Hasher)
1319
+ public var hashValue: Swift.Int {
1320
+ get
1321
+ }
1322
+ }
1323
+ public protocol Cipher : AnyObject {
1324
+ var keySize: Swift.Int { get }
1325
+ func encrypt(_ bytes: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1326
+ func encrypt(_ bytes: Swift.Array<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1327
+ func decrypt(_ bytes: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1328
+ func decrypt(_ bytes: Swift.Array<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1329
+ }
1330
+ extension OICommons.Cipher {
1331
+ public func encrypt(_ bytes: Swift.Array<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1332
+ public func decrypt(_ bytes: Swift.Array<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1333
+ }
1334
+ extension Foundation.Data {
1335
+ public func checksum() -> Swift.UInt16
1336
+ public func md5() -> Foundation.Data
1337
+ public func sha1() -> Foundation.Data
1338
+ public func sha224() -> Foundation.Data
1339
+ public func sha256() -> Foundation.Data
1340
+ public func sha384() -> Foundation.Data
1341
+ public func sha512() -> Foundation.Data
1342
+ public func sha3(_ variant: OICommons.SHA3.Variant) -> Foundation.Data
1343
+ public func crc32(seed: Swift.UInt32? = nil, reflect: Swift.Bool = true) -> Foundation.Data
1344
+ public func crc32c(seed: Swift.UInt32? = nil, reflect: Swift.Bool = true) -> Foundation.Data
1345
+ public func crc16(seed: Swift.UInt16? = nil) -> Foundation.Data
1346
+ public func encrypt(cipher: any OICommons.Cipher) throws -> Foundation.Data
1347
+ public func decrypt(cipher: any OICommons.Cipher) throws -> Foundation.Data
1348
+ public func authenticate(with authenticator: any OICommons.Authenticator) throws -> Foundation.Data
1349
+ }
1350
+ extension Foundation.Data {
1351
+ public init(hex: Swift.String)
1352
+ public var bytes: Swift.Array<Swift.UInt8> {
1353
+ get
1354
+ }
1355
+ public func toHexString() -> Swift.String
1356
+ }
1357
+ public enum Bit : Swift.Int {
1358
+ case zero
1359
+ case one
1360
+ public init?(rawValue: Swift.Int)
1361
+ public typealias RawValue = Swift.Int
1362
+ public var rawValue: Swift.Int {
1363
+ get
1364
+ }
1365
+ }
1366
+ extension OICommons.Bit {
1367
+ @inlinable internal func inverted() -> OICommons.Bit {
1368
+ self == .zero ? .one : .zero
1369
+ }
1370
+ }
1371
+ final public class Rabbit {
1372
+ public enum Error : Swift.Error {
1373
+ case invalidKeyOrInitializationVector
1374
+ public static func == (a: OICommons.Rabbit.Error, b: OICommons.Rabbit.Error) -> Swift.Bool
1375
+ public func hash(into hasher: inout Swift.Hasher)
1376
+ public var hashValue: Swift.Int {
1377
+ get
1378
+ }
1379
+ }
1380
+ public static let ivSize: Swift.Int
1381
+ public static let keySize: Swift.Int
1382
+ public static let blockSize: Swift.Int
1383
+ final public var keySize: Swift.Int {
1384
+ get
1385
+ }
1386
+ convenience public init(key: Swift.Array<Swift.UInt8>) throws
1387
+ public init(key: Swift.Array<Swift.UInt8>, iv: Swift.Array<Swift.UInt8>?) throws
1388
+ @objc deinit
1389
+ }
1390
+ extension OICommons.Rabbit : OICommons.Cipher {
1391
+ final public func encrypt(_ bytes: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1392
+ final public func decrypt(_ bytes: Swift.ArraySlice<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1393
+ }
1394
+ @inlinable internal func rotateLeft(_ value: Swift.UInt8, by: Swift.UInt8) -> Swift.UInt8 {
1395
+ ((value << by) & 0xff) | (value >> (8 - by))
1396
+ }
1397
+ @inlinable internal func rotateLeft(_ value: Swift.UInt16, by: Swift.UInt16) -> Swift.UInt16 {
1398
+ ((value << by) & 0xffff) | (value >> (16 - by))
1399
+ }
1400
+ @inlinable internal func rotateLeft(_ value: Swift.UInt32, by: Swift.UInt32) -> Swift.UInt32 {
1401
+ ((value << by) & 0xffffffff) | (value >> (32 - by))
1402
+ }
1403
+ @inlinable internal func rotateLeft(_ value: Swift.UInt64, by: Swift.UInt64) -> Swift.UInt64 {
1404
+ (value << by) | (value >> (64 - by))
1405
+ }
1406
+ @inlinable internal func rotateRight(_ value: Swift.UInt16, by: Swift.UInt16) -> Swift.UInt16 {
1407
+ (value >> by) | (value << (16 - by))
1408
+ }
1409
+ @inlinable internal func rotateRight(_ value: Swift.UInt32, by: Swift.UInt32) -> Swift.UInt32 {
1410
+ (value >> by) | (value << (32 - by))
1411
+ }
1412
+ @inlinable internal func rotateRight(_ value: Swift.UInt64, by: Swift.UInt64) -> Swift.UInt64 {
1413
+ ((value >> by) | (value << (64 - by)))
1414
+ }
1415
+ @inlinable internal func reversed(_ uint8: Swift.UInt8) -> Swift.UInt8 {
1416
+ var v = uint8
1417
+ v = (v & 0xf0) >> 4 | (v & 0x0f) << 4
1418
+ v = (v & 0xcc) >> 2 | (v & 0x33) << 2
1419
+ v = (v & 0xaa) >> 1 | (v & 0x55) << 1
1420
+ return v
1421
+ }
1422
+ @inlinable internal func reversed(_ uint32: Swift.UInt32) -> Swift.UInt32 {
1423
+ var v = uint32
1424
+ v = ((v >> 1) & 0x55555555) | ((v & 0x55555555) << 1)
1425
+ v = ((v >> 2) & 0x33333333) | ((v & 0x33333333) << 2)
1426
+ v = ((v >> 4) & 0x0f0f0f0f) | ((v & 0x0f0f0f0f) << 4)
1427
+ v = ((v >> 8) & 0x00ff00ff) | ((v & 0x00ff00ff) << 8)
1428
+ v = ((v >> 16) & 0xffff) | ((v & 0xffff) << 16)
1429
+ return v
1430
+ }
1431
+ @inlinable internal func xor<T, V>(_ left: T, _ right: V) -> Swift.ArraySlice<Swift.UInt8> where T : Swift.RandomAccessCollection, V : Swift.RandomAccessCollection, T.Element == Swift.UInt8, T.Index == Swift.Int, V.Element == Swift.UInt8, V.Index == Swift.Int {
1432
+ return xor(left, right).slice
1433
+ }
1434
+ @inlinable internal func xor<T, V>(_ left: T, _ right: V) -> Swift.Array<Swift.UInt8> where T : Swift.RandomAccessCollection, V : Swift.RandomAccessCollection, T.Element == Swift.UInt8, T.Index == Swift.Int, V.Element == Swift.UInt8, V.Index == Swift.Int {
1435
+ let length = Swift.min(left.count, right.count)
1436
+
1437
+ let buf = UnsafeMutablePointer<UInt8>.allocate(capacity: length)
1438
+ buf.initialize(repeating: 0, count: length)
1439
+ defer {
1440
+ buf.deinitialize(count: length)
1441
+ buf.deallocate()
1442
+ }
1443
+
1444
+ // xor
1445
+ for i in 0..<length {
1446
+ buf[i] = left[left.startIndex.advanced(by: i)] ^ right[right.startIndex.advanced(by: i)]
1447
+ }
1448
+
1449
+ return Array(UnsafeBufferPointer(start: buf, count: length))
1450
+ }
1451
+ @inline(__always) @inlinable internal func bitPadding(to data: inout Swift.Array<Swift.UInt8>, blockSize: Swift.Int, allowance: Swift.Int = 0) {
1452
+ let msgLength = data.count
1453
+ // Step 1. Append Padding Bits
1454
+ // append one bit (UInt8 with one bit) to message
1455
+ data.append(0x80)
1456
+
1457
+ // Step 2. append "0" bit until message length in bits ≡ 448 (mod 512)
1458
+ let max = blockSize - allowance // 448, 986
1459
+ if msgLength % blockSize < max { // 448
1460
+ data += Array<UInt8>(repeating: 0, count: max - 1 - (msgLength % blockSize))
1461
+ } else {
1462
+ data += Array<UInt8>(repeating: 0, count: blockSize + max - 1 - (msgLength % blockSize))
1463
+ }
1464
+ }
1465
+ extension OICommons.Rabbit {
1466
+ convenience public init(key: Swift.String) throws
1467
+ convenience public init(key: Swift.String, iv: Swift.String) throws
1468
+ }
1469
+ public struct HKDF {
1470
+ public enum Error : Swift.Error {
1471
+ case invalidInput
1472
+ case derivedKeyTooLong
1473
+ public static func == (a: OICommons.HKDF.Error, b: OICommons.HKDF.Error) -> Swift.Bool
1474
+ public func hash(into hasher: inout Swift.Hasher)
1475
+ public var hashValue: Swift.Int {
1476
+ get
1477
+ }
1478
+ }
1479
+ public init(password: Swift.Array<Swift.UInt8>, salt: Swift.Array<Swift.UInt8>? = nil, info: Swift.Array<Swift.UInt8>? = nil, keyLength: Swift.Int? = nil, variant: OICommons.HMAC.Variant = .sha256) throws
1480
+ public func calculate() throws -> Swift.Array<Swift.UInt8>
1481
+ }
1482
+ @usableFromInline
1483
+ final internal class StreamDecryptor : OICommons.Cryptor, OICommons.Updatable {
1484
+ @usableFromInline
1485
+ final internal let blockSize: Swift.Int
1486
+ @usableFromInline
1487
+ final internal var worker: any OICommons.CipherModeWorker
1488
+ @usableFromInline
1489
+ final internal let padding: OICommons.Padding
1490
+ @usableFromInline
1491
+ final internal var accumulated: [Swift.UInt8]
1492
+ @usableFromInline
1493
+ final internal var lastBlockRemainder: Swift.Int
1494
+ @usableFromInline
1495
+ internal init(blockSize: Swift.Int, padding: OICommons.Padding, _ worker: any OICommons.CipherModeWorker) throws
1496
+ @inlinable final public func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool) throws -> Swift.Array<Swift.UInt8> {
1497
+ self.accumulated += bytes
1498
+
1499
+ let toProcess = self.accumulated.prefix(max(self.accumulated.count - self.worker.additionalBufferSize, 0))
1500
+
1501
+ if var finalizingWorker = worker as? FinalizingDecryptModeWorker, isLast == true {
1502
+ // will truncate suffix if needed
1503
+ try finalizingWorker.willDecryptLast(bytes: self.accumulated.slice)
1504
+ }
1505
+
1506
+ var processedBytesCount = 0
1507
+ var plaintext = Array<UInt8>(reserveCapacity: bytes.count + self.worker.additionalBufferSize)
1508
+ for chunk in toProcess.batched(by: self.blockSize) {
1509
+ plaintext += self.worker.decrypt(block: chunk)
1510
+ processedBytesCount += chunk.count
1511
+ }
1512
+
1513
+ if var finalizingWorker = worker as? FinalizingDecryptModeWorker, isLast == true {
1514
+ plaintext = Array(try finalizingWorker.didDecryptLast(bytes: plaintext.slice))
1515
+ }
1516
+
1517
+ // omit unecessary calculation if not needed
1518
+ if self.padding != .noPadding {
1519
+ self.lastBlockRemainder = plaintext.count.quotientAndRemainder(dividingBy: self.blockSize).remainder
1520
+ }
1521
+
1522
+ if isLast {
1523
+ // CTR doesn't need padding. Really. Add padding to the last block if really want. but... don't.
1524
+ plaintext = self.padding.remove(from: plaintext, blockSize: self.blockSize - self.lastBlockRemainder)
1525
+ }
1526
+
1527
+ self.accumulated.removeFirst(processedBytesCount) // super-slow
1528
+
1529
+ if var finalizingWorker = worker as? FinalizingDecryptModeWorker, isLast == true {
1530
+ plaintext = Array(try finalizingWorker.finalize(decrypt: plaintext.slice))
1531
+ }
1532
+
1533
+ return plaintext
1534
+ }
1535
+ @inlinable final public func seek(to position: Swift.Int) throws {
1536
+ guard var worker = self.worker as? SeekableModeWorker else {
1537
+ fatalError("Not supported")
1538
+ }
1539
+
1540
+ try worker.seek(to: position)
1541
+ self.worker = worker
1542
+ }
1543
+ @objc @usableFromInline
1544
+ deinit
1545
+ }
1546
+ @objc @_Concurrency.MainActor(unsafe) public class CustomShape : UIKit.UIView {
1547
+ public typealias ShapeBuilder = (_ shape: UIKit.UIView, _ rect: CoreFoundation.CGRect) -> Swift.Void
1548
+ @_Concurrency.MainActor(unsafe) public var path: UIKit.UIBezierPath?
1549
+ @_Concurrency.MainActor(unsafe) public init(shapeBuilder: @escaping OICommons.CustomShape.ShapeBuilder)
1550
+ @available(*, unavailable)
1551
+ @_Concurrency.MainActor(unsafe) @objc required dynamic public init?(coder: Foundation.NSCoder)
1552
+ @_Concurrency.MainActor(unsafe) @objc override dynamic public func draw(_ rect: CoreFoundation.CGRect)
1553
+ @objc deinit
1554
+ }
1555
+ public struct CBC : OICommons.BlockMode {
1556
+ public enum Error : Swift.Error {
1557
+ case invalidInitializationVector
1558
+ public static func == (a: OICommons.CBC.Error, b: OICommons.CBC.Error) -> Swift.Bool
1559
+ public func hash(into hasher: inout Swift.Hasher)
1560
+ public var hashValue: Swift.Int {
1561
+ get
1562
+ }
1563
+ }
1564
+ public let options: OICommons.BlockModeOption
1565
+ public let customBlockSize: Swift.Int?
1566
+ public init(iv: Swift.Array<Swift.UInt8>)
1567
+ public func worker(blockSize: Swift.Int, cipherOperation: @escaping OICommons.CipherOperationOnBlock, encryptionOperation: @escaping OICommons.CipherOperationOnBlock) throws -> any OICommons.CipherModeWorker
1568
+ }
1569
+ public protocol Cryptors : AnyObject {
1570
+ func makeEncryptor() throws -> any OICommons.Cryptor & OICommons.Updatable
1571
+ func makeDecryptor() throws -> any OICommons.Cryptor & OICommons.Updatable
1572
+ static func randomIV(_ blockSize: Swift.Int) -> Swift.Array<Swift.UInt8>
1573
+ }
1574
+ extension OICommons.Cryptors {
1575
+ public static func randomIV(_ count: Swift.Int) -> Swift.Array<Swift.UInt8>
1576
+ }
1577
+ public protocol Authenticator {
1578
+ func authenticate(_ bytes: Swift.Array<Swift.UInt8>) throws -> Swift.Array<Swift.UInt8>
1579
+ }
1580
+ extension OICommons.AES : OICommons.Cryptors {
1581
+ @inlinable final public func makeEncryptor() throws -> any OICommons.Cryptor & OICommons.Updatable {
1582
+ let blockSize = blockMode.customBlockSize ?? AES.blockSize
1583
+ let worker = try blockMode.worker(blockSize: blockSize, cipherOperation: encrypt, encryptionOperation: encrypt)
1584
+ if worker is StreamModeWorker {
1585
+ return try StreamEncryptor(blockSize: blockSize, padding: padding, worker)
1586
+ }
1587
+ return try BlockEncryptor(blockSize: blockSize, padding: padding, worker)
1588
+ }
1589
+ @inlinable final public func makeDecryptor() throws -> any OICommons.Cryptor & OICommons.Updatable {
1590
+ let blockSize = blockMode.customBlockSize ?? AES.blockSize
1591
+ let cipherOperation: CipherOperationOnBlock = blockMode.options.contains(.useEncryptToDecrypt) == true ? encrypt : decrypt
1592
+ let worker = try blockMode.worker(blockSize: blockSize, cipherOperation: cipherOperation, encryptionOperation: encrypt)
1593
+ if worker is StreamModeWorker {
1594
+ return try StreamDecryptor(blockSize: blockSize, padding: padding, worker)
1595
+ }
1596
+ return try BlockDecryptor(blockSize: blockSize, padding: padding, worker)
1597
+ }
1598
+ }
1599
+ public struct CCM {
1600
+ public enum Error : Swift.Error {
1601
+ case invalidInitializationVector
1602
+ case invalidParameter
1603
+ case fail
1604
+ public static func == (a: OICommons.CCM.Error, b: OICommons.CCM.Error) -> Swift.Bool
1605
+ public func hash(into hasher: inout Swift.Hasher)
1606
+ public var hashValue: Swift.Int {
1607
+ get
1608
+ }
1609
+ }
1610
+ public let options: OICommons.BlockModeOption
1611
+ public let customBlockSize: Swift.Int?
1612
+ public var authenticationTag: Swift.Array<Swift.UInt8>?
1613
+ public init(iv: Swift.Array<Swift.UInt8>, tagLength: Swift.Int, messageLength: Swift.Int, additionalAuthenticatedData: Swift.Array<Swift.UInt8>? = nil)
1614
+ public init(iv: Swift.Array<Swift.UInt8>, tagLength: Swift.Int, messageLength: Swift.Int, authenticationTag: Swift.Array<Swift.UInt8>, additionalAuthenticatedData: Swift.Array<Swift.UInt8>? = nil)
1615
+ public func worker(blockSize: Swift.Int, cipherOperation: @escaping OICommons.CipherOperationOnBlock, encryptionOperation: @escaping OICommons.CipherOperationOnBlock) throws -> any OICommons.CipherModeWorker
1616
+ }
1617
+ public typealias CipherOperationOnBlock = (_ block: Swift.ArraySlice<Swift.UInt8>) -> Swift.Array<Swift.UInt8>?
1618
+ public protocol BlockMode {
1619
+ var options: OICommons.BlockModeOption { get }
1620
+ @inlinable func worker(blockSize: Swift.Int, cipherOperation: @escaping OICommons.CipherOperationOnBlock, encryptionOperation: @escaping OICommons.CipherOperationOnBlock) throws -> any OICommons.CipherModeWorker
1621
+ var customBlockSize: Swift.Int? { get }
1622
+ }
1623
+ public class BlockDecryptor : OICommons.Cryptor, OICommons.Updatable {
1624
+ @usableFromInline
1625
+ final internal let blockSize: Swift.Int
1626
+ @usableFromInline
1627
+ final internal let padding: OICommons.Padding
1628
+ @usableFromInline
1629
+ internal var worker: any OICommons.CipherModeWorker
1630
+ @usableFromInline
1631
+ internal var accumulated: [Swift.UInt8]
1632
+ @usableFromInline
1633
+ internal init(blockSize: Swift.Int, padding: OICommons.Padding, _ worker: any OICommons.CipherModeWorker) throws
1634
+ @inlinable public func update(withBytes bytes: Swift.ArraySlice<Swift.UInt8>, isLast: Swift.Bool = false) throws -> Swift.Array<Swift.UInt8> {
1635
+ self.accumulated += bytes
1636
+
1637
+ // If a worker (eg GCM) can combine ciphertext + tag
1638
+ // we need to remove tag from the ciphertext.
1639
+ if !isLast && self.accumulated.count < self.blockSize + self.worker.additionalBufferSize {
1640
+ return []
1641
+ }
1642
+
1643
+ let accumulatedWithoutSuffix: Array<UInt8>
1644
+ if self.worker.additionalBufferSize > 0 {
1645
+ // FIXME: how slow is that?
1646
+ accumulatedWithoutSuffix = Array(self.accumulated.prefix(self.accumulated.count - self.worker.additionalBufferSize))
1647
+ } else {
1648
+ accumulatedWithoutSuffix = self.accumulated
1649
+ }
1650
+
1651
+ var processedBytesCount = 0
1652
+ var plaintext = Array<UInt8>(reserveCapacity: accumulatedWithoutSuffix.count)
1653
+ // Processing in a block-size manner. It's good for block modes, but bad for stream modes.
1654
+ for var chunk in accumulatedWithoutSuffix.batched(by: self.blockSize) {
1655
+ if isLast || (accumulatedWithoutSuffix.count - processedBytesCount) >= blockSize {
1656
+ let isLastChunk = processedBytesCount + chunk.count == accumulatedWithoutSuffix.count
1657
+
1658
+ if isLast, isLastChunk, var finalizingWorker = worker as? FinalizingDecryptModeWorker {
1659
+ chunk = try finalizingWorker.willDecryptLast(bytes: chunk + accumulated.suffix(worker.additionalBufferSize)) // tag size
1660
+ }
1661
+
1662
+ if !chunk.isEmpty {
1663
+ plaintext += worker.decrypt(block: chunk)
1664
+ }
1665
+
1666
+ if isLast, isLastChunk, var finalizingWorker = worker as? FinalizingDecryptModeWorker {
1667
+ plaintext = Array(try finalizingWorker.didDecryptLast(bytes: plaintext.slice))
1668
+ }
1669
+
1670
+ processedBytesCount += chunk.count
1671
+ }
1672
+ }
1673
+ accumulated.removeFirst(processedBytesCount) // super-slow
1674
+
1675
+ if isLast {
1676
+ if accumulatedWithoutSuffix.isEmpty, var finalizingWorker = worker as? FinalizingDecryptModeWorker {
1677
+ try finalizingWorker.willDecryptLast(bytes: self.accumulated.suffix(self.worker.additionalBufferSize))
1678
+ plaintext = Array(try finalizingWorker.didDecryptLast(bytes: plaintext.slice))
1679
+ }
1680
+ plaintext = self.padding.remove(from: plaintext, blockSize: self.blockSize)
1681
+ }
1682
+
1683
+ return plaintext
1684
+ }
1685
+ public func seek(to position: Swift.Int) throws
1686
+ @objc deinit
1687
+ }
1688
+ public enum PKCS7 {
1689
+ }
1690
+ final public class GCM : OICommons.BlockMode {
1691
+ public enum Mode {
1692
+ case combined
1693
+ case detached
1694
+ public static func == (a: OICommons.GCM.Mode, b: OICommons.GCM.Mode) -> Swift.Bool
1695
+ public func hash(into hasher: inout Swift.Hasher)
1696
+ public var hashValue: Swift.Int {
1697
+ get
1698
+ }
1699
+ }
1700
+ final public let options: OICommons.BlockModeOption
1701
+ public enum Error : Swift.Error {
1702
+ case invalidInitializationVector
1703
+ case fail
1704
+ public static func == (a: OICommons.GCM.Error, b: OICommons.GCM.Error) -> Swift.Bool
1705
+ public func hash(into hasher: inout Swift.Hasher)
1706
+ public var hashValue: Swift.Int {
1707
+ get
1708
+ }
1709
+ }
1710
+ final public let customBlockSize: Swift.Int?
1711
+ final public var authenticationTag: Swift.Array<Swift.UInt8>?
1712
+ public init(iv: Swift.Array<Swift.UInt8>, additionalAuthenticatedData: Swift.Array<Swift.UInt8>? = nil, tagLength: Swift.Int = 16, mode: OICommons.GCM.Mode = .detached)
1713
+ convenience public init(iv: Swift.Array<Swift.UInt8>, authenticationTag: Swift.Array<Swift.UInt8>, additionalAuthenticatedData: Swift.Array<Swift.UInt8>? = nil, mode: OICommons.GCM.Mode = .detached)
1714
+ final public func worker(blockSize: Swift.Int, cipherOperation: @escaping OICommons.CipherOperationOnBlock, encryptionOperation: @escaping OICommons.CipherOperationOnBlock) throws -> any OICommons.CipherModeWorker
1715
+ @objc deinit
1716
+ }
1717
+ extension OICommons.ChaCha20 {
1718
+ convenience public init(key: Swift.String, iv: Swift.String) throws
1719
+ }
1720
+ public struct PCBC : OICommons.BlockMode {
1721
+ public enum Error : Swift.Error {
1722
+ case invalidInitializationVector
1723
+ public static func == (a: OICommons.PCBC.Error, b: OICommons.PCBC.Error) -> Swift.Bool
1724
+ public func hash(into hasher: inout Swift.Hasher)
1725
+ public var hashValue: Swift.Int {
1726
+ get
1727
+ }
1728
+ }
1729
+ public let options: OICommons.BlockModeOption
1730
+ public let customBlockSize: Swift.Int?
1731
+ public init(iv: Swift.Array<Swift.UInt8>)
1732
+ public func worker(blockSize: Swift.Int, cipherOperation: @escaping OICommons.CipherOperationOnBlock, encryptionOperation: @escaping OICommons.CipherOperationOnBlock) throws -> any OICommons.CipherModeWorker
1733
+ }
1734
+ public enum PKCS5 {
1735
+ }
1736
+ public protocol PaddingProtocol {
1737
+ func add(to: Swift.Array<Swift.UInt8>, blockSize: Swift.Int) -> Swift.Array<Swift.UInt8>
1738
+ func remove(from: Swift.Array<Swift.UInt8>, blockSize: Swift.Int?) -> Swift.Array<Swift.UInt8>
1739
+ }
1740
+ public enum Padding : OICommons.PaddingProtocol {
1741
+ case noPadding, zeroPadding, pkcs7, pkcs5, iso78164
1742
+ public func add(to: Swift.Array<Swift.UInt8>, blockSize: Swift.Int) -> Swift.Array<Swift.UInt8>
1743
+ public func remove(from: Swift.Array<Swift.UInt8>, blockSize: Swift.Int?) -> Swift.Array<Swift.UInt8>
1744
+ public static func == (a: OICommons.Padding, b: OICommons.Padding) -> Swift.Bool
1745
+ public func hash(into hasher: inout Swift.Hasher)
1746
+ public var hashValue: Swift.Int {
1747
+ get
1748
+ }
1749
+ }
1750
+ extension UIKit.UIImage {
1751
+ public func cropToRect(rect: CoreFoundation.CGRect) -> UIKit.UIImage
1752
+ }
1753
+ extension OICommons.AES.Error : Swift.Equatable {}
1754
+ extension OICommons.AES.Error : Swift.Hashable {}
1755
+ extension OICommons.AES.Variant : Swift.Equatable {}
1756
+ extension OICommons.AES.Variant : Swift.Hashable {}
1757
+ extension OICommons.AES.Variant : Swift.RawRepresentable {}
1758
+ extension OICommons.OCB.Mode : Swift.Equatable {}
1759
+ extension OICommons.OCB.Mode : Swift.Hashable {}
1760
+ extension OICommons.OCB.Error : Swift.Equatable {}
1761
+ extension OICommons.OCB.Error : Swift.Hashable {}
1762
+ extension OICommons.Environment : Swift.Equatable {}
1763
+ extension OICommons.Environment : Swift.Hashable {}
1764
+ extension OICommons.Environment : Swift.RawRepresentable {}
1765
+ extension OICommons.PKCS5.PBKDF1.Error : Swift.Equatable {}
1766
+ extension OICommons.PKCS5.PBKDF1.Error : Swift.Hashable {}
1767
+ extension OICommons.PKCS5.PBKDF1.Variant : Swift.Equatable {}
1768
+ extension OICommons.PKCS5.PBKDF1.Variant : Swift.Hashable {}
1769
+ extension OICommons.CTR : OICommons.BlockMode {}
1770
+ extension OICommons.CTR.Error : Swift.Equatable {}
1771
+ extension OICommons.CTR.Error : Swift.Hashable {}
1772
+ extension OICommons.PKCS5.PBKDF2.Error : Swift.Equatable {}
1773
+ extension OICommons.PKCS5.PBKDF2.Error : Swift.Hashable {}
1774
+ extension OICommons.SHA3.Variant : Swift.Equatable {}
1775
+ extension OICommons.SHA3.Variant : Swift.Hashable {}
1776
+ extension OICommons.SHA2.Variant : Swift.Equatable {}
1777
+ extension OICommons.SHA2.Variant : Swift.Hashable {}
1778
+ extension OICommons.CFB.Error : Swift.Equatable {}
1779
+ extension OICommons.CFB.Error : Swift.Hashable {}
1780
+ extension OICommons.CFB.SegmentSize : Swift.Equatable {}
1781
+ extension OICommons.CFB.SegmentSize : Swift.Hashable {}
1782
+ extension OICommons.CFB.SegmentSize : Swift.RawRepresentable {}
1783
+ extension OICommons.Poly1305.Error : Swift.Equatable {}
1784
+ extension OICommons.Poly1305.Error : Swift.Hashable {}
1785
+ extension OICommons.Blowfish.Error : Swift.Equatable {}
1786
+ extension OICommons.Blowfish.Error : Swift.Hashable {}
1787
+ extension OICommons.OFB.Error : Swift.Equatable {}
1788
+ extension OICommons.OFB.Error : Swift.Hashable {}
1789
+ extension OICommons.ChaCha20.Error : Swift.Equatable {}
1790
+ extension OICommons.ChaCha20.Error : Swift.Hashable {}
1791
+ extension OICommons.CMAC.Error : Swift.Equatable {}
1792
+ extension OICommons.CMAC.Error : Swift.Hashable {}
1793
+ extension OICommons.HMAC.Error : Swift.Equatable {}
1794
+ extension OICommons.HMAC.Error : Swift.Hashable {}
1795
+ extension OICommons.HMAC.Variant : Swift.Equatable {}
1796
+ extension OICommons.HMAC.Variant : Swift.Hashable {}
1797
+ extension OICommons.CipherError : Swift.Equatable {}
1798
+ extension OICommons.CipherError : Swift.Hashable {}
1799
+ extension OICommons.Bit : Swift.Equatable {}
1800
+ extension OICommons.Bit : Swift.Hashable {}
1801
+ extension OICommons.Bit : Swift.RawRepresentable {}
1802
+ extension OICommons.Rabbit.Error : Swift.Equatable {}
1803
+ extension OICommons.Rabbit.Error : Swift.Hashable {}
1804
+ extension OICommons.HKDF.Error : Swift.Equatable {}
1805
+ extension OICommons.HKDF.Error : Swift.Hashable {}
1806
+ extension OICommons.CBC.Error : Swift.Equatable {}
1807
+ extension OICommons.CBC.Error : Swift.Hashable {}
1808
+ extension OICommons.CCM : OICommons.BlockMode {}
1809
+ extension OICommons.CCM.Error : Swift.Equatable {}
1810
+ extension OICommons.CCM.Error : Swift.Hashable {}
1811
+ extension OICommons.GCM.Mode : Swift.Equatable {}
1812
+ extension OICommons.GCM.Mode : Swift.Hashable {}
1813
+ extension OICommons.GCM.Error : Swift.Equatable {}
1814
+ extension OICommons.GCM.Error : Swift.Hashable {}
1815
+ extension OICommons.PCBC.Error : Swift.Equatable {}
1816
+ extension OICommons.PCBC.Error : Swift.Hashable {}
1817
+ extension OICommons.Padding : Swift.Equatable {}
1818
+ extension OICommons.Padding : Swift.Hashable {}