Swift Sanctioned Crypto in Core Libraries


(Travis Beech) #1

With the open sourcing of Swift and the growing concerns around security and user privacy, Swift is lacking common crypto API’s as part of the core libraries. I’d like to propose that we add common crypto functionality as part of the Swift Core Libraries. I believe that something as important as encryption, hashing, and certificate handling should come as part of the core libraries and not provided by a 3rd party library.

Below are examples of what I would imagine the Core Libraries would provide:

Encryption
  - Symmetric Encryption
    - e.g. AES
  - Asymmetric Encryption
    - e.g. RSA

Hashing
  - Keyed Hashing
    - e.g. HMACSHA1
  - Un-keyed Hashing
    - e.g. MD5

Certificate Handling
  - X509 Certificates
    - Certificate based authentication
    - Certificate import, e.g. PEM
  - SSL pinning

Travis Beech | Principal Developer | Unwired Revolution
Optimizing Operations for Mobile and Distributed Systems


(Brent Royal-Gordon) #2

I’d like to propose that we add common crypto functionality as part of the Swift Core Libraries.

The only thing that's changed since you first proposed this on April 15 is that we're in the last few months of the Swift 3 development cycle and have basically moved into a phase of fine-tuning and fixing what we already have, instead of designing new stuff.

···

--
Brent Royal-Gordon
Architechies


(Erica Sadun) #3

I have a sneaking suspicion this is better discussed by lawyers than on the SE list.

-- E

···

On Jun 13, 2016, at 3:54 PM, Travis Beech via swift-evolution <swift-evolution@swift.org> wrote:

With the open sourcing of Swift and the growing concerns around security and user privacy, Swift is lacking common crypto API’s as part of the core libraries. I’d like to propose that we add common crypto functionality as part of the Swift Core Libraries. I believe that something as important as encryption, hashing, and certificate handling should come as part of the core libraries and not provided by a 3rd party library.

Below are examples of what I would imagine the Core Libraries would provide:

Encryption
  - Symmetric Encryption
    - e.g. AES
  - Asymmetric Encryption
    - e.g. RSA

Hashing
  - Keyed Hashing
    - e.g. HMACSHA1
  - Un-keyed Hashing
    - e.g. MD5

Certificate Handling
  - X509 Certificates
    - Certificate based authentication
    - Certificate import, e.g. PEM
  - SSL pinning


(Travis Beech) #4

Except that now I'm trying to follow the process for proposal as outlined in the swift evolution docs.

Travis Beech | Principal Developer | Unwired Revolution
Optimizing Operations for Mobile and Distributed Systems

···

On Jun 13, 2016, at 5:02 PM, Brent Royal-Gordon <brent@architechies.com> wrote:

I’d like to propose that we add common crypto functionality as part of the Swift Core Libraries.

The only thing that's changed since you first proposed this on April 15 is that we're in the last few months of the Swift 3 development cycle and have basically moved into a phase of fine-tuning and fixing what we already have, instead of designing new stuff.

--
Brent Royal-Gordon
Architechies