Explorar o código

Some useful extensions for numbers and initial work of MD5 imlementation.
Remove OpenSSL dependency due to latest change in Swift

Marcin Krzyżanowski %!s(int64=11) %!d(string=hai) anos
pai
achega
0c22922fb7
Modificáronse 100 ficheiros con 516 adicións e 841 borrados
  1. 0 27
      CryptoSwift-Bridging-Header.h
  2. 0 17
      CryptoSwift.podspec
  3. 130 112
      CryptoSwift.xcodeproj/project.pbxproj
  4. 41 0
      CryptoSwift.xcodeproj/project.xcworkspace/xcshareddata/CryptoSwift.xccheckout
  5. 0 1
      CryptoSwift.xcworkspace/contents.xcworkspacedata
  6. 0 138
      CryptoSwift/Bignum.swift
  7. 29 0
      CryptoSwift/ByteExtension.swift
  8. 40 0
      CryptoSwift/CryptoHash.swift
  9. 40 0
      CryptoSwift/IntExtension.swift
  10. 99 0
      CryptoSwift/MD5.swift
  11. 18 144
      CryptoSwift/NSDataExtension.swift
  12. 7 0
      CryptoSwift/Playground/MyPlayground.playground/contents.xcplayground
  13. 66 0
      CryptoSwift/Playground/MyPlayground.playground/section-1.swift
  14. 6 0
      CryptoSwift/Playground/MyPlayground.playground/timeline.xctimeline
  15. 0 30
      CryptoSwift/RSA.swift
  16. 0 46
      CryptoSwiftTests/BignumTests.swift
  17. 33 30
      CryptoSwiftTests/CryptoSwiftTests.swift
  18. 7 198
      LICENSE
  19. 0 3
      Podfile
  20. 0 15
      Podfile.lock
  21. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/aes.h
  22. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/asn1.h
  23. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/asn1_mac.h
  24. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/asn1t.h
  25. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/bio.h
  26. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/blowfish.h
  27. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/bn.h
  28. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/buffer.h
  29. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/camellia.h
  30. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/cast.h
  31. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/cmac.h
  32. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/cms.h
  33. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/comp.h
  34. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/conf.h
  35. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/conf_api.h
  36. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/crypto.h
  37. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/des.h
  38. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/des_old.h
  39. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/dh.h
  40. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/dsa.h
  41. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/dso.h
  42. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/dtls1.h
  43. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/e_os2.h
  44. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ebcdic.h
  45. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ec.h
  46. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ecdh.h
  47. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ecdsa.h
  48. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/engine.h
  49. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/err.h
  50. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/evp.h
  51. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/hmac.h
  52. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/idea.h
  53. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/krb5_asn.h
  54. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/kssl.h
  55. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/lhash.h
  56. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/md4.h
  57. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/md5.h
  58. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/mdc2.h
  59. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/modes.h
  60. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/obj_mac.h
  61. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/objects.h
  62. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ocsp.h
  63. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/opensslconf.h
  64. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/opensslv.h
  65. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ossl_typ.h
  66. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/pem.h
  67. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/pem2.h
  68. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/pkcs12.h
  69. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/pkcs7.h
  70. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/pqueue.h
  71. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/rand.h
  72. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/rc2.h
  73. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/rc4.h
  74. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ripemd.h
  75. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/rsa.h
  76. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/safestack.h
  77. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/seed.h
  78. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/sha.h
  79. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/srp.h
  80. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/srtp.h
  81. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ssl.h
  82. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ssl2.h
  83. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ssl23.h
  84. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ssl3.h
  85. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/stack.h
  86. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/symhacks.h
  87. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/tls1.h
  88. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ts.h
  89. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/txt_db.h
  90. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ui.h
  91. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/ui_compat.h
  92. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/whrlpool.h
  93. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/x509.h
  94. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/x509_vfy.h
  95. 0 1
      Pods/BuildHeaders/OpenSSL-Universal/openssl/x509v3.h
  96. 0 1
      Pods/Headers/OpenSSL-Universal/openssl/aes.h
  97. 0 1
      Pods/Headers/OpenSSL-Universal/openssl/asn1.h
  98. 0 1
      Pods/Headers/OpenSSL-Universal/openssl/asn1_mac.h
  99. 0 1
      Pods/Headers/OpenSSL-Universal/openssl/asn1t.h
  100. 0 1
      Pods/Headers/OpenSSL-Universal/openssl/bio.h

+ 0 - 27
CryptoSwift-Bridging-Header.h

@@ -1,27 +0,0 @@
-//
-//  BridgingHeader.h
-//  SwiftPGP
-//
-//  Created by Marcin Krzyzanowski on 05/07/14.
-//  Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
-//
-
-
-#import <CommonCrypto/CommonCrypto.h>
-
-#import <openssl/ripemd.h>
-#import <openssl/cast.h>
-#import <openssl/idea.h>
-#import <openssl/aes.h>
-#import <openssl/sha.h>
-#import <openssl/des.h>
-#import <openssl/camellia.h>
-#import <openssl/blowfish.h>
-
-
-#import <openssl/bn.h>
-#import <openssl/ossl_typ.h>
-
-#import <openssl/rsa.h>
-
-

+ 0 - 17
CryptoSwift.podspec

@@ -1,17 +0,0 @@
-Pod::Spec.new do |s|
-  s.name         = "CryptoSwift"
-  s.version      = "0.0.1"
-  s.summary      = "Crypto helpers. Written in Swift"
-  s.homepage     = "https://github.com/krzyzanowskim/CryptoSwift"
-  
-  s.license      = "Apache License"
-  s.license      = { :type => "Apache", :file => "LICENSE" }
-  s.author             = { "Marcin Krzyżanowski" => "marcin.krzyzanowski@gmail.com" }
-  s.social_media_url   = "http://twitter.com/krzyzanowskim"
-  s.platform     = :ios
-  s.ios.deployment_target = '7.0'
-  s.source       = { :git => "https://github.com/krzyzanowskim/CryptoSwift.git", :tag => "0.0.1" }
-  s.source_files = ["CryptoSwift/*", "CryptoSwift-Bridging-Header.h"]
-  s.dependency   "OpenSSL-Universal"
-  s.requires_arc = true
-end

+ 130 - 112
CryptoSwift.xcodeproj/project.pbxproj

@@ -7,35 +7,62 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
-		53EF3745328C4EBAA8FD3C8A /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 230BF7BDFE0F48EB92E8E651 /* libPods.a */; };
-		6CA7485BCB0B449C97D1EE33 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 230BF7BDFE0F48EB92E8E651 /* libPods.a */; };
-		752867B01969528B00E10455 /* Bignum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 752867AF1969528B00E10455 /* Bignum.swift */; };
-		752867B21969675900E10455 /* RSA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 752867B11969675900E10455 /* RSA.swift */; };
-		752DEF7519693E7200E17557 /* CryptoSwift-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 752DEF7419693E7200E17557 /* CryptoSwift-Bridging-Header.h */; };
+		750A54601992D2680017DA75 /* MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 750A545F1992D2680017DA75 /* MD5.swift */; };
 		752DEF7719693EA000E17557 /* NSDataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 752DEF7619693EA000E17557 /* NSDataExtension.swift */; };
