// This version base64-DECODES the ascii-armored signature that's passed in, // and then sets the decoded plaintext signature onto this object. // You would only do this when the signature, decoded, is normally in ASII // form. Actually, that is regularly NOT the case--signatures are usually in // binary form. // But Lucre signatures, as used in this library, ARE in text form, so I // provided this constructor to easily base64-decode them to prepare for // loading into a bio and then a Lucre object. OTString::OTString(const OTSignature & strValue) : m_lLength(0), m_lPosition(0), m_strBuffer(NULL) { // Initialize(); if (strValue.Exists()) strValue.GetString(*this); }
// This version base64-DECODES the ascii-armored signature that's passed in, // and then sets the decoded plaintext signature onto this object. // You would only do this when the signature, decoded, is normally in ASII // form. Actually, that is regularly NOT the case--signatures are usually in // binary form. // But Lucre signatures, as used in this library, ARE in text form, so I // provided this constructor to easily base64-decode them to prepare for // loading into a bio and then a Lucre object. OTString::OTString(const OTSignature & strValue) { Initialize(); if (strValue.Exists()) strValue.GetString(*this); }
// This version base64-DECODES the ascii-armored signature that's passed in, // and then sets the decoded plaintext signature onto this object. // You would only do this when the signature, decoded, is normally in ASII // form. Actually, that is regularly NOT the case--signatures are usually in // binary form. // But Lucre signatures, as used in this library, ARE in text form, so I // provided this constructor to easily base64-decode them to prepare for // loading into a bio and then a Lucre object. String::String(const OTSignature& strValue) : length_(0) , position_(0) , data_(nullptr) { // Initialize(); if (strValue.Exists()) strValue.GetString(*this); }
int32_t OTKeypair::GetPublicKeyBySignature( listOfAsymmetricKeys& listOutput, // Inclusive means, return the key even // when theSignature has no metadata. const OTSignature& theSignature, bool bInclusive) const { OT_ASSERT(m_pkeyPublic); OT_ASSERT(nullptr != m_pkeyPublic->m_pMetadata); // We know that EITHER exact metadata matches must occur, and the signature // MUST have metadata, (bInclusive=false) // OR if bInclusive=true, we know that metadata is still used to eliminate // keys where possible, but that otherwise, // if the signature has no metadata, then the key is still returned, "just // in case." // if ((false == bInclusive) && (false == theSignature.getMetaData().HasMetadata())) return 0; // Below this point, metadata is used if it's available. // It's assumed to be "okay" if it's not available, since any non-inclusive // calls would have already returned by now, if that were the case. // (But if it IS available, then it must match, or the key won't be // returned.) // // If the signature has no metadata, or if m_pkeyPublic has no metadata, or // if they BOTH have metadata, and their metadata is a MATCH... if (!theSignature.getMetaData().HasMetadata() || !m_pkeyPublic->m_pMetadata->HasMetadata() || (m_pkeyPublic->m_pMetadata->HasMetadata() && theSignature.getMetaData().HasMetadata() && (theSignature.getMetaData() == *(m_pkeyPublic->m_pMetadata)))) { // ...Then add m_pkeyPublic as a possible match, to listOutput. // listOutput.push_back(m_pkeyPublic.get()); return 1; } return 0; }