mirror of
https://github.com/zhigang1992/react-native-code-push.git
synced 2026-06-10 23:59:42 +08:00
* Add JWT Library to ios project * Add new option PublicKey to Info.plist * Implement code signing mechanism Update JWT library to 3.0.0-beta4 Implement signature verification mechanism * Undo redundant changes * Minor improvements * Minor fixes Add additional checking for specific update situations Fix bugs Refactor method names * Add new dependencies to podspec * Minor improvements Fix log messages
71 lines
2.0 KiB
Objective-C
Executable File
71 lines
2.0 KiB
Objective-C
Executable File
//
|
|
// JWTBase64Coder.m
|
|
// Pods
|
|
//
|
|
// Created by Lobanov Dmitry on 05.10.16.
|
|
//
|
|
//
|
|
|
|
#import "JWTBase64Coder.h"
|
|
|
|
@interface JWTBase64Coder (ConditionLinking)
|
|
+ (BOOL)isBase64AddtionsAvailable;
|
|
@end
|
|
|
|
@implementation JWTBase64Coder (ConditionLinking)
|
|
+ (BOOL)isBase64AddtionsAvailable {
|
|
return [[NSData class] respondsToSelector:@selector(dataWithBase64UrlEncodedString:)];
|
|
}
|
|
@end
|
|
|
|
#if __has_include("MF_Base64Additions.h")
|
|
#import <MF_Base64Additions.h>
|
|
#endif
|
|
|
|
@implementation JWTBase64Coder
|
|
|
|
+ (NSString *)base64UrlEncodedStringWithData:(NSData *)data {
|
|
if ([self isBase64AddtionsAvailable] && [data respondsToSelector:@selector(base64UrlEncodedString)]) {
|
|
return [data performSelector:@selector(base64UrlEncodedString)];
|
|
}
|
|
else {
|
|
return [data base64EncodedStringWithOptions:0];
|
|
}
|
|
}
|
|
|
|
+ (NSData *)dataWithBase64UrlEncodedString:(NSString *)urlEncodedString {
|
|
if ([self isBase64AddtionsAvailable] && [[NSData class] respondsToSelector:@selector(dataWithBase64UrlEncodedString:)]) {
|
|
return [[NSData class] performSelector:@selector(dataWithBase64UrlEncodedString:) withObject:urlEncodedString];
|
|
}
|
|
else {
|
|
return [[NSData alloc] initWithBase64EncodedString:urlEncodedString options:0];
|
|
}
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation JWTBase64Coder (JWTStringCoder__Protocol)
|
|
- (NSString *)stringWithData:(NSData *)data {
|
|
return [self.class base64UrlEncodedStringWithData:data];
|
|
}
|
|
- (NSData *)dataWithString:(NSString *)string {
|
|
return [self.class dataWithBase64UrlEncodedString:string];
|
|
}
|
|
@end
|
|
|
|
@implementation JWTStringCoder__For__Encoding
|
|
+ (instancetype)utf8Encoding {
|
|
JWTStringCoder__For__Encoding *coding = [self new];
|
|
coding.stringEncoding = NSUTF8StringEncoding;
|
|
return coding;
|
|
}
|
|
@end
|
|
@implementation JWTStringCoder__For__Encoding (JWTStringCoder__Protocol)
|
|
- (NSString *)stringWithData:(NSData *)data {
|
|
return [[NSString alloc] initWithData:data encoding:self.stringEncoding];
|
|
}
|
|
- (NSData *)dataWithString:(NSString *)string {
|
|
return [string dataUsingEncoding:self.stringEncoding];
|
|
}
|
|
@end
|