Skip to content

Commit 1b64fe7

Browse files
committed
Bump version
1 parent 2940006 commit 1b64fe7

File tree

8 files changed

+54
-31
lines changed

8 files changed

+54
-31
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,4 @@ publish/src
2323
publish/package
2424
demo/report/report.html
2525
demo/report/stats.json
26+
typings

demo/app/App_Resources/iOS/build.xcconfig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
// CODE_SIGN_IDENTITY = iPhone Distribution
44
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
55
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
6-
//TNS_TYPESCRIPT_DECLARATIONS_PATH = $(SRCROOT)/../typescript-declarations
6+
//TNS_TYPESCRIPT_DECLARATIONS_PATH = $(SRCROOT)/../typescript-declarations
7+
IPHONEOS_DEPLOYMENT_TARGET = 10.0

demo/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"nativescript": {
33
"id": "org.nativescript.demo",
4-
"tns-ios": {
5-
"version": "4.2.0"
6-
},
74
"tns-android": {
85
"version": "4.2.0"
6+
},
7+
"tns-ios": {
8+
"version": "5.2.0"
99
}
1010
},
1111
"dependencies": {
@@ -30,4 +30,4 @@
3030
"build.plugin": "cd ../src && npm run build",
3131
"ci.tslint": "npm i && tslint --config '../tslint.json' 'app/**/*.ts' --exclude '**/node_modules/**'"
3232
}
33-
}
33+
}

