Skip to content

Commit

Permalink
tests: adding some tests and upgrading dep
Browse files Browse the repository at this point in the history
  • Loading branch information
sammous committed Sep 7, 2022
1 parent 3a91edd commit 2f0c44c
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 16 deletions.
8 changes: 4 additions & 4 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,27 @@ let package = Package(
.library(
name: "Xenissuing",
targets: ["Xenissuing"]
),
)
],
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(url: "https://github.com/krzyzanowskim/CryptoSwift", .upToNextMajor(from: "1.5.1")),
.package(url: "https://github.com/apple/swift-crypto.git", .upToNextMajor(from: "1.0.1"))
.package(url: "https://github.com/apple/swift-crypto.git", .upToNextMajor(from: "2.0.0"))
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages this package depends on.
.target(
name: "Xenissuing",
dependencies: [
"CryptoSwift",
"CryptoSwift",
.product(name: "Crypto", package: "swift-crypto")
]
),
.testTarget(
name: "XenissuingTests",
dependencies: ["Xenissuing"]
),
)
]
)
27 changes: 25 additions & 2 deletions Tests/XenissuingTests/XenCryptTests.swift
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import CryptoSwift
import Foundation
import XCTest
@testable import Xenissuing

struct TestEncryption: Codable, Hashable {
let sessionKey: String
let sessionId: String
let secret: String
let iv: String
let plain: String
Expand All @@ -17,10 +17,33 @@ final class XenCryptTests: XCTestCase {
let xcrypt = XenCrypt(xenditKey: xenKey!)
let sessionKey = try! xcrypt.generateRandom()
let sessionId = xcrypt.generateSessionId(sessionKey: sessionKey)
let iv = sessionId.sealed[0...15]
let iv = sessionId.sealed[0 ... 15]
let aes = try! AES(key: xenKey!.bytes, blockMode: CBC(iv: iv.bytes), padding: .pkcs7)
let decryptedBytes = try! aes.decrypt(sessionId.sealed[16...].bytes)
let decryptedData = Data(decryptedBytes)
XCTAssertEqual(sessionKey.base64EncodedString(), decryptedData.base64EncodedString())
}

func testDecrypt() {
let xcrypt = XenCrypt(xenditKey: xenKey!)
for t in tests {
let decrypted = try! xcrypt.decrypt(secret: t.secret, sessionKey: Data(base64Encoded: t.sessionKey)!, iv: t.iv)
XCTAssertEqual(String(decoding: decrypted, as: UTF8.self), t.plain)
}
}
}

let tests: [TestEncryption] = [
TestEncryption(
sessionKey: "kojD5eHCyERG7JxABxx5IBr4Y0fUpe19",
secret: "hTlNMg4CJZVdTIfXBehfxcU0XQ==",
iv: "mxbZWKcnCkiRePK4lqibAQ==",
plain: "372"
),
TestEncryption(
sessionKey: "ry+SUeQQ9ci6rzqBMaZMPgzbp0M6ruIrZXfIso4a6R8=",
secret: "dmYJfv2Ou9fyz9WXe15DAeB9cg==",
iv: "fbgKT6+XbpLWPizRNRF5sw==",
plain: "372"
)
]
79 changes: 71 additions & 8 deletions Xenissuing.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
OBJ_23 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
OBJ_6 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; path = Package.swift; sourceTree = "<group>"; };
"xenissuing-ios::Xenissuing::Product" /* Xenissuing.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Xenissuing.framework; sourceTree = BUILT_PRODUCTS_DIR; };
"xenissuing-ios::XenissuingTests::Product" /* XenissuingTests.xctest */ = {isa = PBXFileReference; lastKnownFileType = file; path = XenissuingTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
"xenissuing-ios::XenissuingTests::Product" /* XenissuingTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = XenissuingTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -221,18 +221,20 @@
isa = PBXProject;
attributes = {
LastSwiftMigration = 9999;
LastUpgradeCheck = 9999;
LastUpgradeCheck = 1340;
};
buildConfigurationList = OBJ_2 /* Build configuration list for PBXProject "Xenissuing" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = OBJ_5;
packageReferences = (
55325E1128C644A700558141 /* XCRemoteSwiftPackageReference "CryptoSwift" */,
55021C5528C8E34F00FE864C /* XCRemoteSwiftPackageReference "swift-crypto" */,
);
productRefGroup = OBJ_19 /* Products */;
projectDirPath = "";
Expand Down Expand Up @@ -302,7 +304,7 @@
);
HEADER_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = Xenissuing.xcodeproj/Xenissuing_Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"$(TOOLCHAIN_DIR)/usr/lib/swift/macosx",
Expand All @@ -318,7 +320,7 @@
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)";
SWIFT_VERSION = 5.0;
TARGET_NAME = Xenissuing;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 12.0;
WATCHOS_DEPLOYMENT_TARGET = 2.0;
};
name = Debug;
Expand All @@ -335,7 +337,7 @@
);
HEADER_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = Xenissuing.xcodeproj/Xenissuing_Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"$(TOOLCHAIN_DIR)/usr/lib/swift/macosx",
Expand All @@ -351,7 +353,7 @@
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)";
SWIFT_VERSION = 5.0;
TARGET_NAME = Xenissuing;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 12.0;
WATCHOS_DEPLOYMENT_TARGET = 2.0;
};
name = Release;
Expand All @@ -360,17 +362,44 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_NS_ASSERTIONS = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"SWIFT_PACKAGE=1",
"DEBUG=1",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.10;
ONLY_ACTIVE_ARCH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -DXcode";
Expand Down Expand Up @@ -408,15 +437,41 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = s;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"SWIFT_PACKAGE=1",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.10;
OTHER_SWIFT_FLAGS = "$(inherited) -DXcode";
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down Expand Up @@ -445,10 +500,10 @@
OBJ_46 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
DRIVERKIT_DEPLOYMENT_TARGET = 19.0;
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PLATFORM_DIR)/Developer/Library/Frameworks",
Expand Down Expand Up @@ -476,10 +531,10 @@
OBJ_47 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
DRIVERKIT_DEPLOYMENT_TARGET = 19.0;
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PLATFORM_DIR)/Developer/Library/Frameworks",
Expand Down Expand Up @@ -555,6 +610,14 @@
/* End XCConfigurationList section */

/* Begin XCRemoteSwiftPackageReference section */
55021C5528C8E34F00FE864C /* XCRemoteSwiftPackageReference "swift-crypto" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/apple/swift-crypto.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.0.0;
};
};
55325E1128C644A700558141 /* XCRemoteSwiftPackageReference "CryptoSwift" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/krzyzanowskim/CryptoSwift";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "9999"
version = "1.3">
LastUpgradeVersion = "1340"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
Expand Down

0 comments on commit 2f0c44c

Please sign in to comment.