Parse X509 certificate in Swift 2.0
X509の証明書をSwiftでパースしました.
事前準備
- DERフォーマットの証明書を用意しておく
-
{Project Name}/Resources/mykey.der
として保存しておく
Parse.swift
X509Parser.swift
import Foundation
import Security
class X509Parser {
func parse() {
// converting der file to secCertificate type
let secCertificate: SecCertificate = getSecCertificate()
// converting SecCertificate to SecTrust
let secTrust: SecTrust? = getSecTrust(secCertificate)
// Sample: extracting public key
let publicKey: SecKey? = SecTrustCopyPublicKey(secTrust!)
print(publicKey)
}
func getSecCertificate() -> SecCertificate {
let path: String = NSBundle.mainBundle().pathForResource("mykey", ofType: "der")!
let key: NSData = NSData(contentsOfFile: path)!
let secCertificate: SecCertificate = SecCertificateCreateWithData(kCFAllocatorDefault, key)!
return secCertificate
}
func getSecTrust(secCertificate: SecCertificate) -> SecTrust? {
var secTrust: SecTrust?
SecTrustCreateWithCertificates(secCertificate, SecPolicyCreateBasicX509(), &secTrust)
return secTrust
}
}
使い方
プロジェクトをシングルページアプリケーションを選択して作成後,事前準備を行い,コードをコピペすれば動くと思います.
行数書いてないのにSwiftのコードを書くの疲れる...
公開鍵以外の情報について
Apple > Security Framework Reference > Certificate, Key, and Trust Services Reference