SigningInfo::SigningInfo(const std::string& signingStr) { *this = SigningInfo(); if (signingStr.empty()) { return; } size_t pos = signingStr.find(':'); if (pos == std::string::npos) { BOOST_THROW_EXCEPTION(std::invalid_argument("Invalid signing string cannot represent SigningInfo")); } std::string scheme = signingStr.substr(0, pos); std::string nameArg = signingStr.substr(pos + 1); if (scheme == "id") { if (nameArg == KeyChain::DIGEST_SHA256_IDENTITY.toUri()) { setSha256Signing(); } else { setSigningIdentity(nameArg); } } else if (scheme == "key") { setSigningKeyName(nameArg); } else if (scheme == "cert") { setSigningCertName(nameArg); } else { BOOST_THROW_EXCEPTION(std::invalid_argument("Invalid signing string scheme")); } }
SigningInfo::SigningInfo(const std::string& signingStr) : SigningInfo(SIGNER_TYPE_NULL) { if (signingStr.empty()) { return; } size_t pos = signingStr.find(':'); if (pos == std::string::npos) { NDN_THROW(std::invalid_argument("Invalid signing string cannot represent SigningInfo")); } std::string scheme = signingStr.substr(0, pos); std::string nameArg = signingStr.substr(pos + 1); if (scheme == "id") { if (nameArg == getDigestSha256Identity().toUri()) { setSha256Signing(); } else { setSigningIdentity(nameArg); } } else if (scheme == "key") { setSigningKeyName(nameArg); } else if (scheme == "cert") { setSigningCertName(nameArg); } else { NDN_THROW(std::invalid_argument("Invalid signing string scheme")); } }