-		75445821196AA2A5002FF20E /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75445820196AA2A5002FF20E /* Security.framework */; };
+		75445821196AA2A5002FF20E /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75445820196AA2A5002FF20E /* Security.framework */; settings = {ATTRIBUTES = (Required, ); }; };
+		7547195119931802002FA5F1 /* IntExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7547195019931802002FA5F1 /* IntExtension.swift */; };
 		754BE45B19693E190098E6F3 /* CryptoSwift.h in Headers */ = {isa = PBXBuildFile; fileRef = 754BE45A19693E190098E6F3 /* CryptoSwift.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		754BE46119693E190098E6F3 /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 754BE45519693E190098E6F3 /* CryptoSwift.framework */; };
 		754BE46819693E190098E6F3 /* CryptoSwiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754BE46719693E190098E6F3 /* CryptoSwiftTests.swift */; };
-		754ECF50197C59FF00731E1B /* BignumTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754ECF4F197C59FF00731E1B /* BignumTests.swift */; };
+		7552614E1993051E000D2B20 /* CryptoHash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7552614D1993051E000D2B20 /* CryptoHash.swift */; };
+		758F3F761992E57D0014BBDA /* Playground in Resources */ = {isa = PBXBuildFile; fileRef = 758F3F751992E57D0014BBDA /* Playground */; };
+		758F3F781992F6CE0014BBDA /* ByteExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 758F3F771992F6CE0014BBDA /* ByteExtension.swift */; };
+		75B601EB197D6A6C0009B53D /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 754BE45519693E190098E6F3 /* CryptoSwift.framework */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
-		752DEF7819693F3A00E17557 /* PBXContainerItemProxy */ = {
+		75B601E3197D69EB0009B53D /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 754BE44C19693E190098E6F3 /* Project object */;
 			proxyType = 1;
 			remoteGlobalIDString = 754BE45419693E190098E6F3;
 			remoteInfo = CryptoSwift;
 		};
-		754BE46219693E190098E6F3 /* PBXContainerItemProxy */ = {
+		75B601E5197D6A270009B53D /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 754BE44C19693E190098E6F3 /* Project object */;
 			proxyType = 1;
 			remoteGlobalIDString = 754BE45419693E190098E6F3;
 			remoteInfo = CryptoSwift;
 		};
-		754ECF4D197C55C700731E1B /* PBXContainerItemProxy */ = {
+		75B601E7197D6A3A0009B53D /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 754BE44C19693E190098E6F3 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 754BE45419693E190098E6F3;
+			remoteInfo = CryptoSwift;
+		};
+		75B601E9197D6A5C0009B53D /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 754BE44C19693E190098E6F3 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 754BE45419693E190098E6F3;
+			remoteInfo = CryptoSwift;
+		};
+		75B601EC197D6B3D0009B53D /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 754BE44C19693E190098E6F3 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 754BE45419693E190098E6F3;
+			remoteInfo = CryptoSwift;
+		};
+		75B6021C197D6CF10009B53D /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 754BE44C19693E190098E6F3 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 754BE45419693E190098E6F3;
+			remoteInfo = CryptoSwift;
+		};
+		75B6021E197D6D070009B53D /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 754BE44C19693E190098E6F3 /* Project object */;
 			proxyType = 1;
@@ -44,21 +71,32 @@
 		};
 /* End PBXContainerItemProxy section */
 
+/* Begin PBXCopyFilesBuildPhase section */
+		75B601E0197D69770009B53D /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
 /* Begin PBXFileReference section */
-		230BF7BDFE0F48EB92E8E651 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; };
-		3B94B3F6DF034011B9EAC0B8 /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = "<group>"; };
-		752867AF1969528B00E10455 /* Bignum.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Bignum.swift; sourceTree = "<group>"; };
-		752867B11969675900E10455 /* RSA.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RSA.swift; sourceTree = "<group>"; };
-		752DEF7419693E7200E17557 /* CryptoSwift-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CryptoSwift-Bridging-Header.h"; sourceTree = "<group>"; };
+		750A545F1992D2680017DA75 /* MD5.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MD5.swift; sourceTree = "<group>"; };
 		752DEF7619693EA000E17557 /* NSDataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDataExtension.swift; sourceTree = "<group>"; };
 		75445820196AA2A5002FF20E /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
+		7547195019931802002FA5F1 /* IntExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IntExtension.swift; sourceTree = "<group>"; };
 		754BE45519693E190098E6F3 /* CryptoSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CryptoSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		754BE45919693E190098E6F3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		754BE45A19693E190098E6F3 /* CryptoSwift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CryptoSwift.h; sourceTree = "<group>"; };
 		754BE46019693E190098E6F3 /* CryptoSwiftTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CryptoSwiftTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
 		754BE46619693E190098E6F3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		754BE46719693E190098E6F3 /* CryptoSwiftTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CryptoSwiftTests.swift; sourceTree = "<group>"; };
-		754ECF4F197C59FF00731E1B /* BignumTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BignumTests.swift; sourceTree = "<group>"; };
+		7552614D1993051E000D2B20 /* CryptoHash.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CryptoHash.swift; sourceTree = "<group>"; };
+		758F3F751992E57D0014BBDA /* Playground */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Playground; path = CryptoSwift/Playground; sourceTree = "<group>"; };
+		758F3F771992F6CE0014BBDA /* ByteExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ByteExtension.swift; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -67,7 +105,6 @@
 			buildActionMask = 2147483647;
 			files = (
 				75445821196AA2A5002FF20E /* Security.framework in Frameworks */,
-				6CA7485BCB0B449C97D1EE33 /* libPods.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -75,8 +112,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				754BE46119693E190098E6F3 /* CryptoSwift.framework in Frameworks */,
-				53EF3745328C4EBAA8FD3C8A /* libPods.a in Frameworks */,
+				75B601EB197D6A6C0009B53D /* CryptoSwift.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -87,7 +123,6 @@
 			isa = PBXGroup;
 			children = (
 				75445820196AA2A5002FF20E /* Security.framework */,
-				230BF7BDFE0F48EB92E8E651 /* libPods.a */,
 			);
 			name = Frameworks;
 			sourceTree = "<group>";
