Sample code for 30+ languages & platforms
DataFlex

Example: Crypt2.ClearEncryptCerts method

Demonstrates how to call the ClearEncryptCerts method.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoCrypt
    Variant vCert1
    Handle hoCert1
    Variant vCert2
    Handle hoCert2
    Variant vCert3
    Handle hoCert3
    Variant vBd
    Handle hoBd
    Variant vCert4
    Handle hoCert4
    Variant vCert5
    Handle hoCert5

    Move False To iSuccess

    Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt
    If (Not(IsComObjectCreated(hoCrypt))) Begin
        Send CreateComObject of hoCrypt
    End

    // Tell the crypt object to use 3 certificates.
    // Do this by calling AddEncryptCert for each certificate.

    Get Create (RefClass(cComChilkatCert)) To hoCert1
    If (Not(IsComObjectCreated(hoCert1))) Begin
        Send CreateComObject of hoCert1
    End
    // ...
    // Load the cert from a source such as a .pfx/.p12 file, smart card, USB token, Apple keychain, Windows certificate store, etc.
    // ...
    Get pvComObject of hoCert1 to vCert1
    Send ComAddEncryptCert To hoCrypt vCert1

    Get Create (RefClass(cComChilkatCert)) To hoCert2
    If (Not(IsComObjectCreated(hoCert2))) Begin
        Send CreateComObject of hoCert2
    End
    // ...
    Get pvComObject of hoCert2 to vCert2
    Send ComAddEncryptCert To hoCrypt vCert2

    Get Create (RefClass(cComChilkatCert)) To hoCert3
    If (Not(IsComObjectCreated(hoCert3))) Begin
        Send CreateComObject of hoCert3
    End
    // ...
    Get pvComObject of hoCert3 to vCert3
    Send ComAddEncryptCert To hoCrypt vCert3

    // Params for public-key encryption to create PKCS7 enveloped-data
    Set ComCryptAlgorithm Of hoCrypt To "pki"
    Set ComPkcs7CryptAlg Of hoCrypt To "aes"
    Set ComKeyLength Of hoCrypt To 256
    Set ComOaepHash Of hoCrypt To "sha256"
    Set ComOaepPadding Of hoCrypt To True

    Get Create (RefClass(cComChilkatBinData)) To hoBd
    If (Not(IsComObjectCreated(hoBd))) Begin
        Send CreateComObject of hoBd
    End
    // ...
    Get pvComObject of hoBd to vBd
    Get ComEncryptBd Of hoCrypt vBd To iSuccess

    // Let's say we now want to encrypt something else with different certs..
    // First clear the encryption certs.
    Send ComClearEncryptCerts To hoCrypt

    Get Create (RefClass(cComChilkatCert)) To hoCert4
    If (Not(IsComObjectCreated(hoCert4))) Begin
        Send CreateComObject of hoCert4
    End
    // ...
    Get pvComObject of hoCert4 to vCert4
    Send ComAddEncryptCert To hoCrypt vCert4

    Get Create (RefClass(cComChilkatCert)) To hoCert5
    If (Not(IsComObjectCreated(hoCert5))) Begin
        Send CreateComObject of hoCert5
    End
    // ...
    Get pvComObject of hoCert5 to vCert5
    Send ComAddEncryptCert To hoCrypt vCert5

    // ...
    // ...

    // Encrypt using cert4 and cert5.
    Get pvComObject of hoBd to vBd
    Get ComEncryptBd Of hoCrypt vBd To iSuccess


End_Procedure