Esempio n. 1
0
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"));
  }
}
Esempio n. 2
0
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"));
  }
}