Crypto routines as part of the core library


(Travis Beech) #1

It would seem to me that common crypto routines should become part of the core Swift libraries without having to rely on unknown third party libraries or bridging into the C based CommonCrypto lib.

Just some things off the top of my head that we should be able to do easily in pure Swift is AES encryption, digests such as HMAC SHA1, dealing with certificates and keys, support for other encryption algorithms such as RSA.

Am I completely off base for wanting this? These features exist in other languages such as Java and C#.

Thank you,

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems


(Brent Royal-Gordon) #2

It would seem to me that common crypto routines should become part of the core Swift libraries without having to rely on unknown third party libraries or bridging into the C based CommonCrypto lib.

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version, but I strongly suspect it'll be considered out of scope for Swift 3.

···

--
Brent Royal-Gordon
Architechies


(Vladimir) #3

+1, totally agree with this. Сrypto routines are very important part of code (when they are used in application). So I believe we need standard, well-tested and supported by Swift team crypto libraries we can rely on.

It is ok to rely on 3rd party libraries in other areas, but IMO it is crucial to have "built-in" crypto functions in standard library(s).
Probably not "full set" of algorithms, features, etc but believe that standard base algorithms/features (like MD5/SHA/AES/RSA) must be available.

Is there some information regarding crypto functions for Swift 3.0?

···

On 13.04.2016 6:45, Travis Beech via swift-evolution wrote:

It would seem to me that common crypto routines should become part of the core Swift libraries without having to rely on unknown third party libraries or bridging into the C based CommonCrypto lib.

Just some things off the top of my head that we should be able to do easily in pure Swift is AES encryption, digests such as HMAC SHA1, dealing with certificates and keys, support for other encryption algorithms such as RSA.

Am I completely off base for wanting this? These features exist in other languages such as Java and C#.

Thank you,

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution


(Vladimir) #4

I believe we already have a number of community-developed crypto libs for Swift, the problem is not in the lib itself. The problem, as I see it, is in one _choosen_ (and so, well-tested and supported by main team) that will be brought into Swift. Yes, also don't think Swift team should create such a new crypto lib from zero, some well-known lib imo will be better solution.
The question is - are there any plans in Swift team to provide "built-in" crypto libs for Swift 3.0+ ?

···

On 13.04.2016 9:06, Brent Royal-Gordon via swift-evolution wrote:

It would seem to me that common crypto routines should become part of the core Swift libraries without having to rely on unknown third party libraries or bridging into the C based CommonCrypto lib.

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version, but I strongly suspect it'll be considered out of scope for Swift 3.


(Travis Beech) #5

With the focus these days on writing secure applications it seems building this functionality into the language would be pretty high on the list. These are common API's found in modern languages and it would be nice to not have to use hackish techniques like bridging into CommonCrypto to achieve this.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

···

On Apr 12, 2016, at 11:06 PM, Brent Royal-Gordon <brent@architechies.com> wrote:

It would seem to me that common crypto routines should become part of the core Swift libraries without having to rely on unknown third party libraries or bridging into the C based CommonCrypto lib.

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version, but I strongly suspect it'll be considered out of scope for Swift 3.

--
Brent Royal-Gordon
Architechies


(Tino) #6

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version

true — but sadly, there seems to be either no interest or manpower for a boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.


(David Waite) #7

I don’t know if we need a boost-like parent project in order to start building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people seeking a curated and integrated set of frameworks to get common functionality.

-DW

···

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution <swift-evolution@swift.org> wrote:

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version

true — but sadly, there seems to be either no interest or manpower for a boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.
_______________________________________________


(Travis Beech) #8

So what are developers doing then to make sure their apps are secure? Are they just not adopting Swift, or just relying on the bridging of CommonCrypto to fill the gaps?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

···

On 4/13/16, 9:16 AM, "Tino Heth" <2th@gmx.de> wrote:

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version

true — but sadly, there seems to be either no interest or manpower for a boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.