@@ -95,11 +130,10 @@
 		754BE44B19693E190098E6F3 = {
 			isa = PBXGroup;
 			children = (
-				752DEF7419693E7200E17557 /* CryptoSwift-Bridging-Header.h */,
+				758F3F751992E57D0014BBDA /* Playground */,
 				754BE45719693E190098E6F3 /* CryptoSwift */,
 				754BE46419693E190098E6F3 /* CryptoSwiftTests */,
 				754BE45619693E190098E6F3 /* Products */,
-				3B94B3F6DF034011B9EAC0B8 /* Pods.xcconfig */,
 				24B0BBA29D734E62809E53BC /* Frameworks */,
 			);
 			sourceTree = "<group>";
@@ -117,8 +151,10 @@
 			isa = PBXGroup;
 			children = (
 				754BE45A19693E190098E6F3 /* CryptoSwift.h */,
-				752867AF1969528B00E10455 /* Bignum.swift */,
-				752867B11969675900E10455 /* RSA.swift */,
+				7552614D1993051E000D2B20 /* CryptoHash.swift */,
+				750A545F1992D2680017DA75 /* MD5.swift */,
+				758F3F771992F6CE0014BBDA /* ByteExtension.swift */,
+				7547195019931802002FA5F1 /* IntExtension.swift */,
 				752DEF7619693EA000E17557 /* NSDataExtension.swift */,
 				754BE45819693E190098E6F3 /* Supporting Files */,
 			);
@@ -137,7 +173,6 @@
 			isa = PBXGroup;
 			children = (
 				754BE46719693E190098E6F3 /* CryptoSwiftTests.swift */,
-				754ECF4F197C59FF00731E1B /* BignumTests.swift */,
 				754BE46519693E190098E6F3 /* Supporting Files */,
 			);
 			path = CryptoSwiftTests;
@@ -159,7 +194,6 @@
 			buildActionMask = 2147483647;
 			files = (
 				754BE45B19693E190098E6F3 /* CryptoSwift.h in Headers */,
-				752DEF7519693E7200E17557 /* CryptoSwift-Bridging-Header.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -170,12 +204,11 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 754BE46B19693E190098E6F3 /* Build configuration list for PBXNativeTarget "CryptoSwift" */;
 			buildPhases = (
-				D2A5B9C87E654FEB86F27268 /* Check Pods Manifest.lock */,
 				754BE45019693E190098E6F3 /* Sources */,
 				754BE45119693E190098E6F3 /* Frameworks */,
 				754BE45219693E190098E6F3 /* Headers */,
 				754BE45319693E190098E6F3 /* Resources */,
-				2153438C75D643938CD186E5 /* Copy Pods Resources */,
+				75B601E0197D69770009B53D /* CopyFiles */,
 			);
 			buildRules = (
 			);
@@ -190,18 +223,20 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 754BE46E19693E190098E6F3 /* Build configuration list for PBXNativeTarget "CryptoSwiftTests" */;
 			buildPhases = (
-				1E999A4E5F8F4DBFAC09156C /* Check Pods Manifest.lock */,
 				754BE45C19693E190098E6F3 /* Sources */,
 				754BE45D19693E190098E6F3 /* Frameworks */,
 				754BE45E19693E190098E6F3 /* Resources */,
-				727090F2529B48728E22F15B /* Copy Pods Resources */,
 			);
 			buildRules = (
 			);
 			dependencies = (
-				754BE46319693E190098E6F3 /* PBXTargetDependency */,
-				752DEF7919693F3A00E17557 /* PBXTargetDependency */,
-				754ECF4E197C55C700731E1B /* PBXTargetDependency */,
+				75B601E4197D69EB0009B53D /* PBXTargetDependency */,
+				75B601E6197D6A270009B53D /* PBXTargetDependency */,
+				75B601E8197D6A3A0009B53D /* PBXTargetDependency */,
+				75B601EA197D6A5C0009B53D /* PBXTargetDependency */,
+				75B601ED197D6B3D0009B53D /* PBXTargetDependency */,
+				75B6021D197D6CF10009B53D /* PBXTargetDependency */,
+				75B6021F197D6D070009B53D /* PBXTargetDependency */,
 			);
 			name = CryptoSwiftTests;
 			productName = CryptoSwiftTests;
@@ -249,6 +284,7 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				758F3F761992E57D0014BBDA /* Playground in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -261,77 +297,16 @@
 		};
 /* End PBXResourcesBuildPhase section */
 
-/* Begin PBXShellScriptBuildPhase section */
-		1E999A4E5F8F4DBFAC09156C /* Check Pods Manifest.lock */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "Check Pods Manifest.lock";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n    cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n    exit 1\nfi\n";
-			showEnvVarsInLog = 0;
-		};
-		2153438C75D643938CD186E5 /* Copy Pods Resources */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "Copy Pods Resources";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n";
-			showEnvVarsInLog = 0;
-		};
-		727090F2529B48728E22F15B /* Copy Pods Resources */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "Copy Pods Resources";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n";
-			showEnvVarsInLog = 0;
-		};
-		D2A5B9C87E654FEB86F27268 /* Check Pods Manifest.lock */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "Check Pods Manifest.lock";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n    cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n    exit 1\nfi\n";
-			showEnvVarsInLog = 0;
-		};
-/* End PBXShellScriptBuildPhase section */
-
 /* Begin PBXSourcesBuildPhase section */
 		754BE45019693E190098E6F3 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				7552614E1993051E000D2B20 /* CryptoHash.swift in Sources */,
+				750A54601992D2680017DA75 /* MD5.swift in Sources */,
 				752DEF7719693EA000E17557 /* NSDataExtension.swift in Sources */,
-				752867B01969528B00E10455 /* Bignum.swift in Sources */,
-				752867B21969675900E10455 /* RSA.swift in Sources */,
+				7547195119931802002FA5F1 /* IntExtension.swift in Sources */,
+				758F3F781992F6CE0014BBDA /* ByteExtension.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -340,27 +315,46 @@
 			buildActionMask = 2147483647;
 			files = (
 				754BE46819693E190098E6F3 /* CryptoSwiftTests.swift in Sources */,
-				754ECF50197C59FF00731E1B /* BignumTests.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXTargetDependency section */
-		752DEF7919693F3A00E17557 /* PBXTargetDependency */ = {
+		75B601E4197D69EB0009B53D /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = 754BE45419693E190098E6F3 /* CryptoSwift */;
-			targetProxy = 752DEF7819693F3A00E17557 /* PBXContainerItemProxy */;
+			targetProxy = 75B601E3197D69EB0009B53D /* PBXContainerItemProxy */;
 		};
-		754BE46319693E190098E6F3 /* PBXTargetDependency */ = {
+		75B601E6197D6A270009B53D /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = 754BE45419693E190098E6F3 /* CryptoSwift */;
-			targetProxy = 754BE46219693E190098E6F3 /* PBXContainerItemProxy */;
+			targetProxy = 75B601E5197D6A270009B53D /* PBXContainerItemProxy */;
 		};
-		754ECF4E197C55C700731E1B /* PBXTargetDependency */ = {
+		75B601E8197D6A3A0009B53D /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = 754BE45419693E190098E6F3 /* CryptoSwift */;
-			targetProxy = 754ECF4D197C55C700731E1B /* PBXContainerItemProxy */;
+			targetProxy = 75B601E7197D6A3A0009B53D /* PBXContainerItemProxy */;
+		};
+		75B601EA197D6A5C0009B53D /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 754BE45419693E190098E6F3 /* CryptoSwift */;
+			targetProxy = 75B601E9197D6A5C0009B53D /* PBXContainerItemProxy */;
+		};
+		75B601ED197D6B3D0009B53D /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 754BE45419693E190098E6F3 /* CryptoSwift */;
+			targetProxy = 75B601EC197D6B3D0009B53D /* PBXContainerItemProxy */;
+		};
+		75B6021D197D6CF10009B53D /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 754BE45419693E190098E6F3 /* CryptoSwift */;
+			targetProxy = 75B6021C197D6CF10009B53D /* PBXContainerItemProxy */;
+		};
+		75B6021F197D6D070009B53D /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 754BE45419693E190098E6F3 /* CryptoSwift */;
+			targetProxy = 75B6021E197D6D070009B53D /* PBXContainerItemProxy */;
 		};
 /* End PBXTargetDependency section */
 
@@ -404,7 +398,6 @@
 				METAL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				SDKROOT = iphoneos;
-				SWIFT_OBJC_BRIDGING_HEADER = "CryptoSwift-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				VERSIONING_SYSTEM = "apple-generic";
@@ -444,7 +437,6 @@
 				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				METAL_ENABLE_DEBUG_INFO = NO;
 				SDKROOT = iphoneos;
-				SWIFT_OBJC_BRIDGING_HEADER = "CryptoSwift-Bridging-Header.h";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				VALIDATE_PRODUCT = YES;
 				VERSIONING_SYSTEM = "apple-generic";
