Lianja
Lianja
Sign a File to Create a .p7s (Detached Signature)
See more Encryption Examples
_LANGUAGE_ example to create a detached signature file (.p7s) for any type file. The signature can be verified by calling VerifyP7S and passing the original filename and the .p7s filename.Chilkat Lianja Downloads
llSuccess = .F.
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loCrypt = createobject("CkCrypt2")
// Use a digital certificate and private key from a PFX file (.pfx or .p12).
lcSigningCertSubject = "Acme Inc"
lcPfxFilename = "/Users/chilkat/testData/pfx/acme.pfx"
lcPfxPassword = "test123"
loCertStore = createobject("CkCertStore")
llSuccess = loCertStore.LoadPfxFile(lcPfxFilename,lcPfxPassword)
if (llSuccess <> .T.) then
? loCertStore.LastErrorText
release loCrypt
release loCertStore
return
endif
loJsonCN = createobject("CkJsonObject")
loJsonCN.UpdateString("CN",lcSigningCertSubject)
loCert = createobject("CkCert")
llSuccess = loCertStore.FindCert(loJsonCN,loCert)
if (llSuccess = .F.) then
? "Failed to find certificate by subject common name."
release loCrypt
release loCertStore
release loJsonCN
release loCert
return
endif
// Tell the crypt component to use this cert.
llSuccess = loCrypt.SetSigningCert(loCert)
// We can sign any type of file, creating a .p7s as output:
lcInFile = "/Users/chilkat/testData/pdf/sample.pdf"
lcSigFile = "/Users/chilkat/testData/p7s/sample.p7s"
llSuccess = loCrypt.CreateP7S(lcInFile,lcSigFile)
if (llSuccess = .F.) then
? loCrypt.LastErrorText
release loCrypt
release loCertStore
release loJsonCN
release loCert
return
endif
llSuccess = loCrypt.VerifyP7S(lcInFile,lcSigFile)
if (llSuccess = .F.) then
? loCrypt.LastErrorText
release loCrypt
release loCertStore
release loJsonCN
release loCert
return
endif
? "Success!"
release loCrypt
release loCertStore
release loJsonCN
release loCert