dmtDecryptFileExRSA

Decifra un file precedentemente cifrato con dmtEncryptFileExRSA.

Decifra il file utilizzando lo standard RSA; decifratura con la chiave privata contenuta nel certificato settato come il default nella lista dei certificati personali.

Deve essere stato settato a true il parametro fUseEnhancedProvider della funziona dmtCreate.

Il risultato può essere memorizzato in un buffer  in memoria o in un File su disco

 

Dichiarazione - C

LONG WINAPI dmtDecryptFileExRSA (

HDMTOBJ hDmt,

CHAR *szSource,

CHAR *szDestination,

CHAR *szPin = "",

BOOL fUseBLConversion = FALSE,

BOOL fUseBase64Conversion = FALSE);

 

Dichiarazione - Visual Dataflex

 

External_Function dmtDecryptFileExRSA "dmtDecryptFileExRSA" Dimatec.dll ;

HDMTOBJ  hDmt ;

string szSource ;

string szDestination ;

string szPin ;

integer fUseBLConversion ;

integer fUseBase64Conversion ;

returns integer

 

Dichiarazione - Visual Basic

Public Declare Function dmtDecryptFileExRSA Lib "Dimatec.dll" _

(ByVal hDmt As Long, _

Optional ByVal szSource As String = "", _

Optional ByVal szDestination As String = "", _

Optional ByVal szPin As String = vbNullString, _

Optional ByVal fUseBLConversion As Boolean = False, _

Optional ByVal fUseBase64Conversion As Boolean = False) _

As Long

 

Dichiarazione - C Sharp

[DllImport("Dimatec.dll")]

public static extern int dmtDecryptFileExRSA (

int hDmt,

string szSource /*= ""*/,

string szDestination /*= ""*/,

string szPin /*= ""*/,

bool fUseBLConversion /*= false */,

bool fUseBase64Conversion /*= false */);

 

Parametri di input:
Valore di ritorno:

DMT_OK in caso di successo, altrimenti un codice di errore

 

 

Esempi di utilizzo

 

Visual Dataflex

Integer ret

Integer iDefaultPersonalCertificateCount

Integer iDefaultPersonalCertificate

                

String sFileDaDecifrareRSA

String sFileDecifratoRSA

String sPin

 

Get psFileDaDecifrareRSA of oDecifraUnFileRSA to sFileDaDecifrareRSA

Get Label of oTextBox_FileDecifratoRSA to sFileDecifratoRSA

 

// Check

If (Length(Trim(psFileDaDecifrareRSA(oDecifraUnFileRSA))) = 0) Begin

    Send Stop_Box "Non e' stato scelto nessun file da decifrare" "EseguiDecifraturaRSA"

    Procedure_Return

End

            

Move (dmtGetCertificateCountLoaded( ;

    ghDmt , ;

    False)) to iDefaultPersonalCertificateCount

If (iDefaultPersonalCertificateCount <= 0) Begin

    Send Stop_Box "Nessun certificato personale caricato" "EseguiDecifraturaRSA"

    Procedure_Return

End

Else Begin

    Move (dmtGetDefaultCertificateLoaded( ;

        ghDmt , ;

        False)) to iDefaultPersonalCertificate

    If (iDefaultPersonalCertificate < 0) Begin

        Send Stop_Box "Non e' stato settato il certificato personale di default" "EseguiDecifraturaRSA"

        Procedure_Return

    End

End

            

If (Length(Trim(Value(oForm_Pin))) > 0) Begin

    Get Value of oForm_Pin to sPin

    Move (AddressOf(sPin)) to lpsPin

                    

    Move (dmtDecryptFileExRSA( ;

        ghDmt , ;

        sFileDaDecifrareRSA , ;

        sFileDecifratoRSA , ;

        sPin , ;

        False , ;

        False)) to ret

End

Else Begin

    Move (dmtDecryptFileExRSA( ;

        ghDmt , ;

        sFileDaDecifrareRSA , ;

        sFileDecifratoRSA , ;

        0 , ;

        False , ;

        False)) to ret

End

 

 

C Sharp

if (labelFileToDecrypt.Text.Length == 0)

{

    MessageBox.Show(this, "Any file selected to decrypt", "DecryptFile",

        MessageBoxButtons.OK, MessageBoxIcon.Error);

    return;

}

if (CDIMATECLIBRARY.dmtGetCertificateCountLoaded(CDIMATECLIBRARY.ghDimatecObj, false) <= 0)

{

    MessageBox.Show(this, "Personal certificate not loaded", "DecryptFile",

        MessageBoxButtons.OK, MessageBoxIcon.Error);

    return;

}

if (CDIMATECLIBRARY.dmtGetDefaultCertificateLoaded(CDIMATECLIBRARY.ghDimatecObj, false) < 0)

{

    MessageBox.Show(this, "Default personal certificate not set", "DecryptFile",

        MessageBoxButtons.OK, MessageBoxIcon.Error);

    return;

}

 

string szPin = "";

if (textBoxDecryptPin.Text.Length > 0)

{

    szPin = textBoxDecryptPin.Text;

}

 

int DecryptFileResult = CDIMATECLIBRARY.dmtDecryptFileExRSA(

    CDIMATECLIBRARY.ghDimatecObj,

    labelFileToDecrypt.Text,

    labelDecryptedFileGenerated.Text,

    szPin,

    checkBoxLBConversion.Checked,

    checkBoxBase64Conversion.Checked);