@@ -454,16 +446,25 @@
 		};
 		754BE46C19693E190098E6F3 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 3B94B3F6DF034011B9EAC0B8 /* Pods.xcconfig */;
 			buildSettings = {
 				CLANG_ENABLE_MODULES = YES;
 				DEFINES_MODULE = YES;
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					"/Applications/Xcode6-Beta3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
+					"includes/**",
+				);
 				INFOPLIST_FILE = CryptoSwift/Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/libs",
+					"/Users/marcinkrzyzanowski/Devel/OpenSSL/lib-ios",
+				);
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SKIP_INSTALL = YES;
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -472,16 +473,25 @@
 		};
 		754BE46D19693E190098E6F3 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 3B94B3F6DF034011B9EAC0B8 /* Pods.xcconfig */;
 			buildSettings = {
 				CLANG_ENABLE_MODULES = YES;
 				DEFINES_MODULE = YES;
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					"/Applications/Xcode6-Beta3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
+					"includes/**",
+				);
 				INFOPLIST_FILE = CryptoSwift/Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/libs",
+					"/Users/marcinkrzyzanowski/Devel/OpenSSL/lib-ios",
+				);
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SKIP_INSTALL = YES;
 			};
@@ -489,7 +499,6 @@
 		};
 		754BE46F19693E190098E6F3 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 3B94B3F6DF034011B9EAC0B8 /* Pods.xcconfig */;
 			buildSettings = {
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(SDKROOT)/Developer/Library/Frameworks",
@@ -499,6 +508,11 @@
 					"DEBUG=1",
 					"$(inherited)",
 				);
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					"/Applications/Xcode6-Beta3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
+					"includes/**",
+				);
 				INFOPLIST_FILE = CryptoSwiftTests/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				METAL_ENABLE_DEBUG_INFO = YES;
@@ -508,12 +522,16 @@
 		};
 		754BE47019693E190098E6F3 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 3B94B3F6DF034011B9EAC0B8 /* Pods.xcconfig */;
 			buildSettings = {
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(SDKROOT)/Developer/Library/Frameworks",
 					"$(inherited)",
 				);
+				HEADER_SEARCH_PATHS = (
+					"$(inherited)",
+					"/Applications/Xcode6-Beta3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
+					"includes/**",
+				);
 				INFOPLIST_FILE = CryptoSwiftTests/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				METAL_ENABLE_DEBUG_INFO = NO;

+ 41 - 0
CryptoSwift.xcodeproj/project.xcworkspace/xcshareddata/CryptoSwift.xccheckout

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDESourceControlProjectFavoriteDictionaryKey</key>
+	<false/>
+	<key>IDESourceControlProjectIdentifier</key>
+	<string>7266B6DF-1CD3-4383-821A-42E5BE4580E8</string>
+	<key>IDESourceControlProjectName</key>
+	<string>CryptoSwift</string>
+	<key>IDESourceControlProjectOriginsDictionary</key>
+	<dict>
+		<key>C3D8ED1CB28D809ADCE2C0DE74935E8A502ACD53</key>
+		<string>github.com:krzyzanowskim/CryptoSwift.git</string>
+	</dict>
+	<key>IDESourceControlProjectPath</key>
+	<string>CryptoSwift.xcodeproj</string>
+	<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
+	<dict>
+		<key>C3D8ED1CB28D809ADCE2C0DE74935E8A502ACD53</key>
+		<string>../..</string>
+	</dict>
+	<key>IDESourceControlProjectURL</key>
+	<string>github.com:krzyzanowskim/CryptoSwift.git</string>
+	<key>IDESourceControlProjectVersion</key>
+	<integer>111</integer>
+	<key>IDESourceControlProjectWCCIdentifier</key>
+	<string>C3D8ED1CB28D809ADCE2C0DE74935E8A502ACD53</string>
+	<key>IDESourceControlProjectWCConfigurations</key>
+	<array>
+		<dict>
+			<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
+			<string>public.vcs.git</string>
+			<key>IDESourceControlWCCIdentifierKey</key>
+			<string>C3D8ED1CB28D809ADCE2C0DE74935E8A502ACD53</string>
+			<key>IDESourceControlWCCName</key>
+			<string>CryptoSwift</string>
+		</dict>
+	</array>
+</dict>
+</plist>

+ 0 - 1
CryptoSwift.xcworkspace/contents.xcworkspacedata

@@ -1 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?><Workspace version='1.0'><FileRef location='group:CryptoSwift.xcodeproj'/><FileRef location='group:Pods/Pods.xcodeproj'/></Workspace>

+ 0 - 138
CryptoSwift/Bignum.swift

@@ -1,138 +0,0 @@
-//
-//  Bignum.swift
-//  CryptoSwift
-//
-//  Created by Marcin Krzyzanowski on 06/07/14.
-//  Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
-//
-
-import Foundation
-
-class Bignum {
-    var bignumPointer:UnsafePointer<BIGNUM> {
-        willSet {
-            BN_clear(self.bignumPointer);
-            self.bignumPointer.destroy()
-        }
-    }
-    
-    var numberOfBytes:Int {
-        get {
-            return Int((BN_num_bits(self.bignumPointer)+7)/8);
-        }
-    }
-    
-    init() {
-        self.bignumPointer = UnsafePointer<BIGNUM>.alloc(sizeof(BIGNUM))
-        BN_init(bignumPointer)
-    }
-    
-    convenience init(_ bignum: Bignum?) {
-        self.init();
-        if (bignum) {
-            self.bignumPointer = BN_dup(bignum!.bignumPointer);
-        }
-    }
-    
-    class func bignumWithBignum (bignum: Bignum?) -> Bignum? {
-        var newBignum = Bignum();
-        if let bb = bignum {
-            newBignum.bignumPointer = BN_dup(bb.bignumPointer);
-        }
-        return nil;
-    }
-    
-    class func bignumWithPointer (pointer: UnsafePointer<BIGNUM>) -> Bignum? {
-        var newBignum = Bignum();
-        newBignum.bignumPointer = BN_dup(pointer)
-        return newBignum
-    }
-    
-    class func bignumWithData(data: NSData?) -> Bignum? {
-        var newBignum = Bignum();
-        if let d = data {
-            newBignum.initWithData(d);
-            return newBignum
-        }
-        return nil
-    }
-    
-    func initWithData(data: NSData?) -> Bool {
-        if (!data) {
-            return false;
-        }
-        
-        let constPointerToBytes = ConstUnsafePointer<CUnsignedChar>(data!.bytes)
-        var bn:UnsafePointer<BIGNUM> = BN_bin2bn(constPointerToBytes, CInt(data!.length), nil);
-        if (bn == nil) {
-            return false;
-        }
-        self.bignumPointer = bn;
-        return true;
-    }
-    
-    func data() -> NSData? {
-        let len = self.numberOfBytes;
-        var buf = UnsafePointer<Byte>.alloc(len);
-        
-        let convertResult = BN_bn2bin(self.bignumPointer, buf);
-        if (convertResult == nil) {
-            return nil;
-        }
-        
-        var returnData:NSData = NSData(bytes: buf, length: Int(convertResult))
-        buf.destroy()
-        return returnData
-    }
-    
-    func copy() -> AnyObject! {
-        let copied:Bignum = Bignum(self)
-        return copied
-    }
-    
-    deinit {
-        BN_clear(self.bignumPointer);
-        self.bignumPointer.destroy()
-    }
-}
-
-@infix func + (left: Bignum, right: Bignum) -> Bignum {
-    var resultPointer = UnsafePointer<BIGNUM>.alloc(sizeof(BIGNUM))
-    BN_add(resultPointer,left.bignumPointer, right.bignumPointer);
-    var result = Bignum.bignumWithPointer(resultPointer)
-    resultPointer.destroy()
-    return result!
-}
-
-@infix func - (left: Bignum, right: Bignum) -> Bignum {
-    var resultPointer = UnsafePointer<BIGNUM>.alloc(sizeof(BIGNUM))
-    BN_sub(resultPointer,left.bignumPointer, right.bignumPointer);
-    var result = Bignum.bignumWithPointer(resultPointer)
-    resultPointer.destroy()
-    return result!
-}
-
-@infix func * (left: Bignum, right: Bignum) -> Bignum {
-    var resultPointer = UnsafePointer<BIGNUM>.alloc(sizeof(BIGNUM))
-    var ctx:COpaquePointer = BN_CTX_new();
-    BN_CTX_init(ctx)
-    
-    BN_mul(resultPointer,left.bignumPointer, right.bignumPointer, ctx);
-    BN_CTX_free(ctx)
-    var result:Bignum! = Bignum.bignumWithPointer(resultPointer)
-    resultPointer.destroy()
-    return result
-}
-
-@infix func / (left: Bignum, right: Bignum) -> Bignum {
-    var resultPointer = UnsafePointer<BIGNUM>.alloc(sizeof(BIGNUM))
-    var ctx:COpaquePointer = BN_CTX_new();
-    BN_CTX_init(ctx)
-    
-    BN_div(resultPointer, nil, left.bignumPointer, right.bignumPointer, ctx);
-    BN_CTX_free(ctx)
-    
-    var result:Bignum! = Bignum.bignumWithPointer(resultPointer)
-    resultPointer.destroy()
-    return result
-}

