diff --git a/.github/workflows/example-docker.yml b/.github/workflows/example-docker.yml
index 5f5624b..712863d 100644
--- a/.github/workflows/example-docker.yml
+++ b/.github/workflows/example-docker.yml
@@ -10,15 +10,15 @@ jobs:
web:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
- - uses: docker/setup-qemu-action@v1
- - uses: docker/setup-buildx-action@v1
- - uses: docker/login-action@v1
+ - uses: actions/checkout@v4
+ - uses: docker/setup-qemu-action@v3
+ - uses: docker/setup-buildx-action@v3
+ - uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}
- - uses: docker/build-push-action@v2
+ - uses: docker/build-push-action@v6
with:
context: .
file: ./example/Dockerfile
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 8185064..bbdb906 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -9,7 +9,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: scottbrenner/generate-changelog-action@master
diff --git a/.github/workflows/tests_android.yml b/.github/workflows/tests_android.yml
index 916b3ee..2fbdcb5 100644
--- a/.github/workflows/tests_android.yml
+++ b/.github/workflows/tests_android.yml
@@ -11,12 +11,12 @@ jobs:
e2e:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-java@v3
+ - uses: actions/checkout@v4
+ - uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- - uses: android-actions/setup-android@v2
+ - uses: android-actions/setup-android@v3
- uses: subosito/flutter-action@main
with:
flutter-version: '3.x'
diff --git a/.github/workflows/tests_browser.yml b/.github/workflows/tests_browser.yml
index 55c65dd..ca2d6a2 100644
--- a/.github/workflows/tests_browser.yml
+++ b/.github/workflows/tests_browser.yml
@@ -12,7 +12,7 @@ jobs:
e2e:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: subosito/flutter-action@main
with:
flutter-version: '3.x'
diff --git a/.github/workflows/tests_ios.yml b/.github/workflows/tests_ios.yml
index 61ec319..9bc1045 100644
--- a/.github/workflows/tests_ios.yml
+++ b/.github/workflows/tests_ios.yml
@@ -14,7 +14,7 @@ jobs:
- uses: futureware-tech/simulator-action@v1
with:
os: iOS
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: subosito/flutter-action@main
with:
flutter-version: '3.x'
diff --git a/.github/workflows/tests_linux.yml b/.github/workflows/tests_linux.yml
index 3663104..5c047cf 100644
--- a/.github/workflows/tests_linux.yml
+++ b/.github/workflows/tests_linux.yml
@@ -11,7 +11,7 @@ jobs:
e2e:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: subosito/flutter-action@main
with:
flutter-version: '3.x'
diff --git a/.github/workflows/tests_macos.yml b/.github/workflows/tests_macos.yml
index fbbc3a0..34a9a76 100644
--- a/.github/workflows/tests_macos.yml
+++ b/.github/workflows/tests_macos.yml
@@ -11,7 +11,7 @@ jobs:
e2e:
runs-on: macos-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: subosito/flutter-action@main
with:
flutter-version: '3.x'
diff --git a/.github/workflows/tests_windows.yml b/.github/workflows/tests_windows.yml
index 263fa2f..2473546 100644
--- a/.github/workflows/tests_windows.yml
+++ b/.github/workflows/tests_windows.yml
@@ -11,7 +11,7 @@ jobs:
e2e:
runs-on: windows-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: subosito/flutter-action@main
with:
flutter-version: '3.x'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index acbbcd9..b00081c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+## 3.7.0
+- Updates binaries + Add XCFramework for ios
+
## 3.6.6
- Revert "Fix build on web #77"
diff --git a/Makefile b/Makefile
index 8e4f091..bdb2ec1 100644
--- a/Makefile
+++ b/Makefile
@@ -3,6 +3,10 @@ default: test
test:
cd example && flutter test integration_test/app_test.dart
+fmt:
+ dart format . && dart fix --apply
+ cd example && dart format . && dart fix --apply
+
upgrade: upgrade-libs upgrade-flatbuffers
upgrade-libs:
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 5879e0c..f40a850 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -1,3 +1,5 @@
+include: package:flutter_lints/flutter.yaml
+
analyzer:
exclude:
- example/**
diff --git a/android/build.gradle b/android/build.gradle
index 432129f..4ab28d7 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,53 +1,73 @@
-group 'dev.jerson.fat_rsa'
-version '1.0'
+group = "dev.jerson.fast_rsa"
+version = "1.0-SNAPSHOT"
buildscript {
+ ext.kotlin_version = "1.8.22"
repositories {
google()
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.1.0'
+ classpath("com.android.tools.build:gradle:8.1.0")
+ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
}
}
-rootProject.allprojects {
+allprojects {
repositories {
google()
mavenCentral()
}
}
-apply plugin: 'com.android.library'
+apply plugin: "com.android.library"
+apply plugin: "kotlin-android"
android {
- // Conditional for compatibility with AGP <4.2.
if (project.android.hasProperty("namespace")) {
- namespace 'dev.jerson.fast_rsa'
+ namespace = "dev.jerson.fast_rsa"
}
- compileSdkVersion 31
- defaultConfig {
- minSdkVersion 19
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ compileSdk = 34
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
}
- lintOptions {
- disable 'InvalidPackage'
+
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_1_8
+ }
+
+ sourceSets {
+ main {
+ java.srcDirs += "src/main/kotlin"
+ jniLibs.srcDirs = ['src/main/jniLibs']
+ }
+ test {
+ java.srcDirs += "src/test/kotlin"
+ }
}
-}
-task nativeLibsToJar(type: Jar, description: 'create a jar archive of the native libs') {
- destinationDirectory.set(file("$buildDir/native-libs"))
- archiveBaseName = 'native-libs'
- from fileTree(dir: 'libs', include: '**/*.so')
- into 'lib/'
-}
+ defaultConfig {
+ minSdk = 21
+ }
-tasks.withType(JavaCompile) {
- compileTask -> compileTask.dependsOn(nativeLibsToJar)
-}
+ dependencies {
+ testImplementation("org.jetbrains.kotlin:kotlin-test")
+ testImplementation("org.mockito:mockito-core:5.0.0")
+ }
+
+ testOptions {
+ unitTests.all {
+ useJUnitPlatform()
-dependencies {
- api fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')
+ testLogging {
+ events "passed", "skipped", "failed", "standardOut", "standardError"
+ outputs.upToDateWhen {false}
+ showStandardStreams = true
+ }
+ }
+ }
}
diff --git a/android/gradle.properties b/android/gradle.properties
deleted file mode 100644
index 94adc3a..0000000
--- a/android/gradle.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-org.gradle.jvmargs=-Xmx1536M
-android.useAndroidX=true
-android.enableJetifier=true
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 5699c42..0000000
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip
diff --git a/android/src/main/java/dev/jerson/fast_rsa/FastRsaPlugin.java b/android/src/main/java/dev/jerson/fast_rsa/FastRsaPlugin.java
deleted file mode 100644
index 27d2c5b..0000000
--- a/android/src/main/java/dev/jerson/fast_rsa/FastRsaPlugin.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package dev.jerson.fast_rsa;
-
-import androidx.annotation.NonNull;
-
-import io.flutter.embedding.engine.plugins.FlutterPlugin;
-import io.flutter.plugin.common.MethodCall;
-import io.flutter.plugin.common.MethodChannel;
-import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
-import io.flutter.plugin.common.MethodChannel.Result;
-
-/**
- * FastRsaPlugin
- */
-public class FastRsaPlugin implements FlutterPlugin, MethodCallHandler {
- /// The MethodChannel that will the communication between Flutter and native Android
- ///
- /// This local reference serves to register the plugin with the Flutter Engine and unregister it
- /// when the Flutter Engine is detached from the Activity
- private MethodChannel channel;
-
- @Override
- public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {
- channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "fast_rsa");
- channel.setMethodCallHandler(this);
- }
-
- @Override
- public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {
- result.notImplemented();
- }
-
- @Override
- public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
- channel.setMethodCallHandler(null);
- }
-}
\ No newline at end of file
diff --git a/android/src/main/jniLibs/arm64-v8a/librsa_bridge.so b/android/src/main/jniLibs/arm64-v8a/librsa_bridge.so
index 7b5a6a9..d945813 100644
Binary files a/android/src/main/jniLibs/arm64-v8a/librsa_bridge.so and b/android/src/main/jniLibs/arm64-v8a/librsa_bridge.so differ
diff --git a/android/src/main/jniLibs/armeabi-v7a/librsa_bridge.so b/android/src/main/jniLibs/armeabi-v7a/librsa_bridge.so
index 466231d..30e8fe6 100644
Binary files a/android/src/main/jniLibs/armeabi-v7a/librsa_bridge.so and b/android/src/main/jniLibs/armeabi-v7a/librsa_bridge.so differ
diff --git a/android/src/main/jniLibs/x86/librsa_bridge.so b/android/src/main/jniLibs/x86/librsa_bridge.so
index 907b58f..693f11e 100644
Binary files a/android/src/main/jniLibs/x86/librsa_bridge.so and b/android/src/main/jniLibs/x86/librsa_bridge.so differ
diff --git a/android/src/main/jniLibs/x86_64/librsa_bridge.so b/android/src/main/jniLibs/x86_64/librsa_bridge.so
index 70909b3..13cecf8 100644
Binary files a/android/src/main/jniLibs/x86_64/librsa_bridge.so and b/android/src/main/jniLibs/x86_64/librsa_bridge.so differ
diff --git a/android/src/main/kotlin/dev/jerson/fast_rsa/FastRsaPlugin.kt b/android/src/main/kotlin/dev/jerson/fast_rsa/FastRsaPlugin.kt
new file mode 100644
index 0000000..080317e
--- /dev/null
+++ b/android/src/main/kotlin/dev/jerson/fast_rsa/FastRsaPlugin.kt
@@ -0,0 +1,35 @@
+package dev.jerson.fast_rsa
+
+import androidx.annotation.NonNull
+
+import io.flutter.embedding.engine.plugins.FlutterPlugin
+import io.flutter.plugin.common.MethodCall
+import io.flutter.plugin.common.MethodChannel
+import io.flutter.plugin.common.MethodChannel.MethodCallHandler
+import io.flutter.plugin.common.MethodChannel.Result
+
+/** FastRsaPlugin */
+class FastRsaPlugin: FlutterPlugin, MethodCallHandler {
+ /// The MethodChannel that will the communication between Flutter and native Android
+ ///
+ /// This local reference serves to register the plugin with the Flutter Engine and unregister it
+ /// when the Flutter Engine is detached from the Activity
+ private lateinit var channel : MethodChannel
+
+ override fun onAttachedToEngine(flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
+ channel = MethodChannel(flutterPluginBinding.binaryMessenger, "fast_rsa")
+ channel.setMethodCallHandler(this)
+ }
+
+ override fun onMethodCall(call: MethodCall, result: Result) {
+ if (call.method == "getPlatformVersion") {
+ result.success("Android ${android.os.Build.VERSION.RELEASE}")
+ } else {
+ result.notImplemented()
+ }
+ }
+
+ override fun onDetachedFromEngine(binding: FlutterPlugin.FlutterPluginBinding) {
+ channel.setMethodCallHandler(null)
+ }
+}
diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml
new file mode 100644
index 0000000..0d29021
--- /dev/null
+++ b/example/analysis_options.yaml
@@ -0,0 +1,28 @@
+# This file configures the analyzer, which statically analyzes Dart code to
+# check for errors, warnings, and lints.
+#
+# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
+# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
+# invoked from the command line by running `flutter analyze`.
+
+# The following line activates a set of recommended lints for Flutter apps,
+# packages, and plugins designed to encourage good coding practices.
+include: package:flutter_lints/flutter.yaml
+
+linter:
+ # The lint rules applied to this project can be customized in the
+ # section below to disable rules from the `package:flutter_lints/flutter.yaml`
+ # included above or to enable additional rules. A list of all available lints
+ # and their documentation is published at https://dart.dev/lints.
+ #
+ # Instead of disabling a lint rule for the entire project in the
+ # section below, it can also be suppressed for a single line of code
+ # or a specific dart file by using the `// ignore: name_of_lint` and
+ # `// ignore_for_file: name_of_lint` syntax on the line or in the file
+ # producing the lint.
+ rules:
+ # avoid_print: false # Uncomment to disable the `avoid_print` rule
+ # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
+
+# Additional information about this file can be found at
+# https://dart.dev/guides/language/analysis-options
diff --git a/example/android/.gitignore b/example/android/.gitignore
index 6f56801..55afd91 100644
--- a/example/android/.gitignore
+++ b/example/android/.gitignore
@@ -7,7 +7,7 @@ gradle-wrapper.jar
GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
-# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks
diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle
index 118ee1d..74603f2 100644
--- a/example/android/app/build.gradle
+++ b/example/android/app/build.gradle
@@ -1,67 +1,44 @@
plugins {
id "com.android.application"
id "kotlin-android"
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}
-def localProperties = new Properties()
-def localPropertiesFile = rootProject.file('local.properties')
-if (localPropertiesFile.exists()) {
- localPropertiesFile.withReader('UTF-8') { reader ->
- localProperties.load(reader)
- }
-}
-
-def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
-if (flutterVersionCode == null) {
- flutterVersionCode = '1'
-}
-
-def flutterVersionName = localProperties.getProperty('flutter.versionName')
-if (flutterVersionName == null) {
- flutterVersionName = '1.0'
-}
-
android {
- namespace "com.example.example"
- compileSdkVersion flutter.compileSdkVersion
- ndkVersion flutter.ndkVersion
+ namespace = "dev.jerson.fast_rsa_example"
+ compileSdk = flutter.compileSdkVersion
+ ndkVersion = flutter.ndkVersion
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
- jvmTarget = '1.8'
- }
-
- sourceSets {
- main.java.srcDirs += 'src/main/kotlin'
+ jvmTarget = JavaVersion.VERSION_1_8
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
- applicationId "com.example.example"
+ applicationId = "dev.jerson.fast_rsa_example"
// You can update the following values to match your application needs.
- // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
- minSdkVersion flutter.minSdkVersion
- targetSdkVersion flutter.targetSdkVersion
- versionCode flutterVersionCode.toInteger()
- versionName flutterVersionName
+ // For more information, see: https://flutter.dev/to/review-gradle-config.
+ minSdk = flutter.minSdkVersion
+ targetSdk = flutter.targetSdkVersion
+ versionCode = flutter.versionCode
+ versionName = flutter.versionName
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig signingConfigs.debug
+ signingConfig = signingConfigs.debug
}
}
}
flutter {
- source '../..'
+ source = "../.."
}
-
-dependencies {}
diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml
index 19b862e..e6f7c54 100644
--- a/example/android/app/src/main/AndroidManifest.xml
+++ b/example/android/app/src/main/AndroidManifest.xml
@@ -1,12 +1,13 @@
+
+
+
+
+
+
+
diff --git a/example/android/app/src/main/kotlin/dev/jerson/fast_rsa_example/MainActivity.kt b/example/android/app/src/main/kotlin/dev/jerson/fast_rsa_example/MainActivity.kt
new file mode 100644
index 0000000..b9904a6
--- /dev/null
+++ b/example/android/app/src/main/kotlin/dev/jerson/fast_rsa_example/MainActivity.kt
@@ -0,0 +1,5 @@
+package dev.jerson.fast_rsa_example
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity: FlutterActivity()
diff --git a/example/android/build.gradle b/example/android/build.gradle
index f7eb7f6..d2ffbff 100644
--- a/example/android/build.gradle
+++ b/example/android/build.gradle
@@ -1,16 +1,3 @@
-buildscript {
- ext.kotlin_version = '1.7.10'
- repositories {
- google()
- mavenCentral()
- }
-
- dependencies {
- classpath 'com.android.tools.build:gradle:7.3.0'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
allprojects {
repositories {
google()
@@ -18,12 +5,12 @@ allprojects {
}
}
-rootProject.buildDir = '../build'
+rootProject.buildDir = "../build"
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
- project.evaluationDependsOn(':app')
+ project.evaluationDependsOn(":app")
}
tasks.register("clean", Delete) {
diff --git a/example/android/gradle.properties b/example/android/gradle.properties
index 94adc3a..2597170 100644
--- a/example/android/gradle.properties
+++ b/example/android/gradle.properties
@@ -1,3 +1,3 @@
-org.gradle.jvmargs=-Xmx1536M
+org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties
index 3c472b9..7bb2df6 100644
--- a/example/android/gradle/wrapper/gradle-wrapper.properties
+++ b/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
diff --git a/example/android/settings.gradle b/example/android/settings.gradle
index 55c4ca8..b9e43bd 100644
--- a/example/android/settings.gradle
+++ b/example/android/settings.gradle
@@ -5,16 +5,21 @@ pluginManagement {
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
- }
- settings.ext.flutterSdkPath = flutterSdkPath()
+ }()
- includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
- plugins {
- id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
}
}
-include ":app"
+plugins {
+ id "dev.flutter.flutter-plugin-loader" version "1.0.0"
+ id "com.android.application" version "8.1.0" apply false
+ id "org.jetbrains.kotlin.android" version "1.8.22" apply false
+}
-apply from: "${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle/app_plugin_loader.gradle"
+include ":app"
diff --git a/example/fonts/Roboto/LICENSE.txt b/example/fonts/Roboto/LICENSE.txt
deleted file mode 100755
index d645695..0000000
--- a/example/fonts/Roboto/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/example/fonts/Roboto/Roboto-Black.ttf b/example/fonts/Roboto/Roboto-Black.ttf
deleted file mode 100755
index 689fe5c..0000000
Binary files a/example/fonts/Roboto/Roboto-Black.ttf and /dev/null differ
diff --git a/example/fonts/Roboto/Roboto-Bold.ttf b/example/fonts/Roboto/Roboto-Bold.ttf
deleted file mode 100755
index d3f01ad..0000000
Binary files a/example/fonts/Roboto/Roboto-Bold.ttf and /dev/null differ
diff --git a/example/fonts/Roboto/Roboto-Light.ttf b/example/fonts/Roboto/Roboto-Light.ttf
deleted file mode 100755
index 219063a..0000000
Binary files a/example/fonts/Roboto/Roboto-Light.ttf and /dev/null differ
diff --git a/example/fonts/Roboto/Roboto-Medium.ttf b/example/fonts/Roboto/Roboto-Medium.ttf
deleted file mode 100755
index 1a7f3b0..0000000
Binary files a/example/fonts/Roboto/Roboto-Medium.ttf and /dev/null differ
diff --git a/example/fonts/Roboto/Roboto-Regular.ttf b/example/fonts/Roboto/Roboto-Regular.ttf
deleted file mode 100755
index 2c97eea..0000000
Binary files a/example/fonts/Roboto/Roboto-Regular.ttf and /dev/null differ
diff --git a/example/fonts/Roboto/Roboto-Thin.ttf b/example/fonts/Roboto/Roboto-Thin.ttf
deleted file mode 100755
index b74a4fd..0000000
Binary files a/example/fonts/Roboto/Roboto-Thin.ttf and /dev/null differ
diff --git a/example/integration_test/app_test.dart b/example/integration_test/app_test.dart
index a893865..51d4f13 100644
--- a/example/integration_test/app_test.dart
+++ b/example/integration_test/app_test.dart
@@ -1,8 +1,7 @@
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
-import 'package:rsa_example/main.dart' as app;
+import 'package:fast_rsa_example/main.dart' as app;
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
@@ -15,31 +14,31 @@ void main() {
final list = find.byType(Scrollable).first;
group('Encrypt and Decrypt OAEP', () {
- final parent = find.byKey(ValueKey("encrypt-oaep"));
+ final parent = find.byKey(const ValueKey("encrypt-oaep"));
testWidgets('Encrypt / Decrypt', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
var container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("encrypt")),
+ matching: find.byKey(const ValueKey("encrypt")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.enterText(
find.descendant(
- of: container, matching: find.byKey(ValueKey("message"))),
+ of: container, matching: find.byKey(const ValueKey("message"))),
input);
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
await expectLater(resultSelector, findsWidgets);
var result = resultSelector.evaluate().single.widget as Text;
@@ -47,700 +46,700 @@ void main() {
container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("decrypt")),
+ matching: find.byKey(const ValueKey("decrypt")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
await expectLater(resultSelector, findsWidgets);
result = resultSelector.evaluate().single.widget as Text;
expect(result.data, equals(input));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Encrypt and Decrypt OAEP Bytes', () {
- final parent = find.byKey(ValueKey("encrypt-oaep-bytes"));
+ final parent = find.byKey(const ValueKey("encrypt-oaep-bytes"));
testWidgets('Encrypt / Decrypt', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
var container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("encrypt")),
+ matching: find.byKey(const ValueKey("encrypt")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.enterText(
find.descendant(
- of: container, matching: find.byKey(ValueKey("message"))),
+ of: container, matching: find.byKey(const ValueKey("message"))),
input);
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("decrypt")),
+ matching: find.byKey(const ValueKey("decrypt")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Encrypt and Decrypt PKCS1v15', () {
- final parent = find.byKey(ValueKey("encrypt-pkcs"));
+ final parent = find.byKey(const ValueKey("encrypt-pkcs"));
testWidgets('Encrypt / Decrypt', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
var container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("encrypt")),
+ matching: find.byKey(const ValueKey("encrypt")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.enterText(
find.descendant(
- of: container, matching: find.byKey(ValueKey("message"))),
+ of: container, matching: find.byKey(const ValueKey("message"))),
input);
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("decrypt")),
+ matching: find.byKey(const ValueKey("decrypt")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
result = resultSelector.evaluate().single.widget as Text;
expect(result.data, equals(input));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Encrypt and Decrypt PKCS1v15 Bytes', () {
- final parent = find.byKey(ValueKey("encrypt-pkcs-bytes"));
+ final parent = find.byKey(const ValueKey("encrypt-pkcs-bytes"));
testWidgets('Encrypt / Decrypt', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
var container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("encrypt")),
+ matching: find.byKey(const ValueKey("encrypt")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.enterText(
find.descendant(
- of: container, matching: find.byKey(ValueKey("message"))),
+ of: container, matching: find.byKey(const ValueKey("message"))),
input);
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("decrypt")),
+ matching: find.byKey(const ValueKey("decrypt")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
result = resultSelector.evaluate().single.widget as Text;
expect(result.data, equals(input));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Sign And Verify PSS', () {
- final parent = find.byKey(ValueKey("sign-pss"));
+ final parent = find.byKey(const ValueKey("sign-pss"));
testWidgets('Sign / Verify', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
var container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("sign")),
+ matching: find.byKey(const ValueKey("sign")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.enterText(
find.descendant(
- of: container, matching: find.byKey(ValueKey("message"))),
+ of: container, matching: find.byKey(const ValueKey("message"))),
input);
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("verify")),
+ matching: find.byKey(const ValueKey("verify")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
result = resultSelector.evaluate().single.widget as Text;
expect(result.data, "VALID");
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Sign And Verify PSS Bytes', () {
- final parent = find.byKey(ValueKey("sign-pss-bytes"));
+ final parent = find.byKey(const ValueKey("sign-pss-bytes"));
testWidgets('Sign / Verify', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
var container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("sign")),
+ matching: find.byKey(const ValueKey("sign")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.enterText(
find.descendant(
- of: container, matching: find.byKey(ValueKey("message"))),
+ of: container, matching: find.byKey(const ValueKey("message"))),
input);
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("verify")),
+ matching: find.byKey(const ValueKey("verify")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
result = resultSelector.evaluate().single.widget as Text;
expect(result.data, "VALID");
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Sign And Verify PKCS', () {
- final parent = find.byKey(ValueKey("sign-pkcs"));
+ final parent = find.byKey(const ValueKey("sign-pkcs"));
testWidgets('Sign / Verify', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
var container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("sign")),
+ matching: find.byKey(const ValueKey("sign")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.enterText(
find.descendant(
- of: container, matching: find.byKey(ValueKey("message"))),
+ of: container, matching: find.byKey(const ValueKey("message"))),
input);
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("verify")),
+ matching: find.byKey(const ValueKey("verify")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
result = resultSelector.evaluate().single.widget as Text;
expect(result.data, "VALID");
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Sign And Verify PKCS Bytes', () {
- final parent = find.byKey(ValueKey("sign-pkcs-bytes"));
+ final parent = find.byKey(const ValueKey("sign-pkcs-bytes"));
testWidgets('Sign / Verify', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
var container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("sign")),
+ matching: find.byKey(const ValueKey("sign")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.enterText(
find.descendant(
- of: container, matching: find.byKey(ValueKey("message"))),
+ of: container, matching: find.byKey(const ValueKey("message"))),
input);
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("verify")),
+ matching: find.byKey(const ValueKey("verify")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
result = resultSelector.evaluate().single.widget as Text;
expect(result.data, "VALID");
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Base64', () {
- final parent = find.byKey(ValueKey("base64"));
+ final parent = find.byKey(const ValueKey("base64"));
testWidgets('Default', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("encode")),
+ matching: find.byKey(const ValueKey("encode")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.enterText(
find.descendant(
- of: container, matching: find.byKey(ValueKey("message"))),
+ of: container, matching: find.byKey(const ValueKey("message"))),
input);
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Hash', () {
- final parent = find.byKey(ValueKey("hash"));
+ final parent = find.byKey(const ValueKey("hash"));
testWidgets('Default', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("encode")),
+ matching: find.byKey(const ValueKey("encode")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.enterText(
find.descendant(
- of: container, matching: find.byKey(ValueKey("message"))),
+ of: container, matching: find.byKey(const ValueKey("message"))),
input);
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Generate', () {
- final parent = find.byKey(ValueKey("generate"));
+ final parent = find.byKey(const ValueKey("generate"));
testWidgets('Default', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("action")),
+ matching: find.byKey(const ValueKey("action")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
- await tester.pumpAndSettle(Duration(seconds: 5));
+ await tester.pumpAndSettle(const Duration(seconds: 5));
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(minutes: 5)));
+ }, timeout: const Timeout(Duration(minutes: 5)));
});
group('Convert PrivateKey', () {
- final parent = find.byKey(ValueKey("convert-private"));
+ final parent = find.byKey(const ValueKey("convert-private"));
testWidgets('JWT', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("jwt")),
+ matching: find.byKey(const ValueKey("jwt")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
testWidgets('PKCS1', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("pkcs1")),
+ matching: find.byKey(const ValueKey("pkcs1")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
testWidgets('PKCS8', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("pkcs8")),
+ matching: find.byKey(const ValueKey("pkcs8")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Convert PublicKey', () {
- final parent = find.byKey(ValueKey("convert-public"));
+ final parent = find.byKey(const ValueKey("convert-public"));
testWidgets('JWT', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("jwt")),
+ matching: find.byKey(const ValueKey("jwt")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
testWidgets('PKCS1', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("pkcs1")),
+ matching: find.byKey(const ValueKey("pkcs1")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
testWidgets('PKIX', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("pkix")),
+ matching: find.byKey(const ValueKey("pkix")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Convert JWT', () {
- final parent = find.byKey(ValueKey("convert-jwt"));
+ final parent = find.byKey(const ValueKey("convert-jwt"));
testWidgets('PrivateKey', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("private")),
+ matching: find.byKey(const ValueKey("private")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
testWidgets('PublicKey', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("public")),
+ matching: find.byKey(const ValueKey("public")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
group('Convert KeyPair', () {
- final parent = find.byKey(ValueKey("convert-keypair"));
+ final parent = find.byKey(const ValueKey("convert-keypair"));
testWidgets('PKCS12', (WidgetTester tester) async {
- final instance = app.MyApp();
+ const instance = app.MyApp();
await tester.pumpWidget(instance);
await tester.pumpAndSettle();
final container = find.descendant(
of: parent,
- matching: find.byKey(ValueKey("pkcs12")),
+ matching: find.byKey(const ValueKey("pkcs12")),
);
await tester.scrollUntilVisible(container, dyScroll, scrollable: list);
await tester.pumpAndSettle();
await tester.tap(
find.descendant(
- of: container, matching: find.byKey(ValueKey("button"))),
+ of: container, matching: find.byKey(const ValueKey("button"))),
);
await tester.pumpAndSettle();
var resultSelector = find.descendant(
- of: container, matching: find.byKey(ValueKey("result")));
+ of: container, matching: find.byKey(const ValueKey("result")));
expect(resultSelector, findsOneWidget);
var result = resultSelector.evaluate().single.widget as Text;
expect(result.data != "", equals(true));
- }, timeout: Timeout(Duration(seconds: 60)));
+ }, timeout: const Timeout(Duration(seconds: 60)));
});
});
}
diff --git a/example/ios/.gitignore b/example/ios/.gitignore
index e96ef60..7a7f987 100644
--- a/example/ios/.gitignore
+++ b/example/ios/.gitignore
@@ -1,3 +1,4 @@
+**/dgph
*.mode1v3
*.mode2v3
*.moved-aside
@@ -18,6 +19,7 @@ Flutter/App.framework
Flutter/Flutter.framework
Flutter/Flutter.podspec
Flutter/Generated.xcconfig
+Flutter/ephemeral/
Flutter/app.flx
Flutter/app.zip
Flutter/flutter_assets/
diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist
index 8c6e561..7c56964 100644
--- a/example/ios/Flutter/AppFrameworkInfo.plist
+++ b/example/ios/Flutter/AppFrameworkInfo.plist
@@ -3,7 +3,7 @@
CFBundleDevelopmentRegion
- $(DEVELOPMENT_LANGUAGE)
+ en
CFBundleExecutable
App
CFBundleIdentifier
diff --git a/example/ios/Podfile b/example/ios/Podfile
index 279576f..d97f17e 100644
--- a/example/ios/Podfile
+++ b/example/ios/Podfile
@@ -32,6 +32,9 @@ target 'Runner' do
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
+ target 'RunnerTests' do
+ inherit! :search_paths
+ end
end
post_install do |installer|
diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock
index 9eb6297..34e53a6 100644
--- a/example/ios/Podfile.lock
+++ b/example/ios/Podfile.lock
@@ -19,10 +19,10 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/integration_test/ios"
SPEC CHECKSUMS:
- fast_rsa: 514f0e9ecb93c6222fe4cb61e20a3d7125e734d1
+ fast_rsa: 47058fe497c032937a8e259e99ddf6255fa67238
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
- integration_test: ce0a3ffa1de96d1a89ca0ac26fca7ea18a749ef4
+ integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573
-PODFILE CHECKSUM: c4c93c5f6502fe2754f48404d3594bf779584011
+PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796
-COCOAPODS: 1.14.3
+COCOAPODS: 1.16.2
diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj
index 705e1de..1866e34 100644
--- a/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/example/ios/Runner.xcodeproj/project.pbxproj
@@ -8,14 +8,26 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
+ 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
- EFA0C5C60C1EAD3297DE9C9B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4FEC24BF386335CE719F2AFC /* Pods_Runner.framework */; };
+ 9B043E7DDF437304F96C6A8B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6ED66C9D62DA06C85837CED4 /* Pods_Runner.framework */; };
+ D68336888FFD551157FAE1C0 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D13CCAB3F95D87010E76A43 /* Pods_RunnerTests.framework */; };
/* End PBXBuildFile section */
+/* Begin PBXContainerItemProxy section */
+ 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 97C146E61CF9000F007C117D /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 97C146ED1CF9000F007C117D;
+ remoteInfo = Runner;
+ };
+/* End PBXContainerItemProxy section */
+
/* Begin PBXCopyFilesBuildPhase section */
9705A1C41CF9048500538489 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
@@ -32,12 +44,16 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
+ 2D13CCAB3F95D87010E76A43 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
+ 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 4FEC24BF386335CE719F2AFC /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 64BCEF0B9F2D9C5A52639B5E /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; };
+ 6B9713BB5A00723BEE3AA0C8 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
+ 6ED66C9D62DA06C85837CED4 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
- 973C2152C8399C8F86E6D92D /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -45,32 +61,63 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- AF0D23BE7866546C7548D570 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
- E53BA7C359623C1E9DABBA3B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
+ C07A03E53C6DDD30A04AEB7A /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; };
+ CBD561265C29966699887685 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
+ D52427158F5BBEFC3C3ADB2B /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
+ E0C04A60AADE8D45465A6C48 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 471BF0EA97915513F058CEDE /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D68336888FFD551157FAE1C0 /* Pods_RunnerTests.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- EFA0C5C60C1EAD3297DE9C9B /* Pods_Runner.framework in Frameworks */,
+ 9B043E7DDF437304F96C6A8B /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 88C6E7EC984B05C45C1623EF /* Pods */ = {
+ 1DBAC857D18E7AFB7C3473E1 /* Pods */ = {
isa = PBXGroup;
children = (
- E53BA7C359623C1E9DABBA3B /* Pods-Runner.debug.xcconfig */,
- AF0D23BE7866546C7548D570 /* Pods-Runner.release.xcconfig */,
- 973C2152C8399C8F86E6D92D /* Pods-Runner.profile.xcconfig */,
- );
+ 6B9713BB5A00723BEE3AA0C8 /* Pods-Runner.debug.xcconfig */,
+ D52427158F5BBEFC3C3ADB2B /* Pods-Runner.release.xcconfig */,
+ CBD561265C29966699887685 /* Pods-Runner.profile.xcconfig */,
+ E0C04A60AADE8D45465A6C48 /* Pods-RunnerTests.debug.xcconfig */,
+ 64BCEF0B9F2D9C5A52639B5E /* Pods-RunnerTests.release.xcconfig */,
+ C07A03E53C6DDD30A04AEB7A /* Pods-RunnerTests.profile.xcconfig */,
+ );
+ name = Pods;
path = Pods;
sourceTree = "";
};
+ 331C8082294A63A400263BE5 /* RunnerTests */ = {
+ isa = PBXGroup;
+ children = (
+ 331C807B294A618700263BE5 /* RunnerTests.swift */,
+ );
+ path = RunnerTests;
+ sourceTree = "";
+ };
+ 5C03493D62CF6B32825B3C1A /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 6ED66C9D62DA06C85837CED4 /* Pods_Runner.framework */,
+ 2D13CCAB3F95D87010E76A43 /* Pods_RunnerTests.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
@@ -88,8 +135,9 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
- 88C6E7EC984B05C45C1623EF /* Pods */,
- ED95D893EDDFDFBC9F418474 /* Frameworks */,
+ 331C8082294A63A400263BE5 /* RunnerTests */,
+ 1DBAC857D18E7AFB7C3473E1 /* Pods */,
+ 5C03493D62CF6B32825B3C1A /* Frameworks */,
);
sourceTree = "";
};
@@ -97,6 +145,7 @@
isa = PBXGroup;
children = (
97C146EE1CF9000F007C117D /* Runner.app */,
+ 331C8081294A63A400263BE5 /* RunnerTests.xctest */,
);
name = Products;
sourceTree = "";
@@ -116,29 +165,40 @@
path = Runner;
sourceTree = "";
};
- ED95D893EDDFDFBC9F418474 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 4FEC24BF386335CE719F2AFC /* Pods_Runner.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
+ 331C8080294A63A400263BE5 /* RunnerTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
+ buildPhases = (
+ E1F13C766F241567F2F61E3D /* [CP] Check Pods Manifest.lock */,
+ 331C807D294A63A400263BE5 /* Sources */,
+ 331C807F294A63A400263BE5 /* Resources */,
+ 471BF0EA97915513F058CEDE /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 331C8086294A63A400263BE5 /* PBXTargetDependency */,
+ );
+ name = RunnerTests;
+ productName = RunnerTests;
+ productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
97C146ED1CF9000F007C117D /* Runner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
- A61448FDBD34FDE065678A88 /* [CP] Check Pods Manifest.lock */,
+ 5D89A6E85152148456659B87 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- B0E773C4D0DAB5464A1E17DA /* [CP] Embed Pods Frameworks */,
+ B9E70A7312FBC05D59AECC29 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -155,9 +215,14 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
+ BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1510;
ORGANIZATIONNAME = "";
TargetAttributes = {
+ 331C8080294A63A400263BE5 = {
+ CreatedOnToolsVersion = 14.0;
+ TestTargetID = 97C146ED1CF9000F007C117D;
+ };
97C146ED1CF9000F007C117D = {
CreatedOnToolsVersion = 7.3.1;
LastSwiftMigration = 1100;
@@ -178,11 +243,19 @@
projectRoot = "";
targets = (
97C146ED1CF9000F007C117D /* Runner */,
+ 331C8080294A63A400263BE5 /* RunnerTests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
+ 331C807F294A63A400263BE5 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
97C146EC1CF9000F007C117D /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -213,6 +286,28 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
+ 5D89A6E85152148456659B87 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -228,48 +323,56 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
- A61448FDBD34FDE065678A88 /* [CP] Check Pods Manifest.lock */ = {
+ B9E70A7312FBC05D59AECC29 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
+ name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
- B0E773C4D0DAB5464A1E17DA /* [CP] Embed Pods Frameworks */ = {
+ E1F13C766F241567F2F61E3D /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
- name = "[CP] Embed Pods Frameworks";
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
+ 331C807D294A63A400263BE5 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
97C146EA1CF9000F007C117D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -281,6 +384,14 @@
};
/* End PBXSourcesBuildPhase section */
+/* Begin PBXTargetDependency section */
+ 331C8086294A63A400263BE5 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 97C146ED1CF9000F007C117D /* Runner */;
+ targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
/* Begin PBXVariantGroup section */
97C146FA1CF9000F007C117D /* Main.storyboard */ = {
isa = PBXVariantGroup;
@@ -305,6 +416,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -334,6 +446,7 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -342,7 +455,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -360,19 +473,11 @@
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = EKR687JWFU;
ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
PRODUCT_BUNDLE_IDENTIFIER = dev.jerson.fastRsaExample;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -381,10 +486,61 @@
};
name = Profile;
};
+ 331C8088294A63A400263BE5 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E0C04A60AADE8D45465A6C48 /* Pods-RunnerTests.debug.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ GENERATE_INFOPLIST_FILE = YES;
+ MARKETING_VERSION = 1.0;
+ PRODUCT_BUNDLE_IDENTIFIER = dev.jerson.fastRsaExample.RunnerTests;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
+ };
+ name = Debug;
+ };
+ 331C8089294A63A400263BE5 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 64BCEF0B9F2D9C5A52639B5E /* Pods-RunnerTests.release.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ GENERATE_INFOPLIST_FILE = YES;
+ MARKETING_VERSION = 1.0;
+ PRODUCT_BUNDLE_IDENTIFIER = dev.jerson.fastRsaExample.RunnerTests;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
+ };
+ name = Release;
+ };
+ 331C808A294A63A400263BE5 /* Profile */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = C07A03E53C6DDD30A04AEB7A /* Pods-RunnerTests.profile.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ GENERATE_INFOPLIST_FILE = YES;
+ MARKETING_VERSION = 1.0;
+ PRODUCT_BUNDLE_IDENTIFIER = dev.jerson.fastRsaExample.RunnerTests;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
+ };
+ name = Profile;
+ };
97C147031CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -414,6 +570,7 @@
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
@@ -428,7 +585,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -440,6 +597,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -469,6 +627,7 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -477,11 +636,12 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
- SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
@@ -496,19 +656,11 @@
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = EKR687JWFU;
ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
PRODUCT_BUNDLE_IDENTIFIER = dev.jerson.fastRsaExample;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -527,19 +679,11 @@
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = EKR687JWFU;
ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
PRODUCT_BUNDLE_IDENTIFIER = dev.jerson.fastRsaExample;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -551,6 +695,16 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
+ 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 331C8088294A63A400263BE5 /* Debug */,
+ 331C8089294A63A400263BE5 /* Release */,
+ 331C808A294A63A400263BE5 /* Profile */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index e67b280..8e3ca5d 100644
--- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -27,8 +27,6 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
-
-
-
-
+
+
+
+
+
+
-
-
CFBundleDevelopmentRegion
$(DEVELOPMENT_LANGUAGE)
+ CFBundleDisplayName
+ Fast Rsa
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIdentifier
@@ -39,8 +41,6 @@
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight
- UIViewControllerBasedStatusBarAppearance
-
CADisableMinimumFrameDurationOnPhone
UIApplicationSupportsIndirectInputEvents
diff --git a/example/ios/RunnerTests/RunnerTests.swift b/example/ios/RunnerTests/RunnerTests.swift
new file mode 100644
index 0000000..3facf41
--- /dev/null
+++ b/example/ios/RunnerTests/RunnerTests.swift
@@ -0,0 +1,27 @@
+import Flutter
+import UIKit
+import XCTest
+
+
+@testable import fast_rsa
+
+// This demonstrates a simple unit test of the Swift portion of this plugin's implementation.
+//
+// See https://developer.apple.com/documentation/xctest for more information about using XCTest.
+
+class RunnerTests: XCTestCase {
+
+ func testGetPlatformVersion() {
+ let plugin = FastRsaPlugin()
+
+ let call = FlutterMethodCall(methodName: "getPlatformVersion", arguments: [])
+
+ let resultExpectation = expectation(description: "result block must be called.")
+ plugin.handle(call) { result in
+ XCTAssertEqual(result as! String, "iOS " + UIDevice.current.systemVersion)
+ resultExpectation.fulfill()
+ }
+ waitForExpectations(timeout: 1)
+ }
+
+}
diff --git a/example/lib/base64.dart b/example/lib/base64.dart
index cd73cec..c9a8de3 100644
--- a/example/lib/base64.dart
+++ b/example/lib/base64.dart
@@ -1,22 +1,15 @@
-import 'dart:typed_data';
-
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/input_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class Base64 extends StatefulWidget {
const Base64({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -38,7 +31,7 @@ class _Base64State extends State {
TitleWidget(widget.title),
InputWidget(
title: "Encode",
- key: Key("encode"),
+ key: const Key("encode"),
result: _encrypted,
onPressed: (controller) async {
var encrypted = await RSA.base64(
diff --git a/example/lib/convert_jwt.dart b/example/lib/convert_jwt.dart
index fe82afc..ad87b02 100644
--- a/example/lib/convert_jwt.dart
+++ b/example/lib/convert_jwt.dart
@@ -1,23 +1,15 @@
-import 'dart:convert';
-import 'dart:typed_data';
-
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class ConvertJWT extends StatefulWidget {
const ConvertJWT({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -45,7 +37,7 @@ class _ConvertJWTState extends State {
TitleWidget(widget.title),
ButtonWidget(
title: "To PrivateKey",
- key: Key("private"),
+ key: const Key("private"),
result: _private,
onPressed: () async {
var converted = await RSA.convertPrivateKeyToJWK(
@@ -59,7 +51,7 @@ class _ConvertJWTState extends State {
),
ButtonWidget(
title: "To PublicKey",
- key: Key("public"),
+ key: const Key("public"),
result: _public,
onPressed: () async {
var converted = await RSA.convertPublicKeyToJWK(
diff --git a/example/lib/convert_keypair.dart b/example/lib/convert_keypair.dart
index ee5fef1..72b7cbc 100644
--- a/example/lib/convert_keypair.dart
+++ b/example/lib/convert_keypair.dart
@@ -1,23 +1,16 @@
-import 'dart:convert';
-import 'dart:typed_data';
-
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/main.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class ConvertKeyPair extends StatefulWidget {
const ConvertKeyPair({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -44,7 +37,7 @@ class _ConvertKeyPairState extends State {
TitleWidget(widget.title),
ButtonWidget(
title: "To PKCS12",
- key: Key("pkcs12"),
+ key: const Key("pkcs12"),
result: _pkcs12,
onPressed: () async {
var result = await RSA.convertKeyPairToPKCS12(
diff --git a/example/lib/convert_private.dart b/example/lib/convert_private.dart
index a675862..9c0ab2b 100644
--- a/example/lib/convert_private.dart
+++ b/example/lib/convert_private.dart
@@ -1,23 +1,17 @@
import 'dart:convert';
-import 'dart:typed_data';
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class ConvertPrivate extends StatefulWidget {
const ConvertPrivate({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -42,7 +36,7 @@ class _ConvertPrivateState extends State {
TitleWidget(widget.title),
ButtonWidget(
title: "To JWT",
- key: Key("jwt"),
+ key: const Key("jwt"),
result: _jwt,
onPressed: () async {
var result = await RSA.convertPrivateKeyToJWK(
@@ -55,7 +49,7 @@ class _ConvertPrivateState extends State {
),
ButtonWidget(
title: "To PKCS1",
- key: Key("pkcs1"),
+ key: const Key("pkcs1"),
result: _pkcs1,
onPressed: () async {
var result = await RSA.convertPrivateKeyToPKCS1(
@@ -68,7 +62,7 @@ class _ConvertPrivateState extends State {
),
ButtonWidget(
title: "To PKCS8",
- key: Key("pkcs8"),
+ key: const Key("pkcs8"),
result: _pkcs8,
onPressed: () async {
var result = await RSA.convertPrivateKeyToPKCS8(
@@ -81,7 +75,7 @@ class _ConvertPrivateState extends State {
),
ButtonWidget(
title: "To PublicKey",
- key: Key("public-key"),
+ key: const Key("public-key"),
result: _publicKey,
onPressed: () async {
var result = await RSA.convertPrivateKeyToPublicKey(
diff --git a/example/lib/convert_public.dart b/example/lib/convert_public.dart
index a4f9787..d46292a 100644
--- a/example/lib/convert_public.dart
+++ b/example/lib/convert_public.dart
@@ -1,23 +1,17 @@
import 'dart:convert';
-import 'dart:typed_data';
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class ConvertPublic extends StatefulWidget {
const ConvertPublic({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -41,7 +35,7 @@ class _ConvertPublicState extends State {
TitleWidget(widget.title),
ButtonWidget(
title: "To JWT",
- key: Key("jwt"),
+ key: const Key("jwt"),
result: _jwt,
onPressed: () async {
var result = await RSA.convertPublicKeyToJWK(
@@ -54,7 +48,7 @@ class _ConvertPublicState extends State {
),
ButtonWidget(
title: "To PKCS1",
- key: Key("pkcs1"),
+ key: const Key("pkcs1"),
result: _pkcs1,
onPressed: () async {
var result = await RSA.convertPublicKeyToPKCS1(
@@ -67,7 +61,7 @@ class _ConvertPublicState extends State {
),
ButtonWidget(
title: "To PKIX",
- key: Key("pkix"),
+ key: const Key("pkix"),
result: _pkix,
onPressed: () async {
var result = await RSA.convertPublicKeyToPKIX(
diff --git a/example/lib/encrypt_decrypt_oaep.dart b/example/lib/encrypt_decrypt_oaep.dart
index c882564..deae0e5 100644
--- a/example/lib/encrypt_decrypt_oaep.dart
+++ b/example/lib/encrypt_decrypt_oaep.dart
@@ -1,22 +1,16 @@
-import 'dart:typed_data';
-
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/input_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class EncryptAndDecryptOAEP extends StatefulWidget {
const EncryptAndDecryptOAEP({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -39,7 +33,7 @@ class _EncryptAndDecryptOAEPState extends State {
TitleWidget(widget.title),
InputWidget(
title: "Encrypt",
- key: Key("encrypt"),
+ key: const Key("encrypt"),
result: _encrypted,
onPressed: (controller) async {
var encrypted = await RSA.encryptOAEP(
@@ -55,7 +49,7 @@ class _EncryptAndDecryptOAEPState extends State {
),
ButtonWidget(
title: "Decrypt",
- key: Key("decrypt"),
+ key: const Key("decrypt"),
result: _decrypted,
onPressed: () async {
var decrypted = await RSA.decryptOAEP(
diff --git a/example/lib/encrypt_decrypt_oaep_bytes.dart b/example/lib/encrypt_decrypt_oaep_bytes.dart
index 982f4df..4e559a5 100644
--- a/example/lib/encrypt_decrypt_oaep_bytes.dart
+++ b/example/lib/encrypt_decrypt_oaep_bytes.dart
@@ -1,23 +1,19 @@
import 'dart:convert';
-import 'dart:typed_data';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/input_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class EncryptAndDecryptOAEPBytes extends StatefulWidget {
const EncryptAndDecryptOAEPBytes({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -42,7 +38,7 @@ class _EncryptAndDecryptOAEPBytesState
TitleWidget(widget.title),
InputWidget(
title: "Encrypt",
- key: Key("encrypt"),
+ key: const Key("encrypt"),
result: _encrypted,
onPressed: (controller) async {
var encrypted = await RSA.encryptOAEPBytes(
@@ -58,7 +54,7 @@ class _EncryptAndDecryptOAEPBytesState
),
ButtonWidget(
title: "Decrypt",
- key: Key("decrypt"),
+ key: const Key("decrypt"),
result: _decrypted,
onPressed: () async {
var decrypted = await RSA.decryptOAEPBytes(
diff --git a/example/lib/encrypt_decrypt_pkcs.dart b/example/lib/encrypt_decrypt_pkcs.dart
index 8715c65..89e9904 100644
--- a/example/lib/encrypt_decrypt_pkcs.dart
+++ b/example/lib/encrypt_decrypt_pkcs.dart
@@ -1,22 +1,16 @@
-import 'dart:typed_data';
-
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/input_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class EncryptAndDecryptPKCS extends StatefulWidget {
const EncryptAndDecryptPKCS({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -39,7 +33,7 @@ class _EncryptAndDecryptPKCSState extends State {
TitleWidget(widget.title),
InputWidget(
title: "Encrypt",
- key: Key("encrypt"),
+ key: const Key("encrypt"),
result: _encrypted,
onPressed: (controller) async {
var encrypted = await RSA.encryptPKCS1v15(
@@ -53,7 +47,7 @@ class _EncryptAndDecryptPKCSState extends State {
),
ButtonWidget(
title: "Decrypt",
- key: Key("decrypt"),
+ key: const Key("decrypt"),
result: _decrypted,
onPressed: () async {
var decrypted = await RSA.decryptPKCS1v15(
diff --git a/example/lib/encrypt_decrypt_pkcs_bytes.dart b/example/lib/encrypt_decrypt_pkcs_bytes.dart
index 61930b9..0fb40d4 100644
--- a/example/lib/encrypt_decrypt_pkcs_bytes.dart
+++ b/example/lib/encrypt_decrypt_pkcs_bytes.dart
@@ -1,23 +1,19 @@
import 'dart:convert';
-import 'dart:typed_data';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/input_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class EncryptAndDecryptPKCSBytes extends StatefulWidget {
const EncryptAndDecryptPKCSBytes({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -42,7 +38,7 @@ class _EncryptAndDecryptPKCSBytesState
TitleWidget(widget.title),
InputWidget(
title: "Encrypt",
- key: Key("encrypt"),
+ key: const Key("encrypt"),
result: _encrypted,
onPressed: (controller) async {
var encrypted = await RSA.encryptPKCS1v15Bytes(
@@ -56,7 +52,7 @@ class _EncryptAndDecryptPKCSBytesState
),
ButtonWidget(
title: "Decrypt",
- key: Key("decrypt"),
+ key: const Key("decrypt"),
result: _decrypted,
onPressed: () async {
var decrypted = await RSA.decryptPKCS1v15Bytes(
diff --git a/example/lib/encrypt_sign_pkcs.dart b/example/lib/encrypt_sign_pkcs.dart
index 9ea4fa2..a2ff265 100644
--- a/example/lib/encrypt_sign_pkcs.dart
+++ b/example/lib/encrypt_sign_pkcs.dart
@@ -1,22 +1,16 @@
-import 'dart:typed_data';
-
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/input_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class SignAndVerifyPKCS extends StatefulWidget {
const SignAndVerifyPKCS({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -40,7 +34,7 @@ class _SignAndVerifyPKCSState extends State {
TitleWidget(widget.title),
InputWidget(
title: "Sign",
- key: Key("sign"),
+ key: const Key("sign"),
result: _signed,
onPressed: (controller) async {
var result = await RSA.signPKCS1v15(
@@ -56,7 +50,7 @@ class _SignAndVerifyPKCSState extends State {
),
ButtonWidget(
title: "Verify",
- key: Key("verify"),
+ key: const Key("verify"),
result: _valid,
onPressed: () async {
var result = await RSA.verifyPKCS1v15(
diff --git a/example/lib/encrypt_sign_pkcs_bytes.dart b/example/lib/encrypt_sign_pkcs_bytes.dart
index 860eb26..c74e373 100644
--- a/example/lib/encrypt_sign_pkcs_bytes.dart
+++ b/example/lib/encrypt_sign_pkcs_bytes.dart
@@ -1,23 +1,19 @@
import 'dart:convert';
-import 'dart:typed_data';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/input_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class SignAndVerifyPKCSBytes extends StatefulWidget {
const SignAndVerifyPKCSBytes({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -41,7 +37,7 @@ class _SignAndVerifyPKCSBytesState extends State {
TitleWidget(widget.title),
InputWidget(
title: "Sign",
- key: Key("sign"),
+ key: const Key("sign"),
result: _signed,
onPressed: (controller) async {
var result = await RSA.signPKCS1v15Bytes(
@@ -57,7 +53,7 @@ class _SignAndVerifyPKCSBytesState extends State {
),
ButtonWidget(
title: "Verify",
- key: Key("verify"),
+ key: const Key("verify"),
result: _valid,
onPressed: () async {
var result = await RSA.verifyPKCS1v15Bytes(
diff --git a/example/lib/encrypt_sign_pss.dart b/example/lib/encrypt_sign_pss.dart
index 2789eb9..1aa26e0 100644
--- a/example/lib/encrypt_sign_pss.dart
+++ b/example/lib/encrypt_sign_pss.dart
@@ -1,22 +1,16 @@
-import 'dart:typed_data';
-
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/input_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class SignAndVerifyPSS extends StatefulWidget {
const SignAndVerifyPSS({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -40,7 +34,7 @@ class _SignAndVerifyPSSState extends State {
TitleWidget(widget.title),
InputWidget(
title: "Sign",
- key: Key("sign"),
+ key: const Key("sign"),
result: _signed,
onPressed: (controller) async {
var result = await RSA.signPSS(
@@ -57,7 +51,7 @@ class _SignAndVerifyPSSState extends State {
),
ButtonWidget(
title: "Verify",
- key: Key("verify"),
+ key: const Key("verify"),
result: _valid,
onPressed: () async {
var result = await RSA.verifyPSS(
diff --git a/example/lib/encrypt_sign_pss_bytes.dart b/example/lib/encrypt_sign_pss_bytes.dart
index f44d1a6..ad7b606 100644
--- a/example/lib/encrypt_sign_pss_bytes.dart
+++ b/example/lib/encrypt_sign_pss_bytes.dart
@@ -1,23 +1,19 @@
import 'dart:convert';
-import 'dart:typed_data';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/input_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class SignAndVerifyPSSBytes extends StatefulWidget {
const SignAndVerifyPSSBytes({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -41,7 +37,7 @@ class _SignAndVerifyPSSBytesState extends State {
TitleWidget(widget.title),
InputWidget(
title: "Sign",
- key: Key("sign"),
+ key: const Key("sign"),
result: _signed,
onPressed: (controller) async {
var result = await RSA.signPSSBytes(
@@ -58,7 +54,7 @@ class _SignAndVerifyPSSBytesState extends State {
),
ButtonWidget(
title: "Verify",
- key: Key("verify"),
+ key: const Key("verify"),
result: _valid,
onPressed: () async {
var result = await RSA.verifyPSSBytes(
diff --git a/example/lib/generate.dart b/example/lib/generate.dart
index 540e1f6..78622e6 100644
--- a/example/lib/generate.dart
+++ b/example/lib/generate.dart
@@ -1,21 +1,15 @@
-import 'dart:convert';
-
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/button_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class Generate extends StatefulWidget {
const Generate({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -37,7 +31,7 @@ class _GenerateState extends State {
TitleWidget(widget.title),
ButtonWidget(
title: "Generate",
- key: Key("action"),
+ key: const Key("action"),
result: _keyPair.privateKey + _keyPair.publicKey,
onPressed: () async {
var keyPair = await RSA.generate(2048);
diff --git a/example/lib/hash.dart b/example/lib/hash.dart
index 37858a4..db9d9b4 100644
--- a/example/lib/hash.dart
+++ b/example/lib/hash.dart
@@ -1,21 +1,14 @@
-import 'dart:typed_data';
-
-import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/main.dart';
-import 'package:rsa_example/shared/button_widget.dart';
-import 'package:rsa_example/shared/input_widget.dart';
-import 'package:rsa_example/shared/title_widget.dart';
+import 'package:fast_rsa_example/shared/input_widget.dart';
+import 'package:fast_rsa_example/shared/title_widget.dart';
class HashExample extends StatefulWidget {
const HashExample({
- Key? key,
+ super.key,
required this.title,
required PKCS12KeyPair keyPair,
- }) : keyPair = keyPair,
- super(key: key);
+ }) : keyPair = keyPair;
final PKCS12KeyPair keyPair;
final String title;
@@ -37,7 +30,7 @@ class _HashExampleState extends State {
TitleWidget(widget.title),
InputWidget(
title: "Encode",
- key: Key("encode"),
+ key: const Key("encode"),
result: _encrypted,
onPressed: (controller) async {
var encrypted = await RSA.hash(controller.text, Hash.SHA512);
diff --git a/example/lib/main.dart b/example/lib/main.dart
index 53fb825..959bfed 100644
--- a/example/lib/main.dart
+++ b/example/lib/main.dart
@@ -1,25 +1,23 @@
-import 'dart:convert';
import 'dart:io';
-import 'dart:typed_data';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:fast_rsa/fast_rsa.dart';
-import 'package:rsa_example/base64.dart';
-import 'package:rsa_example/convert_jwt.dart';
-import 'package:rsa_example/convert_keypair.dart';
-import 'package:rsa_example/convert_private.dart';
-import 'package:rsa_example/convert_public.dart';
-import 'package:rsa_example/encrypt_decrypt_oaep.dart';
-import 'package:rsa_example/encrypt_decrypt_oaep_bytes.dart';
-import 'package:rsa_example/encrypt_decrypt_pkcs.dart';
-import 'package:rsa_example/encrypt_decrypt_pkcs_bytes.dart';
-import 'package:rsa_example/encrypt_sign_pkcs.dart';
-import 'package:rsa_example/encrypt_sign_pkcs_bytes.dart';
-import 'package:rsa_example/encrypt_sign_pss.dart';
-import 'package:rsa_example/encrypt_sign_pss_bytes.dart';
-import 'package:rsa_example/generate.dart';
-import 'package:rsa_example/hash.dart';
+import 'package:fast_rsa_example/base64.dart';
+import 'package:fast_rsa_example/convert_jwt.dart';
+import 'package:fast_rsa_example/convert_keypair.dart';
+import 'package:fast_rsa_example/convert_private.dart';
+import 'package:fast_rsa_example/convert_public.dart';
+import 'package:fast_rsa_example/encrypt_decrypt_oaep.dart';
+import 'package:fast_rsa_example/encrypt_decrypt_oaep_bytes.dart';
+import 'package:fast_rsa_example/encrypt_decrypt_pkcs.dart';
+import 'package:fast_rsa_example/encrypt_decrypt_pkcs_bytes.dart';
+import 'package:fast_rsa_example/encrypt_sign_pkcs.dart';
+import 'package:fast_rsa_example/encrypt_sign_pkcs_bytes.dart';
+import 'package:fast_rsa_example/encrypt_sign_pss.dart';
+import 'package:fast_rsa_example/encrypt_sign_pss_bytes.dart';
+import 'package:fast_rsa_example/generate.dart';
+import 'package:fast_rsa_example/hash.dart';
const password = '123456789';
const pkcs12 =
@@ -116,10 +114,12 @@ void main() {
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
}
- runApp(new MyApp());
+ runApp(const MyApp());
}
class MyApp extends StatefulWidget {
+ const MyApp({super.key});
+
@override
_MyAppState createState() => _MyAppState();
}
@@ -157,82 +157,82 @@ class _MyAppState extends State {
title: const Text('RSA example app'),
),
body: ListView(
- key: Key("list"),
+ key: const Key("list"),
children: [
EncryptAndDecryptOAEP(
title: "Encrypt and Decrypt OAEP",
keyPair: _pkcs12KeyPair,
- key: Key("encrypt-oaep"),
+ key: const Key("encrypt-oaep"),
),
EncryptAndDecryptOAEPBytes(
title: "Encrypt and Decrypt OAEP Bytes",
keyPair: _pkcs12KeyPair,
- key: Key("encrypt-oaep-bytes"),
+ key: const Key("encrypt-oaep-bytes"),
),
EncryptAndDecryptPKCS(
title: "Encrypt and Decrypt PKCS1v15",
keyPair: _pkcs12KeyPair,
- key: Key("encrypt-pkcs"),
+ key: const Key("encrypt-pkcs"),
),
EncryptAndDecryptPKCSBytes(
title: "Encrypt and Decrypt PKCS1v15 Bytes",
keyPair: _pkcs12KeyPair,
- key: Key("encrypt-pkcs-bytes"),
+ key: const Key("encrypt-pkcs-bytes"),
),
SignAndVerifyPSS(
title: "Sign and Verify PSS",
keyPair: _pkcs12KeyPair,
- key: Key("sign-pss"),
+ key: const Key("sign-pss"),
),
SignAndVerifyPSSBytes(
title: "Sign and Verify PSS Bytes",
keyPair: _pkcs12KeyPair,
- key: Key("sign-pss-bytes"),
+ key: const Key("sign-pss-bytes"),
),
SignAndVerifyPKCS(
title: "Sign and Verify PKCS",
keyPair: _pkcs12KeyPair,
- key: Key("sign-pkcs"),
+ key: const Key("sign-pkcs"),
),
SignAndVerifyPKCSBytes(
title: "Sign and Verify PKCS Bytes",
keyPair: _pkcs12KeyPair,
- key: Key("sign-pkcs-bytes"),
+ key: const Key("sign-pkcs-bytes"),
),
Base64(
title: "Base64",
keyPair: _pkcs12KeyPair,
- key: Key("base64"),
+ key: const Key("base64"),
),
HashExample(
title: "Hash",
keyPair: _pkcs12KeyPair,
- key: Key("hash"),
+ key: const Key("hash"),
),
Generate(
title: "Generate",
keyPair: _pkcs12KeyPair,
- key: Key("generate"),
+ key: const Key("generate"),
),
ConvertPrivate(
title: "Convert PrivateKey",
keyPair: _pkcs12KeyPair,
- key: Key("convert-private"),
+ key: const Key("convert-private"),
),
ConvertPublic(
title: "Convert PublicKey",
keyPair: _pkcs12KeyPair,
- key: Key("convert-public"),
+ key: const Key("convert-public"),
),
ConvertJWT(
title: "Convert JWT",
keyPair: _pkcs12KeyPair,
- key: Key("convert-jwt"),
+ key: const Key("convert-jwt"),
),
ConvertKeyPair(
title: "Convert KeyPair",
keyPair: _pkcs12KeyPair,
- key: Key("convert-keypair"),
+ key: const Key("convert-keypair"),
),
],
),
diff --git a/example/lib/shared/button_widget.dart b/example/lib/shared/button_widget.dart
index 5104479..b903afe 100644
--- a/example/lib/shared/button_widget.dart
+++ b/example/lib/shared/button_widget.dart
@@ -1,15 +1,13 @@
-import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class ButtonWidget extends StatefulWidget {
const ButtonWidget({
- Key? key,
+ super.key,
required this.result,
required String title,
required Function onPressed,
}) : onPressed = onPressed,
- title = title,
- super(key: key);
+ title = title;
final Function onPressed;
final String title;
@@ -29,23 +27,23 @@ class _ButtonWidgetState extends State {
child: Column(
children: [
ElevatedButton(
- child: Text(widget.title),
onPressed: () async {
await widget.onPressed();
setState(() {
_loading = false;
});
},
- key: Key("button"),
+ key: const Key("button"),
+ child: Text(widget.title),
),
(_loading)
? Text(
widget.result,
- key: Key("loading"),
+ key: const Key("loading"),
)
: Text(
widget.result,
- key: Key("result"),
+ key: const Key("result"),
)
],
),
diff --git a/example/lib/shared/input_widget.dart b/example/lib/shared/input_widget.dart
index e7aa4b5..85d1ecb 100644
--- a/example/lib/shared/input_widget.dart
+++ b/example/lib/shared/input_widget.dart
@@ -1,15 +1,13 @@
-import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class InputWidget extends StatefulWidget {
const InputWidget({
- Key? key,
+ super.key,
required this.result,
required String title,
required Function(TextEditingController) onPressed,
}) : onPressed = onPressed,
- title = title,
- super(key: key);
+ title = title;
final Function(TextEditingController) onPressed;
final String title;
@@ -47,12 +45,11 @@ class _InputWidgetState extends State {
TextField(
autofocus: false,
focusNode: _focusNode,
- decoration: InputDecoration(labelText: "Message"),
+ decoration: const InputDecoration(labelText: "Message"),
controller: _controller,
- key: Key("message"),
+ key: const Key("message"),
),
ElevatedButton(
- child: Text(widget.title),
onPressed: () async {
_focusNode!.unfocus();
await widget.onPressed(_controller);
@@ -60,16 +57,17 @@ class _InputWidgetState extends State {
_loading = false;
});
},
- key: Key("button"),
+ key: const Key("button"),
+ child: Text(widget.title),
),
(_loading)
? Text(
widget.result,
- key: Key("loading"),
+ key: const Key("loading"),
)
: Text(
widget.result,
- key: Key("result"),
+ key: const Key("result"),
)
],
),
diff --git a/example/lib/shared/title_widget.dart b/example/lib/shared/title_widget.dart
index b9bd8da..cb38f95 100644
--- a/example/lib/shared/title_widget.dart
+++ b/example/lib/shared/title_widget.dart
@@ -3,8 +3,8 @@ import 'package:flutter/cupertino.dart';
class TitleWidget extends StatelessWidget {
const TitleWidget(
this.title, {
- Key? key,
- }) : super(key: key);
+ super.key,
+ });
final String title;
@@ -14,7 +14,7 @@ class TitleWidget extends StatelessWidget {
padding: const EdgeInsets.only(top: 10),
child: Text(
title,
- style: TextStyle(
+ style: const TextStyle(
fontSize: 20,
),
),
diff --git a/example/linux/.gitignore b/example/linux/.gitignore
index b11f5d1..d3896c9 100644
--- a/example/linux/.gitignore
+++ b/example/linux/.gitignore
@@ -1,2 +1 @@
flutter/ephemeral
-cmake-build-debug
\ No newline at end of file
diff --git a/example/linux/CMakeLists.txt b/example/linux/CMakeLists.txt
index 8e8e89f..7145e0e 100644
--- a/example/linux/CMakeLists.txt
+++ b/example/linux/CMakeLists.txt
@@ -1,14 +1,32 @@
+# Project-level configuration.
cmake_minimum_required(VERSION 3.10)
project(runner LANGUAGES CXX)
+# The name of the executable created for the application. Change this to change
+# the on-disk name of your application.
set(BINARY_NAME "fast_rsa_example")
+# The unique GTK application identifier for this application. See:
+# https://wiki.gnome.org/HowDoI/ChooseApplicationID
set(APPLICATION_ID "dev.jerson.fast_rsa")
+# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
+# versions of CMake.
cmake_policy(SET CMP0063 NEW)
+# Load bundled libraries from the lib/ directory relative to the binary.
set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")
-# Configure build options.
+# Root filesystem for cross-building.
+if(FLUTTER_TARGET_PLATFORM_SYSROOT)
+ set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT})
+ set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+endif()
+
+# Define build configuration options.
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE "Debug" CACHE
STRING "Flutter build mode" FORCE)
@@ -17,6 +35,10 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif()
# Compilation settings that should be applied to most targets.
+#
+# Be cautious about adding new options here, as plugins use this function by
+# default. In most cases, you should add new options to specific targets instead
+# of modifying this function.
function(APPLY_STANDARD_SETTINGS TARGET)
target_compile_features(${TARGET} PUBLIC cxx_std_14)
target_compile_options(${TARGET} PRIVATE -Wall -Werror)
@@ -24,9 +46,8 @@ function(APPLY_STANDARD_SETTINGS TARGET)
target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>")
endfunction()
-set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
-
# Flutter library and tool build rules.
+set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
add_subdirectory(${FLUTTER_MANAGED_DIR})
# System-level dependencies.
@@ -35,16 +56,27 @@ pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}")
-# Application build
+# Define the application target. To change its name, change BINARY_NAME above,
+# not the value here, or `flutter run` will no longer work.
+#
+# Any new source files that you add to the application should be added here.
add_executable(${BINARY_NAME}
"main.cc"
"my_application.cc"
"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
)
+
+# Apply the standard set of build settings. This can be removed for applications
+# that need different build settings.
apply_standard_settings(${BINARY_NAME})
+
+# Add dependency libraries. Add any application-specific dependencies here.
target_link_libraries(${BINARY_NAME} PRIVATE flutter)
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)
+
+# Run the Flutter tool portions of the build. This must not be removed.
add_dependencies(${BINARY_NAME} flutter_assemble)
+
# Only the install-generated bundle's copy of the executable will launch
# correctly, since the resources must in the right relative locations. To avoid
# people trying to run the unbundled copy, put it in a subdirectory instead of
@@ -54,6 +86,9 @@ set_target_properties(${BINARY_NAME}
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run"
)
+# Enable the test target.
+set(include_fast_rsa_tests TRUE)
+
# Generated plugin build rules, which manage building the plugins and adding
# them to the application.
include(flutter/generated_plugins.cmake)
@@ -84,11 +119,17 @@ install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}
install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
COMPONENT Runtime)
-if(PLUGIN_BUNDLED_LIBRARIES)
- install(FILES "${PLUGIN_BUNDLED_LIBRARIES}"
+foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
+ install(FILES "${bundled_library}"
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
COMPONENT Runtime)
-endif()
+endforeach(bundled_library)
+
+# Copy the native assets provided by the build.dart from all packages.
+set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/")
+install(DIRECTORY "${NATIVE_ASSETS_DIR}"
+ DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
+ COMPONENT Runtime)
# Fully re-copy the assets directory on each build to avoid having stale files
# from a previous install.
diff --git a/example/linux/flutter/CMakeLists.txt b/example/linux/flutter/CMakeLists.txt
index 5b465c7..d5bd016 100644
--- a/example/linux/flutter/CMakeLists.txt
+++ b/example/linux/flutter/CMakeLists.txt
@@ -1,3 +1,4 @@
+# This file controls Flutter-level build steps. It should not be edited.
cmake_minimum_required(VERSION 3.10)
set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")
@@ -24,7 +25,6 @@ find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
-pkg_check_modules(BLKID REQUIRED IMPORTED_TARGET blkid)
set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so")
@@ -66,7 +66,6 @@ target_link_libraries(flutter INTERFACE
PkgConfig::GTK
PkgConfig::GLIB
PkgConfig::GIO
- PkgConfig::BLKID
)
add_dependencies(flutter flutter_assemble)
diff --git a/example/linux/my_application.cc b/example/linux/my_application.cc
index cc79836..68fb8f3 100644
--- a/example/linux/my_application.cc
+++ b/example/linux/my_application.cc
@@ -29,22 +29,21 @@ static void my_application_activate(GApplication* application) {
// if future cases occur).
gboolean use_header_bar = TRUE;
#ifdef GDK_WINDOWING_X11
- GdkScreen *screen = gtk_window_get_screen(window);
+ GdkScreen* screen = gtk_window_get_screen(window);
if (GDK_IS_X11_SCREEN(screen)) {
- const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);
- if (g_strcmp0(wm_name, "GNOME Shell") != 0) {
- use_header_bar = FALSE;
- }
+ const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);
+ if (g_strcmp0(wm_name, "GNOME Shell") != 0) {
+ use_header_bar = FALSE;
+ }
}
#endif
if (use_header_bar) {
- GtkHeaderBar *header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
+ GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
gtk_widget_show(GTK_WIDGET(header_bar));
gtk_header_bar_set_title(header_bar, "fast_rsa_example");
gtk_header_bar_set_show_close_button(header_bar, TRUE);
gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
- }
- else {
+ } else {
gtk_window_set_title(window, "fast_rsa_example");
}
@@ -64,7 +63,7 @@ static void my_application_activate(GApplication* application) {
}
// Implements GApplication::local_command_line.
-static gboolean my_application_local_command_line(GApplication* application, gchar ***arguments, int *exit_status) {
+static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) {
MyApplication* self = MY_APPLICATION(application);
// Strip out the first argument as it is the binary name.
self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);
@@ -82,8 +81,26 @@ static gboolean my_application_local_command_line(GApplication* application, gch
return TRUE;
}
+// Implements GApplication::startup.
+static void my_application_startup(GApplication* application) {
+ //MyApplication* self = MY_APPLICATION(object);
+
+ // Perform any actions required at application startup.
+
+ G_APPLICATION_CLASS(my_application_parent_class)->startup(application);
+}
+
+// Implements GApplication::shutdown.
+static void my_application_shutdown(GApplication* application) {
+ //MyApplication* self = MY_APPLICATION(object);
+
+ // Perform any actions required at application shutdown.
+
+ G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application);
+}
+
// Implements GObject::dispose.
-static void my_application_dispose(GObject *object) {
+static void my_application_dispose(GObject* object) {
MyApplication* self = MY_APPLICATION(object);
g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev);
G_OBJECT_CLASS(my_application_parent_class)->dispose(object);
@@ -92,6 +109,8 @@ static void my_application_dispose(GObject *object) {
static void my_application_class_init(MyApplicationClass* klass) {
G_APPLICATION_CLASS(klass)->activate = my_application_activate;
G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line;
+ G_APPLICATION_CLASS(klass)->startup = my_application_startup;
+ G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown;
G_OBJECT_CLASS(klass)->dispose = my_application_dispose;
}
@@ -100,5 +119,6 @@ static void my_application_init(MyApplication* self) {}
MyApplication* my_application_new() {
return MY_APPLICATION(g_object_new(my_application_get_type(),
"application-id", APPLICATION_ID,
+ "flags", G_APPLICATION_NON_UNIQUE,
nullptr));
}
diff --git a/example/macos/.gitignore b/example/macos/.gitignore
index d2fd377..746adbb 100644
--- a/example/macos/.gitignore
+++ b/example/macos/.gitignore
@@ -3,4 +3,5 @@
**/Pods/
# Xcode-related
+**/dgph
**/xcuserdata/
diff --git a/example/macos/Podfile b/example/macos/Podfile
index 049abe2..c795730 100644
--- a/example/macos/Podfile
+++ b/example/macos/Podfile
@@ -31,6 +31,9 @@ target 'Runner' do
use_modular_headers!
flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
+ target 'RunnerTests' do
+ inherit! :search_paths
+ end
end
post_install do |installer|
diff --git a/example/macos/Podfile.lock b/example/macos/Podfile.lock
index 35bbd49..2694a04 100644
--- a/example/macos/Podfile.lock
+++ b/example/macos/Podfile.lock
@@ -17,6 +17,6 @@ SPEC CHECKSUMS:
fast_rsa: 47a50bec1042c8c01726007dc0590a078418f997
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
-PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7
+PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367
-COCOAPODS: 1.14.3
+COCOAPODS: 1.16.2
diff --git a/example/macos/Runner.xcodeproj/project.pbxproj b/example/macos/Runner.xcodeproj/project.pbxproj
index 5b7942a..3067ac0 100644
--- a/example/macos/Runner.xcodeproj/project.pbxproj
+++ b/example/macos/Runner.xcodeproj/project.pbxproj
@@ -21,15 +21,24 @@
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
+ 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
- 7FA8933A8AAEA16E7010F33A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B619D1E879AF252528F1DA2 /* Pods_Runner.framework */; };
+ D513248D83D00FFE403F646E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67FBED5FFE3FD061D4D9BF86 /* Pods_Runner.framework */; };
+ FFEB22598ED272D60D3970F9 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FF4C46A4E6081901EF13720 /* Pods_RunnerTests.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
+ 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 33CC10EC2044A3C60003C045;
+ remoteInfo = Runner;
+ };
33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
@@ -53,7 +62,10 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
- 072C18C0B887A2C3A954E860 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
+ 10C036BFF84D6B5ACCF9D54C /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
+ 24364AF19FFC02C96EB6012B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; };
+ 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; };
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; };
33CC10ED2044A3C60003C045 /* fast_rsa_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = fast_rsa_example.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -68,25 +80,58 @@
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; };
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; };
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; };
+ 5BBD76FFE6AEFFDAB9248D01 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; };
+ 5FF4C46A4E6081901EF13720 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 67FBED5FFE3FD061D4D9BF86 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 77FC758A38A9025736EC7F84 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; };
- 7B619D1E879AF252528F1DA2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 7DB619C4C40E163C5AAE4DD0 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; };
- 9D4D1945EE598D0E6BD299D3 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
- B1C0F750E5CDE8B061B9D3DD /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
+ 9B4154FCAF6CD00196226B19 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 331C80D2294CF70F00263BE5 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ FFEB22598ED272D60D3970F9 /* Pods_RunnerTests.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
33CC10EA2044A3C60003C045 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 7FA8933A8AAEA16E7010F33A /* Pods_Runner.framework in Frameworks */,
+ D513248D83D00FFE403F646E /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ 1EE460474DE18DE7AD635132 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 7DB619C4C40E163C5AAE4DD0 /* Pods-Runner.debug.xcconfig */,
+ 9B4154FCAF6CD00196226B19 /* Pods-Runner.release.xcconfig */,
+ 10C036BFF84D6B5ACCF9D54C /* Pods-Runner.profile.xcconfig */,
+ 24364AF19FFC02C96EB6012B /* Pods-RunnerTests.debug.xcconfig */,
+ 77FC758A38A9025736EC7F84 /* Pods-RunnerTests.release.xcconfig */,
+ 5BBD76FFE6AEFFDAB9248D01 /* Pods-RunnerTests.profile.xcconfig */,
+ );
+ name = Pods;
+ path = Pods;
+ sourceTree = "";
+ };
+ 331C80D6294CF71000263BE5 /* RunnerTests */ = {
+ isa = PBXGroup;
+ children = (
+ 331C80D7294CF71000263BE5 /* RunnerTests.swift */,
+ );
+ path = RunnerTests;
+ sourceTree = "";
+ };
33BA886A226E78AF003329D5 /* Configs */ = {
isa = PBXGroup;
children = (
@@ -103,9 +148,10 @@
children = (
33FAB671232836740065AC1E /* Runner */,
33CEB47122A05771004F2AC0 /* Flutter */,
+ 331C80D6294CF71000263BE5 /* RunnerTests */,
33CC10EE2044A3C60003C045 /* Products */,
D73912EC22F37F3D000D13A0 /* Frameworks */,
- F589DC0DFE3DFFA333F5A0B1 /* Pods */,
+ 1EE460474DE18DE7AD635132 /* Pods */,
);
sourceTree = "";
};
@@ -113,6 +159,7 @@
isa = PBXGroup;
children = (
33CC10ED2044A3C60003C045 /* fast_rsa_example.app */,
+ 331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
);
name = Products;
sourceTree = "";
@@ -155,36 +202,45 @@
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
- 7B619D1E879AF252528F1DA2 /* Pods_Runner.framework */,
+ 67FBED5FFE3FD061D4D9BF86 /* Pods_Runner.framework */,
+ 5FF4C46A4E6081901EF13720 /* Pods_RunnerTests.framework */,
);
name = Frameworks;
sourceTree = "";
};
- F589DC0DFE3DFFA333F5A0B1 /* Pods */ = {
- isa = PBXGroup;
- children = (
- 9D4D1945EE598D0E6BD299D3 /* Pods-Runner.debug.xcconfig */,
- 072C18C0B887A2C3A954E860 /* Pods-Runner.release.xcconfig */,
- B1C0F750E5CDE8B061B9D3DD /* Pods-Runner.profile.xcconfig */,
- );
- name = Pods;
- path = Pods;
- sourceTree = "";
- };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
+ 331C80D4294CF70F00263BE5 /* RunnerTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
+ buildPhases = (
+ DAAE16A0FD6D03459740560F /* [CP] Check Pods Manifest.lock */,
+ 331C80D1294CF70F00263BE5 /* Sources */,
+ 331C80D2294CF70F00263BE5 /* Frameworks */,
+ 331C80D3294CF70F00263BE5 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 331C80DA294CF71000263BE5 /* PBXTargetDependency */,
+ );
+ name = RunnerTests;
+ productName = RunnerTests;
+ productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
33CC10EC2044A3C60003C045 /* Runner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
- F6AEAB12476EFE8C5EF74917 /* [CP] Check Pods Manifest.lock */,
+ 60D42B94DAADE688FCC1EF1D /* [CP] Check Pods Manifest.lock */,
33CC10E92044A3C60003C045 /* Sources */,
33CC10EA2044A3C60003C045 /* Frameworks */,
33CC10EB2044A3C60003C045 /* Resources */,
33CC110E2044A8840003C045 /* Bundle Framework */,
3399D490228B24CF009A79C7 /* ShellScript */,
- F165908E81CDC34AEA5B7F7E /* [CP] Embed Pods Frameworks */,
+ 8B0C545998C03924B6109418 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -202,10 +258,15 @@
33CC10E52044A3C60003C045 /* Project object */ = {
isa = PBXProject;
attributes = {
+ BuildIndependentTargetsInParallel = YES;
LastSwiftUpdateCheck = 0920;
LastUpgradeCheck = 1510;
- ORGANIZATIONNAME = "The Flutter Authors";
+ ORGANIZATIONNAME = "";
TargetAttributes = {
+ 331C80D4294CF70F00263BE5 = {
+ CreatedOnToolsVersion = 14.0;
+ TestTargetID = 33CC10EC2044A3C60003C045;
+ };
33CC10EC2044A3C60003C045 = {
CreatedOnToolsVersion = 9.2;
LastSwiftMigration = 1100;
@@ -223,7 +284,7 @@
};
};
buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
- compatibilityVersion = "Xcode 8.0";
+ compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
@@ -236,12 +297,20 @@
projectRoot = "";
targets = (
33CC10EC2044A3C60003C045 /* Runner */,
+ 331C80D4294CF70F00263BE5 /* RunnerTests */,
33CC111A2044C6BA0003C045 /* Flutter Assemble */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
+ 331C80D3294CF70F00263BE5 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
33CC10EB2044A3C60003C045 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -292,27 +361,46 @@
shellPath = /bin/sh;
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
};
- F165908E81CDC34AEA5B7F7E /* [CP] Embed Pods Frameworks */ = {
+ 60D42B94DAADE688FCC1EF1D /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
+ inputFileListPaths = (
+ );
inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
- "${PODS_ROOT}/../Flutter/ephemeral/.symlinks/plugins/fast_rsa/macos/librsa_bridge.dylib",
- "${BUILT_PRODUCTS_DIR}/fast_rsa/fast_rsa.framework",
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
);
- name = "[CP] Embed Pods Frameworks";
outputPaths = (
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/librsa_bridge.dylib",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/fast_rsa.framework",
+ "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ 8B0C545998C03924B6109418 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
- F6AEAB12476EFE8C5EF74917 /* [CP] Check Pods Manifest.lock */ = {
+ DAAE16A0FD6D03459740560F /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -327,7 +415,7 @@
outputFileListPaths = (
);
outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+ "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -337,6 +425,14 @@
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
+ 331C80D1294CF70F00263BE5 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
33CC10E92044A3C60003C045 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -350,6 +446,11 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
+ 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 33CC10EC2044A3C60003C045 /* Runner */;
+ targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */;
+ };
33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
@@ -370,11 +471,57 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
+ 331C80DB294CF71000263BE5 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 24364AF19FFC02C96EB6012B /* Pods-RunnerTests.debug.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CURRENT_PROJECT_VERSION = 1;
+ GENERATE_INFOPLIST_FILE = YES;
+ MARKETING_VERSION = 1.0;
+ PRODUCT_BUNDLE_IDENTIFIER = dev.jerson.fastRsaExample.RunnerTests;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/fast_rsa_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/fast_rsa_example";
+ };
+ name = Debug;
+ };
+ 331C80DC294CF71000263BE5 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 77FC758A38A9025736EC7F84 /* Pods-RunnerTests.release.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CURRENT_PROJECT_VERSION = 1;
+ GENERATE_INFOPLIST_FILE = YES;
+ MARKETING_VERSION = 1.0;
+ PRODUCT_BUNDLE_IDENTIFIER = dev.jerson.fastRsaExample.RunnerTests;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/fast_rsa_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/fast_rsa_example";
+ };
+ name = Release;
+ };
+ 331C80DD294CF71000263BE5 /* Profile */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 5BBD76FFE6AEFFDAB9248D01 /* Pods-RunnerTests.profile.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CURRENT_PROJECT_VERSION = 1;
+ GENERATE_INFOPLIST_FILE = YES;
+ MARKETING_VERSION = 1.0;
+ PRODUCT_BUNDLE_IDENTIFIER = dev.jerson.fastRsaExample.RunnerTests;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/fast_rsa_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/fast_rsa_example";
+ };
+ name = Profile;
+ };
338D0CE9231458BD00FA5F75 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
@@ -398,9 +545,11 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
+ DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -425,10 +574,6 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter/ephemeral",
- );
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -452,6 +597,7 @@
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
@@ -475,9 +621,11 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
+ DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
@@ -505,6 +653,7 @@
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
@@ -528,9 +677,11 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
+ DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -555,10 +706,6 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter/ephemeral",
- );
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -579,10 +726,6 @@
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter/ephemeral",
- );
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -612,6 +755,16 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
+ 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 331C80DB294CF71000263BE5 /* Debug */,
+ 331C80DC294CF71000263BE5 /* Release */,
+ 331C80DD294CF71000263BE5 /* Profile */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
diff --git a/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index 99d7eac..d05e0a0 100644
--- a/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -27,18 +27,6 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
Bool {
return true
diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
index 3c4935a..82b6f9d 100644
Binary files a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png differ
diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
index ed4cc16..13b35eb 100644
Binary files a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png differ
diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
index 483be61..0a3f5fa 100644
Binary files a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png differ
diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
index bcbf36d..bdb5722 100644
Binary files a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png differ
diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
index 9c0a652..f083318 100644
Binary files a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png differ
diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
index e71a726..326c0e7 100644
Binary files a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png differ
diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
index 8a31fe2..2f1632c 100644
Binary files a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png differ
diff --git a/example/macos/Runner/Base.lproj/MainMenu.xib b/example/macos/Runner/Base.lproj/MainMenu.xib
index 537341a..80e867a 100644
--- a/example/macos/Runner/Base.lproj/MainMenu.xib
+++ b/example/macos/Runner/Base.lproj/MainMenu.xib
@@ -323,6 +323,10 @@
+
diff --git a/example/macos/Runner/Configs/AppInfo.xcconfig b/example/macos/Runner/Configs/AppInfo.xcconfig
index 4cc09cd..df2180e 100644
--- a/example/macos/Runner/Configs/AppInfo.xcconfig
+++ b/example/macos/Runner/Configs/AppInfo.xcconfig
@@ -11,4 +11,4 @@ PRODUCT_NAME = fast_rsa_example
PRODUCT_BUNDLE_IDENTIFIER = dev.jerson.fastRsaExample
// The copyright displayed in application information
-PRODUCT_COPYRIGHT = Copyright © 2020 dev.jerson. All rights reserved.
+PRODUCT_COPYRIGHT = Copyright © 2024 dev.jerson. All rights reserved.
diff --git a/example/macos/Runner/MainFlutterWindow.swift b/example/macos/Runner/MainFlutterWindow.swift
index 2722837..3cc05eb 100644
--- a/example/macos/Runner/MainFlutterWindow.swift
+++ b/example/macos/Runner/MainFlutterWindow.swift
@@ -3,7 +3,7 @@ import FlutterMacOS
class MainFlutterWindow: NSWindow {
override func awakeFromNib() {
- let flutterViewController = FlutterViewController.init()
+ let flutterViewController = FlutterViewController()
let windowFrame = self.frame
self.contentViewController = flutterViewController
self.setFrame(windowFrame, display: true)
diff --git a/example/macos/RunnerTests/RunnerTests.swift b/example/macos/RunnerTests/RunnerTests.swift
new file mode 100644
index 0000000..ae072df
--- /dev/null
+++ b/example/macos/RunnerTests/RunnerTests.swift
@@ -0,0 +1,28 @@
+import Cocoa
+import FlutterMacOS
+import XCTest
+
+
+@testable import fast_rsa
+
+// This demonstrates a simple unit test of the Swift portion of this plugin's implementation.
+//
+// See https://developer.apple.com/documentation/xctest for more information about using XCTest.
+
+class RunnerTests: XCTestCase {
+
+ func testGetPlatformVersion() {
+ let plugin = FastRsaPlugin()
+
+ let call = FlutterMethodCall(methodName: "getPlatformVersion", arguments: [])
+
+ let resultExpectation = expectation(description: "result block must be called.")
+ plugin.handle(call) { result in
+ XCTAssertEqual(result as! String,
+ "macOS " + ProcessInfo.processInfo.operatingSystemVersionString)
+ resultExpectation.fulfill()
+ }
+ waitForExpectations(timeout: 1)
+ }
+
+}
diff --git a/example/pubspec.lock b/example/pubspec.lock
index 87a61b8..40172e7 100644
--- a/example/pubspec.lock
+++ b/example/pubspec.lock
@@ -5,26 +5,31 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
- sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7"
+ sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834
url: "https://pub.dev"
source: hosted
- version: "67.0.0"
+ version: "72.0.0"
+ _macros:
+ dependency: transitive
+ description: dart
+ source: sdk
+ version: "0.3.2"
analyzer:
dependency: transitive
description:
name: analyzer
- sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d"
+ sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139
url: "https://pub.dev"
source: hosted
- version: "6.4.1"
+ version: "6.7.0"
args:
dependency: transitive
description:
name: args
- sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440"
+ sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6
url: "https://pub.dev"
source: hosted
- version: "2.4.0"
+ version: "2.6.0"
async:
dependency: transitive
description:
@@ -69,34 +74,34 @@ packages:
dependency: transitive
description:
name: convert
- sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
+ sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68
url: "https://pub.dev"
source: hosted
- version: "3.1.1"
+ version: "3.1.2"
coverage:
dependency: transitive
description:
name: coverage
- sha256: "3945034e86ea203af7a056d98e98e42a5518fff200d6e8e6647e1886b07e936e"
+ sha256: "4b03e11f6d5b8f6e5bb5e9f7889a56fe6c5cbe942da5378ea4d4d7f73ef9dfe5"
url: "https://pub.dev"
source: hosted
- version: "1.8.0"
+ version: "1.11.0"
crypto:
dependency: transitive
description:
name: crypto
- sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
+ sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
url: "https://pub.dev"
source: hosted
- version: "3.0.2"
+ version: "3.0.6"
cupertino_icons:
dependency: "direct main"
description:
name: cupertino_icons
- sha256: "486b7bc707424572cdf7bd7e812a0c146de3fd47ecadf070254cc60383f21dd8"
+ sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
url: "https://pub.dev"
source: hosted
- version: "1.0.3"
+ version: "1.0.8"
fake_async:
dependency: transitive
description:
@@ -116,10 +121,10 @@ packages:
dependency: transitive
description:
name: ffi
- sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
+ sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6"
url: "https://pub.dev"
source: hosted
- version: "2.0.1"
+ version: "2.1.3"
file:
dependency: transitive
description:
@@ -132,10 +137,10 @@ packages:
dependency: transitive
description:
name: flat_buffers
- sha256: "23e2ced0d8e8ecdffbd9f267f49a668c74438393b9acaeac1c724123e3764263"
+ sha256: "380bdcba5664a718bfd4ea20a45d39e13684f5318fcd8883066a55e21f37f4c3"
url: "https://pub.dev"
source: hosted
- version: "2.0.5"
+ version: "23.5.26"
flutter:
dependency: "direct main"
description: flutter
@@ -146,6 +151,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
+ flutter_lints:
+ dependency: "direct dev"
+ description:
+ name: flutter_lints
+ sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "5.0.0"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -160,10 +173,10 @@ packages:
dependency: transitive
description:
name: frontend_server_client
- sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
+ sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
url: "https://pub.dev"
source: hosted
- version: "3.2.0"
+ version: "4.0.0"
fuchsia_remote_debug_protocol:
dependency: transitive
description: flutter
@@ -210,10 +223,10 @@ packages:
dependency: transitive
description:
name: js
- sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
+ sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf
url: "https://pub.dev"
source: hosted
- version: "0.6.7"
+ version: "0.7.1"
leak_tracker:
dependency: transitive
description:
@@ -238,14 +251,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.1"
+ lints:
+ dependency: transitive
+ description:
+ name: lints
+ sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413"
+ url: "https://pub.dev"
+ source: hosted
+ version: "5.0.0"
logging:
dependency: transitive
description:
name: logging
- sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d"
+ sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
url: "https://pub.dev"
source: hosted
- version: "1.1.1"
+ version: "1.3.0"
+ macros:
+ dependency: transitive
+ description:
+ name: macros
+ sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.1.2-main.4"
matcher:
dependency: transitive
description:
@@ -274,18 +303,18 @@ packages:
dependency: transitive
description:
name: mime
- sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
+ sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
url: "https://pub.dev"
source: hosted
- version: "1.0.4"
+ version: "2.0.0"
node_preamble:
dependency: transitive
description:
name: node_preamble
- sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d"
+ sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
url: "https://pub.dev"
source: hosted
- version: "2.0.1"
+ version: "2.0.2"
package_config:
dependency: transitive
description:
@@ -310,6 +339,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.5"
+ plugin_platform_interface:
+ dependency: transitive
+ description:
+ name: plugin_platform_interface
+ sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.8"
pool:
dependency: transitive
description:
@@ -338,34 +375,34 @@ packages:
dependency: transitive
description:
name: shelf
- sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
+ sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4
url: "https://pub.dev"
source: hosted
- version: "1.4.0"
+ version: "1.4.1"
shelf_packages_handler:
dependency: transitive
description:
name: shelf_packages_handler
- sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306
+ sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
url: "https://pub.dev"
source: hosted
- version: "3.0.1"
+ version: "3.0.2"
shelf_static:
dependency: transitive
description:
name: shelf_static
- sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c
+ sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3
url: "https://pub.dev"
source: hosted
- version: "1.1.1"
+ version: "1.1.3"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
- sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8
+ sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67
url: "https://pub.dev"
source: hosted
- version: "1.0.3"
+ version: "2.0.1"
sky_engine:
dependency: transitive
description: flutter
@@ -375,10 +412,10 @@ packages:
dependency: transitive
description:
name: source_map_stack_trace
- sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
+ sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b
url: "https://pub.dev"
source: hosted
- version: "2.1.1"
+ version: "2.1.2"
source_maps:
dependency: transitive
description:
@@ -463,10 +500,10 @@ packages:
dependency: transitive
description:
name: typed_data
- sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
+ sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.dev"
source: hosted
- version: "1.3.1"
+ version: "1.4.0"
vector_math:
dependency: transitive
description:
@@ -499,14 +536,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.0"
+ web_socket:
+ dependency: transitive
+ description:
+ name: web_socket
+ sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.1.6"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
- sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b
+ sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f"
url: "https://pub.dev"
source: hosted
- version: "2.3.0"
+ version: "3.0.1"
webdriver:
dependency: transitive
description:
@@ -519,18 +564,18 @@ packages:
dependency: transitive
description:
name: webkit_inspection_protocol
- sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d"
+ sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "1.2.1"
yaml:
dependency: transitive
description:
name: yaml
- sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
+ sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
url: "https://pub.dev"
source: hosted
- version: "3.1.1"
+ version: "3.1.2"
sdks:
- dart: ">=3.4.0 <4.0.0"
+ dart: ">=3.5.4 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54"
diff --git a/example/pubspec.yaml b/example/pubspec.yaml
index d1f12c5..622fc80 100644
--- a/example/pubspec.yaml
+++ b/example/pubspec.yaml
@@ -1,33 +1,55 @@
-name: rsa_example
-description: Demonstrates how to use the rsa plugin.
-publish_to: "none"
+name: fast_rsa_example
+description: "Demonstrates how to use the fast_rsa plugin."
+# The following line prevents the package from being accidentally published to
+# pub.dev using `flutter pub publish`. This is preferred for private packages.
+publish_to: 'none' # Remove this line if you wish to publish to pub.dev
environment:
- sdk: '>=2.17.0 <3.0.0'
+ sdk: ^3.5.4
+# Dependencies specify other packages that your package needs in order to work.
+# To automatically upgrade your package dependencies to the latest versions
+# consider running `flutter pub upgrade --major-versions`. Alternatively,
+# dependencies can be manually updated by changing the version numbers below to
+# the latest version available on pub.dev. To see which dependencies have newer
+# versions available, run `flutter pub outdated`.
dependencies:
flutter:
sdk: flutter
- # The following adds the Cupertino Icons font to your application.
- # Use with the CupertinoIcons class for iOS style icons.
- cupertino_icons: ^1.0.2
fast_rsa:
+ # When depending on this package from a real application you should use:
+ # fast_rsa: ^x.y.z
+ # See https://dart.dev/tools/pub/dependencies#version-constraints
+ # The example app is bundled with the plugin so we use a path dependency on
+ # the parent directory to use the current plugin's version.
path: ../
+ # The following adds the Cupertino Icons font to your application.
+ # Use with the CupertinoIcons class for iOS style icons.
+ cupertino_icons: ^1.0.8
+
dev_dependencies:
integration_test:
sdk: flutter
flutter_test:
sdk: flutter
+
+ # The "flutter_lints" package below contains a set of recommended lints to
+ # encourage good coding practices. The lint set provided by the package is
+ # activated in the `analysis_options.yaml` file located at the root of your
+ # package. See that file for information about deactivating specific lint
+ # rules and activating additional ones.
+ flutter_lints: ^5.0.0
+
test: any
-
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec
-# The following section is specific to Flutter.
+# The following section is specific to Flutter packages.
flutter:
+
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
@@ -39,26 +61,12 @@ flutter:
- packages/fast_rsa/web/assets/wasm_exec.js
- packages/fast_rsa/web/assets/rsa.wasm
- # See https://github.com/flutter/flutter/wiki/Desktop-shells#fonts
- fonts:
- - family: Roboto
- fonts:
- - asset: fonts/Roboto/Roboto-Thin.ttf
- weight: 100
- - asset: fonts/Roboto/Roboto-Light.ttf
- weight: 300
- - asset: fonts/Roboto/Roboto-Regular.ttf
- weight: 400
- - asset: fonts/Roboto/Roboto-Medium.ttf
- weight: 500
- - asset: fonts/Roboto/Roboto-Bold.ttf
- weight: 700
- - asset: fonts/Roboto/Roboto-Black.ttf
- weight: 900
# An image asset can refer to one or more resolution-specific "variants", see
- # https://flutter.dev/assets-and-images/#resolution-aware.
+ # https://flutter.dev/to/resolution-aware-images
+
# For details regarding adding assets from package dependencies, see
- # https://flutter.dev/assets-and-images/#from-packages
+ # https://flutter.dev/to/asset-from-package
+
# To add custom fonts to your application, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
# "family" key with the font family name, and a "fonts" key with a
@@ -77,4 +85,4 @@ flutter:
# weight: 700
#
# For details regarding fonts from package dependencies,
- # see https://flutter.dev/custom-fonts/#from-packages
+ # see https://flutter.dev/to/font-from-package
diff --git a/example/web/icons/Icon-maskable-192.png b/example/web/icons/Icon-maskable-192.png
new file mode 100644
index 0000000..eb9b4d7
Binary files /dev/null and b/example/web/icons/Icon-maskable-192.png differ
diff --git a/example/web/icons/Icon-maskable-512.png b/example/web/icons/Icon-maskable-512.png
new file mode 100644
index 0000000..d69c566
Binary files /dev/null and b/example/web/icons/Icon-maskable-512.png differ
diff --git a/example/web/index.html b/example/web/index.html
index 74dcd35..c922620 100644
--- a/example/web/index.html
+++ b/example/web/index.html
@@ -8,10 +8,13 @@
The path provided below has to start and end with a slash "/" in order for
it to work correctly.
- Fore more details:
+ For more details:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
+
+ This is a placeholder for base href that will be replaced by the value of
+ the `--base-href` argument provided to `flutter build`.
-->
-
+
diff --git a/example/web/manifest.json b/example/web/manifest.json
index 24c69b4..2472f6b 100644
--- a/example/web/manifest.json
+++ b/example/web/manifest.json
@@ -18,6 +18,18 @@
"src": "icons/Icon-512.png",
"sizes": "512x512",
"type": "image/png"
+ },
+ {
+ "src": "icons/Icon-maskable-192.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "purpose": "maskable"
+ },
+ {
+ "src": "icons/Icon-maskable-512.png",
+ "sizes": "512x512",
+ "type": "image/png",
+ "purpose": "maskable"
}
]
}
diff --git a/example/windows/CMakeLists.txt b/example/windows/CMakeLists.txt
index a1d04e4..0f9370c 100644
--- a/example/windows/CMakeLists.txt
+++ b/example/windows/CMakeLists.txt
@@ -1,13 +1,16 @@
-cmake_minimum_required(VERSION 3.15)
+# Project-level configuration.
+cmake_minimum_required(VERSION 3.14)
project(fast_rsa_example LANGUAGES CXX)
+# The name of the executable created for the application. Change this to change
+# the on-disk name of your application.
set(BINARY_NAME "fast_rsa_example")
-cmake_policy(SET CMP0063 NEW)
+# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
+# versions of CMake.
+cmake_policy(VERSION 3.14...3.25)
-set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")
-
-# Configure build options.
+# Define build configuration option.
get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(IS_MULTICONFIG)
set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release"
@@ -20,7 +23,7 @@ else()
"Debug" "Profile" "Release")
endif()
endif()
-
+# Define settings for the Profile build mode.
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}")
@@ -30,6 +33,10 @@ set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}")
add_definitions(-DUNICODE -D_UNICODE)
# Compilation settings that should be applied to most targets.
+#
+# Be cautious about adding new options here, as plugins use this function by
+# default. In most cases, you should add new options to specific targets instead
+# of modifying this function.
function(APPLY_STANDARD_SETTINGS TARGET)
target_compile_features(${TARGET} PUBLIC cxx_std_17)
target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100")
@@ -38,14 +45,16 @@ function(APPLY_STANDARD_SETTINGS TARGET)
target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>")
endfunction()
-set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
-
# Flutter library and tool build rules.
+set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
add_subdirectory(${FLUTTER_MANAGED_DIR})
-# Application build
+# Application build; see runner/CMakeLists.txt.
add_subdirectory("runner")
+# Enable the test target.
+set(include_fast_rsa_tests TRUE)
+
# Generated plugin build rules, which manage building the plugins and adding
# them to the application.
include(flutter/generated_plugins.cmake)
@@ -80,6 +89,12 @@ if(PLUGIN_BUNDLED_LIBRARIES)
COMPONENT Runtime)
endif()
+# Copy the native assets provided by the build.dart from all packages.
+set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/")
+install(DIRECTORY "${NATIVE_ASSETS_DIR}"
+ DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
+ COMPONENT Runtime)
+
# Fully re-copy the assets directory on each build to avoid having stale files
# from a previous install.
set(FLUTTER_ASSET_DIR_NAME "flutter_assets")
diff --git a/example/windows/flutter/CMakeLists.txt b/example/windows/flutter/CMakeLists.txt
index 744f08a..903f489 100644
--- a/example/windows/flutter/CMakeLists.txt
+++ b/example/windows/flutter/CMakeLists.txt
@@ -1,4 +1,5 @@
-cmake_minimum_required(VERSION 3.15)
+# This file controls Flutter-level build steps. It should not be edited.
+cmake_minimum_required(VERSION 3.14)
set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")
@@ -9,6 +10,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake)
# https://github.com/flutter/flutter/issues/57146.
set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper")
+# Set fallback configurations for older versions of the flutter tool.
+if (NOT DEFINED FLUTTER_TARGET_PLATFORM)
+ set(FLUTTER_TARGET_PLATFORM "windows-x64")
+endif()
+
# === Flutter Library ===
set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll")
@@ -23,6 +29,7 @@ list(APPEND FLUTTER_LIBRARY_HEADERS
"flutter_windows.h"
"flutter_messenger.h"
"flutter_plugin_registrar.h"
+ "flutter_texture_registrar.h"
)
list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/")
add_library(flutter INTERFACE)
@@ -90,7 +97,7 @@ add_custom_command(
COMMAND ${CMAKE_COMMAND} -E env
${FLUTTER_TOOL_ENVIRONMENT}
"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat"
- windows-x64 $
+ ${FLUTTER_TARGET_PLATFORM} $
VERBATIM
)
add_custom_target(flutter_assemble DEPENDS
diff --git a/example/windows/runner/CMakeLists.txt b/example/windows/runner/CMakeLists.txt
index 977e38b..394917c 100644
--- a/example/windows/runner/CMakeLists.txt
+++ b/example/windows/runner/CMakeLists.txt
@@ -1,18 +1,40 @@
-cmake_minimum_required(VERSION 3.15)
+cmake_minimum_required(VERSION 3.14)
project(runner LANGUAGES CXX)
+# Define the application target. To change its name, change BINARY_NAME in the
+# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer
+# work.
+#
+# Any new source files that you add to the application should be added here.
add_executable(${BINARY_NAME} WIN32
"flutter_window.cpp"
"main.cpp"
- "run_loop.cpp"
"utils.cpp"
"win32_window.cpp"
"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
"Runner.rc"
"runner.exe.manifest"
)
+
+# Apply the standard set of build settings. This can be removed for applications
+# that need different build settings.
apply_standard_settings(${BINARY_NAME})
+
+# Add preprocessor definitions for the build version.
+target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"")
+target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}")
+target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}")
+target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}")
+target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}")
+
+# Disable Windows macros that collide with C++ standard library functions.
target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX")
+
+# Add dependency libraries and include directories. Add any application-specific
+# dependencies here.
target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app)
+target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib")
target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
+
+# Run the Flutter tool portions of the build. This must not be removed.
add_dependencies(${BINARY_NAME} flutter_assemble)
diff --git a/example/windows/runner/Runner.rc b/example/windows/runner/Runner.rc
index d0080d8..a0ff2b9 100644
--- a/example/windows/runner/Runner.rc
+++ b/example/windows/runner/Runner.rc
@@ -60,14 +60,14 @@ IDI_APP_ICON ICON "resources\\app_icon.ico"
// Version
//
-#ifdef FLUTTER_BUILD_NUMBER
-#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER
+#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD)
+#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD
#else
-#define VERSION_AS_NUMBER 1,0,0
+#define VERSION_AS_NUMBER 1,0,0,0
#endif
-#ifdef FLUTTER_BUILD_NAME
-#define VERSION_AS_STRING #FLUTTER_BUILD_NAME
+#if defined(FLUTTER_VERSION)
+#define VERSION_AS_STRING FLUTTER_VERSION
#else
#define VERSION_AS_STRING "1.0.0"
#endif
@@ -90,10 +90,10 @@ BEGIN
BLOCK "040904e4"
BEGIN
VALUE "CompanyName", "dev.jerson" "\0"
- VALUE "FileDescription", "Demonstrates how to use the fast_rsa plugin." "\0"
+ VALUE "FileDescription", "fast_rsa_example" "\0"
VALUE "FileVersion", VERSION_AS_STRING "\0"
VALUE "InternalName", "fast_rsa_example" "\0"
- VALUE "LegalCopyright", "Copyright (C) 2020 dev.jerson. All rights reserved." "\0"
+ VALUE "LegalCopyright", "Copyright (C) 2024 dev.jerson. All rights reserved." "\0"
VALUE "OriginalFilename", "fast_rsa_example.exe" "\0"
VALUE "ProductName", "fast_rsa_example" "\0"
VALUE "ProductVersion", VERSION_AS_STRING "\0"
diff --git a/example/windows/runner/flutter_window.cpp b/example/windows/runner/flutter_window.cpp
index c422723..955ee30 100644
--- a/example/windows/runner/flutter_window.cpp
+++ b/example/windows/runner/flutter_window.cpp
@@ -4,9 +4,8 @@
#include "flutter/generated_plugin_registrant.h"
-FlutterWindow::FlutterWindow(RunLoop* run_loop,
- const flutter::DartProject& project)
- : run_loop_(run_loop), project_(project) {}
+FlutterWindow::FlutterWindow(const flutter::DartProject& project)
+ : project_(project) {}
FlutterWindow::~FlutterWindow() {}
@@ -26,14 +25,22 @@ bool FlutterWindow::OnCreate() {
return false;
}
RegisterPlugins(flutter_controller_->engine());
- run_loop_->RegisterFlutterInstance(flutter_controller_->engine());
SetChildContent(flutter_controller_->view()->GetNativeWindow());
+
+ flutter_controller_->engine()->SetNextFrameCallback([&]() {
+ this->Show();
+ });
+
+ // Flutter can complete the first frame before the "show window" callback is
+ // registered. The following call ensures a frame is pending to ensure the
+ // window is shown. It is a no-op if the first frame hasn't completed yet.
+ flutter_controller_->ForceRedraw();
+
return true;
}
void FlutterWindow::OnDestroy() {
if (flutter_controller_) {
- run_loop_->UnregisterFlutterInstance(flutter_controller_->engine());
flutter_controller_ = nullptr;
}
@@ -44,7 +51,7 @@ LRESULT
FlutterWindow::MessageHandler(HWND hwnd, UINT const message,
WPARAM const wparam,
LPARAM const lparam) noexcept {
- // Give Flutter, including plugins, an opporutunity to handle window messages.
+ // Give Flutter, including plugins, an opportunity to handle window messages.
if (flutter_controller_) {
std::optional result =
flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam,
diff --git a/example/windows/runner/flutter_window.h b/example/windows/runner/flutter_window.h
index b663ddd..6da0652 100644
--- a/example/windows/runner/flutter_window.h
+++ b/example/windows/runner/flutter_window.h
@@ -6,16 +6,13 @@
#include
-#include "run_loop.h"
#include "win32_window.h"
// A window that does nothing but host a Flutter view.
class FlutterWindow : public Win32Window {
public:
- // Creates a new FlutterWindow driven by the |run_loop|, hosting a
- // Flutter view running |project|.
- explicit FlutterWindow(RunLoop* run_loop,
- const flutter::DartProject& project);
+ // Creates a new FlutterWindow hosting a Flutter view running |project|.
+ explicit FlutterWindow(const flutter::DartProject& project);
virtual ~FlutterWindow();
protected:
@@ -26,9 +23,6 @@ class FlutterWindow : public Win32Window {
LPARAM const lparam) noexcept override;
private:
- // The run loop driving events for this window.
- RunLoop* run_loop_;
-
// The project to run.
flutter::DartProject project_;
diff --git a/example/windows/runner/main.cpp b/example/windows/runner/main.cpp
index a7c777d..753c0e7 100644
--- a/example/windows/runner/main.cpp
+++ b/example/windows/runner/main.cpp
@@ -3,7 +3,6 @@
#include
#include "flutter_window.h"
-#include "run_loop.h"
#include "utils.h"
int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
@@ -18,8 +17,6 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
// plugins.
::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);
- RunLoop run_loop;
-
flutter::DartProject project(L"data");
std::vector command_line_arguments =
@@ -27,15 +24,19 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
project.set_dart_entrypoint_arguments(std::move(command_line_arguments));
- FlutterWindow window(&run_loop, project);
+ FlutterWindow window(project);
Win32Window::Point origin(10, 10);
Win32Window::Size size(1280, 720);
- if (!window.CreateAndShow(L"fast_rsa_example", origin, size)) {
+ if (!window.Create(L"fast_rsa_example", origin, size)) {
return EXIT_FAILURE;
}
window.SetQuitOnClose(true);
- run_loop.Run();
+ ::MSG msg;
+ while (::GetMessage(&msg, nullptr, 0, 0)) {
+ ::TranslateMessage(&msg);
+ ::DispatchMessage(&msg);
+ }
::CoUninitialize();
return EXIT_SUCCESS;
diff --git a/example/windows/runner/run_loop.cpp b/example/windows/runner/run_loop.cpp
deleted file mode 100644
index 2d6636a..0000000
--- a/example/windows/runner/run_loop.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-#include "run_loop.h"
-
-#include
-
-#include
-
-RunLoop::RunLoop() {}
-
-RunLoop::~RunLoop() {}
-
-void RunLoop::Run() {
- bool keep_running = true;
- TimePoint next_flutter_event_time = TimePoint::clock::now();
- while (keep_running) {
- std::chrono::nanoseconds wait_duration =
- std::max(std::chrono::nanoseconds(0),
- next_flutter_event_time - TimePoint::clock::now());
- ::MsgWaitForMultipleObjects(
- 0, nullptr, FALSE, static_cast(wait_duration.count() / 1000),
- QS_ALLINPUT);
- bool processed_events = false;
- MSG message;
- // All pending Windows messages must be processed; MsgWaitForMultipleObjects
- // won't return again for items left in the queue after PeekMessage.
- while (::PeekMessage(&message, nullptr, 0, 0, PM_REMOVE)) {
- processed_events = true;
- if (message.message == WM_QUIT) {
- keep_running = false;
- break;
- }
- ::TranslateMessage(&message);
- ::DispatchMessage(&message);
- // Allow Flutter to process messages each time a Windows message is
- // processed, to prevent starvation.
- next_flutter_event_time =
- std::min(next_flutter_event_time, ProcessFlutterMessages());
- }
- // If the PeekMessage loop didn't run, process Flutter messages.
- if (!processed_events) {
- next_flutter_event_time =
- std::min(next_flutter_event_time, ProcessFlutterMessages());
- }
- }
-}
-
-void RunLoop::RegisterFlutterInstance(
- flutter::FlutterEngine* flutter_instance) {
- flutter_instances_.insert(flutter_instance);
-}
-
-void RunLoop::UnregisterFlutterInstance(
- flutter::FlutterEngine* flutter_instance) {
- flutter_instances_.erase(flutter_instance);
-}
-
-RunLoop::TimePoint RunLoop::ProcessFlutterMessages() {
- TimePoint next_event_time = TimePoint::max();
- for (auto instance : flutter_instances_) {
- std::chrono::nanoseconds wait_duration = instance->ProcessMessages();
- if (wait_duration != std::chrono::nanoseconds::max()) {
- next_event_time =
- std::min(next_event_time, TimePoint::clock::now() + wait_duration);
- }
- }
- return next_event_time;
-}
diff --git a/example/windows/runner/run_loop.h b/example/windows/runner/run_loop.h
deleted file mode 100644
index 000d362..0000000
--- a/example/windows/runner/run_loop.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef RUNNER_RUN_LOOP_H_
-#define RUNNER_RUN_LOOP_H_
-
-#include
-
-#include
-#include
-
-// A runloop that will service events for Flutter instances as well
-// as native messages.
-class RunLoop {
- public:
- RunLoop();
- ~RunLoop();
-
- // Prevent copying
- RunLoop(RunLoop const&) = delete;
- RunLoop& operator=(RunLoop const&) = delete;
-
- // Runs the run loop until the application quits.
- void Run();
-
- // Registers the given Flutter instance for event servicing.
- void RegisterFlutterInstance(
- flutter::FlutterEngine* flutter_instance);
-
- // Unregisters the given Flutter instance from event servicing.
- void UnregisterFlutterInstance(
- flutter::FlutterEngine* flutter_instance);
-
- private:
- using TimePoint = std::chrono::steady_clock::time_point;
-
- // Processes all currently pending messages for registered Flutter instances.
- TimePoint ProcessFlutterMessages();
-
- std::set flutter_instances_;
-};
-
-#endif // RUNNER_RUN_LOOP_H_
diff --git a/example/windows/runner/runner.exe.manifest b/example/windows/runner/runner.exe.manifest
index c977c4a..153653e 100644
--- a/example/windows/runner/runner.exe.manifest
+++ b/example/windows/runner/runner.exe.manifest
@@ -7,14 +7,8 @@
-
+
-
-
-
-
-
-
diff --git a/example/windows/runner/utils.cpp b/example/windows/runner/utils.cpp
index d19bdbb..3a0b465 100644
--- a/example/windows/runner/utils.cpp
+++ b/example/windows/runner/utils.cpp
@@ -45,18 +45,19 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) {
if (utf16_string == nullptr) {
return std::string();
}
- int target_length = ::WideCharToMultiByte(
+ unsigned int target_length = ::WideCharToMultiByte(
CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
- -1, nullptr, 0, nullptr, nullptr);
- if (target_length == 0) {
- return std::string();
- }
+ -1, nullptr, 0, nullptr, nullptr)
+ -1; // remove the trailing null character
+ int input_length = (int)wcslen(utf16_string);
std::string utf8_string;
+ if (target_length == 0 || target_length > utf8_string.max_size()) {
+ return utf8_string;
+ }
utf8_string.resize(target_length);
int converted_length = ::WideCharToMultiByte(
CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
- -1, utf8_string.data(),
- target_length, nullptr, nullptr);
+ input_length, utf8_string.data(), target_length, nullptr, nullptr);
if (converted_length == 0) {
return std::string();
}
diff --git a/example/windows/runner/win32_window.cpp b/example/windows/runner/win32_window.cpp
index c10f08d..60608d0 100644
--- a/example/windows/runner/win32_window.cpp
+++ b/example/windows/runner/win32_window.cpp
@@ -1,13 +1,31 @@
#include "win32_window.h"
+#include
#include
#include "resource.h"
namespace {
+/// Window attribute that enables dark mode window decorations.
+///
+/// Redefined in case the developer's machine has a Windows SDK older than
+/// version 10.0.22000.0.
+/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute
+#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE
+#define DWMWA_USE_IMMERSIVE_DARK_MODE 20
+#endif
+
constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW";
+/// Registry key for app theme preference.
+///
+/// A value of 0 indicates apps should use dark mode. A non-zero or missing
+/// value indicates apps should use light mode.
+constexpr const wchar_t kGetPreferredBrightnessRegKey[] =
+ L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize";
+constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme";
+
// The number of Win32Window objects that currently exist.
static int g_active_window_count = 0;
@@ -31,8 +49,8 @@ void EnableFullDpiSupportIfAvailable(HWND hwnd) {
GetProcAddress(user32_module, "EnableNonClientDpiScaling"));
if (enable_non_client_dpi_scaling != nullptr) {
enable_non_client_dpi_scaling(hwnd);
- FreeLibrary(user32_module);
}
+ FreeLibrary(user32_module);
}
} // namespace
@@ -42,7 +60,7 @@ class WindowClassRegistrar {
public:
~WindowClassRegistrar() = default;
- // Returns the singleton registar instance.
+ // Returns the singleton registrar instance.
static WindowClassRegistrar* GetInstance() {
if (!instance_) {
instance_ = new WindowClassRegistrar();
@@ -102,9 +120,9 @@ Win32Window::~Win32Window() {
Destroy();
}
-bool Win32Window::CreateAndShow(const std::wstring& title,
- const Point& origin,
- const Size& size) {
+bool Win32Window::Create(const std::wstring& title,
+ const Point& origin,
+ const Size& size) {
Destroy();
const wchar_t* window_class =
@@ -117,7 +135,7 @@ bool Win32Window::CreateAndShow(const std::wstring& title,
double scale_factor = dpi / 96.0;
HWND window = CreateWindow(
- window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE,
+ window_class, title.c_str(), WS_OVERLAPPEDWINDOW,
Scale(origin.x, scale_factor), Scale(origin.y, scale_factor),
Scale(size.width, scale_factor), Scale(size.height, scale_factor),
nullptr, nullptr, GetModuleHandle(nullptr), this);
@@ -126,9 +144,15 @@ bool Win32Window::CreateAndShow(const std::wstring& title,
return false;
}
+ UpdateTheme(window);
+
return OnCreate();
}
+bool Win32Window::Show() {
+ return ShowWindow(window_handle_, SW_SHOWNORMAL);
+}
+
// static
LRESULT CALLBACK Win32Window::WndProc(HWND const window,
UINT const message,
@@ -188,6 +212,10 @@ Win32Window::MessageHandler(HWND hwnd,
SetFocus(child_content_);
}
return 0;
+
+ case WM_DWMCOLORIZATIONCOLORCHANGED:
+ UpdateTheme(hwnd);
+ return 0;
}
return DefWindowProc(window_handle_, message, wparam, lparam);
@@ -243,3 +271,18 @@ bool Win32Window::OnCreate() {
void Win32Window::OnDestroy() {
// No-op; provided for subclasses.
}
+
+void Win32Window::UpdateTheme(HWND const window) {
+ DWORD light_mode;
+ DWORD light_mode_size = sizeof(light_mode);
+ LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey,
+ kGetPreferredBrightnessRegValue,
+ RRF_RT_REG_DWORD, nullptr, &light_mode,
+ &light_mode_size);
+
+ if (result == ERROR_SUCCESS) {
+ BOOL enable_dark_mode = light_mode == 0;
+ DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE,
+ &enable_dark_mode, sizeof(enable_dark_mode));
+ }
+}
diff --git a/example/windows/runner/win32_window.h b/example/windows/runner/win32_window.h
index 17ba431..e901dde 100644
--- a/example/windows/runner/win32_window.h
+++ b/example/windows/runner/win32_window.h
@@ -28,15 +28,16 @@ class Win32Window {
Win32Window();
virtual ~Win32Window();
- // Creates and shows a win32 window with |title| and position and size using
+ // Creates a win32 window with |title| that is positioned and sized using
// |origin| and |size|. New windows are created on the default monitor. Window
// sizes are specified to the OS in physical pixels, hence to ensure a
- // consistent size to will treat the width height passed in to this function
- // as logical pixels and scale to appropriate for the default monitor. Returns
- // true if the window was created successfully.
- bool CreateAndShow(const std::wstring& title,
- const Point& origin,
- const Size& size);
+ // consistent size this function will scale the inputted width and height as
+ // as appropriate for the default monitor. The window is invisible until
+ // |Show| is called. Returns true if the window was created successfully.
+ bool Create(const std::wstring& title, const Point& origin, const Size& size);
+
+ // Show the current window. Returns true if the window was successfully shown.
+ bool Show();
// Release OS resources associated with window.
void Destroy();
@@ -76,7 +77,7 @@ class Win32Window {
// OS callback called by message pump. Handles the WM_NCCREATE message which
// is passed when the non-client area is being created and enables automatic
// non-client DPI scaling so that the non-client area automatically
- // responsponds to changes in DPI. All other messages are handled by
+ // responds to changes in DPI. All other messages are handled by
// MessageHandler.
static LRESULT CALLBACK WndProc(HWND const window,
UINT const message,
@@ -86,6 +87,9 @@ class Win32Window {
// Retrieves a class instance pointer for |window|
static Win32Window* GetThisFromHandle(HWND const window) noexcept;
+ // Update the window frame's theme to match the system theme.
+ static void UpdateTheme(HWND const window);
+
bool quit_on_close_ = false;
// window handle for top level window.
diff --git a/fast_rsa.iml b/fast_rsa.iml
index 73e7ebd..27686dd 100644
--- a/fast_rsa.iml
+++ b/fast_rsa.iml
@@ -6,14 +6,12 @@
-
-
-
+
-
\ No newline at end of file
+
diff --git a/ios/.gitignore b/ios/.gitignore
index aa479fd..034771f 100644
--- a/ios/.gitignore
+++ b/ios/.gitignore
@@ -34,4 +34,5 @@ Icon?
.tags*
/Flutter/Generated.xcconfig
-/Flutter/flutter_export_environment.sh
\ No newline at end of file
+/Flutter/ephemeral/
+/Flutter/flutter_export_environment.sh
diff --git a/ios/Classes/FastRsaPlugin.h b/ios/Classes/FastRsaPlugin.h
deleted file mode 100644
index 30dd7a6..0000000
--- a/ios/Classes/FastRsaPlugin.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#import
-
-@interface FastRsaPlugin : NSObject
-@end
diff --git a/ios/Classes/FastRsaPlugin.m b/ios/Classes/FastRsaPlugin.m
deleted file mode 100644
index 9815f58..0000000
--- a/ios/Classes/FastRsaPlugin.m
+++ /dev/null
@@ -1,15 +0,0 @@
-#import "FastRsaPlugin.h"
-#if __has_include()
-#import
-#else
-// Support project import fallback if the generated compatibility header
-// is not copied when this plugin is created as a library.
-// https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816
-#import "fast_rsa-Swift.h"
-#endif
-
-@implementation FastRsaPlugin
-+ (void)registerWithRegistrar:(NSObject*)registrar {
- [SwiftFastRsaPlugin registerWithRegistrar:registrar];
-}
-@end
diff --git a/ios/Classes/SwiftFastRsaPlugin.swift b/ios/Classes/FastRsaPlugin.swift
similarity index 57%
rename from ios/Classes/SwiftFastRsaPlugin.swift
rename to ios/Classes/FastRsaPlugin.swift
index 19a5a87..3db4f21 100644
--- a/ios/Classes/SwiftFastRsaPlugin.swift
+++ b/ios/Classes/FastRsaPlugin.swift
@@ -1,14 +1,19 @@
import Flutter
import UIKit
-public class SwiftFastRsaPlugin: NSObject, FlutterPlugin {
+public class FastRsaPlugin: NSObject, FlutterPlugin {
public static func register(with registrar: FlutterPluginRegistrar) {
let channel = FlutterMethodChannel(name: "fast_rsa", binaryMessenger: registrar.messenger())
- let instance = SwiftFastRsaPlugin()
+ let instance = FastRsaPlugin()
registrar.addMethodCallDelegate(instance, channel: channel)
}
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
- result("iOS " + UIDevice.current.systemVersion)
+ switch call.method {
+ case "getPlatformVersion":
+ result("iOS " + UIDevice.current.systemVersion)
+ default:
+ result(FlutterMethodNotImplemented)
+ }
}
}
diff --git a/ios/Rsa.xcframework/Info.plist b/ios/Rsa.xcframework/Info.plist
new file mode 100644
index 0000000..cf4518a
--- /dev/null
+++ b/ios/Rsa.xcframework/Info.plist
@@ -0,0 +1,67 @@
+
+
+
+
+ AvailableLibraries
+
+
+ BinaryPath
+ librsa_bridge.a
+ HeadersPath
+ Headers
+ LibraryIdentifier
+ ios-arm64_x86_64-simulator
+ LibraryPath
+ librsa_bridge.a
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ BinaryPath
+ librsa_bridge.a
+ HeadersPath
+ Headers
+ LibraryIdentifier
+ ios-arm64_x86_64-maccatalyst
+ LibraryPath
+ librsa_bridge.a
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ maccatalyst
+
+
+ BinaryPath
+ librsa_bridge.a
+ HeadersPath
+ Headers
+ LibraryIdentifier
+ ios-arm64
+ LibraryPath
+ librsa_bridge.a
+ SupportedArchitectures
+
+ arm64
+
+ SupportedPlatform
+ ios
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/ios/librsa_bridge.h b/ios/Rsa.xcframework/ios-arm64/Headers/librsa_bridge.h
similarity index 100%
rename from ios/librsa_bridge.h
rename to ios/Rsa.xcframework/ios-arm64/Headers/librsa_bridge.h
diff --git a/ios/Rsa.xcframework/ios-arm64/librsa_bridge.a b/ios/Rsa.xcframework/ios-arm64/librsa_bridge.a
new file mode 100644
index 0000000..3f0ee20
Binary files /dev/null and b/ios/Rsa.xcframework/ios-arm64/librsa_bridge.a differ
diff --git a/ios/Rsa.xcframework/ios-arm64_x86_64-maccatalyst/Headers/librsa_bridge.h b/ios/Rsa.xcframework/ios-arm64_x86_64-maccatalyst/Headers/librsa_bridge.h
new file mode 100644
index 0000000..ff18cc0
--- /dev/null
+++ b/ios/Rsa.xcframework/ios-arm64_x86_64-maccatalyst/Headers/librsa_bridge.h
@@ -0,0 +1,87 @@
+/* Code generated by cmd/cgo; DO NOT EDIT. */
+
+/* package command-line-arguments */
+
+
+#line 1 "cgo-builtin-export-prolog"
+
+#include
+
+#ifndef GO_CGO_EXPORT_PROLOGUE_H
+#define GO_CGO_EXPORT_PROLOGUE_H
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef struct { const char *p; ptrdiff_t n; } _GoString_;
+#endif
+
+#endif
+
+/* Start of preamble from import "C" comments. */
+
+
+#line 3 "main.go"
+#include
+#include
+typedef struct { void* message; int size; char* error; } BytesReturn;
+
+#line 1 "cgo-generated-wrapper"
+
+
+/* End of preamble from import "C" comments. */
+
+
+/* Start of boilerplate cgo prologue. */
+#line 1 "cgo-gcc-export-header-prolog"
+
+#ifndef GO_CGO_PROLOGUE_H
+#define GO_CGO_PROLOGUE_H
+
+typedef signed char GoInt8;
+typedef unsigned char GoUint8;
+typedef short GoInt16;
+typedef unsigned short GoUint16;
+typedef int GoInt32;
+typedef unsigned int GoUint32;
+typedef long long GoInt64;
+typedef unsigned long long GoUint64;
+typedef GoInt64 GoInt;
+typedef GoUint64 GoUint;
+typedef size_t GoUintptr;
+typedef float GoFloat32;
+typedef double GoFloat64;
+#ifdef _MSC_VER
+#include
+typedef _Fcomplex GoComplex64;
+typedef _Dcomplex GoComplex128;
+#else
+typedef float _Complex GoComplex64;
+typedef double _Complex GoComplex128;
+#endif
+
+/*
+ static assertion to make sure the file is being used on architecture
+ at least with matching size of GoInt.
+*/
+typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef _GoString_ GoString;
+#endif
+typedef void *GoMap;
+typedef void *GoChan;
+typedef struct { void *t; void *v; } GoInterface;
+typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
+
+#endif
+
+/* End of boilerplate cgo prologue. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern BytesReturn* RSABridgeCall(char* name, void* payload, int payloadSize);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/ios/Rsa.xcframework/ios-arm64_x86_64-maccatalyst/librsa_bridge.a b/ios/Rsa.xcframework/ios-arm64_x86_64-maccatalyst/librsa_bridge.a
new file mode 100644
index 0000000..3fbc893
Binary files /dev/null and b/ios/Rsa.xcframework/ios-arm64_x86_64-maccatalyst/librsa_bridge.a differ
diff --git a/ios/Rsa.xcframework/ios-arm64_x86_64-simulator/Headers/librsa_bridge.h b/ios/Rsa.xcframework/ios-arm64_x86_64-simulator/Headers/librsa_bridge.h
new file mode 100644
index 0000000..ff18cc0
--- /dev/null
+++ b/ios/Rsa.xcframework/ios-arm64_x86_64-simulator/Headers/librsa_bridge.h
@@ -0,0 +1,87 @@
+/* Code generated by cmd/cgo; DO NOT EDIT. */
+
+/* package command-line-arguments */
+
+
+#line 1 "cgo-builtin-export-prolog"
+
+#include
+
+#ifndef GO_CGO_EXPORT_PROLOGUE_H
+#define GO_CGO_EXPORT_PROLOGUE_H
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef struct { const char *p; ptrdiff_t n; } _GoString_;
+#endif
+
+#endif
+
+/* Start of preamble from import "C" comments. */
+
+
+#line 3 "main.go"
+#include
+#include
+typedef struct { void* message; int size; char* error; } BytesReturn;
+
+#line 1 "cgo-generated-wrapper"
+
+
+/* End of preamble from import "C" comments. */
+
+
+/* Start of boilerplate cgo prologue. */
+#line 1 "cgo-gcc-export-header-prolog"
+
+#ifndef GO_CGO_PROLOGUE_H
+#define GO_CGO_PROLOGUE_H
+
+typedef signed char GoInt8;
+typedef unsigned char GoUint8;
+typedef short GoInt16;
+typedef unsigned short GoUint16;
+typedef int GoInt32;
+typedef unsigned int GoUint32;
+typedef long long GoInt64;
+typedef unsigned long long GoUint64;
+typedef GoInt64 GoInt;
+typedef GoUint64 GoUint;
+typedef size_t GoUintptr;
+typedef float GoFloat32;
+typedef double GoFloat64;
+#ifdef _MSC_VER
+#include
+typedef _Fcomplex GoComplex64;
+typedef _Dcomplex GoComplex128;
+#else
+typedef float _Complex GoComplex64;
+typedef double _Complex GoComplex128;
+#endif
+
+/*
+ static assertion to make sure the file is being used on architecture
+ at least with matching size of GoInt.
+*/
+typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef _GoString_ GoString;
+#endif
+typedef void *GoMap;
+typedef void *GoChan;
+typedef struct { void *t; void *v; } GoInterface;
+typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
+
+#endif
+
+/* End of boilerplate cgo prologue. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern BytesReturn* RSABridgeCall(char* name, void* payload, int payloadSize);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/ios/Rsa.xcframework/ios-arm64_x86_64-simulator/librsa_bridge.a b/ios/Rsa.xcframework/ios-arm64_x86_64-simulator/librsa_bridge.a
new file mode 100644
index 0000000..2a84a10
Binary files /dev/null and b/ios/Rsa.xcframework/ios-arm64_x86_64-simulator/librsa_bridge.a differ
diff --git a/ios/fast_rsa.podspec b/ios/fast_rsa.podspec
index 9448b17..3505fbe 100644
--- a/ios/fast_rsa.podspec
+++ b/ios/fast_rsa.podspec
@@ -2,7 +2,7 @@
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
# Run `pod lib lint fast_rsa.podspec' to validate before publishing.
#
-shared_lib = File.join(__dir__, "librsa_bridge.a").gsub(/ /, '\ ')
+framework_path = File.join(__dir__, "Rsa.xcframework").gsub(/ /, '\ ')
Pod::Spec.new do |s|
s.name = 'fast_rsa'
@@ -16,14 +16,18 @@ library for use RSA.
s.author = { 'Gerson Alexander Pardo Gamez' => 'jeral17@gmail.com' }
s.source = { :path => '.' }
s.source_files = 'Classes/**/*'
- s.public_header_files = 'Classes/**/*.h'
- s.vendored_libraries = '*.a'
+
s.dependency 'Flutter'
- s.platform = :ios, '8.0'
- s.xcconfig = { 'OTHER_LDFLAGS' => "-force_load '#{shared_lib}'"}
+ s.platform = :ios, '12.0'
+ s.vendored_frameworks = 'Rsa.xcframework'
# Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported.
- s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS[sdk=iphonesimulator*]' => 'x86_64', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
- s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
+ s.pod_target_xcconfig = {
+ 'DEFINES_MODULE' => 'YES',
+ 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386',
+ 'OTHER_LDFLAGS[sdk=iphoneos*]' => "-force_load #{framework_path}/ios-arm64/librsa_bridge.a",
+ 'OTHER_LDFLAGS[sdk=iphonesimulator*]' => "-force_load #{framework_path}/ios-arm64_x86_64-simulator/librsa_bridge.a",
+ 'OTHER_LDFLAGS[sdk=maccatalyst*]' => "-force_load #{framework_path}/ios-arm64_x86_64-maccatalyst/librsa_bridge.a"
+ }
s.swift_version = '5.0'
end
diff --git a/ios/librsa_bridge.a b/ios/librsa_bridge.a
deleted file mode 100644
index a77bf34..0000000
Binary files a/ios/librsa_bridge.a and /dev/null differ
diff --git a/lib/fast_rsa.dart b/lib/fast_rsa.dart
index 0f41b66..66adb71 100644
--- a/lib/fast_rsa.dart
+++ b/lib/fast_rsa.dart
@@ -40,7 +40,7 @@ class PKCS12KeyPair {
}
class RSA {
- static const MethodChannel _channel = const MethodChannel('fast_rsa');
+ static const MethodChannel _channel = MethodChannel('fast_rsa');
static bool bindingEnabled = Binding().isSupported();
static Future _call(String name, Uint8List payload) async {
@@ -55,7 +55,7 @@ class RSA {
var data = await _call(name, payload);
var response = model.BytesResponse(data);
if (response.error != null && response.error != "") {
- throw new RSAException(response.error!);
+ throw RSAException(response.error!);
}
return Uint8List.fromList(response.output!);
}
@@ -64,7 +64,7 @@ class RSA {
var data = await _call(name, payload);
var response = model.StringResponse(data);
if (response.error != null && response.error != "") {
- throw new RSAException(response.error!);
+ throw RSAException(response.error!);
}
return response.output!;
}
@@ -73,7 +73,7 @@ class RSA {
var data = await _call(name, payload);
var response = model.BoolResponse(data);
if (response.error != null && response.error != "") {
- throw new RSAException(response.error!);
+ throw RSAException(response.error!);
}
return response.output;
}
@@ -83,7 +83,7 @@ class RSA {
var data = await _call(name, payload);
var response = model.KeyPairResponse(data);
if (response.error != null && response.error != "") {
- throw new RSAException(response.error!);
+ throw RSAException(response.error!);
}
var output = response.output!;
return KeyPair(output.publicKey!, output.privateKey!);
@@ -92,9 +92,9 @@ class RSA {
static Future _pkcs12KeyPairResponse(
String name, Uint8List payload) async {
var data = await _call(name, payload);
- var response = model.PKCS12KeyPairResponse(data);
+ var response = model.Pkcs12KeyPairResponse(data);
if (response.error != null && response.error != "") {
- throw new RSAException(response.error!);
+ throw RSAException(response.error!);
}
var output = response.output!;
return PKCS12KeyPair(
@@ -103,7 +103,7 @@ class RSA {
static Future convertJWKToPrivateKey(
dynamic data, String keyId) async {
- var requestBuilder = model.ConvertJWTRequestObjectBuilder(
+ var requestBuilder = model.ConvertJwtrequestObjectBuilder(
data: jsonEncode(data),
keyId: keyId,
);
@@ -114,7 +114,7 @@ class RSA {
static Future convertJWKToPublicKey(
dynamic data, String keyId) async {
- var requestBuilder = model.ConvertJWTRequestObjectBuilder(
+ var requestBuilder = model.ConvertJwtrequestObjectBuilder(
data: jsonEncode(data),
keyId: keyId,
);
@@ -137,7 +137,7 @@ class RSA {
static Future convertPKCS12ToKeyPair(
String pkcs12, String password) async {
- var requestBuilder = model.ConvertPKCS12RequestObjectBuilder(
+ var requestBuilder = model.ConvertPkcs12RequestObjectBuilder(
password: password,
pkcs12: pkcs12,
);
@@ -224,7 +224,7 @@ class RSA {
var requestBuilder = model.EncryptPrivateKeyRequestObjectBuilder(
privateKey: privateKey,
password: password,
- cipher: model.PEMCipher.values[cipher.index],
+ cipher: model.Pemcipher.values[cipher.index],
);
return await _stringResponse("encryptPrivateKey", requestBuilder.toBytes());
@@ -232,7 +232,7 @@ class RSA {
static Future decryptOAEP(
String ciphertext, String label, Hash hash, String privateKey) async {
- var requestBuilder = model.DecryptOAEPRequestObjectBuilder(
+ var requestBuilder = model.DecryptOaeprequestObjectBuilder(
privateKey: privateKey,
ciphertext: ciphertext,
label: label,
@@ -244,7 +244,7 @@ class RSA {
static Future decryptOAEPBytes(
Uint8List ciphertext, String label, Hash hash, String privateKey) async {
- var requestBuilder = model.DecryptOAEPBytesRequestObjectBuilder(
+ var requestBuilder = model.DecryptOaepbytesRequestObjectBuilder(
privateKey: privateKey,
ciphertext: ciphertext,
label: label,
@@ -256,7 +256,7 @@ class RSA {
static Future decryptPKCS1v15(
String ciphertext, String privateKey) async {
- var requestBuilder = model.DecryptPKCS1v15RequestObjectBuilder(
+ var requestBuilder = model.DecryptPkcs1v15RequestObjectBuilder(
privateKey: privateKey,
ciphertext: ciphertext,
);
@@ -266,7 +266,7 @@ class RSA {
static Future decryptPKCS1v15Bytes(
Uint8List ciphertext, String privateKey) async {
- var requestBuilder = model.DecryptPKCS1v15BytesRequestObjectBuilder(
+ var requestBuilder = model.DecryptPkcs1v15BytesRequestObjectBuilder(
privateKey: privateKey,
ciphertext: ciphertext,
);
@@ -277,7 +277,7 @@ class RSA {
static Future encryptOAEP(
String message, String label, Hash hash, String publicKey) async {
- var requestBuilder = model.EncryptOAEPRequestObjectBuilder(
+ var requestBuilder = model.EncryptOaeprequestObjectBuilder(
message: message,
label: label,
publicKey: publicKey,
@@ -289,7 +289,7 @@ class RSA {
static Future encryptOAEPBytes(
Uint8List message, String label, Hash hash, String publicKey) async {
- var requestBuilder = model.EncryptOAEPBytesRequestObjectBuilder(
+ var requestBuilder = model.EncryptOaepbytesRequestObjectBuilder(
message: message,
label: label,
publicKey: publicKey,
@@ -301,7 +301,7 @@ class RSA {
static Future encryptPKCS1v15(
String message, String publicKey) async {
- var requestBuilder = model.EncryptPKCS1v15RequestObjectBuilder(
+ var requestBuilder = model.EncryptPkcs1v15RequestObjectBuilder(
message: message,
publicKey: publicKey,
);
@@ -311,7 +311,7 @@ class RSA {
static Future encryptPKCS1v15Bytes(
Uint8List message, String publicKey) async {
- var requestBuilder = model.EncryptPKCS1v15BytesRequestObjectBuilder(
+ var requestBuilder = model.EncryptPkcs1v15BytesRequestObjectBuilder(
message: message,
publicKey: publicKey,
);
@@ -322,7 +322,7 @@ class RSA {
static Future signPSS(String message, Hash hash,
SaltLength saltLength, String privateKey) async {
- var requestBuilder = model.SignPSSRequestObjectBuilder(
+ var requestBuilder = model.SignPssrequestObjectBuilder(
message: message,
privateKey: privateKey,
saltLength: model.SaltLength.values[saltLength.index],
@@ -334,7 +334,7 @@ class RSA {
static Future signPSSBytes(Uint8List message, Hash hash,
SaltLength saltLength, String privateKey) async {
- var requestBuilder = model.SignPSSBytesRequestObjectBuilder(
+ var requestBuilder = model.SignPssbytesRequestObjectBuilder(
message: message,
privateKey: privateKey,
saltLength: model.SaltLength.values[saltLength.index],
@@ -346,7 +346,7 @@ class RSA {
static Future signPKCS1v15(
String message, Hash hash, String privateKey) async {
- var requestBuilder = model.SignPKCS1v15RequestObjectBuilder(
+ var requestBuilder = model.SignPkcs1v15RequestObjectBuilder(
message: message,
privateKey: privateKey,
hash: model.Hash.values[hash.index],
@@ -357,7 +357,7 @@ class RSA {
static Future signPKCS1v15Bytes(
Uint8List message, Hash hash, String privateKey) async {
- var requestBuilder = model.SignPKCS1v15BytesRequestObjectBuilder(
+ var requestBuilder = model.SignPkcs1v15BytesRequestObjectBuilder(
message: message,
privateKey: privateKey,
hash: model.Hash.values[hash.index],
@@ -368,7 +368,7 @@ class RSA {
static Future verifyPSS(String signature, String message, Hash hash,
SaltLength saltLength, String publicKey) async {
- var requestBuilder = model.VerifyPSSRequestObjectBuilder(
+ var requestBuilder = model.VerifyPssrequestObjectBuilder(
message: message,
signature: signature,
publicKey: publicKey,
@@ -381,7 +381,7 @@ class RSA {
static Future verifyPSSBytes(Uint8List signature, Uint8List message,
Hash hash, SaltLength saltLength, String publicKey) async {
- var requestBuilder = model.VerifyPSSBytesRequestObjectBuilder(
+ var requestBuilder = model.VerifyPssbytesRequestObjectBuilder(
message: message,
signature: signature,
publicKey: publicKey,
@@ -394,7 +394,7 @@ class RSA {
static Future verifyPKCS1v15(
String signature, String message, Hash hash, String publicKey) async {
- var requestBuilder = model.VerifyPKCS1v15RequestObjectBuilder(
+ var requestBuilder = model.VerifyPkcs1v15RequestObjectBuilder(
message: message,
signature: signature,
publicKey: publicKey,
@@ -406,7 +406,7 @@ class RSA {
static Future verifyPKCS1v15Bytes(Uint8List signature,
Uint8List message, Hash hash, String publicKey) async {
- var requestBuilder = model.VerifyPKCS1v15BytesRequestObjectBuilder(
+ var requestBuilder = model.VerifyPkcs1v15BytesRequestObjectBuilder(
message: message,
signature: signature,
publicKey: publicKey,
diff --git a/lib/model/bridge_model_generated.dart b/lib/model/bridge_model_generated.dart
index c3a6c23..9f8f4f0 100644
--- a/lib/model/bridge_model_generated.dart
+++ b/lib/model/bridge_model_generated.dart
@@ -41,38 +41,38 @@ class _SaltLengthReader extends fb.Reader {
const _SaltLengthReader();
@override
- int get size => 1;
+ int get size => 4;
@override
SaltLength read(fb.BufferContext bc, int offset) =>
SaltLength.fromValue(const fb.Int32Reader().read(bc, offset));
}
-class PEMCipher {
+class Pemcipher {
final int value;
- const PEMCipher._(this.value);
+ const Pemcipher._(this.value);
- factory PEMCipher.fromValue(int value) {
+ factory Pemcipher.fromValue(int value) {
final result = values[value];
if (result == null) {
- throw StateError('Invalid value $value for bit flag enum PEMCipher');
+ throw StateError('Invalid value $value for bit flag enum Pemcipher');
}
return result;
}
- static PEMCipher? _createOrNull(int? value) =>
- value == null ? null : PEMCipher.fromValue(value);
+ static Pemcipher? _createOrNull(int? value) =>
+ value == null ? null : Pemcipher.fromValue(value);
static const int minValue = 0;
static const int maxValue = 4;
static bool containsValue(int value) => values.containsKey(value);
- static const PEMCipher DES = PEMCipher._(0);
- static const PEMCipher D3DES = PEMCipher._(1);
- static const PEMCipher AES128 = PEMCipher._(2);
- static const PEMCipher AES192 = PEMCipher._(3);
- static const PEMCipher AES256 = PEMCipher._(4);
- static const Map values = {
+ static const Pemcipher DES = Pemcipher._(0);
+ static const Pemcipher D3DES = Pemcipher._(1);
+ static const Pemcipher AES128 = Pemcipher._(2);
+ static const Pemcipher AES192 = Pemcipher._(3);
+ static const Pemcipher AES256 = Pemcipher._(4);
+ static const Map values = {
0: DES,
1: D3DES,
2: AES128,
@@ -80,23 +80,23 @@ class PEMCipher {
4: AES256
};
- static const fb.Reader reader = _PEMCipherReader();
+ static const fb.Reader reader = _PemcipherReader();
@override
String toString() {
- return 'PEMCipher{value: $value}';
+ return 'Pemcipher{value: $value}';
}
}
-class _PEMCipherReader extends fb.Reader {
- const _PEMCipherReader();
+class _PemcipherReader extends fb.Reader {
+ const _PemcipherReader();
@override
- int get size => 1;
+ int get size => 4;
@override
- PEMCipher read(fb.BufferContext bc, int offset) =>
- PEMCipher.fromValue(const fb.Int32Reader().read(bc, offset));
+ Pemcipher read(fb.BufferContext bc, int offset) =>
+ Pemcipher.fromValue(const fb.Int32Reader().read(bc, offset));
}
class Hash {
@@ -145,21 +145,21 @@ class _HashReader extends fb.Reader {
const _HashReader();
@override
- int get size => 1;
+ int get size => 4;
@override
Hash read(fb.BufferContext bc, int offset) =>
Hash.fromValue(const fb.Int32Reader().read(bc, offset));
}
-class ConvertJWTRequest {
- ConvertJWTRequest._(this._bc, this._bcOffset);
- factory ConvertJWTRequest(List bytes) {
+class ConvertJwtrequest {
+ ConvertJwtrequest._(this._bc, this._bcOffset);
+ factory ConvertJwtrequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader = _ConvertJWTRequestReader();
+ static const fb.Reader reader = _ConvertJwtrequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -171,20 +171,20 @@ class ConvertJWTRequest {
@override
String toString() {
- return 'ConvertJWTRequest{data: $data, keyId: $keyId}';
+ return 'ConvertJwtrequest{data: ${data}, keyId: ${keyId}}';
}
}
-class _ConvertJWTRequestReader extends fb.TableReader {
- const _ConvertJWTRequestReader();
+class _ConvertJwtrequestReader extends fb.TableReader {
+ const _ConvertJwtrequestReader();
@override
- ConvertJWTRequest createObject(fb.BufferContext bc, int offset) =>
- ConvertJWTRequest._(bc, offset);
+ ConvertJwtrequest createObject(fb.BufferContext bc, int offset) =>
+ ConvertJwtrequest._(bc, offset);
}
-class ConvertJWTRequestBuilder {
- ConvertJWTRequestBuilder(this.fbBuilder);
+class ConvertJwtrequestBuilder {
+ ConvertJwtrequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -207,11 +207,11 @@ class ConvertJWTRequestBuilder {
}
}
-class ConvertJWTRequestObjectBuilder extends fb.ObjectBuilder {
+class ConvertJwtrequestObjectBuilder extends fb.ObjectBuilder {
final String? _data;
final String? _keyId;
- ConvertJWTRequestObjectBuilder({
+ ConvertJwtrequestObjectBuilder({
String? data,
String? keyId,
}) : _data = data,
@@ -261,7 +261,7 @@ class ConvertKeyPairRequest {
@override
String toString() {
- return 'ConvertKeyPairRequest{privateKey: $privateKey, certificate: $certificate, password: $password}';
+ return 'ConvertKeyPairRequest{privateKey: ${privateKey}, certificate: ${certificate}, password: ${password}}';
}
}
@@ -341,15 +341,15 @@ class ConvertKeyPairRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class ConvertPKCS12Request {
- ConvertPKCS12Request._(this._bc, this._bcOffset);
- factory ConvertPKCS12Request(List bytes) {
+class ConvertPkcs12Request {
+ ConvertPkcs12Request._(this._bc, this._bcOffset);
+ factory ConvertPkcs12Request(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _ConvertPKCS12RequestReader();
+ static const fb.Reader reader =
+ _ConvertPkcs12RequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -361,20 +361,20 @@ class ConvertPKCS12Request {
@override
String toString() {
- return 'ConvertPKCS12Request{pkcs12: $pkcs12, password: $password}';
+ return 'ConvertPkcs12Request{pkcs12: ${pkcs12}, password: ${password}}';
}
}
-class _ConvertPKCS12RequestReader extends fb.TableReader {
- const _ConvertPKCS12RequestReader();
+class _ConvertPkcs12RequestReader extends fb.TableReader {
+ const _ConvertPkcs12RequestReader();
@override
- ConvertPKCS12Request createObject(fb.BufferContext bc, int offset) =>
- ConvertPKCS12Request._(bc, offset);
+ ConvertPkcs12Request createObject(fb.BufferContext bc, int offset) =>
+ ConvertPkcs12Request._(bc, offset);
}
-class ConvertPKCS12RequestBuilder {
- ConvertPKCS12RequestBuilder(this.fbBuilder);
+class ConvertPkcs12RequestBuilder {
+ ConvertPkcs12RequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -397,11 +397,11 @@ class ConvertPKCS12RequestBuilder {
}
}
-class ConvertPKCS12RequestObjectBuilder extends fb.ObjectBuilder {
+class ConvertPkcs12RequestObjectBuilder extends fb.ObjectBuilder {
final String? _pkcs12;
final String? _password;
- ConvertPKCS12RequestObjectBuilder({
+ ConvertPkcs12RequestObjectBuilder({
String? pkcs12,
String? password,
}) : _pkcs12 = pkcs12,
@@ -447,7 +447,7 @@ class ConvertPrivateKeyRequest {
@override
String toString() {
- return 'ConvertPrivateKeyRequest{privateKey: $privateKey}';
+ return 'ConvertPrivateKeyRequest{privateKey: ${privateKey}}';
}
}
@@ -523,7 +523,7 @@ class ConvertPublicKeyRequest {
@override
String toString() {
- return 'ConvertPublicKeyRequest{publicKey: $publicKey}';
+ return 'ConvertPublicKeyRequest{publicKey: ${publicKey}}';
}
}
@@ -581,15 +581,15 @@ class ConvertPublicKeyRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class DecryptOAEPRequest {
- DecryptOAEPRequest._(this._bc, this._bcOffset);
- factory DecryptOAEPRequest(List bytes) {
+class DecryptOaeprequest {
+ DecryptOaeprequest._(this._bc, this._bcOffset);
+ factory DecryptOaeprequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _DecryptOAEPRequestReader();
+ static const fb.Reader reader =
+ _DecryptOaeprequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -605,20 +605,20 @@ class DecryptOAEPRequest {
@override
String toString() {
- return 'DecryptOAEPRequest{ciphertext: $ciphertext, label: $label, hash: $hash, privateKey: $privateKey}';
+ return 'DecryptOaeprequest{ciphertext: ${ciphertext}, label: ${label}, hash: ${hash}, privateKey: ${privateKey}}';
}
}
-class _DecryptOAEPRequestReader extends fb.TableReader {
- const _DecryptOAEPRequestReader();
+class _DecryptOaeprequestReader extends fb.TableReader {
+ const _DecryptOaeprequestReader();
@override
- DecryptOAEPRequest createObject(fb.BufferContext bc, int offset) =>
- DecryptOAEPRequest._(bc, offset);
+ DecryptOaeprequest createObject(fb.BufferContext bc, int offset) =>
+ DecryptOaeprequest._(bc, offset);
}
-class DecryptOAEPRequestBuilder {
- DecryptOAEPRequestBuilder(this.fbBuilder);
+class DecryptOaeprequestBuilder {
+ DecryptOaeprequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -651,13 +651,13 @@ class DecryptOAEPRequestBuilder {
}
}
-class DecryptOAEPRequestObjectBuilder extends fb.ObjectBuilder {
+class DecryptOaeprequestObjectBuilder extends fb.ObjectBuilder {
final String? _ciphertext;
final String? _label;
final Hash? _hash;
final String? _privateKey;
- DecryptOAEPRequestObjectBuilder({
+ DecryptOaeprequestObjectBuilder({
String? ciphertext,
String? label,
Hash? hash,
@@ -693,15 +693,15 @@ class DecryptOAEPRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class DecryptOAEPBytesRequest {
- DecryptOAEPBytesRequest._(this._bc, this._bcOffset);
- factory DecryptOAEPBytesRequest(List bytes) {
+class DecryptOaepbytesRequest {
+ DecryptOaepbytesRequest._(this._bc, this._bcOffset);
+ factory DecryptOaepbytesRequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _DecryptOAEPBytesRequestReader();
+ static const fb.Reader reader =
+ _DecryptOaepbytesRequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -717,21 +717,21 @@ class DecryptOAEPBytesRequest {
@override
String toString() {
- return 'DecryptOAEPBytesRequest{ciphertext: $ciphertext, label: $label, hash: $hash, privateKey: $privateKey}';
+ return 'DecryptOaepbytesRequest{ciphertext: ${ciphertext}, label: ${label}, hash: ${hash}, privateKey: ${privateKey}}';
}
}
-class _DecryptOAEPBytesRequestReader
- extends fb.TableReader {
- const _DecryptOAEPBytesRequestReader();
+class _DecryptOaepbytesRequestReader
+ extends fb.TableReader {
+ const _DecryptOaepbytesRequestReader();
@override
- DecryptOAEPBytesRequest createObject(fb.BufferContext bc, int offset) =>
- DecryptOAEPBytesRequest._(bc, offset);
+ DecryptOaepbytesRequest createObject(fb.BufferContext bc, int offset) =>
+ DecryptOaepbytesRequest._(bc, offset);
}
-class DecryptOAEPBytesRequestBuilder {
- DecryptOAEPBytesRequestBuilder(this.fbBuilder);
+class DecryptOaepbytesRequestBuilder {
+ DecryptOaepbytesRequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -764,13 +764,13 @@ class DecryptOAEPBytesRequestBuilder {
}
}
-class DecryptOAEPBytesRequestObjectBuilder extends fb.ObjectBuilder {
+class DecryptOaepbytesRequestObjectBuilder extends fb.ObjectBuilder {
final List? _ciphertext;
final String? _label;
final Hash? _hash;
final String? _privateKey;
- DecryptOAEPBytesRequestObjectBuilder({
+ DecryptOaepbytesRequestObjectBuilder({
List? ciphertext,
String? label,
Hash? hash,
@@ -806,15 +806,15 @@ class DecryptOAEPBytesRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class DecryptPKCS1v15Request {
- DecryptPKCS1v15Request._(this._bc, this._bcOffset);
- factory DecryptPKCS1v15Request(List bytes) {
+class DecryptPkcs1v15Request {
+ DecryptPkcs1v15Request._(this._bc, this._bcOffset);
+ factory DecryptPkcs1v15Request(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _DecryptPKCS1v15RequestReader();
+ static const fb.Reader reader =
+ _DecryptPkcs1v15RequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -826,21 +826,21 @@ class DecryptPKCS1v15Request {
@override
String toString() {
- return 'DecryptPKCS1v15Request{ciphertext: $ciphertext, privateKey: $privateKey}';
+ return 'DecryptPkcs1v15Request{ciphertext: ${ciphertext}, privateKey: ${privateKey}}';
}
}
-class _DecryptPKCS1v15RequestReader
- extends fb.TableReader {
- const _DecryptPKCS1v15RequestReader();
+class _DecryptPkcs1v15RequestReader
+ extends fb.TableReader {
+ const _DecryptPkcs1v15RequestReader();
@override
- DecryptPKCS1v15Request createObject(fb.BufferContext bc, int offset) =>
- DecryptPKCS1v15Request._(bc, offset);
+ DecryptPkcs1v15Request createObject(fb.BufferContext bc, int offset) =>
+ DecryptPkcs1v15Request._(bc, offset);
}
-class DecryptPKCS1v15RequestBuilder {
- DecryptPKCS1v15RequestBuilder(this.fbBuilder);
+class DecryptPkcs1v15RequestBuilder {
+ DecryptPkcs1v15RequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -863,11 +863,11 @@ class DecryptPKCS1v15RequestBuilder {
}
}
-class DecryptPKCS1v15RequestObjectBuilder extends fb.ObjectBuilder {
+class DecryptPkcs1v15RequestObjectBuilder extends fb.ObjectBuilder {
final String? _ciphertext;
final String? _privateKey;
- DecryptPKCS1v15RequestObjectBuilder({
+ DecryptPkcs1v15RequestObjectBuilder({
String? ciphertext,
String? privateKey,
}) : _ciphertext = ciphertext,
@@ -895,15 +895,15 @@ class DecryptPKCS1v15RequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class DecryptPKCS1v15BytesRequest {
- DecryptPKCS1v15BytesRequest._(this._bc, this._bcOffset);
- factory DecryptPKCS1v15BytesRequest(List bytes) {
+class DecryptPkcs1v15BytesRequest {
+ DecryptPkcs1v15BytesRequest._(this._bc, this._bcOffset);
+ factory DecryptPkcs1v15BytesRequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _DecryptPKCS1v15BytesRequestReader();
+ static const fb.Reader reader =
+ _DecryptPkcs1v15BytesRequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -915,21 +915,21 @@ class DecryptPKCS1v15BytesRequest {
@override
String toString() {
- return 'DecryptPKCS1v15BytesRequest{ciphertext: $ciphertext, privateKey: $privateKey}';
+ return 'DecryptPkcs1v15BytesRequest{ciphertext: ${ciphertext}, privateKey: ${privateKey}}';
}
}
-class _DecryptPKCS1v15BytesRequestReader
- extends fb.TableReader {
- const _DecryptPKCS1v15BytesRequestReader();
+class _DecryptPkcs1v15BytesRequestReader
+ extends fb.TableReader {
+ const _DecryptPkcs1v15BytesRequestReader();
@override
- DecryptPKCS1v15BytesRequest createObject(fb.BufferContext bc, int offset) =>
- DecryptPKCS1v15BytesRequest._(bc, offset);
+ DecryptPkcs1v15BytesRequest createObject(fb.BufferContext bc, int offset) =>
+ DecryptPkcs1v15BytesRequest._(bc, offset);
}
-class DecryptPKCS1v15BytesRequestBuilder {
- DecryptPKCS1v15BytesRequestBuilder(this.fbBuilder);
+class DecryptPkcs1v15BytesRequestBuilder {
+ DecryptPkcs1v15BytesRequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -952,11 +952,11 @@ class DecryptPKCS1v15BytesRequestBuilder {
}
}
-class DecryptPKCS1v15BytesRequestObjectBuilder extends fb.ObjectBuilder {
+class DecryptPkcs1v15BytesRequestObjectBuilder extends fb.ObjectBuilder {
final List? _ciphertext;
final String? _privateKey;
- DecryptPKCS1v15BytesRequestObjectBuilder({
+ DecryptPkcs1v15BytesRequestObjectBuilder({
List? ciphertext,
String? privateKey,
}) : _ciphertext = ciphertext,
@@ -1004,7 +1004,7 @@ class DecryptPrivateKeyRequest {
@override
String toString() {
- return 'DecryptPrivateKeyRequest{privateKeyEncrypted: $privateKeyEncrypted, password: $password}';
+ return 'DecryptPrivateKeyRequest{privateKeyEncrypted: ${privateKeyEncrypted}, password: ${password}}';
}
}
@@ -1074,15 +1074,15 @@ class DecryptPrivateKeyRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class EncryptOAEPRequest {
- EncryptOAEPRequest._(this._bc, this._bcOffset);
- factory EncryptOAEPRequest(List bytes) {
+class EncryptOaeprequest {
+ EncryptOaeprequest._(this._bc, this._bcOffset);
+ factory EncryptOaeprequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _EncryptOAEPRequestReader();
+ static const fb.Reader reader =
+ _EncryptOaeprequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -1098,20 +1098,20 @@ class EncryptOAEPRequest {
@override
String toString() {
- return 'EncryptOAEPRequest{message: $message, label: $label, hash: $hash, publicKey: $publicKey}';
+ return 'EncryptOaeprequest{message: ${message}, label: ${label}, hash: ${hash}, publicKey: ${publicKey}}';
}
}
-class _EncryptOAEPRequestReader extends fb.TableReader {
- const _EncryptOAEPRequestReader();
+class _EncryptOaeprequestReader extends fb.TableReader {
+ const _EncryptOaeprequestReader();
@override
- EncryptOAEPRequest createObject(fb.BufferContext bc, int offset) =>
- EncryptOAEPRequest._(bc, offset);
+ EncryptOaeprequest createObject(fb.BufferContext bc, int offset) =>
+ EncryptOaeprequest._(bc, offset);
}
-class EncryptOAEPRequestBuilder {
- EncryptOAEPRequestBuilder(this.fbBuilder);
+class EncryptOaeprequestBuilder {
+ EncryptOaeprequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -1144,13 +1144,13 @@ class EncryptOAEPRequestBuilder {
}
}
-class EncryptOAEPRequestObjectBuilder extends fb.ObjectBuilder {
+class EncryptOaeprequestObjectBuilder extends fb.ObjectBuilder {
final String? _message;
final String? _label;
final Hash? _hash;
final String? _publicKey;
- EncryptOAEPRequestObjectBuilder({
+ EncryptOaeprequestObjectBuilder({
String? message,
String? label,
Hash? hash,
@@ -1186,15 +1186,15 @@ class EncryptOAEPRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class EncryptOAEPBytesRequest {
- EncryptOAEPBytesRequest._(this._bc, this._bcOffset);
- factory EncryptOAEPBytesRequest(List bytes) {
+class EncryptOaepbytesRequest {
+ EncryptOaepbytesRequest._(this._bc, this._bcOffset);
+ factory EncryptOaepbytesRequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _EncryptOAEPBytesRequestReader();
+ static const fb.Reader reader =
+ _EncryptOaepbytesRequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -1210,21 +1210,21 @@ class EncryptOAEPBytesRequest {
@override
String toString() {
- return 'EncryptOAEPBytesRequest{message: $message, label: $label, hash: $hash, publicKey: $publicKey}';
+ return 'EncryptOaepbytesRequest{message: ${message}, label: ${label}, hash: ${hash}, publicKey: ${publicKey}}';
}
}
-class _EncryptOAEPBytesRequestReader
- extends fb.TableReader {
- const _EncryptOAEPBytesRequestReader();
+class _EncryptOaepbytesRequestReader
+ extends fb.TableReader {
+ const _EncryptOaepbytesRequestReader();
@override
- EncryptOAEPBytesRequest createObject(fb.BufferContext bc, int offset) =>
- EncryptOAEPBytesRequest._(bc, offset);
+ EncryptOaepbytesRequest createObject(fb.BufferContext bc, int offset) =>
+ EncryptOaepbytesRequest._(bc, offset);
}
-class EncryptOAEPBytesRequestBuilder {
- EncryptOAEPBytesRequestBuilder(this.fbBuilder);
+class EncryptOaepbytesRequestBuilder {
+ EncryptOaepbytesRequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -1257,13 +1257,13 @@ class EncryptOAEPBytesRequestBuilder {
}
}
-class EncryptOAEPBytesRequestObjectBuilder extends fb.ObjectBuilder {
+class EncryptOaepbytesRequestObjectBuilder extends fb.ObjectBuilder {
final List? _message;
final String? _label;
final Hash? _hash;
final String? _publicKey;
- EncryptOAEPBytesRequestObjectBuilder({
+ EncryptOaepbytesRequestObjectBuilder({
List? message,
String? label,
Hash? hash,
@@ -1299,15 +1299,15 @@ class EncryptOAEPBytesRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class EncryptPKCS1v15Request {
- EncryptPKCS1v15Request._(this._bc, this._bcOffset);
- factory EncryptPKCS1v15Request(List bytes) {
+class EncryptPkcs1v15Request {
+ EncryptPkcs1v15Request._(this._bc, this._bcOffset);
+ factory EncryptPkcs1v15Request(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _EncryptPKCS1v15RequestReader();
+ static const fb.Reader reader =
+ _EncryptPkcs1v15RequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -1319,21 +1319,21 @@ class EncryptPKCS1v15Request {
@override
String toString() {
- return 'EncryptPKCS1v15Request{message: $message, publicKey: $publicKey}';
+ return 'EncryptPkcs1v15Request{message: ${message}, publicKey: ${publicKey}}';
}
}
-class _EncryptPKCS1v15RequestReader
- extends fb.TableReader {
- const _EncryptPKCS1v15RequestReader();
+class _EncryptPkcs1v15RequestReader
+ extends fb.TableReader {
+ const _EncryptPkcs1v15RequestReader();
@override
- EncryptPKCS1v15Request createObject(fb.BufferContext bc, int offset) =>
- EncryptPKCS1v15Request._(bc, offset);
+ EncryptPkcs1v15Request createObject(fb.BufferContext bc, int offset) =>
+ EncryptPkcs1v15Request._(bc, offset);
}
-class EncryptPKCS1v15RequestBuilder {
- EncryptPKCS1v15RequestBuilder(this.fbBuilder);
+class EncryptPkcs1v15RequestBuilder {
+ EncryptPkcs1v15RequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -1356,11 +1356,11 @@ class EncryptPKCS1v15RequestBuilder {
}
}
-class EncryptPKCS1v15RequestObjectBuilder extends fb.ObjectBuilder {
+class EncryptPkcs1v15RequestObjectBuilder extends fb.ObjectBuilder {
final String? _message;
final String? _publicKey;
- EncryptPKCS1v15RequestObjectBuilder({
+ EncryptPkcs1v15RequestObjectBuilder({
String? message,
String? publicKey,
}) : _message = message,
@@ -1388,15 +1388,15 @@ class EncryptPKCS1v15RequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class EncryptPKCS1v15BytesRequest {
- EncryptPKCS1v15BytesRequest._(this._bc, this._bcOffset);
- factory EncryptPKCS1v15BytesRequest(List bytes) {
+class EncryptPkcs1v15BytesRequest {
+ EncryptPkcs1v15BytesRequest._(this._bc, this._bcOffset);
+ factory EncryptPkcs1v15BytesRequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _EncryptPKCS1v15BytesRequestReader();
+ static const fb.Reader reader =
+ _EncryptPkcs1v15BytesRequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -1408,21 +1408,21 @@ class EncryptPKCS1v15BytesRequest {
@override
String toString() {
- return 'EncryptPKCS1v15BytesRequest{message: $message, publicKey: $publicKey}';
+ return 'EncryptPkcs1v15BytesRequest{message: ${message}, publicKey: ${publicKey}}';
}
}
-class _EncryptPKCS1v15BytesRequestReader
- extends fb.TableReader {
- const _EncryptPKCS1v15BytesRequestReader();
+class _EncryptPkcs1v15BytesRequestReader
+ extends fb.TableReader {
+ const _EncryptPkcs1v15BytesRequestReader();
@override
- EncryptPKCS1v15BytesRequest createObject(fb.BufferContext bc, int offset) =>
- EncryptPKCS1v15BytesRequest._(bc, offset);
+ EncryptPkcs1v15BytesRequest createObject(fb.BufferContext bc, int offset) =>
+ EncryptPkcs1v15BytesRequest._(bc, offset);
}
-class EncryptPKCS1v15BytesRequestBuilder {
- EncryptPKCS1v15BytesRequestBuilder(this.fbBuilder);
+class EncryptPkcs1v15BytesRequestBuilder {
+ EncryptPkcs1v15BytesRequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -1445,11 +1445,11 @@ class EncryptPKCS1v15BytesRequestBuilder {
}
}
-class EncryptPKCS1v15BytesRequestObjectBuilder extends fb.ObjectBuilder {
+class EncryptPkcs1v15BytesRequestObjectBuilder extends fb.ObjectBuilder {
final List? _message;
final String? _publicKey;
- EncryptPKCS1v15BytesRequestObjectBuilder({
+ EncryptPkcs1v15BytesRequestObjectBuilder({
List? message,
String? publicKey,
}) : _message = message,
@@ -1494,12 +1494,12 @@ class EncryptPrivateKeyRequest {
const fb.StringReader().vTableGetNullable(_bc, _bcOffset, 4);
String? get password =>
const fb.StringReader().vTableGetNullable(_bc, _bcOffset, 6);
- PEMCipher get cipher => PEMCipher.fromValue(
+ Pemcipher get cipher => Pemcipher.fromValue(
const fb.Int32Reader().vTableGet(_bc, _bcOffset, 8, 0));
@override
String toString() {
- return 'EncryptPrivateKeyRequest{privateKey: $privateKey, password: $password, cipher: $cipher}';
+ return 'EncryptPrivateKeyRequest{privateKey: ${privateKey}, password: ${password}, cipher: ${cipher}}';
}
}
@@ -1531,7 +1531,7 @@ class EncryptPrivateKeyRequestBuilder {
return fbBuilder.offset;
}
- int addCipher(PEMCipher? cipher) {
+ int addCipher(Pemcipher? cipher) {
fbBuilder.addInt32(2, cipher?.value);
return fbBuilder.offset;
}
@@ -1544,12 +1544,12 @@ class EncryptPrivateKeyRequestBuilder {
class EncryptPrivateKeyRequestObjectBuilder extends fb.ObjectBuilder {
final String? _privateKey;
final String? _password;
- final PEMCipher? _cipher;
+ final Pemcipher? _cipher;
EncryptPrivateKeyRequestObjectBuilder({
String? privateKey,
String? password,
- PEMCipher? cipher,
+ Pemcipher? cipher,
}) : _privateKey = privateKey,
_password = password,
_cipher = cipher;
@@ -1593,7 +1593,7 @@ class GenerateRequest {
@override
String toString() {
- return 'GenerateRequest{nBits: $nBits}';
+ return 'GenerateRequest{nBits: ${nBits}}';
}
}
@@ -1667,7 +1667,7 @@ class HashRequest {
@override
String toString() {
- return 'HashRequest{message: $message, hash: $hash}';
+ return 'HashRequest{message: ${message}, hash: ${hash}}';
}
}
@@ -1750,7 +1750,7 @@ class Base64Request {
@override
String toString() {
- return 'Base64Request{message: $message}';
+ return 'Base64Request{message: ${message}}';
}
}
@@ -1825,7 +1825,7 @@ class MetadataPrivateKeyRequest {
@override
String toString() {
- return 'MetadataPrivateKeyRequest{privateKey: $privateKey}';
+ return 'MetadataPrivateKeyRequest{privateKey: ${privateKey}}';
}
}
@@ -1901,7 +1901,7 @@ class MetadataPublicKeyRequest {
@override
String toString() {
- return 'MetadataPublicKeyRequest{publicKey: $publicKey}';
+ return 'MetadataPublicKeyRequest{publicKey: ${publicKey}}';
}
}
@@ -1959,15 +1959,15 @@ class MetadataPublicKeyRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class SignPKCS1v15Request {
- SignPKCS1v15Request._(this._bc, this._bcOffset);
- factory SignPKCS1v15Request(List bytes) {
+class SignPkcs1v15Request {
+ SignPkcs1v15Request._(this._bc, this._bcOffset);
+ factory SignPkcs1v15Request(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _SignPKCS1v15RequestReader();
+ static const fb.Reader reader =
+ _SignPkcs1v15RequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -1981,20 +1981,20 @@ class SignPKCS1v15Request {
@override
String toString() {
- return 'SignPKCS1v15Request{message: $message, hash: $hash, privateKey: $privateKey}';
+ return 'SignPkcs1v15Request{message: ${message}, hash: ${hash}, privateKey: ${privateKey}}';
}
}
-class _SignPKCS1v15RequestReader extends fb.TableReader {
- const _SignPKCS1v15RequestReader();
+class _SignPkcs1v15RequestReader extends fb.TableReader {
+ const _SignPkcs1v15RequestReader();
@override
- SignPKCS1v15Request createObject(fb.BufferContext bc, int offset) =>
- SignPKCS1v15Request._(bc, offset);
+ SignPkcs1v15Request createObject(fb.BufferContext bc, int offset) =>
+ SignPkcs1v15Request._(bc, offset);
}
-class SignPKCS1v15RequestBuilder {
- SignPKCS1v15RequestBuilder(this.fbBuilder);
+class SignPkcs1v15RequestBuilder {
+ SignPkcs1v15RequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -2022,12 +2022,12 @@ class SignPKCS1v15RequestBuilder {
}
}
-class SignPKCS1v15RequestObjectBuilder extends fb.ObjectBuilder {
+class SignPkcs1v15RequestObjectBuilder extends fb.ObjectBuilder {
final String? _message;
final Hash? _hash;
final String? _privateKey;
- SignPKCS1v15RequestObjectBuilder({
+ SignPkcs1v15RequestObjectBuilder({
String? message,
Hash? hash,
String? privateKey,
@@ -2058,15 +2058,15 @@ class SignPKCS1v15RequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class SignPKCS1v15BytesRequest {
- SignPKCS1v15BytesRequest._(this._bc, this._bcOffset);
- factory SignPKCS1v15BytesRequest(List bytes) {
+class SignPkcs1v15BytesRequest {
+ SignPkcs1v15BytesRequest._(this._bc, this._bcOffset);
+ factory SignPkcs1v15BytesRequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _SignPKCS1v15BytesRequestReader();
+ static const fb.Reader reader =
+ _SignPkcs1v15BytesRequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -2080,21 +2080,21 @@ class SignPKCS1v15BytesRequest {
@override
String toString() {
- return 'SignPKCS1v15BytesRequest{message: $message, hash: $hash, privateKey: $privateKey}';
+ return 'SignPkcs1v15BytesRequest{message: ${message}, hash: ${hash}, privateKey: ${privateKey}}';
}
}
-class _SignPKCS1v15BytesRequestReader
- extends fb.TableReader {
- const _SignPKCS1v15BytesRequestReader();
+class _SignPkcs1v15BytesRequestReader
+ extends fb.TableReader {
+ const _SignPkcs1v15BytesRequestReader();
@override
- SignPKCS1v15BytesRequest createObject(fb.BufferContext bc, int offset) =>
- SignPKCS1v15BytesRequest._(bc, offset);
+ SignPkcs1v15BytesRequest createObject(fb.BufferContext bc, int offset) =>
+ SignPkcs1v15BytesRequest._(bc, offset);
}
-class SignPKCS1v15BytesRequestBuilder {
- SignPKCS1v15BytesRequestBuilder(this.fbBuilder);
+class SignPkcs1v15BytesRequestBuilder {
+ SignPkcs1v15BytesRequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -2122,12 +2122,12 @@ class SignPKCS1v15BytesRequestBuilder {
}
}
-class SignPKCS1v15BytesRequestObjectBuilder extends fb.ObjectBuilder {
+class SignPkcs1v15BytesRequestObjectBuilder extends fb.ObjectBuilder {
final List? _message;
final Hash? _hash;
final String? _privateKey;
- SignPKCS1v15BytesRequestObjectBuilder({
+ SignPkcs1v15BytesRequestObjectBuilder({
List? message,
Hash? hash,
String? privateKey,
@@ -2158,14 +2158,14 @@ class SignPKCS1v15BytesRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class SignPSSRequest {
- SignPSSRequest._(this._bc, this._bcOffset);
- factory SignPSSRequest(List bytes) {
+class SignPssrequest {
+ SignPssrequest._(this._bc, this._bcOffset);
+ factory SignPssrequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader = _SignPSSRequestReader();
+ static const fb.Reader reader = _SignPssrequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -2181,20 +2181,20 @@ class SignPSSRequest {
@override
String toString() {
- return 'SignPSSRequest{message: $message, hash: $hash, saltLength: $saltLength, privateKey: $privateKey}';
+ return 'SignPssrequest{message: ${message}, hash: ${hash}, saltLength: ${saltLength}, privateKey: ${privateKey}}';
}
}
-class _SignPSSRequestReader extends fb.TableReader {
- const _SignPSSRequestReader();
+class _SignPssrequestReader extends fb.TableReader {
+ const _SignPssrequestReader();
@override
- SignPSSRequest createObject(fb.BufferContext bc, int offset) =>
- SignPSSRequest._(bc, offset);
+ SignPssrequest createObject(fb.BufferContext bc, int offset) =>
+ SignPssrequest._(bc, offset);
}
-class SignPSSRequestBuilder {
- SignPSSRequestBuilder(this.fbBuilder);
+class SignPssrequestBuilder {
+ SignPssrequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -2227,13 +2227,13 @@ class SignPSSRequestBuilder {
}
}
-class SignPSSRequestObjectBuilder extends fb.ObjectBuilder {
+class SignPssrequestObjectBuilder extends fb.ObjectBuilder {
final String? _message;
final Hash? _hash;
final SaltLength? _saltLength;
final String? _privateKey;
- SignPSSRequestObjectBuilder({
+ SignPssrequestObjectBuilder({
String? message,
Hash? hash,
SaltLength? saltLength,
@@ -2267,15 +2267,15 @@ class SignPSSRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class SignPSSBytesRequest {
- SignPSSBytesRequest._(this._bc, this._bcOffset);
- factory SignPSSBytesRequest(List bytes) {
+class SignPssbytesRequest {
+ SignPssbytesRequest._(this._bc, this._bcOffset);
+ factory SignPssbytesRequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _SignPSSBytesRequestReader();
+ static const fb.Reader reader =
+ _SignPssbytesRequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -2291,20 +2291,20 @@ class SignPSSBytesRequest {
@override
String toString() {
- return 'SignPSSBytesRequest{message: $message, hash: $hash, saltLength: $saltLength, privateKey: $privateKey}';
+ return 'SignPssbytesRequest{message: ${message}, hash: ${hash}, saltLength: ${saltLength}, privateKey: ${privateKey}}';
}
}
-class _SignPSSBytesRequestReader extends fb.TableReader {
- const _SignPSSBytesRequestReader();
+class _SignPssbytesRequestReader extends fb.TableReader {
+ const _SignPssbytesRequestReader();
@override
- SignPSSBytesRequest createObject(fb.BufferContext bc, int offset) =>
- SignPSSBytesRequest._(bc, offset);
+ SignPssbytesRequest createObject(fb.BufferContext bc, int offset) =>
+ SignPssbytesRequest._(bc, offset);
}
-class SignPSSBytesRequestBuilder {
- SignPSSBytesRequestBuilder(this.fbBuilder);
+class SignPssbytesRequestBuilder {
+ SignPssbytesRequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -2337,13 +2337,13 @@ class SignPSSBytesRequestBuilder {
}
}
-class SignPSSBytesRequestObjectBuilder extends fb.ObjectBuilder {
+class SignPssbytesRequestObjectBuilder extends fb.ObjectBuilder {
final List? _message;
final Hash? _hash;
final SaltLength? _saltLength;
final String? _privateKey;
- SignPSSBytesRequestObjectBuilder({
+ SignPssbytesRequestObjectBuilder({
List? message,
Hash? hash,
SaltLength? saltLength,
@@ -2377,15 +2377,15 @@ class SignPSSBytesRequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class VerifyPKCS1v15Request {
- VerifyPKCS1v15Request._(this._bc, this._bcOffset);
- factory VerifyPKCS1v15Request(List bytes) {
+class VerifyPkcs1v15Request {
+ VerifyPkcs1v15Request._(this._bc, this._bcOffset);
+ factory VerifyPkcs1v15Request(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _VerifyPKCS1v15RequestReader();
+ static const fb.Reader reader =
+ _VerifyPkcs1v15RequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -2401,21 +2401,21 @@ class VerifyPKCS1v15Request {
@override
String toString() {
- return 'VerifyPKCS1v15Request{signature: $signature, message: $message, hash: $hash, publicKey: $publicKey}';
+ return 'VerifyPkcs1v15Request{signature: ${signature}, message: ${message}, hash: ${hash}, publicKey: ${publicKey}}';
}
}
-class _VerifyPKCS1v15RequestReader
- extends fb.TableReader {
- const _VerifyPKCS1v15RequestReader();
+class _VerifyPkcs1v15RequestReader
+ extends fb.TableReader {
+ const _VerifyPkcs1v15RequestReader();
@override
- VerifyPKCS1v15Request createObject(fb.BufferContext bc, int offset) =>
- VerifyPKCS1v15Request._(bc, offset);
+ VerifyPkcs1v15Request createObject(fb.BufferContext bc, int offset) =>
+ VerifyPkcs1v15Request._(bc, offset);
}
-class VerifyPKCS1v15RequestBuilder {
- VerifyPKCS1v15RequestBuilder(this.fbBuilder);
+class VerifyPkcs1v15RequestBuilder {
+ VerifyPkcs1v15RequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -2448,13 +2448,13 @@ class VerifyPKCS1v15RequestBuilder {
}
}
-class VerifyPKCS1v15RequestObjectBuilder extends fb.ObjectBuilder {
+class VerifyPkcs1v15RequestObjectBuilder extends fb.ObjectBuilder {
final String? _signature;
final String? _message;
final Hash? _hash;
final String? _publicKey;
- VerifyPKCS1v15RequestObjectBuilder({
+ VerifyPkcs1v15RequestObjectBuilder({
String? signature,
String? message,
Hash? hash,
@@ -2490,15 +2490,15 @@ class VerifyPKCS1v15RequestObjectBuilder extends fb.ObjectBuilder {
}
}
-class VerifyPKCS1v15BytesRequest {
- VerifyPKCS1v15BytesRequest._(this._bc, this._bcOffset);
- factory VerifyPKCS1v15BytesRequest(List bytes) {
+class VerifyPkcs1v15BytesRequest {
+ VerifyPkcs1v15BytesRequest._(this._bc, this._bcOffset);
+ factory VerifyPkcs1v15BytesRequest(List bytes) {
final rootRef = fb.BufferContext.fromBytes(bytes);
return reader.read(rootRef, 0);
}
- static const fb.Reader reader =
- _VerifyPKCS1v15BytesRequestReader();
+ static const fb.Reader reader =
+ _VerifyPkcs1v15BytesRequestReader();
final fb.BufferContext _bc;
final int _bcOffset;
@@ -2514,21 +2514,21 @@ class VerifyPKCS1v15BytesRequest {
@override
String toString() {
- return 'VerifyPKCS1v15BytesRequest{signature: $signature, message: $message, hash: $hash, publicKey: $publicKey}';
+ return 'VerifyPkcs1v15BytesRequest{signature: ${signature}, message: ${message}, hash: ${hash}, publicKey: ${publicKey}}';
}
}
-class _VerifyPKCS1v15BytesRequestReader
- extends fb.TableReader {
- const _VerifyPKCS1v15BytesRequestReader();
+class _VerifyPkcs1v15BytesRequestReader
+ extends fb.TableReader {
+ const _VerifyPkcs1v15BytesRequestReader();
@override
- VerifyPKCS1v15BytesRequest createObject(fb.BufferContext bc, int offset) =>
- VerifyPKCS1v15BytesRequest._(bc, offset);
+ VerifyPkcs1v15BytesRequest createObject(fb.BufferContext bc, int offset) =>
+ VerifyPkcs1v15BytesRequest._(bc, offset);
}
-class VerifyPKCS1v15BytesRequestBuilder {
- VerifyPKCS1v15BytesRequestBuilder(this.fbBuilder);
+class VerifyPkcs1v15BytesRequestBuilder {
+ VerifyPkcs1v15BytesRequestBuilder(this.fbBuilder);
final fb.Builder fbBuilder;
@@ -2561,13 +2561,13 @@ class VerifyPKCS1v15BytesRequestBuilder {
}
}
-class VerifyPKCS1v15BytesRequestObjectBuilder extends fb.ObjectBuilder {
+class VerifyPkcs1v15BytesRequestObjectBuilder extends fb.ObjectBuilder {
final List? _signature;
final List