Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicPythonRubySQL ServerSwiftTclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcel

C# UWP/WinRT Examples


ASN.1
Amazon S3
Amazon S3 (new)
Amazon SES
Amazon SNS
Amazon SQS
Azure Cloud Storage
Azure Service Bus
Bounced Email
Box
CSR
CSV
Certificates
Compression
DKIM / DomainKey
DSA
Diffie-Hellman
Digital Signatures
Dropbox
Dynamics CRM
ECC
Email Object
Encryption
FTP
Facebook
Firebase
GeoOp
Google APIs
Google Calendar
Google Cloud Storage
Google Drive
Gzip
HTML-to-XML/Text
HTTP
HTTP Misc
IMAP
JSON
JSON Web Encryption (JWE)
JSON Web Signatures (JWS)
JSON Web Token (JWT)

Java KeyStore (JKS)
Jira
MHT / HTML Email
MIME
Microsoft Graph
NTLM
OAuth1
OAuth2
OneDrive
OpenSSL
Outlook
PEM
PFX/P12
POP3
PRNG
PayPal
Peoplevox
QuickBooks
REST
RSA Encryption
SCP
SFTP
SMTP
SSH
SSH Key
SSH Tunnel
SharePoint
Shopify
Socket/SSL/TLS
Spider
Stream
Stripe
SugarCRM
Tar Archive
Twitter
VoiceBase
Walmart
WebSocket
XML
XML Digital Signatures
XMP
Xero
Zip
curl
eBay

 

 

 

(C# UWP/WinRT) Duplicate .NET's Rfc2898DeriveBytes Functionality

Demonstrates how to duplicate the results produced by .NET's System.Security.Cryptography.Rfc2898DeriveBytes class.

Chilkat Universal Windows Platform (UWP) / WinRT Downloads

Chilkat for the Universal Windows Platform (UWP)

//  This example assumes Chilkat Crypt2 to have been previously unlocked.
//  See Unlock Crypt2 for sample code.

//  This example demonstrates how to duplicate the results produced
//  by .NET's System.Security.Cryptography.Rfc2898DeriveBytes class.

//  For example, here is C# code that transforms a password string into
//  bytes that can be used as a secret key for symmetric encryption (such as AES, blowfish, 3DES, etc.)
// 
//      Rfc2898DeriveBytes deriveBytes = new Rfc2898DeriveBytes("secret", System.Text.Encoding.UTF8.GetBytes("saltsalt123"), numIterations);
//      byte[] secretKeyBytes = deriveBytes.GetBytes(numBytes);

//  (The Rfc2898DeriveBytes computation is really just the PBKDF2 algorithm with SHA-1 hashing.)
//  In Chilkat, this is what we do to match...

//  First, let's get a test vector with known results.  Both Chilkat AND Microsoft should produce
//  the same results.  RFC 6070 has some PBKDF2 HMAC-SHA1 Test Vectors.  Here is one of them:

//       Input:
//         P = "passwordPASSWORDpassword" (24 octets)
//         S = "saltSALTsaltSALTsaltSALTsaltSALTsalt" (36 octets)
//         c = 4096
//         dkLen = 25
// 
//       Output:
//         DK = 3d 2e ec 4f e4 1c 84 9b
//              80 c8 d8 36 62 c0 e4 4a
//              8b 29 1a 96 4c f2 f0 70
//              38                      (25 octets)
// 
// 

Chilkat.Crypt2 crypt = new Chilkat.Crypt2();

string salt = "saltSALTsaltSALTsaltSALTsaltSALTsalt";
//  Given that the salt is really binary data (can be any random bunch of bytes),
//  we must pass the exact hex string representation of the salt bytes.
//  In this case, we're getting the utf-8 byte representation of our salt string,
//  which is identical to the us-ascii byte representation because there are no 8bit chars..
string saltHex = crypt.EncodeString(salt,"utf-8","hex");

//  Duplicate the test vector as shown above.
string dkHex = crypt.Pbkdf2("passwordPASSWORDpassword","utf-8","sha1",saltHex,4096,25 * 8,"hex");
Debug.WriteLine(dkHex);

 

© 2000-2016 Chilkat Software, Inc. All Rights Reserved.