+ 29 - 0
CryptoSwift/ByteExtension.swift

@@ -0,0 +1,29 @@
+//
+//  ByteExtension.swift
+//  CryptoSwift
+//
+//  Created by Marcin Krzyzanowski on 07/08/14.
+//  Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
+//
+
+import Foundation
+
+extension Byte {
+    
+    /** array of bits */
+    internal func bits() -> Array<Bool> {
+        let totalBitsCount = sizeof(Byte) * 8
+        
+        var bitsArray:[Bool] = [Bool](count: totalBitsCount, repeatedValue: false)
+        
+        for j in 0..<totalBitsCount {
+            let bitVal:Byte = 1 << UInt8(totalBitsCount - 1 - j)
+            let check = self & bitVal
+            
+            if (check != 0) {
+                bitsArray[j] = 1;
+            }
+        }
+        return bitsArray
+    }
+}

+ 40 - 0
CryptoSwift/CryptoHash.swift

@@ -0,0 +1,40 @@
+//
+//  CryptoHash.swift
+//  CryptoSwift
+//
+//  Created by Marcin Krzyzanowski on 07/08/14.
+//  Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
+//
+
+import Foundation
+
+enum CryptoHash: Int {
+    case md5 = 1
+    case sha1 = 2
+    case sha224 = 3
+    case sha256 = 4
+    case sha384 = 5
+    case sha512 = 6
+    case ripemd160 = 7
+    
+    func hash(data: NSData) -> NSData! {
+        switch self {
+        case md5:
+            return data.md5()
+            //        case sha1:
+            //            return data.sha1()
+            //        case sha224:
+            //            return data.sha224()
+            //        case sha256:
+            //            return data.sha256()
+            //        case sha384:
+            //            return data.sha384()
+            //        case sha512:
+            //            return data.sha512()
+            //        case ripemd160:
+            //            return data.ripemd160()
+        default:
+            return nil
+        }
+    }
+}

+ 40 - 0
CryptoSwift/IntExtension.swift

@@ -0,0 +1,40 @@
+//
+//  IntExtension.swift
+//  CryptoSwift
+//
+//  Created by Marcin Krzyzanowski on 07/08/14.
+//  Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
+//
+
+import Foundation
+
+extension Int {
+    
+    /** Array of bytes (little-endian) */
+    internal func toBytes() -> Array<Byte> {
+        let totalBytes = sizeof(Int)
+        var bytes:[Byte] = [Byte](count: totalBytes, repeatedValue: 0)
+
+        // first convert to data
+        let data = NSData(bytes: [self] as [Int], length: totalBytes)
+        
+        // then convert back to bytes, byte by byte
+        for i in 0..<data.length {
+            var b:Byte = 0
+            data.getBytes(&b, range: NSRange(location: i,length: 1))
+            bytes[totalBytes - 1 - i] = b
+        }
+        return bytes
+    }
+    
+    /** Int with array bytes (little-endian) */
+    static func withBytes(bytes: Array<Byte>) -> Int {
+        var i:Int = 0
+        let totalBytes = bytes.count > sizeof(Int) ? sizeof(Int) : bytes.count;
+        
+        let data = NSData(bytes: bytes, length: totalBytes)
+        data.getBytes(&i, length: totalBytes)
+        
+        return i.byteSwapped
+    }
+}

+ 99 - 0
CryptoSwift/MD5.swift

@@ -0,0 +1,99 @@
+//
+//  MD5.swift
+//  CryptoSwift
+//
+//  Created by Marcin Krzyzanowski on 06/08/14.
+//  Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
+//
+
+import Foundation
+
+class MD5 {
+
+    /** specifies the per-round shift amounts */
+    let s: [UInt32] = [7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,
+                       5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20,
+                       4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23,
+                       6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21]
+    
+    /** binary integer part of the sines of integers (Radians) */
+    let K: [UInt32] = [0xd76aa478,0xe8c7b756,0x242070db,0xc1bdceee,
+                       0xf57c0faf,0x4787c62a,0xa8304613,0xfd469501,
+                       0x698098d8,0x8b44f7af,0xffff5bb1,0x895cd7be,
+                       0x6b901122,0xfd987193,0xa679438e,0x49b40821,
+                       0xf61e2562,0xc040b340,0x265e5a51,0xe9b6c7aa,
+                       0xd62f105d,0x2441453,0xd8a1e681,0xe7d3fbc8,
+                       0x21e1cde6,0xc33707d6,0xf4d50d87,0x455a14ed,
+                       0xa9e3e905,0xfcefa3f8,0x676f02d9,0x8d2a4c8a,
+                       0xfffa3942,0x8771f681,0x6d9d6122,0xfde5380c,
+                       0xa4beea44,0x4bdecfa9,0xf6bb4b60,0xbebfbc70,
+                       0x289b7ec6,0xeaa127fa,0xd4ef3085,0x4881d05,
+                       0xd9d4d039,0xe6db99e5,0x1fa27cf8,0xc4ac5665,
+                       0xf4292244,0x432aff97,0xab9423a7,0xfc93a039,
+                       0x655b59c3,0x8f0ccc92,0xffeff47d,0x85845dd1,
+                       0x6fa87e4f,0xfe2ce6e0,0xa3014314,0x4e0811a1,
+                       0xf7537e82,0xbd3af235,0x2ad7d2bb,0xeb86d391]
+    
+    /** A */
+    var a0: UInt32 = 0x67452301
+    /** B */
+    var a1: UInt32 = 0xefcdab89
+    /** C */
+    var a2: UInt32 = 0x98badcfe
+    /** D */
+    var a3: UInt32 = 0x10325476
+    
+    var message: NSData
+    
+    init(_ message: NSData) {
+        self.message = message;
+    }
+    
+    class func calculate(message: NSData) -> NSData?
+    {
+        return MD5(message).calculate();
+    }
+    
+    func paddedBuffer() -> NSData {
+        var tmpMessage: NSMutableData = NSMutableData(data: message)
+        
+        // Step 1. Append Padding Bits
+        tmpMessage.appendBytes([0x80]) // append one bit to message
+        
+        // "0" bits are appended
+        while tmpMessage.length % 64 != 56 {
+            tmpMessage.appendBytes([0x00])
+        }
+        
+        // Step 2. Append Length
+        let lengthInBits: Int = (message.length * 8)
+        // A 64-bit representation of b
+//        for i in stride(from: 0, through: 56, by: 8) {
+//            let byte = (Byte)(lengthInBits >> i)
+//            tmpMessage.appendBytes([byte])
+//        }
+        
+//        let temp: Int = (448 - (message.length * 8) % 512)
+//        var pad: Int = (temp + 512) % 512 // no of bits to be pad
+//        
+//        if (pad == 0) {
+//            pad = 512
+//        }
+//        
+//        // buffer size in multiple of bytes
+//        let sizeMsgBuff = message.length + (pad / 8) + 8
+//        // 64 bit size pad
+//        let sizeMsg = message.length * 8
+        
+        var buf: NSMutableData = NSMutableData();
+        return buf.copy() as NSData;
+    }
+    
+    //TODO
+    func calculate() -> NSData?
+    {
+        let paddedData = self.paddedBuffer();
+        return paddedBuffer();
+    }
+    
+}

