Skip to content

Commit 7429ea0

Browse files
authored
feat(sync): Add sync methods (#86)
* feat(sync): Add sync methods * feat(sync): Update CHANGELOG.md
1 parent f00a720 commit 7429ea0

File tree

20 files changed

+830
-300
lines changed

20 files changed

+830
-300
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 3.8.0
2+
- Add RSASync methods for all Platforms but web
3+
14
## 3.7.1
25
- Moved flutter_lints to dev dependencies
36

README.md

Lines changed: 126 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,14 @@ Library for use RSA with support for android, ios, macos, windows, linux and web
1111
[![Integration Tests iOS](https://github.com/jerson/flutter-rsa/actions/workflows/tests_ios.yml/badge.svg)](https://github.com/jerson/flutter-rsa/actions/workflows/tests_ios.yml)
1212

1313
[![Integration Tests macOS](https://github.com/jerson/flutter-rsa/actions/workflows/tests_macos.yml/badge.svg)](https://github.com/jerson/flutter-rsa/actions/workflows/tests_macos.yml)
14+
1415
## Contents
15-
16+
1617
- [Fast RSA](#fast-rsa)
1718
- [Contents](#contents)
1819
- [Usage](#usage)
19-
- [Encrypt methods](#encrypt-methods)
20-
- [Decrypt methods](#decrypt-methods)
21-
- [Sign methods](#sign-methods)
22-
- [Verify methods](#verify-methods)
23-
- [Generate Methods](#generate-methods)
24-
- [Convert Methods](#convert-methods)
25-
- [Util Methods](#util-methods)
20+
- [Async methods](#async-methods)
21+
- [Sync methods](#sync-methods)
2622
- [Setup](#setup)
2723
- [Android](#android)
2824
- [iOS](#ios)
@@ -35,7 +31,9 @@ Library for use RSA with support for android, ios, macos, windows, linux and web
3531

3632
## Usage
3733

38-
### Encrypt methods
34+
### Async Methods
35+
36+
#### Encrypt methods
3937

4038
```dart
4139
import 'package:fast_rsa/fast_rsa.dart';
@@ -48,7 +46,7 @@ var result = await RSA.encryptPKCS1v15Bytes(messageBytes, publicKey)
4846
4947
```
5048

51-
### Decrypt methods
49+
#### Decrypt methods
5250

5351
```dart
5452
import 'package:fast_rsa/fast_rsa.dart';
@@ -61,7 +59,7 @@ var result = await RSA.decryptPKCS1v15Bytes(messageBytes, privateKey)
6159
6260
```
6361

64-
### Sign methods
62+
#### Sign methods
6563

6664
```dart
6765
import 'package:fast_rsa/fast_rsa.dart';
@@ -74,7 +72,7 @@ var result = await RSA.signPKCS1v15Bytes(messageBytes, Hash.SHA256, privateKey)
7472
7573
```
7674

77-
### Verify methods
75+
#### Verify methods
7876

7977
```dart
8078
import 'package:fast_rsa/fast_rsa.dart';
@@ -87,7 +85,7 @@ var result = await RSA.verifyPKCS1v15Bytes(signatureBytes, messageBytes, Hash.SH
8785
8886
```
8987

90-
### Generate Methods
88+
#### Generate Methods
9189

9290
```dart
9391
import 'package:fast_rsa/fast_rsa.dart';
@@ -96,38 +94,136 @@ var result = await RSA.generate(2048)
9694
9795
```
9896

99-
### Convert Methods
97+
#### Convert Methods
10098

10199
```dart
102100
import 'package:fast_rsa/fast_rsa.dart';
103101
104-
var result = await RSA.convertJWKToPrivateKey(data, keyId)
105-
var result = await RSA.convertJWKToPublicKey(data, keyId)
102+
var result = await RSA.convertJWKToPrivateKey(data, keyId);
103+
var result = await RSA.convertJWKToPublicKey(data, keyId);
106104
107-
var result = await RSA.convertKeyPairToPKCS12(privateKey, certificate, password)
108-
var result = await RSA.convertPKCS12ToKeyPair(pkcs12, password)
105+
var result = await RSA.convertKeyPairToPKCS12(privateKey, certificate, password);
106+
var result = await RSA.convertPKCS12ToKeyPair(pkcs12, password);
109107
110-
var result = await RSA.convertPrivateKeyToPKCS8(privateKey)
111-
var result = await RSA.convertPrivateKeyToPKCS1(privateKey)
112-
var result = await RSA.convertPrivateKeyToJWK(privateKey)
108+
var result = await RSA.convertPrivateKeyToPKCS8(privateKey);
109+
var result = await RSA.convertPrivateKeyToPKCS1(privateKey);
110+
var result = await RSA.convertPrivateKeyToJWK(privateKey);
113111
114-
var result = await RSA.convertPrivateKeyToPublicKey(privateKey)
112+
var result = await RSA.convertPrivateKeyToPublicKey(privateKey);
115113
116-
var result = await RSA.convertPublicKeyToPKIX(publicKey)
117-
var result = await RSA.convertPublicKeyToPKCS1(publicKey)
118-
var result = await RSA.convertPublicKeyToJWK(publicKey)
114+
var result = await RSA.convertPublicKeyToPKIX(publicKey);
115+
var result = await RSA.convertPublicKeyToPKCS1(publicKey);
116+
var result = await RSA.convertPublicKeyToJWK(publicKey);
119117
120-
var result = await RSA.encryptPrivateKey(privateKey, password, PEMCipher.PEMCIPHER_AES256)
121-
var result = await RSA.decryptPrivateKey(privateKeyEncrypted, password)
118+
var result = await RSA.encryptPrivateKey(privateKey, password, PEMCipher.PEMCIPHER_AES256);
119+
var result = await RSA.decryptPrivateKey(privateKeyEncrypted, password);
122120
```
123121

124-
### Util Methods
122+
#### Util Methods
125123

126124
```dart
127125
import 'package:fast_rsa/fast_rsa.dart';
128126
129-
var result = await RSA.hash(message, Hash.SHA256)
130-
var result = await RSA.base64(message)
127+
var result = await RSA.hash(message, Hash.SHA256);
128+
var result = await RSA.base64(message);
129+
130+
```
131+
132+
### Sync Methods
133+
134+
#### Encrypt methods
135+
136+
```dart
137+
import 'package:fast_rsa/fast_rsa_sync.dart';
138+
139+
var result = RSASync.encryptOAEP(message, label, Hash.HASH_SHA256, publicKey);
140+
var result = RSASync.encryptPKCS1v15(message, publicKey);
141+
142+
var result = RSASync.encryptOAEPBytes(messageBytes, label, Hash.SHA256, publicKey);
143+
var result = RSASync.encryptPKCS1v15Bytes(messageBytes, publicKey);
144+
145+
```
146+
147+
#### Decrypt methods
148+
149+
```dart
150+
import 'package:fast_rsa/fast_rsa_sync.dart';
151+
152+
var result = RSASync.decryptOAEP(message, label, Hash.HASH_SHA256, privateKey);
153+
var result = RSASync.decryptPKCS1v15(message, privateKey);
154+
155+
var result = RSASync.decryptOAEPBytes(messageBytes, label, Hash.SHA256, privateKey);
156+
var result = RSASync.decryptPKCS1v15Bytes(messageBytes, privateKey);
157+
158+
```
159+
160+
#### Sign methods
161+
162+
```dart
163+
import 'package:fast_rsa/fast_rsa_sync.dart';
164+
165+
var result = RSASync.signPSS(message, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, privateKey);
166+
var result = RSASync.signPKCS1v15(message, Hash.SHA256, privateKey);
167+
168+
var result = RSASync.signPSSBytes(messageBytes, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, privateKey);
169+
var result = RSASync.signPKCS1v15Bytes(messageBytes, Hash.SHA256, privateKey);
170+
171+
```
172+
173+
#### Verify methods
174+
175+
```dart
176+
import 'package:fast_rsa/fast_rsa_sync.dart';
177+
178+
var result = RSASync.verifyPSS(signature, message, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, publicKey);
179+
var result = RSASync.verifyPKCS1v15(signature, message, Hash.SHA256, publicKey);
180+
181+
var result = RSASync.verifyPSSBytes(signatureBytes, messageBytes, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, publicKey);
182+
var result = RSASync.verifyPKCS1v15Bytes(signatureBytes, messageBytes, Hash.SHA256, publicKey);
183+
184+
```
185+
186+
#### Generate Methods
187+
188+
```dart
189+
import 'package:fast_rsa/fast_rsa_sync.dart';
190+
191+
var result = RSASync.generate(2048)
192+
193+
```
194+
195+
#### Convert Methods
196+
197+
```dart
198+
import 'package:fast_rsa/fast_rsa_sync.dart';
199+
200+
var result = RSASync.convertJWKToPrivateKey(data, keyId);
201+
var result = RSASync.convertJWKToPublicKey(data, keyId);
202+
203+
var result = RSASync.convertKeyPairToPKCS12(privateKey, certificate, password);
204+
var result = RSASync.convertPKCS12ToKeyPair(pkcs12, password);
205+
206+
var result = RSASync.convertPrivateKeyToPKCS8(privateKey);
207+
var result = RSASync.convertPrivateKeyToPKCS1(privateKey);
208+
var result = RSASync.convertPrivateKeyToJWK(privateKey);
209+
210+
var result = RSASync.convertPrivateKeyToPublicKey(privateKey);
211+
212+
var result = RSASync.convertPublicKeyToPKIX(publicKey);
213+
var result = RSASync.convertPublicKeyToPKCS1(publicKey);
214+
var result = RSASync.convertPublicKeyToJWK(publicKey);
215+
216+
var result = RSASync.encryptPrivateKey(privateKey, password, PEMCipher.PEMCIPHER_AES256);
217+
var result = RSASync.decryptPrivateKey(privateKeyEncrypted, password);
218+
```
219+
220+
#### Util Methods
221+
222+
```dart
223+
import 'package:fast_rsa/fast_rsa_sync.dart';
224+
225+
var result = RSASync.hash(message, Hash.SHA256);
226+
var result = RSASync.base64(message);
131227
132228
```
133229

example/android/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ GeneratedPluginRegistrant.java
1111
key.properties
1212
**/*.keystore
1313
**/*.jks
14+
.cxx

example/ios/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ EXTERNAL SOURCES:
1919
:path: ".symlinks/plugins/integration_test/ios"
2020

2121
SPEC CHECKSUMS:
22-
fast_rsa: 47058fe497c032937a8e259e99ddf6255fa67238
22+
fast_rsa: f8430fbf47ba59e7ef2fd84a12f5f391d1086727
2323
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
24-
integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573
24+
integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e
2525

2626
PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796
2727

example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
ignoresPersistentStateOnLaunch = "NO"
6060
debugDocumentVersioning = "YES"
6161
debugServiceExtension = "internal"
62+
enableGPUValidationMode = "1"
6263
allowLocationSimulation = "YES">
6364
<BuildableProductRunnable
6465
runnableDebuggingMode = "0">

example/lib/generate.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:flutter/material.dart';
22
import 'package:fast_rsa/fast_rsa.dart';
3+
import 'package:fast_rsa/fast_rsa_sync.dart';
34

45
import 'package:fast_rsa_example/shared/button_widget.dart';
56
import 'package:fast_rsa_example/shared/title_widget.dart';

example/macos/Podfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ EXTERNAL SOURCES:
1414
:path: Flutter/ephemeral
1515

1616
SPEC CHECKSUMS:
17-
fast_rsa: 47a50bec1042c8c01726007dc0590a078418f997
17+
fast_rsa: 940a67b8d8e425f37708189361efc90be7299d66
1818
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
1919

2020
PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367

example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
ignoresPersistentStateOnLaunch = "NO"
6060
debugDocumentVersioning = "YES"
6161
debugServiceExtension = "internal"
62+
enableGPUValidationMode = "1"
6263
allowLocationSimulation = "YES">
6364
<BuildableProductRunnable
6465
runnableDebuggingMode = "0">

example/macos/Runner/AppDelegate.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate {
66
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
77
return true
88
}
9+
10+
override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
11+
return true
12+
}
913
}

0 commit comments

Comments
 (0)