本文整理汇总了C++中OTEnvelope::Encrypt方法的典型用法代码示例。如果您正苦于以下问题:C++ OTEnvelope::Encrypt方法的具体用法?C++ OTEnvelope::Encrypt怎么用?C++ OTEnvelope::Encrypt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OTEnvelope
的用法示例。
在下文中一共展示了OTEnvelope::Encrypt方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Seal_or_Encrypt
bool OTNym_or_SymmetricKey::Seal_or_Encrypt( OTEnvelope & outputEnvelope,
const OTString strInput,
const OTString * pstrDisplay/*=NULL*/)
{
const char * szFunc = "OTNym_or_SymmetricKey::Seal_or_Encrypt";
// --------------------------
bool bSuccess = false;
bool bHadToInstantiatePassword = false;
// ---------------
// Encrypt/Seal strInput into outputEnvelope
//
if (this->IsNym())
{
bSuccess = outputEnvelope.Seal(*(this->GetNym()), strInput);
}
// -------------------------------------------
else if (this->IsKey())
{
OTPassword * pPassword = NULL;
if (this->HasPassword()) // Password is already available. Let's use it.
pPassword = this->GetPassword();
else // no password? let's collect it from the user...
{
const OTString strDisplay((NULL == pstrDisplay) ? szFunc : pstrDisplay->Get());
// NOTE: m_pstrDisplay overrides this below.
// -------------------------------------------
// returns a text OTPassword, or NULL.
//
pPassword = OTSymmetricKey::GetPassphraseFromUser((NULL == m_pstrDisplay) ? &strDisplay : m_pstrDisplay);//bool bAskTwice=false
if (NULL == pPassword) // Unable to retrieve passphrase from user.
{
OTLog::vOutput(0, "%s: Failed trying to retrieve passphrase for key. "
"Returning false.\n", szFunc);
return false;
}
else // OTNym_or_SymmetricKey stores this, if it creates it.
// (And cleans it up on destruction, IF it created it.)
//
bHadToInstantiatePassword = true;
}
// -------------------------------------------
//
bSuccess = outputEnvelope.Encrypt(strInput, *(this->GetKey()), *pPassword);
// We only set this, presuming we have to at all, if it was a success.
if (bHadToInstantiatePassword)
{
if (bSuccess)
{
m_bCleanupPassword = true;
m_pPassword = pPassword; // Not bothering to cleanup whatever was here before, since we only end up here if m_pPassword was set to NULL (according to above logic...)
}
else // We instantiated the password, but the encrypt failed. (Need to cleanup the password then.)
{
delete pPassword;
pPassword = NULL;
}
}
}
// else ? should never happen.
// -----------------------------------
return bSuccess;
}
示例2: Encrypt
// static
bool LegacySymmetric::Encrypt(
const LegacySymmetric& theKey,
const String& strPlaintext,
String& strOutput,
const String& pstrDisplay,
bool bBookends,
const OTPassword* pAlreadyHavePW)
{
if (!theKey.IsGenerated()) {
LogDetail(OT_METHOD)(__FUNCTION__)(
": Failure: theKey.IsGenerated() was false. (The calling "
"code probably should have checked that key already...).")
.Flush();
return false;
}
if (!strPlaintext.Exists()) {
LogDetail(OT_METHOD)(__FUNCTION__)(
": Plaintext is empty. Please supply. (Failure).")
.Flush();
return false;
}
// By this point, we know we have a plaintext and a symmetric Key.
//
std::unique_ptr<OTPassword> pPassUserInput;
if (nullptr == pAlreadyHavePW) {
const char* szDisplay = "Password-protecting a plaintext.";
const auto strDisplay = String::Factory(
(!pstrDisplay.Exists()) ? szDisplay : pstrDisplay.Get());
pPassUserInput.reset(
GetPassphraseFromUser(strDisplay)); // bAskTwice=false
// by default.
} else
pPassUserInput.reset(new OTPassword(*pAlreadyHavePW));
auto ascOutput = Armored::Factory();
bool bSuccess = false;
if (nullptr != pPassUserInput) // Success retrieving the passphrase from
// the user. (Now let's encrypt...)
{
OTEnvelope theEnvelope;
if (theEnvelope.Encrypt(
strPlaintext,
const_cast<LegacySymmetric&>(theKey),
*pPassUserInput) &&
theEnvelope.GetCiphertext(ascOutput)) {
bSuccess = true;
if (bBookends) {
return ascOutput->WriteArmoredString(
strOutput,
"SYMMETRIC MSG", // todo hardcoding.
false); // bEscaped=false
} else {
strOutput.Set(ascOutput->Get());
}
} else {
LogDetail(OT_METHOD)(__FUNCTION__)(
": Failed trying to encrypt. (Sorry).")
.Flush();
}
} else
LogDetail(OT_METHOD)(__FUNCTION__)(
": Sorry, unable to retrieve passphrase from user. (Failure).")
.Flush();
return bSuccess;
}