本文整理汇总了C++中AnsiString::GetBuffer方法的典型用法代码示例。如果您正苦于以下问题:C++ AnsiString::GetBuffer方法的具体用法?C++ AnsiString::GetBuffer怎么用?C++ AnsiString::GetBuffer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AnsiString
的用法示例。
在下文中一共展示了AnsiString::GetBuffer方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
AnsiString
DKIM::_SignHash(AnsiString &privateKey, AnsiString &canonicalizedHeader, HashCreator::HashType hashType)
{
// Sign the hash.
BIO *private_bio = BIO_new_mem_buf(privateKey.GetBuffer(), -1);
if(private_bio == NULL)
{
ErrorManager::Instance()->ReportError(ErrorManager::Medium, 5309, "DKIM::_SignHash", "Unable to read the private key file into memory.");
return "";
}
EVP_PKEY *private_key = PEM_read_bio_PrivateKey(private_bio, NULL, NULL, NULL);
if(private_key == NULL)
{
BIO_free(private_bio);
ErrorManager::Instance()->ReportError(ErrorManager::Medium, 5310, "DKIM::_SignHash", "Unable to parse the private key file.");
return "";
}
BIO_free(private_bio);
unsigned int siglen = EVP_PKEY_size(private_key);
unsigned char *sig = (unsigned char*) OPENSSL_malloc(siglen);
EVP_MD_CTX headerSigningContext;
EVP_SignInit( &headerSigningContext, hashType == HashCreator::SHA256 ? EVP_sha256() : EVP_sha1());
String result;
if (EVP_SignUpdate( &headerSigningContext, canonicalizedHeader.GetBuffer(), canonicalizedHeader.GetLength() ) == 1)
{
if (EVP_SignFinal( &headerSigningContext, sig, &siglen, private_key) == 1)
{
result = Base64::Encode((const char*) sig, siglen);
}
else
{
ErrorManager::Instance()->ReportError(ErrorManager::Medium, 5311, "DKIM::_SignHash", "Call to EVP_SignFinal failed.");
}
}
else
{
ErrorManager::Instance()->ReportError(ErrorManager::Medium, 5312, "DKIM::_SignHash", "Call to EVP_SignUpdate failed.");
}
EVP_PKEY_free(private_key);
EVP_MD_CTX_cleanup( &headerSigningContext );
OPENSSL_free(sig);
return result;
}
示例2: Write
bool
File::Write(const AnsiString &sWrite)
{
AnsiString sTmp = sWrite;
DWORD dwWritten = 0;
return Write((const unsigned char*) sTmp.GetBuffer(), sTmp.GetLength(), dwWritten);
}
示例3: GetSignatureFields
/*
Returns one of the following
Neutral - Undecided
Pass - Signature verified properly.
TempFail - Failed to verify signature, potentially a local problem.
PermFail - Failed to verify signature.
*/
DKIM::Result
DKIM::Verify(const String &fileName)
{
if (FileUtilities::FileSize(fileName) > MaxFileSize)
return Neutral;
AnsiString messageHeader = PersistentMessage::LoadHeader(fileName);
MimeHeader mimeHeader;
mimeHeader.Load(messageHeader.GetBuffer(), messageHeader.GetLength(), false);
vector<pair<AnsiString, AnsiString> > signatureFields = GetSignatureFields(mimeHeader);
if (signatureFields.size() == 0)
{
// No signatures in message.
return Neutral;
}
Result result = Neutral;
typedef pair<AnsiString, AnsiString> HeaderField;
boost_foreach (HeaderField signatureField, signatureFields)
{
result = _VerifySignature(fileName, messageHeader, signatureField);
if (result == Pass)
return Pass;
};
示例4: protocols
void
Base64Tester::Test()
{
String s;
AnsiString input = "Test";
s = Base64::Encode(input.GetBuffer(), input.GetLength());
if (s.Compare(_T("VGVzdA==")) != 0)
throw;
input = "Test test test test test test test!!!!";
s = Base64::Encode(input, input.GetLength());
if (s.Compare(_T("VGVzdCB0ZXN0IHRlc3QgdGVzdCB0ZXN0IHRlc3QgdGVzdCEhISE=")) != 0)
throw;
input = "hMailServer is a free e-mail server for Microsoft Windows. It's used by Internet service providers, companies, governments, schools and enthusiasts in all parts of the world. It supports the common e-mail protocols (IMAP, SMTP and POP3) and can easily be integrated with many existing web mail systems. It has flexible score-based spam protection and can attach to your virus scanner to scan all incoming and outgoing email.";
s = Base64::Encode(input, input.GetLength());
if (s.Compare(_T("aE1haWxTZXJ2ZXIgaXMgYSBmcmVlIGUtbWFpbCBzZXJ2ZXIgZm9yIE1pY3Jvc29mdCBXaW5kb3dzLiBJdCdzIHVzZWQgYnkgSW50ZXJuZXQgc2VydmljZSBwcm92aWRlcnMsIGNvbXBhbmllcywgZ292ZXJubWVudHMsIHNjaG9vbHMgYW5kIGVudGh1c2lhc3RzIGluIGFsbCBwYXJ0cyBvZiB0aGUgd29ybGQuIEl0IHN1cHBvcnRzIHRoZSBjb21tb24gZS1tYWlsIHByb3RvY29scyAoSU1BUCwgU01UUCBhbmQgUE9QMykgYW5kIGNhbiBlYXNpbHkgYmUgaW50ZWdyYXRlZCB3aXRoIG1hbnkgZXhpc3Rpbmcgd2ViIG1haWwgc3lzdGVtcy4gSXQgaGFzIGZsZXhpYmxlIHNjb3JlLWJhc2VkIHNwYW0gcHJvdGVjdGlvbiBhbmQgY2FuIGF0dGFjaCB0byB5b3VyIHZpcnVzIHNjYW5uZXIgdG8gc2NhbiBhbGwgaW5jb21pbmcgYW5kIG91dGdvaW5nIGVtYWlsLg==")) != 0)
throw;
input = "VGVzdA==";
s = Base64::Decode(input, input.GetLength());
if (s.Compare(_T("Test")) != 0)
throw;
input = "VGVzdCB0ZXN0IHRlc3QgdGVzdCB0ZXN0IHRlc3QgdGVzdCEhISE=";
s = Base64::Decode(input, input.GetLength());
if (s.Compare(_T("Test test test test test test test!!!!")) != 0)
throw;
input = "aE1haWxTZXJ2ZXIgaXMgYSBmcmVlIGUtbWFpbCBzZXJ2ZXIgZm9yIE1pY3Jvc29mdCBXaW5kb3dzLiBJdCdzIHVzZWQgYnkgSW50ZXJuZXQgc2VydmljZSBwcm92aWRlcnMsIGNvbXBhbmllcywgZ292ZXJubWVudHMsIHNjaG9vbHMgYW5kIGVudGh1c2lhc3RzIGluIGFsbCBwYXJ0cyBvZiB0aGUgd29ybGQuIEl0IHN1cHBvcnRzIHRoZSBjb21tb24gZS1tYWlsIHByb3RvY29scyAoSU1BUCwgU01UUCBhbmQgUE9QMykgYW5kIGNhbiBlYXNpbHkgYmUgaW50ZWdyYXRlZCB3aXRoIG1hbnkgZXhpc3Rpbmcgd2ViIG1haWwgc3lzdGVtcy4gSXQgaGFzIGZsZXhpYmxlIHNjb3JlLWJhc2VkIHNwYW0gcHJvdGVjdGlvbiBhbmQgY2FuIGF0dGFjaCB0byB5b3VyIHZpcnVzIHNjYW5uZXIgdG8gc2NhbiBhbGwgaW5jb21pbmcgYW5kIG91dGdvaW5nIGVtYWlsLg==";
s = Base64::Decode(input, input.GetLength());
if (s.Compare(_T("hMailServer is a free e-mail server for Microsoft Windows. It's used by Internet service providers, companies, governments, schools and enthusiasts in all parts of the world. It supports the common e-mail protocols (IMAP, SMTP and POP3) and can easily be integrated with many existing web mail systems. It has flexible score-based spam protection and can attach to your virus scanner to scan all incoming and outgoing email.")) != 0)
throw;
}
示例5:
void
SslContextInitializer::SetCipherList_(boost::asio::ssl::context& context)
{
AnsiString cipher_list = Configuration::Instance()->GetSslCipherList();
cipher_list.Replace("\r", "");
cipher_list.Replace("\n", "");
cipher_list.Replace(" ", "");
if (cipher_list.Trim().IsEmpty())
return;
// Asio does not expose cipher list. Access underlaying layer (OpenSSL) directly.
SSL_CTX* ssl = context.native_handle();
int result = SSL_CTX_set_cipher_list(ssl, cipher_list.c_str());
if (result == 0)
{
// Unable to set the SSL cipher list. Collect the error code from OpenSSL so that
// we can include that in the error message we log.
int errorCode = ERR_get_error();
const int bufferSize = 150;
AnsiString message;
ERR_error_string_n(errorCode, message.GetBuffer(bufferSize), bufferSize);
ErrorManager::Instance()->ReportError(ErrorManager::Medium, 5511, "SslContextInitializer::SetCipherList_", Formatter::Format("Failed to set SSL ciphers. Message: {0}", message));
}
}
示例6: logic_error
bool
File::ReadLine(AnsiString &sLine)
{
if (file_ == nullptr)
throw std::logic_error("Attempt to read to file which has not been opened.");
const int buffer_size = 10000;
char *line_buffer = sLine.GetBuffer(buffer_size);
bool result = fgets(line_buffer, buffer_size, file_) != 0;
sLine.ReleaseBuffer();
return result;
}
示例7:
void
POP3ClientConnection::PrependHeaders_()
//---------------------------------------------------------------------------()
// DESCRIPTION:
// Adds headers to the beginning of the message.
//---------------------------------------------------------------------------()
{
// Add a header with the name of the external account, so that
// we can check where we downloaded it from later on.
String sHeader;
sHeader.Format(_T("X-hMailServer-ExternalAccount: %s\r\n"), account_->GetName().c_str());
AnsiString sAnsiHeader = sHeader;
transmission_buffer_->Append((BYTE*) sAnsiHeader.GetBuffer(), sAnsiHeader.GetLength());
}
示例8: ByteBuffer
void
TCPConnection::EnqueueWrite(const AnsiString &sData)
{
AnsiString sTemp = sData;
char *pBuf = sTemp.GetBuffer();
std::shared_ptr<ByteBuffer> pBuffer = std::shared_ptr<ByteBuffer>(new ByteBuffer());
pBuffer->Add((BYTE*) pBuf, sData.GetLength());
#ifdef _DEBUG
String sDebugOutput;
sDebugOutput.Format(_T("SENT: %s"), String(sTemp).c_str());
OutputDebugString(sDebugOutput);
#endif
EnqueueWrite(pBuffer);
}
示例9: _GetHash
AnsiString HashCreator::_GetHash(const AnsiString &sInputString, HashCreator::RequestedEncoding encoding)
{
AnsiString temp = sInputString;
return _GetHashRaw((unsigned char*) temp.GetBuffer(), temp.GetLength(), encoding);
}