X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/bac41a7b9a0a9254fa30f8bb6e6038ab71a483e2..67c7378dcb8de24c86b7fedff90b4b496f2e474c:/AppleCSP/BSafeCSP/bsafeKeyGen.cpp?ds=sidebyside diff --git a/AppleCSP/BSafeCSP/bsafeKeyGen.cpp b/AppleCSP/BSafeCSP/bsafeKeyGen.cpp index 088f2098..274a158b 100644 --- a/AppleCSP/BSafeCSP/bsafeKeyGen.cpp +++ b/AppleCSP/BSafeCSP/bsafeKeyGen.cpp @@ -276,22 +276,27 @@ BSafe::BSafeKeyInfoProvider::BSafeKeyInfoProvider( const CssmKey &cssmKey) : CSPKeyInfoProvider(cssmKey) { - switch(mKey.keyClass()) { +} + +CSPKeyInfoProvider *BSafe::BSafeKeyInfoProvider::provider( + const CssmKey &cssmKey) +{ + switch(cssmKey.keyClass()) { case CSSM_KEYCLASS_PUBLIC_KEY: case CSSM_KEYCLASS_PRIVATE_KEY: break; default: - CssmError::throwMe(CSSMERR_CSP_INVALID_KEY_CLASS); + return NULL; } switch(mKey.algorithm()) { case CSSM_ALGID_RSA: case CSSM_ALGID_DSA: break; default: - CssmError::throwMe(CSSMERR_CSP_INVALID_ALGORITHM); + return NULL; } /* OK, we'll handle this one */ - return; + return new BSafeKeyInfoProvider(cssmKey); } /* cook up a Binary key */