(Travis Beech) #9

So what would it take to get a standard set of crypto API's built into the language?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

···

On Apr 13, 2016, at 10:11 AM, David Waite <david@alkaline-solutions.com<mailto:david@alkaline-solutions.com>> wrote:

I don't know if we need a boost-like parent project in order to start building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people seeking a curated and integrated set of frameworks to get common functionality.

-DW

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution <swift-evolution@swift.org<mailto:swift-evolution@swift.org>> wrote:

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version
true - but sadly, there seems to be either no interest or manpower for a boost-like infrastructure...
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.
_______________________________________________


(Michael Ilseman) #10

Why would it need to be built into the language proper instead of the core libraries? I am not too familiar with the core libraries, but perhaps swift-corelibs-dev <https://lists.swift.org/mailman/listinfo/swift-corelibs-dev> is the more appropriate mailing list here?

···

On Apr 13, 2016, at 7:24 PM, Travis Beech via swift-evolution <swift-evolution@swift.org> wrote:

So what would it take to get a standard set of crypto API's built into the language?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

On Apr 13, 2016, at 10:11 AM, David Waite <david@alkaline-solutions.com <mailto:david@alkaline-solutions.com>> wrote:

I don’t know if we need a boost-like parent project in order to start building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people seeking a curated and integrated set of frameworks to get common functionality.

-DW

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version

true — but sadly, there seems to be either no interest or manpower for a boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.
_______________________________________________

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution


(Travis Beech) #11

Core libraries would be a great place, I just think this is a huge oversight in the language itself. I don’t think libraries found out on Github should be trusted, I think crypto should be done in an organized effort to ensure that the implementations are proper.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

···

From: <milseman@apple.com<mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com<mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:33 PM
To: Travis Beech <tbeech@unwiredrevolution.com<mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com<mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org<mailto:swift-evolution@swift.org>" <swift-evolution@swift.org<mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

Why would it need to be built into the language proper instead of the core libraries? I am not too familiar with the core libraries, but perhaps swift-corelibs-dev<https://lists.swift.org/mailman/listinfo/swift-corelibs-dev> is the more appropriate mailing list here?

On Apr 13, 2016, at 7:24 PM, Travis Beech via swift-evolution <swift-evolution@swift.org<mailto:swift-evolution@swift.org>> wrote:

So what would it take to get a standard set of crypto API's built into the language?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

On Apr 13, 2016, at 10:11 AM, David Waite <david@alkaline-solutions.com<mailto:david@alkaline-solutions.com>> wrote:

I don’t know if we need a boost-like parent project in order to start building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people seeking a curated and integrated set of frameworks to get common functionality.

-DW

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution <swift-evolution@swift.org<mailto:swift-evolution@swift.org>> wrote:

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version
true — but sadly, there seems to be either no interest or manpower for a boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.
_______________________________________________

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org<mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution


(Michael Ilseman) #12

Core libraries would be a great place, I just think this is a huge oversight in the language itself. I don’t think libraries found out on Github should be trusted, I think crypto should be done in an organized effort to ensure that the implementations are proper.

That sounds like a contradiction. “Core libraries would be a great place” and “this is a huge oversight in the language itself”. Could you describe what language-level functionality would be needed here that can’t be adequately addressed by the core libraries? Do you know of any major programming language with language level features for crypto support, as opposed to solving it through a library?

···

On Apr 14, 2016, at 2:36 PM, Travis Beech <tbeech@unwiredrevolution.com> wrote:

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com <mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com <mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:33 PM
To: Travis Beech <tbeech@unwiredrevolution.com <mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com <mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org <mailto:swift-evolution@swift.org>" <swift-evolution@swift.org <mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

Why would it need to be built into the language proper instead of the core libraries? I am not too familiar with the core libraries, but perhaps swift-corelibs-dev <https://lists.swift.org/mailman/listinfo/swift-corelibs-dev> is the more appropriate mailing list here?

