Comments (7)
Hey!
Thanks for raising the issue here!
First, regarding RSA in apple
provider.
I will add RSA for apple
provider in coming release (in several weeks, I have a prototype already in some old branch). But keep in mind, that Security Framework
(where RSA is implemented out-of-the-box) have minimal support for key encoding/decoding, and until we will have some kind of ASN.1 (DER) encoder/decoder implemented in cryptography-kotlin
(there is no such kind of things for Kotlin Multiplatform, yet), there will be only PKCS#1 format (it differs from standard DER/PEM encoding).
Some links for context about difference between RSA key formats:
- https://www.starkandwayne.com/blog/credhub-keysmust-be-pem-encoded-pkcs1-keys/index.html#:~:text=The%20difference%20between%20these%20two,released%20after%20PKCS%231%20chronologically.
- https://stackoverflow.com/questions/48958304/pkcs1-and-pkcs8-format-for-rsa-private-key
- https://crypto.stackexchange.com/questions/103582/confusion-over-pkcs1-and-traditional-options-with-openssl
Second, regarding Apple export regulations.
As far as I found, if you are using open source solutions (like cryptography-kotlin
which is using openssl
, which are both open-source) - you are falling into exemption, and so there should be no problems. Still, AFAIU you will still need to send annual (year-end) self-classification report to the US government to comply with the encryption export regulations
, though, as far as I see, this step is needed even if you use standard Apple encryption, or even just do HTTPS requests - they all are treated as exemption, and so you will need only to submit this report. Looks like Google Play
has the same policy for encryption, so it should be something standard (I believe).
Still, Im not a lawyer, Im not an expert in iOS development and distribution - so it's better to contact someone regarding this, even if you use Apple provided encryption.
Also, here I also have some links, which I found useful, and so may be it will be useful for you/your team. But, please look carefully, as articles/answers have rather different date of publication, and there were a lot of changes to U.S. laws (somewhen in 2016-2017), so be careful and patient:
- krzyzanowskim/CryptoSwift#928
- https://developer.apple.com/help/app-store-connect/reference/export-compliance-documentation-for-encryption
- https://stackoverflow.com/questions/56296001/does-apple-accept-ios-apps-with-statically-linked-openssl-in-the-app-store
- https://www.reddit.com/r/swift/comments/cyektl/am_i_exempt_from_complying_with_encryption_export/
- https://kitefaster.com/2017/08/10/encryption-export-compliance-ios-apps/
- https://medium.com/@cossacklabs/apple-export-regulations-on-crypto-6306380682e1
- https://stackoverflow.com/a/45888609
- https://docs.cossacklabs.com/themis/regulations/us-crypto-regulations/
May be this (a lot of links) is not what you expected when you've posted the question, but Im trying my best to at least understand what are the consequences of this and how it will affect end-users.
from cryptography-kotlin.
Thank you a lot for your research!
Yes, I indeed need to understand this topic far better.
from cryptography-kotlin.
Related Issues (8)
- Random numbers for Linux should poll `/dev/random` once HOT 6
- Add linuxArm64 target HOT 7
- Error in build: undefined references HOT 18
- Linux random numbers may not fill array completely HOT 3
- Add more algorithms to support cryptocurrency HOT 4
- Is there are any plans to support RSA with PKCS 1.5 padding for Openssl provider in future ? HOT 3
- I'm getting a build error on iOS HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cryptography-kotlin.