Chilkat Examples

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

C Examples

Async
Certificates
ECC
Email Object
Encryption
FTP
HTML-to-XML/Text
Gzip
HTTP
IMAP
JSON
Jwt
MHT / HTML Email
PEM
PFX/P12
Java KeyStore (JKS)
POP3
RSA Encryption
MIME
REST
SCP
SMTP
Socket/SSL/TLS
SSH Key
SSH
SSH Tunnel
SFTP
Stream
Tar Archive
XML
XMP
Zip

More Examples...
OpenSSL
Google APIs
Google Cloud Storage
Azure Cloud Storage
Amazon S3 (new)
Google Drive
Dropbox
Firebase
ASN.1
PRNG
Amazon S3
Bounced Email
CSV
Diffie-Hellman
DKIM / DomainKey
DSA
NTLM
QuickBooks
Spider
Digital Signatures

 

 

 

 

 

 

 

(C) DSA Generate Key

Generates a DSA public/private key pair and saves to PEM and DER file formats (both encrypted and non-encrypted).

An encrypted DSA PEM looks like this:

-----BEGIN DSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,9DAFD5C4CD62A5D0

QwDdp66sB0qKXQli7FbVcKL/eo3wu7kGRlV2sI8XbkNa1RTLiwnwTWDB0dqyWRQ8
...
Bx0HVfxKiNgCbL6BQEnYD+GOmMcckuj9Uhgloe/YuXCIDJBGhjUt/li3hvR/PXeC

V2xxNl1XKBE88njqi+UXt4vjGVNLpvXM
-----END DSA PRIVATE KEY-----

Chilkat C/C++ Library Downloads

MS Visual C/C++

Linux/CentOS/Heroku C/C++

MAC OS X C/C++

C++ Builder

Solaris C/C++

iOS C/C++

Android C/C++

Raspberry Pi C/C++

Windows Mobile 5.0/Pocket PC 2003

ARM Embedded Linux C/C++

PowerLinux C/C++

FreeBSD C/C++

MinGW C/C++

#include <C_CkDsa.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkDsa dsa;
    const char *pemStr;
    const char *xmlStr;
    BOOL bPublicOnly;



    dsa = CkDsa_Create();

    success = CkDsa_UnlockComponent(dsa,"Anything for 30-day trial");
    if (success != TRUE) {
        printf("%s\n",CkDsa_lastErrorText(dsa));
        CkDsa_Dispose(dsa);
        return;
    }

    //  Call GenKey to generate a new DSA key.
    //  The number of bits should be at least 1024 and a multiple
    //  of 64.   Typical values are either 1024 or 2048.
    //  DSA key generation is compute intensive and may take
    //  a short while to complete.
    success = CkDsa_GenKey(dsa,2048);
    if (success != TRUE) {
        printf("%s\n",CkDsa_lastErrorText(dsa));
        CkDsa_Dispose(dsa);
        return;
    }

    //  Extract the private and public parts to PEM or DER format
    //  and save to files...

    //  First for the public key...
    //  The public key never needs to be encrypted.

    //  Save the public key in PEM format:
    pemStr = CkDsa_toPublicPem(dsa);
    //  This example will not check the return value of SaveText...
    success = CkDsa_SaveText(dsa,pemStr,"dsa_pub.pem");

    //  Save the public key in DER format:
    success = CkDsa_ToPublicDerFile(dsa,"dsa_pub.der");

    bPublicOnly = TRUE;
    //  Save to XML
    xmlStr = CkDsa_toXml(dsa,bPublicOnly);
    success = CkDsa_SaveText(dsa,xmlStr,"dsa_pub.xml");

    //  ------------------------------------
    //  Now for the private key....
    //  ------------------------------------

    //  Unencrypted PEM:
    pemStr = CkDsa_toPem(dsa);
    success = CkDsa_SaveText(dsa,pemStr,"dsa_priv.pem");

    //  Encrypted PEM:
    pemStr = CkDsa_toEncryptedPem(dsa,"myPassword");
    success = CkDsa_SaveText(dsa,pemStr,"dsa_privEncrypted.pem");

    //  DER:
    success = CkDsa_ToDerFile(dsa,"dsa_priv.der");

    //  XML:
    bPublicOnly = FALSE;
    xmlStr = CkDsa_toXml(dsa,bPublicOnly);
    success = CkDsa_SaveText(dsa,xmlStr,"dsa_priv.xml");

    printf("Finished!\n");


    CkDsa_Dispose(dsa);

    }

 

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