On Apr 13, 2016, at 7:24 PM, Travis Beech via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

So what would it take to get a standard set of crypto API's built into the language?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

On Apr 13, 2016, at 10:11 AM, David Waite <david@alkaline-solutions.com <mailto:david@alkaline-solutions.com>> wrote:

I don’t know if we need a boost-like parent project in order to start building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people seeking a curated and integrated set of frameworks to get common functionality.

-DW

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version

true — but sadly, there seems to be either no interest or manpower for a boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.
_______________________________________________

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org <mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution


(Travis Beech) #13

It should be provided by Swift, not some unknown developer out on Github, no matter how good his\her credentials are. I see core libraries as part of the language runtime. If you look at other modern languages such as Java, crypto is there out of the box, you don’t have to do anything extra to get support. No extra jars to download, etc. and that’s how it should be with Swift.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

···

From: <milseman@apple.com<mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com<mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:38 PM
To: Travis Beech <tbeech@unwiredrevolution.com<mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com<mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org<mailto:swift-evolution@swift.org>" <swift-evolution@swift.org<mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

On Apr 14, 2016, at 2:36 PM, Travis Beech <tbeech@unwiredrevolution.com<mailto:tbeech@unwiredrevolution.com>> wrote:

Core libraries would be a great place, I just think this is a huge oversight in the language itself. I don’t think libraries found out on Github should be trusted, I think crypto should be done in an organized effort to ensure that the implementations are proper.

That sounds like a contradiction. “Core libraries would be a great place” and “this is a huge oversight in the language itself”. Could you describe what language-level functionality would be needed here that can’t be adequately addressed by the core libraries? Do you know of any major programming language with language level features for crypto support, as opposed to solving it through a library?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com<mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com<mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:33 PM
To: Travis Beech <tbeech@unwiredrevolution.com<mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com<mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org<mailto:swift-evolution@swift.org>" <swift-evolution@swift.org<mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

Why would it need to be built into the language proper instead of the core libraries? I am not too familiar with the core libraries, but perhaps swift-corelibs-dev<https://lists.swift.org/mailman/listinfo/swift-corelibs-dev> is the more appropriate mailing list here?

On Apr 13, 2016, at 7:24 PM, Travis Beech via swift-evolution <swift-evolution@swift.org<mailto:swift-evolution@swift.org>> wrote:

So what would it take to get a standard set of crypto API's built into the language?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

On Apr 13, 2016, at 10:11 AM, David Waite <david@alkaline-solutions.com<mailto:david@alkaline-solutions.com>> wrote:

I don’t know if we need a boost-like parent project in order to start building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people seeking a curated and integrated set of frameworks to get common functionality.

-DW

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution <swift-evolution@swift.org<mailto:swift-evolution@swift.org>> wrote:

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version
true — but sadly, there seems to be either no interest or manpower for a boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.
_______________________________________________

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org<mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution


(Michael Ilseman) #14

It should be provided by Swift, not some unknown developer out on Github, no matter how good his\her credentials are. I see core libraries as part of the language runtime. If you look at other modern languages such as Java, crypto is there out of the box, you don’t have to do anything extra to get support. No extra jars to download, etc. and that’s how it should be with Swift.

Ah, I think we have a problem with our definition of terms. When I say “language feature” I’m referring to syntax, semantics, and other compiler enhancements that may be necessary. What you’re describing can be solved entirely in the core libraries without direct language or compiler changes. In the case of Java, there is no *language* support, but there library support in the standard included libraries. That is, there is no special syntax or compiler changes to support this, just bundled Java code. This is in contrast to, e.g. regular expressions in scripting language like perl or ruby, where there is actual syntax and semantics that make using them easier, as opposed to other languages that just have them in libraries.

I think having an official sanctioned, Swift-provided (via the core libraries) crypto library makes sense, but again I’m not familiar with the core libraries. Please also ask on swift-corelibs-dev, as they might know better if there’s already efforts underway.

···

