<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>55179.11</string>
+ <string>55179.13</string>
</dict>
</plist>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>55179.11</string>
+ <string>55179.13</string>
<key>CFBundleShortVersionString</key>
<string>3.0</string>
</dict>
const CssmSubserviceUid &ssuid() const { return mImpl->ssuid(); }
const char *dbName() const { return mImpl->dbName(); }
const CssmNetAddress *dbLocation() const { return mImpl->dbLocation(); }
-
+ bool IsImplEmpty() const {return mImpl == NULL;}
+
RefPointer<Impl> mImpl;
};
bool CssmSubserviceUid::operator == (const CSSM_SUBSERVICE_UID &otherUid) const
{
+ // make sure we don't crash if we get bad data
+ if (&otherUid == 0x0)
+ {
+ return false;
+ }
+
const CssmSubserviceUid &other = CssmSubserviceUid::overlay(otherUid);
return subserviceId() == other.subserviceId()
&& subserviceType() == other.subserviceType()
bool CssmSubserviceUid::operator < (const CSSM_SUBSERVICE_UID &otherUid) const
{
+ if (&otherUid == 0x0)
+ {
+ return false;
+ }
+
const CssmSubserviceUid &other = CssmSubserviceUid::overlay(otherUid);
if (subserviceId() < other.subserviceId())
return true;
bool
DLDbListCFPref::member(const DLDbIdentifier &dldbIdentifier)
{
+ if (dldbIdentifier.IsImplEmpty())
+ {
+ return false;
+ }
+
for (vector<DLDbIdentifier>::const_iterator ix = searchList().begin(); ix != mSearchList.end(); ++ix)
{
if (ix->mImpl == NULL)
void KeyItem::RawSign(SecPadding padding, CSSM_DATA dataToSign, const AccessCredentials *credentials, CSSM_DATA& signature)
{
CSSM_ALGORITHMS baseAlg = key()->header().algorithm();
- if (baseAlg != CSSM_ALGID_RSA)
+ if ((baseAlg != CSSM_ALGID_RSA) && (baseAlg != CSSM_ALGID_ECDSA))
{
MacOSError::throwMe(paramErr);
}
void KeyItem::RawVerify(SecPadding padding, CSSM_DATA dataToVerify, const AccessCredentials *credentials, CSSM_DATA sig)
{
CSSM_ALGORITHMS baseAlg = key()->header().algorithm();
- if (baseAlg != CSSM_ALGID_RSA)
+ if ((baseAlg != CSSM_ALGID_RSA) && (baseAlg != CSSM_ALGID_ECDSA))
{
MacOSError::throwMe(paramErr);
}