2014-05-20 32 views
0

有沒有一種方法可以使用類似於OpenSSL X509_verify的SecureTransport API來檢查證書是否由給定的根證書籤名?OS X如何檢查證書是簽名

+0

證書由很少是根證書的CA證書籤名(儘管可能,例如,第一級CA證書使用CA的根證書籤名)。 –

+0

瞭解這一點,我正在尋找使用安全傳輸API檢查的方法。 –

回答

1

在OS X上,創建和操作證書的API是Certificate, Key, and Trust Services

證書,密鑰和信託服務是管理 證書,公鑰和私鑰,對稱密鑰一個C API,以及在iOS和OS X.信任 政策,您可以在應用程序中使用這些服務:

  • 創建證書和非對稱密鑰
  • 加入證書和密鑰到 個鑰匙扣,從鑰匙扣刪除它們,並且使用的密鑰來加密和 解密數據
  • 檢索有關證書的信息,如與它相關的 私鑰,主人,等
  • 轉換 證書和從便攜表示
  • 創建和 使用 指定的一組信任的政策
  • 添加錨證書
操縱信任策略和評估特定的證書

見例如:

+0

這很好,但它需要CA證書...,我只想驗證簽名,AFAIK我必須計算證書摘要並使用CA公鑰解密簽名並比較兩個值。 –

+0

@José你只是想檢查一個證書是否由另一個證書籤名,對嗎?我想你應該可以用第一個和第二個「SecTrustSetAnchorCertificates」調用'SecTrustCreateWithCertificates'。 – rhashimoto

+0

是的,這是唯一的問題是我移植一個只使用公鑰的API。所以我想保留API如果可能「布爾Certificate.verify(PublicKey鍵)」和安全傳輸API需要CA證書不只是公鑰,AFAIK有沒有辦法從公鑰獲得證書 –