Wrap session token

This commit is contained in:
Sergey Abramchuk
2017-04-28 21:47:48 +03:00
parent 0b1e8117f0
commit 3ef90dcabd
5 changed files with 90 additions and 3 deletions

View File

@@ -79,6 +79,12 @@
C9BB47911E71821A00F3F98C /* OpenVPNAdapterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9BB47901E71821A00F3F98C /* OpenVPNAdapterTests.swift */; };
C9BB47931E71821A00F3F98C /* OpenVPNAdapter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9BB475C1E71663A00F3F98C /* OpenVPNAdapter.framework */; };
C9BB47A21E7183DB00F3F98C /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9BB47A11E7183DB00F3F98C /* Bundle.swift */; };
C9BCE2581EB3C0D9009D6AC1 /* OpenVPNSessionToken.h in Headers */ = {isa = PBXBuildFile; fileRef = C9BCE2561EB3C0D9009D6AC1 /* OpenVPNSessionToken.h */; settings = {ATTRIBUTES = (Public, ); }; };
C9BCE2591EB3C0D9009D6AC1 /* OpenVPNSessionToken.h in Headers */ = {isa = PBXBuildFile; fileRef = C9BCE2561EB3C0D9009D6AC1 /* OpenVPNSessionToken.h */; settings = {ATTRIBUTES = (Public, ); }; };
C9BCE25A1EB3C0D9009D6AC1 /* OpenVPNSessionToken.mm in Sources */ = {isa = PBXBuildFile; fileRef = C9BCE2571EB3C0D9009D6AC1 /* OpenVPNSessionToken.mm */; };
C9BCE25B1EB3C0D9009D6AC1 /* OpenVPNSessionToken.mm in Sources */ = {isa = PBXBuildFile; fileRef = C9BCE2571EB3C0D9009D6AC1 /* OpenVPNSessionToken.mm */; };
C9BCE25E1EB3C201009D6AC1 /* OpenVPNSessionToken+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C9BCE25C1EB3C201009D6AC1 /* OpenVPNSessionToken+Internal.h */; };
C9BCE25F1EB3C201009D6AC1 /* OpenVPNSessionToken+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C9BCE25C1EB3C201009D6AC1 /* OpenVPNSessionToken+Internal.h */; };
C9D2ABDB1EA20F99007EDF9D /* OpenVPNAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = C9BB477E1E7173C700F3F98C /* OpenVPNAdapter.mm */; };
C9D2ABDC1EA20F99007EDF9D /* OpenVPNClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = C9BB47781E7171ED00F3F98C /* OpenVPNClient.mm */; };
C9D2ABDE1EA20F99007EDF9D /* ovpncli.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C9FD92191E9A667600374FC4 /* ovpncli.cpp */; };
@@ -168,6 +174,9 @@
C9BB478E1E71821A00F3F98C /* OpenVPN Adapter iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "OpenVPN Adapter iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
C9BB47901E71821A00F3F98C /* OpenVPNAdapterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenVPNAdapterTests.swift; sourceTree = "<group>"; };
C9BB47A11E7183DB00F3F98C /* Bundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Bundle.swift; sourceTree = "<group>"; };
C9BCE2561EB3C0D9009D6AC1 /* OpenVPNSessionToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenVPNSessionToken.h; sourceTree = "<group>"; };
C9BCE2571EB3C0D9009D6AC1 /* OpenVPNSessionToken.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OpenVPNSessionToken.mm; sourceTree = "<group>"; };
C9BCE25C1EB3C201009D6AC1 /* OpenVPNSessionToken+Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OpenVPNSessionToken+Internal.h"; sourceTree = "<group>"; };
C9D2ABF01EA20F99007EDF9D /* OpenVPNAdapter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpenVPNAdapter.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C9D2ABFF1EA212A3007EDF9D /* OpenVPN Adapter macOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "OpenVPN Adapter macOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
C9FD92181E9A667600374FC4 /* ovpncli.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = ovpncli.hpp; path = Vendors/openvpn/client/ovpncli.hpp; sourceTree = "<group>"; };
@@ -276,12 +285,15 @@
name = Configuration;
sourceTree = "<group>";
};
C9235AC51EB24F1100C7D303 /* Stats */ = {
C9235AC51EB24F1100C7D303 /* Info */ = {
isa = PBXGroup;
children = (
C9657A151EB0A7F800EFF210 /* OpenVPNConnectionInfo.h */,
C9657A1B1EB0A8D800EFF210 /* OpenVPNConnectionInfo+Internal.h */,
C9657A161EB0A7F800EFF210 /* OpenVPNConnectionInfo.mm */,
C9BCE2561EB3C0D9009D6AC1 /* OpenVPNSessionToken.h */,
C9BCE25C1EB3C201009D6AC1 /* OpenVPNSessionToken+Internal.h */,
C9BCE2571EB3C0D9009D6AC1 /* OpenVPNSessionToken.mm */,
C9657A231EB0B60200EFF210 /* OpenVPNTransportStats.h */,
C9657A291EB0B6FA00EFF210 /* OpenVPNTransportStats+Internal.h */,
C9657A241EB0B60200EFF210 /* OpenVPNTransportStats.mm */,
@@ -289,7 +301,7 @@
C9657A381EB0BAAB00EFF210 /* OpenVPNInterfaceStats+Internal.h */,
C9657A331EB0BA3900EFF210 /* OpenVPNInterfaceStats.mm */,
);
name = Stats;
name = Info;
sourceTree = "<group>";
};
C9235AC61EB24F2A00C7D303 /* Types */ = {
@@ -347,7 +359,7 @@
children = (
C9235AC61EB24F2A00C7D303 /* Types */,
C9235AC41EB24F0100C7D303 /* Configuration */,
C9235AC51EB24F1100C7D303 /* Stats */,
C9235AC51EB24F1100C7D303 /* Info */,
C9BB477B1E7173C700F3F98C /* OpenVPNAdapter.h */,
C9BB477C1E7173C700F3F98C /* OpenVPNAdapter+Internal.h */,
C9BB477D1E7173C700F3F98C /* OpenVPNAdapter+Public.h */,
@@ -434,10 +446,12 @@
files = (
C9BB47791E7171ED00F3F98C /* OpenVPNClient.h in Headers */,
C9657A3A1EB0BAAB00EFF210 /* OpenVPNInterfaceStats+Internal.h in Headers */,
C9BCE25E1EB3C201009D6AC1 /* OpenVPNSessionToken+Internal.h in Headers */,
C9BB47721E7171A100F3F98C /* OpenVPNEvent.h in Headers */,
C9BB477F1E7173C700F3F98C /* OpenVPNAdapter.h in Headers */,
C9657A4C1EB0CD6C00EFF210 /* OpenVPNProperties.h in Headers */,
C9657A571EB0CDFB00EFF210 /* OpenVPNProperties+Internal.h in Headers */,
C9BCE2581EB3C0D9009D6AC1 /* OpenVPNSessionToken.h in Headers */,
C9657A341EB0BA3900EFF210 /* OpenVPNInterfaceStats.h in Headers */,
C9657A401EB0CAC200EFF210 /* OpenVPNServerEntry.h in Headers */,
C98467AB1EAA5BE100272A9A /* OpenVPNConfiguration+Internal.h in Headers */,
@@ -468,10 +482,12 @@
files = (
C9D2ABE31EA20F99007EDF9D /* OpenVPNClient.h in Headers */,
C9657A3B1EB0BAAB00EFF210 /* OpenVPNInterfaceStats+Internal.h in Headers */,
C9BCE25F1EB3C201009D6AC1 /* OpenVPNSessionToken+Internal.h in Headers */,
C9D2ABE41EA20F99007EDF9D /* OpenVPNEvent.h in Headers */,
C9D2ABE51EA20F99007EDF9D /* OpenVPNAdapter.h in Headers */,
C9657A4D1EB0CD6C00EFF210 /* OpenVPNProperties.h in Headers */,
C9657A561EB0CDFA00EFF210 /* OpenVPNProperties+Internal.h in Headers */,
C9BCE2591EB3C0D9009D6AC1 /* OpenVPNSessionToken.h in Headers */,
C9657A351EB0BA3900EFF210 /* OpenVPNInterfaceStats.h in Headers */,
C9657A411EB0CAC200EFF210 /* OpenVPNServerEntry.h in Headers */,
C98467AC1EAA5BE200272A9A /* OpenVPNConfiguration+Internal.h in Headers */,
@@ -691,6 +707,7 @@
buildActionMask = 2147483647;
files = (
C9657A421EB0CAC200EFF210 /* OpenVPNServerEntry.mm in Sources */,
C9BCE25A1EB3C0D9009D6AC1 /* OpenVPNSessionToken.mm in Sources */,
C9BB47821E7173C700F3F98C /* OpenVPNAdapter.mm in Sources */,
C98467A81EAA5B7700272A9A /* OpenVPNConfiguration.mm in Sources */,
C9657A311EB0B7A900EFF210 /* OpenVPNTransportStats.mm in Sources */,
@@ -719,6 +736,7 @@
buildActionMask = 2147483647;
files = (
C9657A431EB0CAC200EFF210 /* OpenVPNServerEntry.mm in Sources */,
C9BCE25B1EB3C0D9009D6AC1 /* OpenVPNSessionToken.mm in Sources */,
C9D2ABDB1EA20F99007EDF9D /* OpenVPNAdapter.mm in Sources */,
C98467A91EAA5B7700272A9A /* OpenVPNConfiguration.mm in Sources */,
C9657A301EB0B7A600EFF210 /* OpenVPNTransportStats.mm in Sources */,

View File

@@ -0,0 +1,19 @@
//
// OpenVPNSessionToken+Internal.h
// OpenVPN Adapter
//
// Created by Sergey Abramchuk on 28.04.17.
//
//
#import <client/ovpncli.hpp>
#import "OpenVPNSessionToken.h"
using namespace openvpn;
@interface OpenVPNSessionToken (Internal)
- (instancetype)initWithSessionToken:(ClientAPI::SessionToken)token;
@end

View File

@@ -0,0 +1,25 @@
//
// OpenVPNSessionToken.h
// OpenVPN Adapter
//
// Created by Sergey Abramchuk on 28.04.17.
//
//
#import <Foundation/Foundation.h>
/**
Class used to get session token from VPN core
*/
@interface OpenVPNSessionToken : NSObject
@property (nullable, readonly, nonatomic) NSString *username;
/**
An OpenVPN Session ID, used as a proxy for password
*/
@property (nullable, readonly, nonatomic) NSString *session;
- (nonnull instancetype) __unavailable init;
@end

View File

@@ -0,0 +1,24 @@
//
// OpenVPNSessionToken.m
// OpenVPN Adapter
//
// Created by Sergey Abramchuk on 28.04.17.
//
//
#import "OpenVPNSessionToken+Internal.h"
using namespace openvpn;
@implementation OpenVPNSessionToken
- (instancetype)initWithSessionToken:(ClientAPI::SessionToken)token {
self = [super init];
if (self) {
_username = !token.username.empty() ? [NSString stringWithUTF8String:token.username.c_str()] : nil;
_session = !token.session_id.empty() ? [NSString stringWithUTF8String:token.session_id.c_str()] : nil;
}
return self;
}
@end

View File

@@ -28,6 +28,7 @@ FOUNDATION_EXPORT const unsigned char OpenVPNAdapterVersionString[];
#import <OpenVPNAdapter/OpenVPNServerEntry.h>
#import <OpenVPNAdapter/OpenVPNProperties.h>
#import <OpenVPNAdapter/OpenVPNConnectionInfo.h>
#import <OpenVPNAdapter/OpenVPNSessionToken.h>
#import <OpenVPNAdapter/OpenVPNTransportStats.h>
#import <OpenVPNAdapter/OpenVPNInterfaceStats.h>
#import <OpenVPNAdapter/OpenVPNAdapter.h>