![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerShell) Sign PDF using ARSS (Aruba Remote Signing Service)See more Signing in the Cloud Examples
Demonstrates how to digitally sign a PDF using the Aruba Remote Signing Service (ARSS).
The example loads a local PDF and certificate, configures the ARSS cloud signer credentials,
specifies the OTP authentication type with Note: This example requires Chilkat v11.5.0 or greater.
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll" $success = $false # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $pdf = New-Object Chilkat.Pdf # Load the PDF that will be digitally signed. $success = $pdf.LoadFile("qa_data/pdf/hello.pdf") if ($success -eq $false) { $($pdf.LastErrorText) exit } # Signing options are specified in a JSON object. $json = New-Object Chilkat.JsonObject # Enable LTV (Long-Term Validation). # When ltvOcsp is true, OCSP validation information is embedded in the PDF # so that signature validation can continue to succeed in the future, # even if the original OCSP responder is no longer available. $json.UpdateBool("ltvOcsp",$true) # Specify the visual appearance of the signature on the PDF page. $json.UpdateInt("page",1) $json.UpdateString("appearance.y","top") $json.UpdateString("appearance.x","left") $json.UpdateString("appearance.fontScale","10.0") # Text lines displayed in the visible signature appearance. # Special values such as "cert_cn" and "current_dt" are replaced # with the certificate common name and current date/time. $json.UpdateString("appearance.text[0]","Digitally signed by: cert_cn") $json.UpdateString("appearance.text[1]","current_dt") $json.UpdateString("appearance.text[2]","This is an LTV-enabled signature.") # Load the signing certificate. # # The private key is NOT stored locally. Instead, the private key is # stored and protected on the Aruba Remote Signing Service (ARSS). # # Even though the signing operation will occur remotely, Chilkat still # needs the corresponding public certificate locally so that it can # construct the CMS/PAdES signature and embed the certificate chain # in the signed PDF. $cert = New-Object Chilkat.Cert $success = $cert.LoadFromFile("qa_data/certs/myCert.cer") if ($success -eq $false) { $($cert.LastErrorText) exit } # Configure Aruba Remote Signing Service (ARSS) credentials. # # When SetCloudSigner is called, Chilkat is instructed to perform # cryptographic signing operations through the ARSS web service. # The PDF is assembled locally, but the actual RSA signature operation # is performed remotely using the private key held by Aruba. $jsonArss = New-Object Chilkat.JsonObject # Required. Indicates that the cloud signing provider is ARSS. $jsonArss.UpdateString("service","ARSS") # The ARSS certificate identifier (for example, "AS0"). # This identifies which remote certificate/private key pair should be used. # The remote certificate should correspond to the certificate loaded above. $jsonArss.UpdateString("certID","YOUR_ARSS_CERT_ID") # OTP password associated with the Aruba remote-signing account. # Depending on the ARSS configuration, an OTP may be required to # authorize each signing operation. $jsonArss.UpdateString("otpPwd","YOUR_OTP_PWD") # Specifies the OTP authentication environment. # # Common values are: # "demoprod" - Demo/Test environment # "prod" - Production environment # # This value is sent to the ARSS service and determines how the OTP # authentication is validated. The correct value depends on the type # of Aruba account and environment that has been provisioned. # # If signing fails with an authentication-related error, verify that # the typeOtpAuth value matches the environment associated with the # ARSS account credentials being used. $jsonArss.UpdateString("typeOtpAuth","demoprod") # ARSS account username. $jsonArss.UpdateString("user","YOUR_ARSS_USERNAME") # ARSS account password. $jsonArss.UpdateString("userPWD","YOUR_ARSS_PASSWORD") # Beginning with Chilkat v11.5.0, the ARSS endpoint can be explicitly # specified. This allows the application to target a particular # Aruba signing service endpoint when required. $jsonArss.UpdateString("endpoint","https://app1.firma-remota.it/ArubaSignerService/webresources/signerservice") $success = $cert.SetCloudSigner($jsonArss) if ($success -eq $false) { $($cert.LastErrorText) exit } # Associate the certificate with the PDF object. # All subsequent signing operations will use this certificate. $success = $pdf.SetSigningCert($cert) if ($success -eq $false) { $($pdf.LastErrorText) exit } # Create the signed PDF. # # Chilkat performs all PDF processing locally. When the time comes # to generate the cryptographic signature value, Chilkat sends the # hash to ARSS, which signs it using the remote private key and returns # the signature. The private key never leaves the Aruba service. $success = $pdf.SignPdf($json,"qa_output/hello_ltv_signed.pdf") if ($success -eq $false) { $($pdf.LastErrorText) exit } $("The PDF has been successfully cryptographically signed with long-term validation.") |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.