Visual FoxPro
Visual FoxPro
Example: Mime.GetDecryptCertInfo method
Demonstrates theGetDecryptCertInfo method.
Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loMime
LOCAL loJson
LOCAL lcSerial
LOCAL lcIssuerCN
LOCAL i
LOCAL lnCount
lnSuccess = 0
loMime = CreateObject('Chilkat.Mime')
* Load MIME that is has Content-Type like this:
* Content-Type: application/pkcs7-mime; smime-type="enveloped-data"; name="smime.p7m"; smime-type="enveloped-data"
lnSuccess = loMime.LoadMimeFile("qa_data/mime/enveloped_data.eml")
IF (lnSuccess = 0) THEN
? loMime.LastErrorText
RELEASE loMime
CANCEL
ENDIF
* Get information about the certificate that would be needed to decrypt.
* An enveloped-data can potentially be decrypted by multiple certificates if it was encrypted in a way that allows it,
* but in most cases, only a single certificate with associated private key (that of the message recipient) is possible.
loJson = CreateObject('Chilkat.JsonObject')
lnSuccess = loMime.GetDecryptCertInfo(loJson)
IF (lnSuccess = 0) THEN
? loMime.LastErrorText
RELEASE loMime
RELEASE loJson
CANCEL
ENDIF
loJson.EmitCompact = 0
? loJson.Emit()
* Sample output:
* {
* "recipientInfo": [
* {
* "serial": "****",
* "issuerCN": "****"
* }
* ]
* }
* Get each certificate's information like this:
i = 0
lnCount = loJson.SizeOfArray("recipientInfo")
DO WHILE i < lnCount
loJson.I = i
lcSerial = loJson.StringOf("recipientInfo[i].serial")
lcIssuerCN = loJson.StringOf("recipientInfo[i].issuerCN")
i = i + 1
ENDDO
RELEASE loMime
RELEASE loJson