On Apr 14, 2016, at 2:42 PM, Travis Beech <tbeech@unwiredrevolution.com> wrote:

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com <mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com <mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:38 PM
To: Travis Beech <tbeech@unwiredrevolution.com <mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com <mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org <mailto:swift-evolution@swift.org>" <swift-evolution@swift.org <mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

On Apr 14, 2016, at 2:36 PM, Travis Beech <tbeech@unwiredrevolution.com <mailto:tbeech@unwiredrevolution.com>> wrote:

Core libraries would be a great place, I just think this is a huge oversight in the language itself. I don’t think libraries found out on Github should be trusted, I think crypto should be done in an organized effort to ensure that the implementations are proper.

That sounds like a contradiction. “Core libraries would be a great place” and “this is a huge oversight in the language itself”. Could you describe what language-level functionality would be needed here that can’t be adequately addressed by the core libraries? Do you know of any major programming language with language level features for crypto support, as opposed to solving it through a library?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com <mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com <mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:33 PM
To: Travis Beech <tbeech@unwiredrevolution.com <mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com <mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org <mailto:swift-evolution@swift.org>" <swift-evolution@swift.org <mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

Why would it need to be built into the language proper instead of the core libraries? I am not too familiar with the core libraries, but perhaps swift-corelibs-dev <https://lists.swift.org/mailman/listinfo/swift-corelibs-dev> is the more appropriate mailing list here?

On Apr 13, 2016, at 7:24 PM, Travis Beech via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

So what would it take to get a standard set of crypto API's built into the language?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

On Apr 13, 2016, at 10:11 AM, David Waite <david@alkaline-solutions.com <mailto:david@alkaline-solutions.com>> wrote:

I don’t know if we need a boost-like parent project in order to start building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people seeking a curated and integrated set of frameworks to get common functionality.

-DW

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version

true — but sadly, there seems to be either no interest or manpower for a boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.
_______________________________________________

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org <mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution


(Travis Beech) #15

Thanks Michael for the input. I realized that after your last response I was indeed mixing terms. I will post up on the swift-corelibs-dev list.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

···

From: <milseman@apple.com<mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com<mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:49 PM
To: Travis Beech <tbeech@unwiredrevolution.com<mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com<mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org<mailto:swift-evolution@swift.org>" <swift-evolution@swift.org<mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

On Apr 14, 2016, at 2:42 PM, Travis Beech <tbeech@unwiredrevolution.com<mailto:tbeech@unwiredrevolution.com>> wrote:

It should be provided by Swift, not some unknown developer out on Github, no matter how good his\her credentials are. I see core libraries as part of the language runtime. If you look at other modern languages such as Java, crypto is there out of the box, you don’t have to do anything extra to get support. No extra jars to download, etc. and that’s how it should be with Swift.

Ah, I think we have a problem with our definition of terms. When I say “language feature” I’m referring to syntax, semantics, and other compiler enhancements that may be necessary. What you’re describing can be solved entirely in the core libraries without direct language or compiler changes. In the case of Java, there is no *language* support, but there library support in the standard included libraries. That is, there is no special syntax or compiler changes to support this, just bundled Java code. This is in contrast to, e.g. regular expressions in scripting language like perl or ruby, where there is actual syntax and semantics that make using them easier, as opposed to other languages that just have them in libraries.

I think having an official sanctioned, Swift-provided (via the core libraries) crypto library makes sense, but again I’m not familiar with the core libraries. Please also ask on swift-corelibs-dev, as they might know better if there’s already efforts underway.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com<mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com<mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:38 PM
To: Travis Beech <tbeech@unwiredrevolution.com<mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com<mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org<mailto:swift-evolution@swift.org>" <swift-evolution@swift.org<mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

On Apr 14, 2016, at 2:36 PM, Travis Beech <tbeech@unwiredrevolution.com<mailto:tbeech@unwiredrevolution.com>> wrote:

Core libraries would be a great place, I just think this is a huge oversight in the language itself. I don’t think libraries found out on Github should be trusted, I think crypto should be done in an organized effort to ensure that the implementations are proper.

That sounds like a contradiction. “Core libraries would be a great place” and “this is a huge oversight in the language itself”. Could you describe what language-level functionality would be needed here that can’t be adequately addressed by the core libraries? Do you know of any major programming language with language level features for crypto support, as opposed to solving it through a library?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com<mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com<mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:33 PM
To: Travis Beech <tbeech@unwiredrevolution.com<mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com<mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org<mailto:swift-evolution@swift.org>" <swift-evolution@swift.org<mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

Why would it need to be built into the language proper instead of the core libraries? I am not too familiar with the core libraries, but perhaps swift-corelibs-dev<https://lists.swift.org/mailman/listinfo/swift-corelibs-dev> is the more appropriate mailing list here?

On Apr 13, 2016, at 7:24 PM, Travis Beech via swift-evolution <swift-evolution@swift.org<mailto:swift-evolution@swift.org>> wrote:

So what would it take to get a standard set of crypto API's built into the language?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

On Apr 13, 2016, at 10:11 AM, David Waite <david@alkaline-solutions.com<mailto:david@alkaline-solutions.com>> wrote:

I don’t know if we need a boost-like parent project in order to start building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people seeking a curated and integrated set of frameworks to get common functionality.

-DW

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution <swift-evolution@swift.org<mailto:swift-evolution@swift.org>> wrote:

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version
true — but sadly, there seems to be either no interest or manpower for a boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.
_______________________________________________

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org<mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution


(Michael Ilseman) #16

Great! I will watch that thread as it’s something I’m also interested in knowing more about. Thanks for bringing it up!

···

On Apr 14, 2016, at 2:51 PM, Travis Beech <tbeech@unwiredrevolution.com> wrote:

Thanks Michael for the input. I realized that after your last response I was indeed mixing terms. I will post up on the swift-corelibs-dev list.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com <mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com <mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:49 PM
To: Travis Beech <tbeech@unwiredrevolution.com <mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com <mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org <mailto:swift-evolution@swift.org>" <swift-evolution@swift.org <mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

On Apr 14, 2016, at 2:42 PM, Travis Beech <tbeech@unwiredrevolution.com <mailto:tbeech@unwiredrevolution.com>> wrote:

It should be provided by Swift, not some unknown developer out on Github, no matter how good his\her credentials are. I see core libraries as part of the language runtime. If you look at other modern languages such as Java, crypto is there out of the box, you don’t have to do anything extra to get support. No extra jars to download, etc. and that’s how it should be with Swift.

Ah, I think we have a problem with our definition of terms. When I say “language feature” I’m referring to syntax, semantics, and other compiler enhancements that may be necessary. What you’re describing can be solved entirely in the core libraries without direct language or compiler changes. In the case of Java, there is no *language* support, but there library support in the standard included libraries. That is, there is no special syntax or compiler changes to support this, just bundled Java code. This is in contrast to, e.g. regular expressions in scripting language like perl or ruby, where there is actual syntax and semantics that make using them easier, as opposed to other languages that just have them in libraries.

I think having an official sanctioned, Swift-provided (via the core libraries) crypto library makes sense, but again I’m not familiar with the core libraries. Please also ask on swift-corelibs-dev, as they might know better if there’s already efforts underway.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com <mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com <mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:38 PM
To: Travis Beech <tbeech@unwiredrevolution.com <mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com <mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org <mailto:swift-evolution@swift.org>" <swift-evolution@swift.org <mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

On Apr 14, 2016, at 2:36 PM, Travis Beech <tbeech@unwiredrevolution.com <mailto:tbeech@unwiredrevolution.com>> wrote:

Core libraries would be a great place, I just think this is a huge oversight in the language itself. I don’t think libraries found out on Github should be trusted, I think crypto should be done in an organized effort to ensure that the implementations are proper.

That sounds like a contradiction. “Core libraries would be a great place” and “this is a huge oversight in the language itself”. Could you describe what language-level functionality would be needed here that can’t be adequately addressed by the core libraries? Do you know of any major programming language with language level features for crypto support, as opposed to solving it through a library?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com <mailto:milseman@apple.com>> on behalf of Michael Ilseman <milseman@apple.com <mailto:milseman@apple.com>>
Date: Thursday, April 14, 2016 at 2:33 PM
To: Travis Beech <tbeech@unwiredrevolution.com <mailto:tbeech@unwiredrevolution.com>>
Cc: David Waite <david@alkaline-solutions.com <mailto:david@alkaline-solutions.com>>, "swift-evolution@swift.org <mailto:swift-evolution@swift.org>" <swift-evolution@swift.org <mailto:swift-evolution@swift.org>>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

Why would it need to be built into the language proper instead of the core libraries? I am not too familiar with the core libraries, but perhaps swift-corelibs-dev <https://lists.swift.org/mailman/listinfo/swift-corelibs-dev> is the more appropriate mailing list here?

On Apr 13, 2016, at 7:24 PM, Travis Beech via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

So what would it take to get a standard set of crypto API's built into the language?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209) 535-5357
Optimizing Operations for Mobile and Distributed Systems

On Apr 13, 2016, at 10:11 AM, David Waite <david@alkaline-solutions.com <mailto:david@alkaline-solutions.com>> wrote:

I don’t know if we need a boost-like parent project in order to start building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people seeking a curated and integrated set of frameworks to get common functionality.

-DW

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:

This seems like a great candidate for a library that could be developed in the community and then possibly brought into Corelibs in a future version

true — but sadly, there seems to be either no interest or manpower for a boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the stdlib, but none the less, there should be a standard library for encryption/hashing.
_______________________________________________

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org <mailto:swift-evolution@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution


#17

Travis / Michael,

+1 on built-in support for Crypto libraries in swift-corelibs.

···

On 14 April 2016 at 22:52, Michael Ilseman via swift-evolution <swift-evolution@swift.org> wrote:

Great! I will watch that thread as it’s something I’m also interested in
knowing more about. Thanks for bringing it up!

On Apr 14, 2016, at 2:51 PM, Travis Beech <tbeech@unwiredrevolution.com> > wrote:

Thanks Michael for the input. I realized that after your last response I was
indeed mixing terms. I will post up on the swift-corelibs-dev list.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209)
535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com> on behalf of Michael Ilseman <milseman@apple.com>
Date: Thursday, April 14, 2016 at 2:49 PM
To: Travis Beech <tbeech@unwiredrevolution.com>
Cc: David Waite <david@alkaline-solutions.com>, "swift-evolution@swift.org"
<swift-evolution@swift.org>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

On Apr 14, 2016, at 2:42 PM, Travis Beech <tbeech@unwiredrevolution.com> > wrote:

It should be provided by Swift, not some unknown developer out on Github, no
matter how good his\her credentials are. I see core libraries as part of the
language runtime. If you look at other modern languages such as Java, crypto
is there out of the box, you don’t have to do anything extra to get support.
No extra jars to download, etc. and that’s how it should be with Swift.

Ah, I think we have a problem with our definition of terms. When I say
“language feature” I’m referring to syntax, semantics, and other compiler
enhancements that may be necessary. What you’re describing can be solved
entirely in the core libraries without direct language or compiler changes.
In the case of Java, there is no *language* support, but there library
support in the standard included libraries. That is, there is no special
syntax or compiler changes to support this, just bundled Java code. This is
in contrast to, e.g. regular expressions in scripting language like perl or
ruby, where there is actual syntax and semantics that make using them
easier, as opposed to other languages that just have them in libraries.

