Răsfoiți Sursa

RSA initials, tests update

Marcin Krzyżanowski 11 ani în urmă
părinte
comite
970833de67

+ 13 - 10
CryptoSwift-Bridging-Header.h

@@ -6,17 +6,20 @@
 //  Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
 //
 
+//#import <openssl/rsa.h>
+
 #import <CommonCrypto/CommonCrypto.h>
 
-#include <openssl/ripemd.h>
-#include <openssl/cast.h>
-#include <openssl/idea.h>
-#include <openssl/aes.h>
-#include <openssl/sha.h>
-#include <openssl/des.h>
-#include <openssl/camellia.h>
-#include <openssl/blowfish.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>
 
-#include <openssl/bn.h>
-#include <openssl/ossl_typ.h>
 

+ 4 - 0
CryptoSwift.xcodeproj/project.pbxproj

@@ -10,6 +10,7 @@
 		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 */; };
 		752DEF7719693EA000E17557 /* NSDataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 752DEF7619693EA000E17557 /* NSDataExtension.swift */; };
 		754BE45B19693E190098E6F3 /* CryptoSwift.h in Headers */ = {isa = PBXBuildFile; fileRef = 754BE45A19693E190098E6F3 /* CryptoSwift.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -38,6 +39,7 @@
 		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>"; };
 		752DEF7619693EA000E17557 /* NSDataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSDataExtension.swift; sourceTree = "<group>"; };
 		754BE45519693E190098E6F3 /* CryptoSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CryptoSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -103,6 +105,7 @@
 			children = (
 				754BE45A19693E190098E6F3 /* CryptoSwift.h */,
 				752867AF1969528B00E10455 /* Bignum.swift */,
+				752867B11969675900E10455 /* RSA.swift */,
 				752DEF7619693EA000E17557 /* NSDataExtension.swift */,
 				754BE45819693E190098E6F3 /* Supporting Files */,
 			);
@@ -313,6 +316,7 @@
 			files = (
 				752DEF7719693EA000E17557 /* NSDataExtension.swift in Sources */,
 				752867B01969528B00E10455 /* Bignum.swift in Sources */,
+				752867B21969675900E10455 /* RSA.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

+ 21 - 0
CryptoSwift/RSA.swift

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

+ 21 - 9
CryptoSwiftTests/CryptoSwiftTests.swift

@@ -36,7 +36,16 @@ class CryptoSwiftTests: XCTestCase {
         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);
@@ -44,13 +53,16 @@ class CryptoSwiftTests: XCTestCase {
         XCTAssertEqualObjects(md5String, "202CB962AC59075B964B07152D234B70", "MD5 calculation failed");
     }
     
-    func testBignum {
-        var bignum:Bignum = Bignum();
+    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 testPerformanceExample() {
-//        self.measureBlock() {
-//        }
-//    }
-    
+        
 }