This project provides a Swift framework that allows you to create self-signed certificates on iOS, using Swift. Unfortunately, Apple does not provide this functionality in their security frameworks. Another way of doing it is using OpenSSL, but (especially when using Swift) that is downright horrible.
The code in this library is a (partial) port of MYCrypto. That project contains unmaintained Objective-C code, which was difficult to use as a CocoaPod and especially also when using Swift. So I took that part that I needed and implemented that in Swift.
Please note that I'm not a security expert. This framework has not been reviewed by a security expert. Until it has, please use with caution! And in any case (reviewed or not), using it is always at your own risk of course.
If you are a security expert and you want to review this framework, please contact me.
guard let identity = SecIdentity.create(
subjectCommonName: "common name",
subjectEmailAddress: "email@example.com") else {
return
}
This will give you a self-signed SecIdentity?
that is already stored in the
keychain. See also SecIdentity+SelfSigned.swift for functions to retrieve
previously created identities from the keychain.
You may want to have a look at swift-SecurityExtensions for some helpers
to more easily use SecIdentity
, SecCertificate
, and SecKey
.