I think having an official sanctioned, Swift-provided (via the core
libraries) crypto library makes sense, but again I’m not familiar with the
core libraries. Please also ask on swift-corelibs-dev, as they might know
better if there’s already efforts underway.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209)
535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com> on behalf of Michael Ilseman <milseman@apple.com>
Date: Thursday, April 14, 2016 at 2:38 PM
To: Travis Beech <tbeech@unwiredrevolution.com>
Cc: David Waite <david@alkaline-solutions.com>, "swift-evolution@swift.org"
<swift-evolution@swift.org>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

On Apr 14, 2016, at 2:36 PM, Travis Beech <tbeech@unwiredrevolution.com> > wrote:

Core libraries would be a great place, I just think this is a huge oversight
in the language itself. I don’t think libraries found out on Github should
be trusted, I think crypto should be done in an organized effort to ensure
that the implementations are proper.

That sounds like a contradiction. “Core libraries would be a great place”
and “this is a huge oversight in the language itself”. Could you describe
what language-level functionality would be needed here that can’t be
adequately addressed by the core libraries? Do you know of any major
programming language with language level features for crypto support, as
opposed to solving it through a library?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209)
535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com> on behalf of Michael Ilseman <milseman@apple.com>
Date: Thursday, April 14, 2016 at 2:33 PM
To: Travis Beech <tbeech@unwiredrevolution.com>
Cc: David Waite <david@alkaline-solutions.com>, "swift-evolution@swift.org"
<swift-evolution@swift.org>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

Why would it need to be built into the language proper instead of the core
libraries? I am not too familiar with the core libraries, but perhaps
swift-corelibs-dev is the more appropriate mailing list here?

On Apr 13, 2016, at 7:24 PM, Travis Beech via swift-evolution > <swift-evolution@swift.org> wrote:

So what would it take to get a standard set of crypto API's built into the
language?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209)
535-5357
Optimizing Operations for Mobile and Distributed Systems

On Apr 13, 2016, at 10:11 AM, David Waite <david@alkaline-solutions.com> > wrote:

I don’t know if we need a boost-like parent project in order to start
building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people
seeking a curated and integrated set of frameworks to get common
functionality.

-DW

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution > <swift-evolution@swift.org> wrote:

This seems like a great candidate for a library that could be developed in
the community and then possibly brought into Corelibs in a future version

true — but sadly, there seems to be either no interest or manpower for a
boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the
stdlib, but none the less, there should be a standard library for
encryption/hashing.
_______________________________________________

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution


(Matthew Johnson) #18

+1 from me also.

I really want to see the community converge on a set of "official" Swifty libraries / modules for everything that is widely used. This doesn't necessarily *need* to be stdlib or corelibs but those are all we have at the moment.

While their design leaves something to be desired in many cases, the "batteries included" approach of Java and .NET is one thing they got right. I don't know Go, from what I have heard this also has a lot to do with the popularity of Go (among other things of course).

If there is an "official" library maintained by the community it saves us all a bunch of time - time spent either writing out own or evaluating libraries written by others. It also provides the best guarantee of future maintenance we can hope to have.

Matthew

···

Sent from my iPad

On Apr 14, 2016, at 5:26 PM, hitstergtd+swiftevo--- via swift-evolution <swift-evolution@swift.org> wrote:

Travis / Michael,

+1 on built-in support for Crypto libraries in swift-corelibs.

On 14 April 2016 at 22:52, Michael Ilseman via swift-evolution > <swift-evolution@swift.org> wrote:

Great! I will watch that thread as it’s something I’m also interested in
knowing more about. Thanks for bringing it up!

On Apr 14, 2016, at 2:51 PM, Travis Beech <tbeech@unwiredrevolution.com> >> wrote:

Thanks Michael for the input. I realized that after your last response I was
indeed mixing terms. I will post up on the swift-corelibs-dev list.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209)
535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com> on behalf of Michael Ilseman <milseman@apple.com>
Date: Thursday, April 14, 2016 at 2:49 PM
To: Travis Beech <tbeech@unwiredrevolution.com>
Cc: David Waite <david@alkaline-solutions.com>, "swift-evolution@swift.org"
<swift-evolution@swift.org>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