+ 18 - 144
CryptoSwift/NSDataExtension.swift

@@ -8,45 +8,22 @@
 
 import Foundation
 
-enum CryptoHash: Int {
-    case md5 = 1
-    case sha1 = 2
-    case sha224 = 3
-    case sha256 = 4
-    case sha384 = 5
-    case sha512 = 6
-    case ripemd160 = 7
+extension NSMutableData {
     
-    func hash(data: NSData) -> NSData! {
-        switch self {
-        case md5:
-            return data.md5()
-        case sha1:
-            return data.sha1()
-        case sha224:
-            return data.sha224()
-        case sha256:
-            return data.sha256()
-        case sha384:
-            return data.sha384()
-        case sha512:
-            return data.sha512()
-        case ripemd160:
-            return data.ripemd160()
-        }
+    /** Convenient way to append bytes */
+    internal func appendBytes(arrayOfBytes: Array<Byte>) {
+        self.appendBytes(arrayOfBytes, length: arrayOfBytes.count)
     }
+    
 }
 
 extension NSData {
     
-    func arrayOfBytes() -> Array<Byte> {
-        let count = self.length / sizeof(Byte)
-        var bytesArray = [Byte](count: count, repeatedValue: 0)
-        self.getBytes(&bytesArray, length:count * sizeof(Byte))
-        return bytesArray
+    public var hexString: String {
+        return self.toHexString()
     }
     
-    func checksum() -> UInt16 {
+    public func checksum() -> UInt16 {
         var s:UInt32 = 0;
         
         var bytesArray = self.arrayOfBytes();
@@ -59,121 +36,11 @@ extension NSData {
         return UInt16(s);
     }
     
-    func md5() -> NSData {
-         
-        var ctx = UnsafePointer<CC_MD5_CTX>.alloc(sizeof(CC_MD5_CTX))
-        CC_MD5_Init(ctx);
-
-        CC_MD5_Update(ctx, self.bytes, UInt32(self.length));
-        let length = Int(CC_MD5_DIGEST_LENGTH) * sizeof(Byte)
-        var output = UnsafePointer<Byte>.alloc(length)
-        CC_MD5_Final(output, ctx);
-
-        let outData = NSData(bytes: output, length: Int(CC_MD5_DIGEST_LENGTH))
-        output.destroy()
-        ctx.destroy()
-
-        //withUnsafePointer
-        return outData;
+    public func md5() -> NSData? {
+        return MD5.calculate(self);
     }
     
-    func sha1() -> NSData {
-        var ctx = UnsafePointer<CC_SHA1_CTX>.alloc(sizeof(CC_SHA1_CTX))
-        CC_SHA1_Init(ctx);
-        
-        CC_SHA1_Update(ctx, self.bytes, UInt32(self.length));
-        let length = Int(CC_SHA1_DIGEST_LENGTH) * sizeof(Byte)
-        var output = UnsafePointer<Byte>.alloc(length)
-        CC_SHA1_Final(output, ctx);
-        
-        let outData = NSData(bytes: output, length: Int(CC_SHA1_DIGEST_LENGTH))
-        output.destroy()
-        ctx.destroy()
-        
-        return outData;
-    }
-    
-    func sha224() -> NSData {
-        var ctx = UnsafePointer<CC_SHA256_CTX>.alloc(sizeof(CC_SHA256_CTX))
-        CC_SHA224_Init(ctx);
-        
-        CC_SHA224_Update(ctx, self.bytes, UInt32(self.length));
-        let length = Int(CC_SHA224_DIGEST_LENGTH) * sizeof(Byte)
-        var output = UnsafePointer<Byte>.alloc(length)
-        CC_SHA224_Final(output, ctx);
-        
-        let outData = NSData(bytes: output, length: Int(CC_SHA224_DIGEST_LENGTH))
-        output.destroy()
-        ctx.destroy()
-        
-        return outData;
-    }
-    
-    func sha256() -> NSData {
-        var ctx = UnsafePointer<CC_SHA256_CTX>.alloc(sizeof(CC_SHA256_CTX))
-        CC_SHA256_Init(ctx);
-        
-        CC_SHA256_Update(ctx, self.bytes, UInt32(self.length));
-        let length = Int(CC_SHA256_DIGEST_LENGTH) * sizeof(Byte)
-        var output = UnsafePointer<Byte>.alloc(length)
-        CC_SHA256_Final(output, ctx);
-        
-        let outData = NSData(bytes: output, length: Int(CC_SHA256_DIGEST_LENGTH))
-        output.destroy()
-        ctx.destroy()
-        
-        return outData;
-    }
-    
-    func sha384() -> NSData {
-        var ctx = UnsafePointer<CC_SHA512_CTX>.alloc(sizeof(CC_SHA512_CTX))
-        CC_SHA384_Init(ctx);
-        
-        CC_SHA384_Update(ctx, self.bytes, UInt32(self.length));
-        let length = Int(CC_SHA384_DIGEST_LENGTH) * sizeof(Byte)
-        var output = UnsafePointer<Byte>.alloc(length)
-        CC_SHA384_Final(output, ctx);
-        
-        let outData = NSData(bytes: output, length: Int(CC_SHA384_DIGEST_LENGTH))
-        output.destroy()
-        ctx.destroy()
-        
-        return outData;
-    }
-    
-    func sha512() -> NSData {
-        var ctx = UnsafePointer<CC_SHA512_CTX>.alloc(sizeof(CC_SHA512_CTX))
-        CC_SHA512_Init(ctx);
-        
-        CC_SHA512_Update(ctx, self.bytes, UInt32(self.length));
-        let length = Int(CC_SHA512_DIGEST_LENGTH) * sizeof(Byte)
-        var output = UnsafePointer<Byte>.alloc(length)
-        CC_SHA512_Final(output, ctx);
-        
-        let outData = NSData(bytes: output, length: Int(CC_SHA512_DIGEST_LENGTH))
-        output.destroy()
-        ctx.destroy()
-        
-        return outData;
-    }
-
-    func ripemd160() -> NSData {
-        var ctx = UnsafePointer<RIPEMD160_CTX>.alloc(sizeof(RIPEMD160_CTX))
-        RIPEMD160_Init(ctx);
-        
-        RIPEMD160_Update(ctx, self.bytes, UInt(self.length));
-        let length = Int(RIPEMD160_DIGEST_LENGTH) * sizeof(Byte)
-        var output = UnsafePointer<Byte>.alloc(length)
-        RIPEMD160_Final(output, ctx);
-        
-        let outData = NSData(bytes: output, length: Int(RIPEMD160_DIGEST_LENGTH))
-        output.destroy()
-        ctx.destroy()
-        
-        return outData;
-    }
-    
-    func toHexString() -> String {
+    internal func toHexString() -> String {
         let count = self.length / sizeof(Byte)
         var bytesArray = [Byte](count: count, repeatedValue: 0)
         self.getBytes(&bytesArray, length:count * sizeof(Byte))
@@ -186,5 +53,12 @@ extension NSData {
         }
         return s;
     }
+    
+    internal func arrayOfBytes() -> Array<Byte> {
+        let count = self.length / sizeof(Byte)
+        var bytesArray = [Byte](count: count, repeatedValue: 0)
+        self.getBytes(&bytesArray, length:count * sizeof(Byte))
+        return bytesArray
+    }
 }
 

+ 7 - 0
CryptoSwift/Playground/MyPlayground.playground/contents.xcplayground

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<playground version='3.0' sdk='iphonesimulator'>
+    <sections>
+        <code source-file-name='section-1.swift'/>
+    </sections>
+    <timeline fileName='timeline.xctimeline'/>
+</playground>

+ 66 - 0
CryptoSwift/Playground/MyPlayground.playground/section-1.swift

@@ -0,0 +1,66 @@
+// Playground - noun: a place where people can play
+
+import UIKit
+
+extension Int {
+    
+    /** Array of bytes (little-endian) */
+    internal func toBytes() -> Array<Byte> {
+        let totalBytes = sizeof(Int)
+        var bytes:[Byte] = [Byte](count: totalBytes, repeatedValue: 0)
+        
+        // first convert to data
+        let data = NSData(bytes: [self] as [Int], length: totalBytes)
+        
+        // then convert back to bytes, byte by byte
+        for i in 0..<data.length {
+            var b:Byte = 0
+            data.getBytes(&b, range: NSRange(location: i,length: 1))
+            bytes[totalBytes - 1 - i] = b
+        }
+        return bytes
+    }
+    
+    /** Int with array bytes (little-endian) */
+    static func withBytes(bytes: Array<Byte>) -> Int {
+        var i:Int = 0
+        let totalBytes = bytes.count > sizeof(Int) ? sizeof(Int) : bytes.count;
+        
+        let data = NSData(bytes: bytes, length: totalBytes)
+        data.getBytes(&i, length: totalBytes)
+        
+        return i.byteSwapped
+    }
+}
+
+let iii:Int = 1024 //0x5A
+let bytesArray = iii.toBytes()
+let iiiRecover = Int.withBytes(bytesArray)
+
+//var str = "Hello, playground"
+//
+//let string: NSString = "ABCDE"
+//let message: NSData = string.dataUsingEncoding(NSUTF8StringEncoding)
+//
+//var tmpMessage: NSMutableData = NSMutableData(data: message)
+//// append one bit to message
+//let oneBit: [UInt8] = [0x5A] //0x80
+//tmpMessage.appendBytes(oneBit, length: 1)
+//
+//let b:Byte = 3
+//b.bits()
+//
+//let lengthInBits:Int = 257
+//
+//
+//// little endian 7 6 5 4 3 2 1 0
+//// big endin     0 1 2 3 4 5 6 7
+////var step = 0;
+////for i in stride(from: 0, through: 56, by: 8) {
+////    let byte = (Byte)(lengthInBits >> i)
+////    byte.bitsLE()
+////    step = step + 1
+////}
+//
+//
+//let output: NSString = NSString(data: tmpMessage, encoding: NSUTF8StringEncoding)

+ 6 - 0
CryptoSwift/Playground/MyPlayground.playground/timeline.xctimeline

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Timeline
+   version = "3.0">
+   <TimelineItems>
+   </TimelineItems>
+</Timeline>

+ 0 - 30
CryptoSwift/RSA.swift

@@ -1,30 +0,0 @@
-//
-//  RSA.swift
-//  CryptoSwift
-//
-//  Created by Marcin Krzyzanowski on 06/07/14.
-//  Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
-//
-
-import Foundation
-
-class SwiftRSA {
-    var n: Bignum;
-    var e: Bignum;
-    var d: Bignum;
-    var p: Bignum;
-    var q: Bignum;
-    
-    init(n: Bignum? = nil, e: Bignum? = nil, d: Bignum? = nil, p: Bignum? = nil, q: Bignum? = nil) {
-        self.n = n!;
-        self.e = e!;
-        self.d = d!;
-        self.p = p!;
-        self.q = q!;
-    }
-    
-    func privateEncrypt(data: NSData) {
-        //TODO
-        //var rsa:UnsafePointer<RSA> = RSA_new();
-    }
-}

+ 0 - 46
CryptoSwiftTests/BignumTests.swift

@@ -1,46 +0,0 @@
-//
-//  BignumTests.swift
-//  CryptoSwift
-//
-//  Created by Marcin Krzyzanowski on 20/07/14.
-//  Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
-//
-
-import XCTest
-import CryptoSwift
-
-class BignumTests: XCTestCase {
-
-    override func setUp() {
-        super.setUp()
-    }
-    
-    override func tearDown() {
-        super.tearDown()
-    }
-
-
-    func testBignum() {
-        var bignum1:Bignum = Bignum();
-        var bignum2:Bignum = Bignum();
-        
-        var add = bignum1 + bignum2;
-        XCTAssertNotNil(add, "Add failed");
-        
-        var sub = bignum1 - bignum2;
-        XCTAssertNotNil(sub, "Substract failed");
-    }
-    
-    func testBignumFromData() {
-        let testString:String = "ABCDE"
-        let data:NSData = testString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!
-        let bignum1:Bignum! = Bignum.bignumWithData(data)
-        XCTAssertNotNil(bignum1, "Bignum failed1")
-        
-        let dataRet:NSData! = bignum1.data()
-        XCTAssertNotNil(dataRet, "Bignum failed2")
-        let resultString:String! = String.stringWithBytes(dataRet.arrayOfBytes(), length: dataRet.length, encoding: NSUTF8StringEncoding)
-        XCTAssertEqual(testString, resultString, "Bignum to data failed")
-    }
-
-}

+ 33 - 30
CryptoSwiftTests/CryptoSwiftTests.swift

@@ -20,37 +20,40 @@ class CryptoSwiftTests: XCTestCase {
     }
     
     func testMD5() {
-        var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
-        var md5:NSData = data.md5()
-        XCTAssertNotNil(md5, "MD5 calculation failed")
+//        var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
+        var data:NSData = NSData(bytes: [49, 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, 50, 49, 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, 50] as [Byte], length: 40)
+        let zzz = data.md5()?.hexRepresentation
+        var md5data = data.md5()
+        XCTAssertNotNil(md5data, "MD5 calculation failed")
         
-        var md5String:String = md5.toHexString();
-        XCTAssertEqualObjects(md5String, "202CB962AC59075B964B07152D234B70", "MD5 calculation failed");
+        if let data = md5data {
+            XCTAssertEqual(data.hexRepresentation, "202CB962AC59075B964B07152D234B70", "MD5 calculation failed");
+        }
     }
     
-    func testSHA1() {
-        var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
-        var sha1:NSData = data.sha1()
-        XCTAssertNotNil(sha1, "SHA1 calculation failed")
-        
-        var sha1String:String = sha1.toHexString()
-        XCTAssertEqualObjects(sha1String, "40BD001563085FC35165329EA1FF5C5ECBDBBEEF", "SHA1 calculation failed");
-    }
-
-    func testSHA512() {
-        var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
-        var sha512:NSData = data.sha512()
-        XCTAssertNotNil(sha512, "SHA512 calculation failed")
-        
-        var sha512String:String = sha512.toHexString()
-        XCTAssertEqualObjects(sha512String, "3C9909AFEC25354D551DAE21590BB26E38D53F2173B8D3DC3EEE4C047E7AB1C1EB8B85103E3BE7BA613B31BB5C9C36214DC9F14A42FD7A2FDB84856BCA5C44C2", "SHA512 calculation failed");
-    }
-
-    func testHashEnum() {
-        var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
-        let md5 = CryptoHash.md5.hash(data);
-        var md5String:String = md5.toHexString();
-        XCTAssertEqualObjects(md5String, "202CB962AC59075B964B07152D234B70", "MD5 calculation failed");
-    }
-        
+//    func testSHA1() {
+//        var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
+//        var sha1:NSData = data.sha1()
+//        XCTAssertNotNil(sha1, "SHA1 calculation failed")
+//        
+//        var sha1String:String = sha1.toHexString()
+//        XCTAssertEqualObjects(sha1String, "40BD001563085FC35165329EA1FF5C5ECBDBBEEF", "SHA1 calculation failed");
+//    }
+//
+//    func testSHA512() {
+//        var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
+//        var sha512:NSData = data.sha512()
+//        XCTAssertNotNil(sha512, "SHA512 calculation failed")
+//        
+//        var sha512String:String = sha512.toHexString()
+//        XCTAssertEqualObjects(sha512String, "3C9909AFEC25354D551DAE21590BB26E38D53F2173B8D3DC3EEE4C047E7AB1C1EB8B85103E3BE7BA613B31BB5C9C36214DC9F14A42FD7A2FDB84856BCA5C44C2", "SHA512 calculation failed");
+//    }
+//
+//    func testHashEnum() {
+//        var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
+//        let md5 = CryptoHash.md5.hash(data);
+//        var md5String:String = md5.toHexString();
+//        XCTAssertEqualObjects(md5String, "202CB962AC59075B964B07152D234B70", "MD5 calculation failed");
+//    }
+    
 }

+ 7 - 198
LICENSE

@@ -1,201 +1,10 @@
-Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
+Copyright (C) 2014 Marcin Krzyżanowski <marcin.krzyzanowski@gmail.com>
+This software is provided 'as-is', without any express or implied warranty. 
 
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+In no event will the authors be held liable for any damages arising from the use of this software. 
 
-   1. Definitions.
+Permission is granted to anyone to use this software for any purpose,including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
 
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
+- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required.
+- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+- This notice may not be removed or altered from any source or binary distribution.

+ 0 - 3
Podfile

@@ -1,3 +0,0 @@
-platform :ios, '7.0'
-link_with 'CryptoSwift', 'CryptoSwiftTests'
-pod 'OpenSSL-Universal', git: "https://github.com/krzyzanowskim/OpenSSL.git", branch: :master

+ 0 - 15
Podfile.lock

@@ -1,15 +0,0 @@
-PODS:
-  - OpenSSL-Universal (1.0.1.h)
-
-DEPENDENCIES:
-  - OpenSSL-Universal (from `https://github.com/krzyzanowskim/OpenSSL.git`, branch `master`)
-
-EXTERNAL SOURCES:
-  OpenSSL-Universal:
-    :branch: :master
-    :git: https://github.com/krzyzanowskim/OpenSSL.git
-
-SPEC CHECKSUMS:
-  OpenSSL-Universal: 2876ed235f0ba33e1dce56d790f50f3074fb8919
-
-COCOAPODS: 0.33.1

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/aes.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/aes.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/asn1.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/asn1.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/asn1_mac.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/asn1_mac.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/asn1t.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/asn1t.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/bio.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/bio.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/blowfish.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/blowfish.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/bn.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/bn.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/buffer.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/buffer.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/camellia.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/camellia.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/cast.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/cast.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/cmac.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/cmac.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/cms.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/cms.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/comp.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/comp.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/conf.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/conf.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/conf_api.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/conf_api.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/crypto.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/crypto.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/des.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/des.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/des_old.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/des_old.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/dh.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/dh.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/dsa.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/dsa.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/dso.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/dso.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/dtls1.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/dtls1.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/e_os2.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/e_os2.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ebcdic.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ebcdic.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ec.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ec.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ecdh.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ecdh.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ecdsa.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ecdsa.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/engine.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/engine.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/err.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/err.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/evp.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/evp.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/hmac.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/hmac.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/idea.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/idea.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/krb5_asn.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/krb5_asn.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/kssl.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/kssl.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/lhash.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/lhash.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/md4.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/md4.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/md5.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/md5.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/mdc2.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/mdc2.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/modes.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/modes.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/obj_mac.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/obj_mac.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/objects.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/objects.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ocsp.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ocsp.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/opensslconf.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/opensslconf.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/opensslv.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/opensslv.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ossl_typ.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ossl_typ.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/pem.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/pem.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/pem2.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/pem2.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/pkcs12.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/pkcs12.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/pkcs7.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/pkcs7.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/pqueue.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/pqueue.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/rand.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/rand.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/rc2.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/rc2.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/rc4.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/rc4.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ripemd.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ripemd.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/rsa.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/rsa.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/safestack.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/safestack.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/seed.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/seed.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/sha.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/sha.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/srp.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/srp.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/srtp.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/srtp.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ssl.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ssl.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ssl2.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ssl2.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ssl23.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ssl23.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ssl3.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ssl3.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/stack.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/stack.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/symhacks.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/symhacks.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/tls1.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/tls1.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ts.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ts.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/txt_db.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/txt_db.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ui.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ui.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/ui_compat.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/ui_compat.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/whrlpool.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/whrlpool.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/x509.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/x509.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/x509_vfy.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/x509_vfy.h

+ 0 - 1
Pods/BuildHeaders/OpenSSL-Universal/openssl/x509v3.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/x509v3.h

+ 0 - 1
Pods/Headers/OpenSSL-Universal/openssl/aes.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/aes.h

+ 0 - 1
Pods/Headers/OpenSSL-Universal/openssl/asn1.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/asn1.h

+ 0 - 1
Pods/Headers/OpenSSL-Universal/openssl/asn1_mac.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/asn1_mac.h

+ 0 - 1
Pods/Headers/OpenSSL-Universal/openssl/asn1t.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/asn1t.h

+ 0 - 1
Pods/Headers/OpenSSL-Universal/openssl/bio.h

@@ -1 +0,0 @@
-../../../OpenSSL-Universal/include-ios/openssl/bio.h

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio