Private
Public Access
1
0

Encrypted server response

This commit is contained in:
James Magahern
2018-11-15 15:08:39 -08:00
parent b92860b011
commit 6c9996dfa1
3 changed files with 62 additions and 0 deletions

View File

@@ -10,6 +10,7 @@
CD14F185219E2A6800E7DD22 /* NSData+AES.m in Sources */ = {isa = PBXBuildFile; fileRef = CD14F184219E2A6800E7DD22 /* NSData+AES.m */; }; CD14F185219E2A6800E7DD22 /* NSData+AES.m in Sources */ = {isa = PBXBuildFile; fileRef = CD14F184219E2A6800E7DD22 /* NSData+AES.m */; };
CD14F18E219E2DB400E7DD22 /* CryptoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CD14F18D219E2DB400E7DD22 /* CryptoTests.m */; }; CD14F18E219E2DB400E7DD22 /* CryptoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CD14F18D219E2DB400E7DD22 /* CryptoTests.m */; };
CD14F194219E2F9C00E7DD22 /* NSData+AES.m in Sources */ = {isa = PBXBuildFile; fileRef = CD14F184219E2A6800E7DD22 /* NSData+AES.m */; }; CD14F194219E2F9C00E7DD22 /* NSData+AES.m in Sources */ = {isa = PBXBuildFile; fileRef = CD14F184219E2A6800E7DD22 /* NSData+AES.m */; };
CD14F19E219E306C00E7DD22 /* GCDWebServerDataResponse+Crypto.m in Sources */ = {isa = PBXBuildFile; fileRef = CD14F19D219E306C00E7DD22 /* GCDWebServerDataResponse+Crypto.m */; };
CD602056219B5DFD0024D9C5 /* MBIMBridgeOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CD602055219B5DFD0024D9C5 /* MBIMBridgeOperation.m */; }; CD602056219B5DFD0024D9C5 /* MBIMBridgeOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CD602055219B5DFD0024D9C5 /* MBIMBridgeOperation.m */; };
CD60205C219B623F0024D9C5 /* MBIMMessagesListOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CD60205B219B623F0024D9C5 /* MBIMMessagesListOperation.m */; }; CD60205C219B623F0024D9C5 /* MBIMMessagesListOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CD60205B219B623F0024D9C5 /* MBIMMessagesListOperation.m */; };
CD60205F219B674B0024D9C5 /* MBIMConversationListOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CD60205E219B674B0024D9C5 /* MBIMConversationListOperation.m */; }; CD60205F219B674B0024D9C5 /* MBIMConversationListOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CD60205E219B674B0024D9C5 /* MBIMConversationListOperation.m */; };
@@ -122,6 +123,8 @@
CD14F18B219E2DB400E7DD22 /* Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; CD14F18B219E2DB400E7DD22 /* Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
CD14F18D219E2DB400E7DD22 /* CryptoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CryptoTests.m; sourceTree = "<group>"; }; CD14F18D219E2DB400E7DD22 /* CryptoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CryptoTests.m; sourceTree = "<group>"; };
CD14F18F219E2DB400E7DD22 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; CD14F18F219E2DB400E7DD22 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
CD14F19C219E306C00E7DD22 /* GCDWebServerDataResponse+Crypto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "GCDWebServerDataResponse+Crypto.h"; sourceTree = "<group>"; };
CD14F19D219E306C00E7DD22 /* GCDWebServerDataResponse+Crypto.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "GCDWebServerDataResponse+Crypto.m"; sourceTree = "<group>"; };
CD602054219B5DFD0024D9C5 /* MBIMBridgeOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBIMBridgeOperation.h; sourceTree = "<group>"; }; CD602054219B5DFD0024D9C5 /* MBIMBridgeOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBIMBridgeOperation.h; sourceTree = "<group>"; };
CD602055219B5DFD0024D9C5 /* MBIMBridgeOperation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MBIMBridgeOperation.m; sourceTree = "<group>"; }; CD602055219B5DFD0024D9C5 /* MBIMBridgeOperation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MBIMBridgeOperation.m; sourceTree = "<group>"; };
CD60205A219B623F0024D9C5 /* MBIMMessagesListOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBIMMessagesListOperation.h; sourceTree = "<group>"; }; CD60205A219B623F0024D9C5 /* MBIMMessagesListOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBIMMessagesListOperation.h; sourceTree = "<group>"; };
@@ -244,6 +247,8 @@
children = ( children = (
CD14F183219E2A6800E7DD22 /* NSData+AES.h */, CD14F183219E2A6800E7DD22 /* NSData+AES.h */,
CD14F184219E2A6800E7DD22 /* NSData+AES.m */, CD14F184219E2A6800E7DD22 /* NSData+AES.m */,
CD14F19C219E306C00E7DD22 /* GCDWebServerDataResponse+Crypto.h */,
CD14F19D219E306C00E7DD22 /* GCDWebServerDataResponse+Crypto.m */,
); );
path = Crypto; path = Crypto;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -517,6 +522,7 @@
CDF62335219A895D00690038 /* main.m in Sources */, CDF62335219A895D00690038 /* main.m in Sources */,
CD60205C219B623F0024D9C5 /* MBIMMessagesListOperation.m in Sources */, CD60205C219B623F0024D9C5 /* MBIMMessagesListOperation.m in Sources */,
CD14F185219E2A6800E7DD22 /* NSData+AES.m in Sources */, CD14F185219E2A6800E7DD22 /* NSData+AES.m in Sources */,
CD14F19E219E306C00E7DD22 /* GCDWebServerDataResponse+Crypto.m in Sources */,
CD602062219B68950024D9C5 /* MBIMSendMessageOperation.m in Sources */, CD602062219B68950024D9C5 /* MBIMSendMessageOperation.m in Sources */,
CD602056219B5DFD0024D9C5 /* MBIMBridgeOperation.m in Sources */, CD602056219B5DFD0024D9C5 /* MBIMBridgeOperation.m in Sources */,
CD60205F219B674B0024D9C5 /* MBIMConversationListOperation.m in Sources */, CD60205F219B674B0024D9C5 /* MBIMConversationListOperation.m in Sources */,

View File

@@ -0,0 +1,20 @@
//
// GCDWebServerDataResponse+Crypto.h
// kordophoned
//
// Created by James Magahern on 11/15/18.
// Copyright © 2018 James Magahern. All rights reserved.
//
#import <GCDWebServers/GCDWebServers.h>
NS_ASSUME_NONNULL_BEGIN
@interface GCDWebServerDataResponse (Crypto)
+ (nullable instancetype)encryptedResponseWithJSONObject:(id)object;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,36 @@
//
// GCDWebServerDataResponse+Crypto.m
// kordophoned
//
// Created by James Magahern on 11/15/18.
// Copyright © 2018 James Magahern. All rights reserved.
//
#import "GCDWebServerDataResponse+Crypto.h"
#import "NSData+AES.h"
// TEMP!!
static NSString *const kSymmetricKey = @"axPy0nljtG/TOVJSVwVXag==";
@implementation GCDWebServerDataResponse (Crypto)
+ (nullable instancetype)encryptedResponseWithJSONObject:(id)object
{
NSData *data = [NSJSONSerialization dataWithJSONObject:object options:0 error:NULL];
if (data == nil) {
return nil;
}
NSError *error = nil;
NSData *ivData = [[[NSUUID UUID] UUIDString] dataUsingEncoding:NSUTF8StringEncoding];
NSData *keyData = [[NSData alloc] initWithBase64EncodedString:kSymmetricKey options:0];
NSData *encryptedData = [data encryptedDataWithKey:keyData iv:ivData error:&error];
if (error) {
NSLog(@"Error encrypting response: %@", error);
}
return [[self alloc] initWithData:encryptedData contentType:@"application/octet-stream"];
}
@end