On Apr 14, 2016, at 2:42 PM, Travis Beech <tbeech@unwiredrevolution.com> >> wrote:

It should be provided by Swift, not some unknown developer out on Github, no
matter how good his\her credentials are. I see core libraries as part of the
language runtime. If you look at other modern languages such as Java, crypto
is there out of the box, you don’t have to do anything extra to get support.
No extra jars to download, etc. and that’s how it should be with Swift.

Ah, I think we have a problem with our definition of terms. When I say
“language feature” I’m referring to syntax, semantics, and other compiler
enhancements that may be necessary. What you’re describing can be solved
entirely in the core libraries without direct language or compiler changes.
In the case of Java, there is no *language* support, but there library
support in the standard included libraries. That is, there is no special
syntax or compiler changes to support this, just bundled Java code. This is
in contrast to, e.g. regular expressions in scripting language like perl or
ruby, where there is actual syntax and semantics that make using them
easier, as opposed to other languages that just have them in libraries.

I think having an official sanctioned, Swift-provided (via the core
libraries) crypto library makes sense, but again I’m not familiar with the
core libraries. Please also ask on swift-corelibs-dev, as they might know
better if there’s already efforts underway.

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209)
535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com> on behalf of Michael Ilseman <milseman@apple.com>
Date: Thursday, April 14, 2016 at 2:38 PM
To: Travis Beech <tbeech@unwiredrevolution.com>
Cc: David Waite <david@alkaline-solutions.com>, "swift-evolution@swift.org"
<swift-evolution@swift.org>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

On Apr 14, 2016, at 2:36 PM, Travis Beech <tbeech@unwiredrevolution.com> >> wrote:

Core libraries would be a great place, I just think this is a huge oversight
in the language itself. I don’t think libraries found out on Github should
be trusted, I think crypto should be done in an organized effort to ensure
that the implementations are proper.

That sounds like a contradiction. “Core libraries would be a great place”
and “this is a huge oversight in the language itself”. Could you describe
what language-level functionality would be needed here that can’t be
adequately addressed by the core libraries? Do you know of any major
programming language with language level features for crypto support, as
opposed to solving it through a library?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209)
535-5357
Optimizing Operations for Mobile and Distributed Systems

From: <milseman@apple.com> on behalf of Michael Ilseman <milseman@apple.com>
Date: Thursday, April 14, 2016 at 2:33 PM
To: Travis Beech <tbeech@unwiredrevolution.com>
Cc: David Waite <david@alkaline-solutions.com>, "swift-evolution@swift.org"
<swift-evolution@swift.org>
Subject: Re: [swift-evolution] Crypto routines as part of the core library

Why would it need to be built into the language proper instead of the core
libraries? I am not too familiar with the core libraries, but perhaps
swift-corelibs-dev is the more appropriate mailing list here?

On Apr 13, 2016, at 7:24 PM, Travis Beech via swift-evolution >> <swift-evolution@swift.org> wrote:

So what would it take to get a standard set of crypto API's built into the
language?

Travis Beech | Principal Developer | Unwired Revolution | c: 1 (209)
535-5357
Optimizing Operations for Mobile and Distributed Systems

On Apr 13, 2016, at 10:11 AM, David Waite <david@alkaline-solutions.com> >> wrote:

I don’t know if we need a boost-like parent project in order to start
building core code to be brought for inclusion.

I think success will naturally bring such a project structure - people
seeking a curated and integrated set of frameworks to get common
functionality.

-DW

On Apr 13, 2016, at 12:16 PM, Tino Heth via swift-evolution >> <swift-evolution@swift.org> wrote:

This seems like a great candidate for a library that could be developed in
the community and then possibly brought into Corelibs in a future version

true — but sadly, there seems to be either no interest or manpower for a
boost-like infrastructure…
Like many other fundamental topics, I don't think crypto belongs to the
stdlib, but none the less, there should be a standard library for
encryption/hashing.
_______________________________________________

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution