Skip to content

Commit

Permalink
Bump version
Browse files Browse the repository at this point in the history
  • Loading branch information
ulvesked committed Apr 18, 2019
1 parent 2940006 commit 1b64fe7
Show file tree
Hide file tree
Showing 8 changed files with 54 additions and 31 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ publish/src
publish/package
demo/report/report.html
demo/report/stats.json
typings
3 changes: 2 additions & 1 deletion demo/app/App_Resources/iOS/build.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
// CODE_SIGN_IDENTITY = iPhone Distribution
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
//TNS_TYPESCRIPT_DECLARATIONS_PATH = $(SRCROOT)/../typescript-declarations
//TNS_TYPESCRIPT_DECLARATIONS_PATH = $(SRCROOT)/../typescript-declarations
IPHONEOS_DEPLOYMENT_TARGET = 10.0
8 changes: 4 additions & 4 deletions demo/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"nativescript": {
"id": "org.nativescript.demo",
"tns-ios": {
"version": "4.2.0"
},
"tns-android": {
"version": "4.2.0"
},
"tns-ios": {
"version": "5.2.0"
}
},
"dependencies": {
Expand All @@ -30,4 +30,4 @@
"build.plugin": "cd ../src && npm run build",
"ci.tslint": "npm i && tslint --config '../tslint.json' 'app/**/*.ts' --exclude '**/node_modules/**'"
}
}
}
6 changes: 4 additions & 2 deletions src/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ export declare class Rsa {
removeKeyFromKeychain(tag: string): void;
loadKey(tag: string): RsaKey;
generateKey(tag: string, keySize: number, permanent?: boolean): RsaKey;
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm): string;
verify(signature: string, data: string, key: RsaKey, alg: RsaHashAlgorithm): boolean;
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm): ArrayBuffer
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: false): ArrayBuffer;
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: true): string;
verify(signature: string | ArrayBuffer, data: string, key: RsaKey, alg: RsaHashAlgorithm): boolean;
}
export declare class RsaKey {
constructor(data: any);
Expand Down
4 changes: 2 additions & 2 deletions src/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "nativescript-rsa",
"version": "1.0.0",
"version": "1.0.1-beta.0",
"description": "Utilities for managing RSA keys in PEM format ",
"main": "rsa",
"typings": "index.d.ts",
Expand Down Expand Up @@ -40,7 +40,7 @@
"bugs": {
"url": "https://github.com/ulvesked/nativescript-rsa/issues"
},
"license": "Apache-2.0",
"license": "MIT",
"homepage": "https://github.com/ulvesked/nativescript-rsa",
"readmeFilename": "README.md",
"devDependencies": {
Expand Down
10 changes: 2 additions & 8 deletions src/platforms/ios/Podfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,2 @@
pod 'RSAKeyUtils', :git => 'https://github.com/ulvesked/RSAKeyUtils.git'
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
platform :ios, '10.0'
pod 'RsaHelper', :git => 'https://github.com/ulvesked/RsaHelper.git'
13 changes: 11 additions & 2 deletions src/rsa.android.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,22 @@ export class Rsa {
return new RsaKey(keyPair);

}
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm): string {

sign(data: string, key: RsaKey, alg: RsaHashAlgorithm): ArrayBuffer
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: false): ArrayBuffer;
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: true): string;
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64?: boolean): ArrayBuffer | string {
const signEngine = Signature.getInstance(getProviderName(alg));
let privateKey = key.valueOf().getPrivate();
signEngine.initSign(privateKey);
signEngine.update(stringToByteArray(data));
let sign = signEngine.sign();
return android.util.Base64.encodeToString(sign, android.util.Base64.NO_WRAP);
if (returnAsBase64) {
return android.util.Base64.encodeToString(sign, android.util.Base64.NO_WRAP);
}
else {
return new Uint8Array(sign).buffer;
}
}
verify(signature: string, data: string, key: RsaKey, alg: RsaHashAlgorithm): boolean {
const signEngine = Signature.getInstance(getProviderName(alg));
Expand Down
40 changes: 28 additions & 12 deletions src/rsa.ios.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/// <reference path="./RSAKeyUtils.d.ts" />
/// <reference path="./RsaHelper.d.ts" />

import { stripPEMHeader } from "./helper";

Expand Down Expand Up @@ -35,7 +35,7 @@ export class Rsa {

importPublicKey(tag: string, key: string) {
try {
let pubKey = RSAKeyUtils.importPublicKeyFromPEMTagName(stripPEMHeader(key), tag);
let pubKey = RsaHelper.importPublicKeyFromPEMTagName(stripPEMHeader(key), tag);
return new RsaKey(pubKey);
}
catch (err) {
Expand All @@ -45,7 +45,7 @@ export class Rsa {
}
importPrivateKey(tag: string, key: string) {
try {
let privKey = RSAKeyUtils.importPrivateKeyFromPEMTagName(stripPEMHeader(key), tag);
let privKey = RsaHelper.importPrivateKeyFromPEMTagName(stripPEMHeader(key), tag);
return new RsaKey(privKey);
}
catch (err) {
Expand All @@ -55,7 +55,7 @@ export class Rsa {
}
removeKeyFromKeychain(tag: string) {
try {
RSAKeyUtils.removeKeyFromKeychain(tag);
RsaHelper.removeKeyFromKeychain(tag);
}
catch (err) {
console.warn("Rsa.removeKeyFromKeychain failed with error: " + err);
Expand Down Expand Up @@ -132,12 +132,16 @@ export class Rsa {

}

sign(data: string, key: RsaKey, alg: RsaHashAlgorithm) {
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm): ArrayBuffer
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: false): ArrayBuffer;
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: true): string;
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64?: boolean): ArrayBuffer | string {
let err = new interop.Reference<NSError>();
try {
let nsData = stringToNSData(data);
let signature = SecKeyCreateSignature(key.valueOf(), alg, nsData, err);
let result = signature.base64EncodedStringWithOptions(0);
// let result = interop.bufferFromData(signature);
// let result = signature.base64EncodedStringWithOptions(0);
// if (nsData) {
// CFRelease(nsData);
// }
Expand All @@ -148,25 +152,37 @@ export class Rsa {
// CFRelease(err);
// }
if (err && err.value) {
console.warn('Rsa.verify failed with error ' + err);
console.warn('Rsa.sign failed with error ' + err);
return null;
}
return result;
if (returnAsBase64) {
return signature.base64EncodedStringWithOptions(0);
}
else {
return interop.bufferFromData(signature);
}
}
catch (err) {
console.warn('Rsa.sign failed with error ' + err);
return null;
}
}
verify(signature: string, data: string, key: RsaKey, alg: RsaHashAlgorithm) {
verify(signature: string | ArrayBuffer, data: string, key: RsaKey, alg: RsaHashAlgorithm) {
try {
let err = new interop.Reference<NSError>();
console.log(signature, data, key, alg);
let signatureBytes = NSData.alloc().initWithBase64Encoding(signature);
let signatureBytes: NSData | ArrayBuffer;
if (typeof(signature) == 'string') {
signatureBytes = NSData.alloc().initWithBase64Encoding(signature);
}
else {
signatureBytes = signature;
}

let nsData = stringToNSData(data);
let pubKey = key.valueOf();

let result = SecKeyVerifySignature(pubKey, alg, nsData, signatureBytes, err);
let result = SecKeyVerifySignature(pubKey, alg, nsData, <NSData>signatureBytes, err);
// if (nsData) {
// CFRelease(nsData);
// }
Expand Down Expand Up @@ -220,7 +236,7 @@ export class RsaKey {
console.log("ERR", err.value.localizedDescription);
throw err.value.localizedDescription;
}
return RSAKeyUtils.exportPublicKeyToPEM(pubKeyRef);
return RsaHelper.exportPublicKeyToPEM(pubKeyRef);
}
catch (err) {
console.warn('RsaKey.getPublicKey failed with error ' + err);
Expand Down

0 comments on commit 1b64fe7

Please sign in to comment.