src/index.d.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ export declare class Rsa {
1111
removeKeyFromKeychain(tag: string): void;
1212
loadKey(tag: string): RsaKey;
1313
generateKey(tag: string, keySize: number, permanent?: boolean): RsaKey;
14-
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm): string;
15-
verify(signature: string, data: string, key: RsaKey, alg: RsaHashAlgorithm): boolean;
14+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm): ArrayBuffer
15+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: false): ArrayBuffer;
16+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: true): string;
17+
verify(signature: string | ArrayBuffer, data: string, key: RsaKey, alg: RsaHashAlgorithm): boolean;
1618
}
1719
export declare class RsaKey {
1820
constructor(data: any);

src/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nativescript-rsa",
3-
"version": "1.0.0",
3+
"version": "1.0.1-beta.0",
44
"description": "Utilities for managing RSA keys in PEM format ",
55
"main": "rsa",
66
"typings": "index.d.ts",
@@ -40,7 +40,7 @@
4040
"bugs": {
4141
"url": "https://github.com/ulvesked/nativescript-rsa/issues"
4242
},
43-
"license": "Apache-2.0",
43+
"license": "MIT",
4444
"homepage": "https://github.com/ulvesked/nativescript-rsa",
4545
"readmeFilename": "README.md",
4646
"devDependencies": {

src/platforms/ios/Podfile

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,2 @@
1-
pod 'RSAKeyUtils', :git => 'https://github.com/ulvesked/RSAKeyUtils.git'
2-
post_install do |installer|
3-
installer.pods_project.targets.each do |target|
4-
target.build_configurations.each do |config|
5-
config.build_settings['SWIFT_VERSION'] = '3.0'
6-
end
7-
end
8-
end
1+
platform :ios, '10.0'
2+
pod 'RsaHelper', :git => 'https://github.com/ulvesked/RsaHelper.git'

src/rsa.android.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,22 @@ export class Rsa {
6868
return new RsaKey(keyPair);
6969

7070
}
71-
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm): string {
71+
72+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm): ArrayBuffer
73+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: false): ArrayBuffer;
74+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: true): string;
75+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64?: boolean): ArrayBuffer | string {
7276
const signEngine = Signature.getInstance(getProviderName(alg));
7377
let privateKey = key.valueOf().getPrivate();
7478
signEngine.initSign(privateKey);
7579
signEngine.update(stringToByteArray(data));
7680
let sign = signEngine.sign();
77-
return android.util.Base64.encodeToString(sign, android.util.Base64.NO_WRAP);
81+
if (returnAsBase64) {
82+
return android.util.Base64.encodeToString(sign, android.util.Base64.NO_WRAP);
83+
}
84+
else {
85+
return new Uint8Array(sign).buffer;
86+
}
7887
}
7988
verify(signature: string, data: string, key: RsaKey, alg: RsaHashAlgorithm): boolean {
8089
const signEngine = Signature.getInstance(getProviderName(alg));

src/rsa.ios.ts

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/// <reference path="./RSAKeyUtils.d.ts" />
1+
/// <reference path="./RsaHelper.d.ts" />
22

33
import { stripPEMHeader } from "./helper";
44

@@ -35,7 +35,7 @@ export class Rsa {
3535

3636
importPublicKey(tag: string, key: string) {
3737
try {
38-
let pubKey = RSAKeyUtils.importPublicKeyFromPEMTagName(stripPEMHeader(key), tag);
38+
let pubKey = RsaHelper.importPublicKeyFromPEMTagName(stripPEMHeader(key), tag);
3939
return new RsaKey(pubKey);
4040
}
4141
catch (err) {
@@ -45,7 +45,7 @@ export class Rsa {
4545
}
4646
importPrivateKey(tag: string, key: string) {
4747
try {
48-
let privKey = RSAKeyUtils.importPrivateKeyFromPEMTagName(stripPEMHeader(key), tag);
48+
let privKey = RsaHelper.importPrivateKeyFromPEMTagName(stripPEMHeader(key), tag);
4949
return new RsaKey(privKey);
5050
}
5151
catch (err) {
@@ -55,7 +55,7 @@ export class Rsa {
5555
}
5656
removeKeyFromKeychain(tag: string) {
5757
try {
58-
RSAKeyUtils.removeKeyFromKeychain(tag);
58+
RsaHelper.removeKeyFromKeychain(tag);
5959
}
6060
catch (err) {
6161
console.warn("Rsa.removeKeyFromKeychain failed with error: " + err);
@@ -132,12 +132,16 @@ export class Rsa {
132132

133133
}
134134

135-
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm) {
135+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm): ArrayBuffer
136+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: false): ArrayBuffer;
137+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64: true): string;
138+
sign(data: string, key: RsaKey, alg: RsaHashAlgorithm, returnAsBase64?: boolean): ArrayBuffer | string {
136139
let err = new interop.Reference<NSError>();
137140
try {
138141
let nsData = stringToNSData(data);
139142
let signature = SecKeyCreateSignature(key.valueOf(), alg, nsData, err);
140-
let result = signature.base64EncodedStringWithOptions(0);
143+
// let result = interop.bufferFromData(signature);
144+
// let result = signature.base64EncodedStringWithOptions(0);
141145
// if (nsData) {
142146
// CFRelease(nsData);
143147
// }
@@ -148,25 +152,37 @@ export class Rsa {
148152
// CFRelease(err);
149153
// }
150154
if (err && err.value) {
151-
console.warn('Rsa.verify failed with error ' + err);
155+
console.warn('Rsa.sign failed with error ' + err);
152156
return null;
153157
}
154-
return result;
158+
if (returnAsBase64) {
159+
return signature.base64EncodedStringWithOptions(0);
160+
}
161+
else {
162+
return interop.bufferFromData(signature);
163+
}
155164
}
156165
catch (err) {
157166
console.warn('Rsa.sign failed with error ' + err);
158167
return null;
159168
}
160169
}
161-
verify(signature: string, data: string, key: RsaKey, alg: RsaHashAlgorithm) {
170+
verify(signature: string | ArrayBuffer, data: string, key: RsaKey, alg: RsaHashAlgorithm) {
162171
try {
163172
let err = new interop.Reference<NSError>();
164173
console.log(signature, data, key, alg);
165-
let signatureBytes = NSData.alloc().initWithBase64Encoding(signature);
174+
let signatureBytes: NSData | ArrayBuffer;
175+
if (typeof(signature) == 'string') {
176+
signatureBytes = NSData.alloc().initWithBase64Encoding(signature);
177+
}
178+
else {
179+
signatureBytes = signature;
180+
}
181+
166182
let nsData = stringToNSData(data);
167183
let pubKey = key.valueOf();
168184

169-
let result = SecKeyVerifySignature(pubKey, alg, nsData, signatureBytes, err);
185+
let result = SecKeyVerifySignature(pubKey, alg, nsData, <NSData>signatureBytes, err);
170186
// if (nsData) {
171187
// CFRelease(nsData);
172188
// }
@@ -220,7 +236,7 @@ export class RsaKey {
220236
console.log("ERR", err.value.localizedDescription);
221237
throw err.value.localizedDescription;
222238
}
223-
return RSAKeyUtils.exportPublicKeyToPEM(pubKeyRef);
239+
return RsaHelper.exportPublicKeyToPEM(pubKeyRef);
224240
}
225241
catch (err) {
226242
console.warn('RsaKey.getPublicKey failed with error ' + err);

0 commit comments

Comments
 (0)