{"id":30663,"date":"2021-04-23T14:12:23","date_gmt":"2021-04-23T19:12:23","guid":{"rendered":"https:\/\/ssl.com\/?post_type=guide&#038;p=30663"},"modified":"2024-10-25T11:02:35","modified_gmt":"2024-10-25T16:02:35","slug":"esigner-codesigntool-command-guide","status":"publish","type":"guide","link":"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/","title":{"rendered":"eSigner CodeSignTool Command Guide"},"content":{"rendered":"\r\n<p><strong>CodeSignTool<\/strong> is a secure, privacy-oriented multi-platform Java command line utility for remotely signing Microsoft Authenticode and Java code objects with <a href=\"https:\/\/ssl.com\/guide\/remote-ev-code-signing-with-esigner\/\" target=\"_blank\" rel=\"noopener\">eSigner<\/a> EV code signing certificates. Hashes of the files are sent to SSL.com for signing so that the code itself is not sent. This is ideal where sensitive files need to be signed, but should not be sent over the wire for signing. CodeSignTool is also ideal for automated batch processes for high volume signings or integration into existing CI\/CD pipeline workflows.<\/p>\r\n<div class=\"su-note info\"  style=\"border-color:#e5e54c;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#FFFF66;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\">If you&#8217;d like to try CodeSignTool with a demo account and certificate, please read <a href=\"https:\/\/ssl.com\/guide\/esigner-demo-credentials-and-certificates\/\" target=\"_blank\" rel=\"noopener\">eSigner Demo Credentials and Certificates<\/a> for credentials and configuration information.<\/p>\r\n<p>To know all the file types that CodeSignTool is able to sign, please refer to this article: <a href=\"https:\/\/ssl.com\/guide\/esigner-supported-file-types\/\">eSigner Supported File Types<\/a><br \/>\r\n<br \/>\r\n<span style=\"font-weight: 400;\">Note: In version v1.3.2 of CodeSignTool, mscab file signing is performed using in memory processing rather than using a tmp directory. <\/span><\/p>\r\n<p>For instructions on how to <a href=\"https:\/\/ssl.com\/how-to\/automate-ev-code-signing-with-signtool-or-certutil-esigner\/\">automate EV Code Signing using signtool.exe or certutil.exe<\/a> please review <a href=\"https:\/\/ssl.com\/how-to\/automate-ev-code-signing-with-signtool-or-certutil-esigner\/\">this how-to<\/a>.<\/p>\r\n<p>If you are looking to use esigner to sign documents instead, please <a href=\"https:\/\/ssl.com\/guide\/esigner-docsigntool-command-guide\/\">refer to this DocSignTool guide<\/a>.<\/div><\/div>\r\n<h2>CodeSignTool Installation<\/h2>\r\n<p>To install the current version of CodeSignTool, simply download and unzip the correct file for your OS:<\/p>\r\n<ul>\r\n\t<li><a href=\"https:\/\/ssl.com\/download\/codesigntool-for-windows\/\" target=\"_blank\" rel=\"noopener\">Windows<\/a><\/li>\r\n\t<li><a href=\"https:\/\/ssl.com\/download\/codesigntool-for-linux-and-macos\/\">Linux and macOS<\/a><\/li>\r\n<\/ul>\r\n<p>Note that the Windows download includes Java runtime, but the Linux\/macOS version requires Java runtime to be installed on your computer. The Windows version of the command is a batch file (<code>CodeSignTool.bat<\/code>) and the Linux\/macOS version is a shell script (<code>CodeSignTool.sh<\/code>).<\/p>\r\n<div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><a href=\"#\" style=\"color:#999999\">Go to top<\/a><\/div>\r\n<h2>CodeSignTool Usage Overview<\/h2>\r\n<p><strong>Usage:<\/strong> <code>CodeSignTool [-hV] [COMMAND] [PARAMETERS]<\/code><\/p>\r\n<p><strong>Options:<\/strong><\/p>\r\n<ul>\r\n\t<li><code>-h<\/code>, <code>--help<\/code>: Display help message and exit.<\/li>\r\n\t<li><code>-V<\/code>, <code>--version<\/code>: Display version information and exit.<\/li>\r\n<\/ul>\r\n<p><strong>Commands:<\/strong><\/p>\r\n<ul>\r\n\t<li><code>get_credential_ids<\/code>: Output the list of eSigner credential IDs associated with a particular user.<\/li>\r\n\t<li><code>credential_info<\/code>: Output key and certificate information related to a credential ID.<\/li>\r\n\t<li><code>sign<\/code>: Sign and timestamp code object.<\/li>\r\n\t<li><code>batch_sign<\/code>: Sign and timestamp multiple code objects with one OTP.<\/li>\r\n\t<li><code>hash<\/code>: Pre-compute hash(es) for later use with <code>batch_hash_sign<\/code> command.<\/li>\r\n\t<li><code>batch_sign_hash<\/code>: Sign hash(es) pre-computed with <code>hash<\/code> command.<\/li>\r\n<\/ul>\r\n<p><strong>Parameters:<\/strong><\/p>\r\n<ul>\r\n\t<li><code>-access_token=&lt;TOKEN&gt;<\/code>: OAuth <a href=\"https:\/\/ssl.com\/guide\/remote-document-signing-with-esigner-csc-api\/#ftoc-heading-3\" target=\"_blank\" rel=\"noopener\">access token<\/a>.<\/li>\r\n\t<li><code>-credential_id=&lt;CREDENTIAL_ID&gt;<\/code>: Credential ID for signing certificate.<\/li>\r\n\t<li><code>-input_dir_path=&lt;PATH&gt;<\/code>: Input directory for code objects to be signed, have hashes computed, or pick unsigned files and corresponding hashes for signing.<\/li>\r\n\t<li><code>-input_file_path=&lt;PATH&gt;<\/code>: Path of code object to be signed.<\/li>\r\n\t<li><code>-otp=&lt;OTP&gt;<\/code>: OAuth OTP value from authentication app.<\/li>\r\n\t<li><code>-output_dir_path=&lt;PATH&gt;<\/code>: Directory where signed code object(s) will be written.<\/li>\r\n\t<li><code>-password=&lt;PASSWORD&gt;<\/code>: SSL.com account password.<\/li>\r\n\t<li><code>-program_name=&lt;PROGRAM_NAME&gt;<\/code>: Name of program (for MSI installers only).<\/li>\r\n\t<li><code>-totp_secret=&lt;TOTP_SECRET&gt;<\/code>: OAuth <a href=\"https:\/\/ssl.com\/how-to\/automate-esigner-ev-code-signing\/\" target=\"_blank\" rel=\"noopener\">TOTP secret<\/a><\/li>\r\n\t<li><code>-username=&lt;USERNAME&gt;<\/code>: SSL.com account username<\/li>\r\n\t<li><code>-override=\"true\"<\/code>: Overwrites the signed file<\/li>\r\n<\/ul>\r\n<div class=\"su-note danger\"  style=\"border-color:#e5e54c;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#FFFF66;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\">If your password includes special characters, enclose it in quotes (e.g. <code>-password=\"P!@^^ssword12\"<\/code>).<\/div><\/div>\r\n<div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><a href=\"#\" style=\"color:#999999\">Go to top<\/a><\/div>\r\n<h2>CodeSignTool Commands<\/h2>\r\n<h3>get_credential_ids<\/h3>\r\n<p>Output the list of eSigner credential IDs associated with a particular user. Parameters <code>-username<\/code> and <code>-password<\/code> are required.<\/p>\r\n<p>Usage: <code>CodeSignTool [-hV] get_credential_ids -username=&lt;USERNAME&gt; -password=&lt;PASSWORD&gt;<\/code><\/p>\r\n<p>Example:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">CodeSignTool get_credential_ids -username=john.doe@example.com -password=\"P0z9@lxo41\"\r\nCredential ID(s):\r\n- fe537ace-e132-52a9-c2e7-egcd2ac3f1e6<\/pre>\r\n<p>Entering <code>CodeSignTool get_credential_ids<\/code> without the required parameters will display usage information for the command.<\/p>\r\n<div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><a href=\"#\" style=\"color:#999999\">Go to top<\/a><\/div>\r\n<h3>credential_info<\/h3>\r\n<p>Output key and certificate information related to a credential ID. Parameters <code>-credential_id<\/code>, <code>-username<\/code>, and <code>-password<\/code> are required.<\/p>\r\n<p>Usage: <code>CodeSignTool [-hV] credential_info -credential_id=&lt;CREDENTIAL_ID&gt; -username=&lt;USERNAME&gt; -password=&lt;PASSWORD&gt;<\/code><\/p>\r\n<p>Example:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">CodeSignTool credential_info -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password=\"P0z9@lxo41\"\r\nEVCS Certificate Subject Information:\r\n- Subject DN: OID.1.3.6.1.4.1.311.60.2.1.3=US, OID.1.3.6.1.4.1.311.60.2.1.2=Nevada, OID.2.5.4.15=Private Organization, CN=SSL Corp, SERIALNUMBER=NV20081614243, O=SSL Corp, L=Houston, ST=Texas, C=US\r\n- Certificate Expiry: Mon Feb 26 21:21:37 EST 2024\r\n- Issuer DN: CN=SSL.com EV Code Signing Intermediate CA RSA R3, O=SSL Corp, L=Houston, ST=Texas, C=US<\/pre>\r\n<p>Entering <code>CodeSignTool credential_info<\/code> without the required parameters will display usage information for the command.<\/p>\r\n<div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><a href=\"#\" style=\"color:#999999\">Go to top<\/a><\/div>\r\n<h3 class=\"c-mrkdwn__pre\" data-stringify-type=\"pre\"><strong>scan_code<\/strong><\/h3>\r\n<p>Enables pre-signing malware scan. This scans your file for any possible malware in order to avoid code compromise and prevents signing of code if malware is detected.<\/p>\r\n<pre class=\"c-mrkdwn__pre\" data-stringify-type=\"pre\">Usage: <code>CodeSignTool scan_code [-hV] -credential_id=&lt;credentialId&gt; -input_file_path=&lt;inputFilePath&gt; -password=&lt;password&gt; [-program_name=&lt;programName&gt;] -username=&lt;username&gt;<\/code><\/pre>\r\n<p>For more detailed information on the security benefits of SSL.com&#8217;s Malware Scan service, you can visit our <strong><a href=\"https:\/\/ssl.com\/guide\/how-to-use-pre-signing-malware-scan-with-ssl-com-esigner\/\">dedicated page<\/a><\/strong>.<\/p>\r\n<div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><a href=\"#\" style=\"color:#999999\">Go to top<\/a><\/div>\r\n<h3>sign<\/h3>\r\n<p>Sign and timestamp code object. Parameters <code>-username<\/code>, <code>-password<\/code>, and <code>-input_file_path<\/code> are required. <code>-credential_id<\/code> is required only for users with more than one eSigner code signing certificate. <code>-output_dir_path<\/code>, <code>-program_name<\/code>, and <code>-totp_secret<\/code> are optional.<\/p>\r\n<p>Usage: <code>CodeSignTool sign [-hV] [-credential_id=&lt;CREDENTIAL_ID&gt;] -username=&lt;USERNAME&gt; -password=&lt;PASSWORD&gt; -input_file_path=&lt;PATH&gt; [-output_dir_path=&lt;PATH&gt;] [-program_name=&lt;PROGRAM_NAME&gt;] [-totp_secret=&lt;TOTP_SECRET&gt;]<\/code><\/p>\r\n<p>Optional parameters:<\/p>\r\n<ul>\r\n\t<li>If <code>-credential_id<\/code> is omitted and the user has only one eSigner code signing certificate, CodeSignTool will default to that. If the user has more than one code signing certificate, this parameter is mandatory.<\/li>\r\n\t<li>If <code>-output_dir_path<\/code> is omitted, the file specified in <code>-input_file_path<\/code> will be overwritten with the signed file. CodeSignTool will prompt the user before overwriting the file.<\/li>\r\n\t<li>If <code>-program_name<\/code> is present when signing an MSI installer, the value will be displayed in the confirmation dialog as the program name.<\/li>\r\n\t<li>If <code>-totp_secret<\/code> is present, CodeSignTool will calculate a time-based OTP for signing, allowing automated use of the tool. If this parameter is not present, the user will be prompted for manual OTP entry.<\/li>\r\n<\/ul>\r\n<div class=\"su-note info\"  style=\"border-color:#e5e54c;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#FFFF66;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\">For information on enrolling an EV code signing certificate in eSigner and setting up two-factor authentication, please read <a href=\"https:\/\/ssl.com\/guide\/remote-ev-code-signing-with-esigner\/\" target=\"_blank\" rel=\"noopener\">Remote EV Code Signing with eSigner<\/a>. For information on the TOTP secret value, please refer to <a href=\"https:\/\/ssl.com\/how-to\/automate-esigner-ev-code-signing\/\" target=\"_blank\" rel=\"noopener\">Automate eSigner EV Code Signing<\/a>.<\/div><\/div>\r\n<p>Examples:<\/p>\r\n<p>Manual OTP Entry:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password=\"P0z9@lxo41\" -output_dir_path=signed -input_file_path=test.exe\r\nEnter the OTP - Press enter to continue: 884646\r\nCode signed successfully: C:\\Users\\John Doe\\Desktop\\CodeSignTool-v1.0-windows\\signed\\test.exe<\/pre>\r\n<p>Automated OTP Generation:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password=\"P0z9@lxo41\" -totp_secret=ii5gVvZ9G+WkxB3FauAnoL\/z14AXSMistcE0jZMWWNSjQDlql2kt2D6Z+l8= -output_dir_path=signed -input_file_path=test.exe\r\nCode signed successfully: C:\\Users\\John Doe\\Desktop\\CodeSignTool-v1.0-windows\\signed\\test.exe<\/pre>\r\n<p>Entering <code>CodeSignTool sign<\/code> without the required parameters will display usage information for the command.<\/p>\r\n<div class=\"su-note warning\"  style=\"border-color:#e5e54c;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#FFFF66;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><strong>If you get the error message, <code class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">Error: invalid otp<\/code> when attempting to sign a file, it could be caused by one or more of these issues:<\/strong><\/p>\r\n<ul>\r\n\t<li>The QR code you scanned into your authentication app doesn&#8217;t match the username, password, and\/or credential ID from your command. This could happen if:\r\n\r\n<ul>\r\n\t<li>You have multiple accounts configured for 2FA on your device and chose the wrong one.<\/li>\r\n\t<li>You are attempting to use your login credentials for a <a href=\"https:\/\/ssl.com\/how-to\/team-sharing-for-esigner-document-and-ev-code-signing-certificates\/\" target=\"_blank\" rel=\"noopener\">shared certificate<\/a>, but scanned a QR code shared by a teammate from their account.<\/li>\r\n<\/ul>\r\n<\/li>\r\n\t<li>The OTP you entered has already expired.<\/li>\r\n\t<li>Your command includes an invalid TOTP secret.<\/li>\r\n<\/ul>\r\n<\/div><\/div>\r\n<div class=\"su-note danger\"  style=\"border-color:#e5e54c;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#FFFF66;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\">Some eSigner users have reported problems with invalid signatures when signing MSI installers built with Microsoft Visual Studio. As a workaround, we suggest building your MSI files with <a href=\"https:\/\/wixtoolset.org\/\" target=\"_blank\" rel=\"noopener\">WiX Toolset<\/a>. For the convenience of Visual Studio users, a <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=WixToolset.WiXToolset\" target=\"_blank\" rel=\"noopener\">WiX Toolset VS extension<\/a> is available.<\/div><\/div>\r\n<div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><a href=\"#\" style=\"color:#999999\">Go to top<\/a><\/div>\r\n<h3>batch_sign<\/h3>\r\n<p><strong><div class=\"su-note warning\"  style=\"border-color:#e5e54c;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#FFFF66;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><\/strong>Note: 100 is the maximum number of code files allowed to be signed per batch.<strong><\/div><\/div><\/strong><\/p>\r\n<p>Sign and timestamp up to 100 code files with one OTP. Parameters <code>-username<\/code>, <code>-password<\/code>, and <code>-input_dir_path<\/code> are required. <code>-credential_id<\/code> is required only for users with more than one eSigner code signing certificate. <code>-output_dir_path<\/code>, <code>-program_name<\/code>, and <code>-totp_secret<\/code> are optional.<\/p>\r\n<p>Usage: <code>CodeSignTool [-hV] batch_sign [-credential_id=&lt;CREDENTIAL_ID&gt;] -username=&lt;USERNAME&gt; -password=&lt;PASSWORD&gt; -input_dir_path=&lt;PATH&gt; [-output_dir_path=&lt;PATH&gt;] [-program_name=&lt;PROGRAM_NAME&gt;] [-totp_secret=&lt;TOTP_SECRET&gt;]<\/code><\/p>\r\n<p>If a user wants to conduct batch sign with malware checking, each code object in the batch must first be scanned with the <code>scan_code<\/code> command and then afterwards, the <code>batch_sign<\/code> command can be ran.<\/p>\r\n<p>Optional parameters:<\/p>\r\n<ul>\r\n\t<li>If <code>-credential_id<\/code> is omitted and the user has only one eSigner code signing certificate, CodeSignTool will default to that. If the user has more than one code signing certificate, this parameter is mandatory.<\/li>\r\n\t<li>If <code>-output_dir_path<\/code> is omitted, the files specified in <code>-input_dir_path<\/code> will be overwritten with the signed files. CodeSignTool will prompt the user before overwriting the file.<\/li>\r\n\t<li>If <code>-program_name<\/code> is present when signing an MSI installer, the value will be displayed in the confirmation dialog as the program name.<\/li>\r\n\t<li>If <code>-totp_secret<\/code> is present, CodeSignTool will calculate a time-based OTP for signing, allowing automated use of the tool. If this parameter is not present, the user will be prompted for manual OTP entry.<\/li>\r\n<\/ul>\r\n<p>Example:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">CodeSignTool batch_sign -username=john.doe@example.com -password=\"P0z9@lxo41\" -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output\r\nEnter the OTP - Press enter to continue: 455145\r\nBatch sign command executed successfully. Output directory for signed files: output<\/pre>\r\n<p>Entering <code>CodeSignTool batch_sign<\/code> without the required parameters will display usage information for the command.<\/p>\r\n<div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><a href=\"#\" style=\"color:#999999\">Go to top<\/a><\/div>\r\n<h3>hash<\/h3>\r\n<p>Pre-compute hash(es) for later use with <code>batch_hash_sign<\/code> command. Parameter <code>-input_dir_path<\/code> is required. <code>-program_name<\/code> is optional<\/p>\r\n<p>Usage: <code>CodeSignTool [-hV] hash -input_dir_path=&lt;PATH&gt; [-program_name=&lt;PROGRAM_NAME&gt;]<\/code><\/p>\r\n<p>Optional parameters:<\/p>\r\n<ul>\r\n\t<li>If <code>-program_name<\/code> is present when signing an MSI installer, the value will be displayed in the confirmation dialog as the program name.<\/li>\r\n<\/ul>\r\n<p>Example:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">CodeSignTool hash -input_dir_path=input\r\nHash command executed successfully. Hash files created at: input<\/pre>\r\n<p>Entering <code>CodeSignTool hash<\/code> without the required parameters will display usage information for the command.<\/p>\r\n<div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><a href=\"#\" style=\"color:#999999\">Go to top<\/a><\/div>\r\n<h3>batch_sign_hash<\/h3>\r\n<p>Sign hash(es) pre-computed with <code>hash<\/code> command. Parameters <code>-access_token<\/code>, <code>input_dir_path<\/code>, <code>-otp<\/code>, and <code>output_dir_path<\/code> are required. <code>-credential_id<\/code> is required only for users with more than one eSigner code signing certificate.<\/p>\r\n<p>Usage: <code>CodeSignTool [-hV] batch_sign_hash -access_token=&lt;ACCESS_TOKEN&gt; [-credential_id=&lt;CREDENTIAL_ID&gt;] -input_dir_path=&lt;PATH&gt; -output_dir_path=&lt;PATH&gt; -otp=&lt;OTP&gt;<\/code><\/p>\r\n<p>Optional parameters:<\/p>\r\n<ul>\r\n\t<li>If <code>-credential_id<\/code> is omitted and the user has only one eSigner code signing certificate, CodeSignTool will default to that. If the user has more than one code signing certificate, this parameter is mandatory.<\/li>\r\n<\/ul>\r\n<p>Example:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">CodeSignTool batch_sign_hash -access_token=eyJraWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0IiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJTU\r\n0wuY29tIEF1dGhlbnRpY2F0aW9uIFNlcnZpY2UiLCJleHAiOjE2MTQ4OTcxNDIsImlhdCI6MTYxNDg5MzU0MiwianRpIjoiZmI2OTZlNDUtMTIzOS00ZGE4LW\r\nI1MmYtODNkZDE2MTY3ZTM3IiwidXNlciI6eyJ1c2VyX2lkIjoxMzIyODU4LCJ1c2VyX2VtYWlsIjoiYWFyb24uZS5ydXNzZWxsQGdtYWlsLmNvbSIsInNzbF9\r\nhY2NvdW50X2lkIjo0NzQzMDJ9LCJjbGllbnQiOnsiaWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0In19.fCKDs1igjsI\r\nUDG2sUN_2OTb90Jw1nKNPHcD1MyEUR6sHCv_aJmcvcaFRne_eKLHzeQ9WtT5y3Fb2ppc50kMnjPG6JgX5gnFMptMn-ySsI277CtKbkSn3u-WSDSovn51jPm82\r\n4wTeJmuXEzdv9clRjTwp6VoM9eqHCIaDAd3MP2xpMaa35cZbDaaAFKQ7jxWo9dUuTZY7DsKK0p1LloUEnmNxtNimQ3GDwkj_M600WB1zYrhDL9_3oZKaXcUx9\r\nqzHcBCLzGgeaZ0xdpZtADxmXDUCcmkZi20yQ53bxqVL2w00sJ73efKB7JGeGWVehO-ZlGs3PUQwooox1JgEgcsA -credential_id=fe537ace-e132-52a9\r\n-c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output -otp=142392\r\nBatch sign hash command executed successfully. Output directory for signed files: output<\/pre>\r\n<p>Entering <code>CodeSignTool batch_sign_hash<\/code> without the required parameters will display usage information for the command.<\/p>\r\n<div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><a href=\"#\" style=\"color:#999999\">Go to top<\/a><\/div>\r\n<h2>Video: Cloud EV Code Signing with eSigner and CodeSignTool<\/h2>\r\n\r\n\r\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\">\r\n<div class=\"wp-block-embed__wrapper\">https:\/\/youtu.be\/Br25mZIlKdU<\/div>\r\n<\/figure>\r\n\r\n\n<div class=\"su-note info\"  style=\"border-color:#e5e54c;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#FFFF66;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\">Thank you for choosing SSL.com! If you have any questions, please contact us by email at <a style=\"pointer-events: none;\" tabindex=\"-1\" href=\"mailto:Support@SSL.com\">Support@SSL.com<\/a>, call 1-877-SSL-SECURE, or just click the chat link at the bottom right of this page. You can also find answers to many common support questions in our <a style=\"pointer-events: none;\" tabindex=\"-1\" href=\"https:\/\/ssl.com\/info\/\" target=\"_blank\" rel=\"noopener noreferrer\">knowledgebase<\/a>.<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"Overview guide to CodeSignTool, a remote code signing tool for use with SSL.com&#8217;s eSigner EV code signing certificates.","protected":false},"author":155912054,"featured_media":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","categories":[644834801,644834987],"tags":[644834990],"class_list":["post-30663","guide","type-guide","status-publish","format-standard","hentry","category-code-signing-certificate-type","category-esigner","tag-codesigntool"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>eSigner CodeSignTool Command Guide - SSL.com<\/title>\n<meta name=\"description\" content=\"Overview guide to CodeSignTool, a remote code signing tool for use with SSL.com&#039;s eSigner EV code signing certificates.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"eSigner CodeSignTool Command Guide - SSL.com\" \/>\n<meta property=\"og:description\" content=\"Overview guide to CodeSignTool, a remote code signing tool for use with SSL.com&#039;s eSigner EV code signing certificates.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"SSL.com\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/sslcorp\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-25T16:02:35+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@sslcorp\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/\",\"url\":\"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/\",\"name\":\"eSigner CodeSignTool Command Guide - SSL.com\",\"isPartOf\":{\"@id\":\"https:\/\/www.ssl.com\/#website\"},\"datePublished\":\"2021-04-23T19:12:23+00:00\",\"dateModified\":\"2024-10-25T16:02:35+00:00\",\"description\":\"Overview guide to CodeSignTool, a remote code signing tool for use with SSL.com's eSigner EV code signing certificates.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.ssl.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guides\",\"item\":\"https:\/\/www.ssl.com\/guides\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Solution\",\"item\":\"https:\/\/www.ssl.com\/category\/solution\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"eSigner\",\"item\":\"https:\/\/www.ssl.com\/category\/solution\/esigner\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"eSigner CodeSignTool Command Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.ssl.com\/#website\",\"url\":\"https:\/\/www.ssl.com\/\",\"name\":\"SSL.com\",\"description\":\"SSL\/TLS Certificates, Code Signing Certificates, Document Signing, S\/MIME, and Client Certificates in addition to IoT and Public and Private PKI\",\"publisher\":{\"@id\":\"https:\/\/www.ssl.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.ssl.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.ssl.com\/#organization\",\"name\":\"SSL Corp\",\"url\":\"https:\/\/www.ssl.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.ssl.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ssl.com\/wp-content\/uploads\/2019\/10\/ssl-logo-black.svg\",\"contentUrl\":\"https:\/\/ssl.com\/wp-content\/uploads\/2019\/10\/ssl-logo-black.svg\",\"width\":1,\"height\":1,\"caption\":\"SSL Corp\"},\"image\":{\"@id\":\"https:\/\/www.ssl.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/sslcorp\",\"https:\/\/x.com\/sslcorp\",\"https:\/\/www.linkedin.com\/company\/ssl-com\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"eSigner CodeSignTool Command Guide - SSL.com","description":"Overview guide to CodeSignTool, a remote code signing tool for use with SSL.com's eSigner EV code signing certificates.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/","og_locale":"en_US","og_type":"article","og_title":"eSigner CodeSignTool Command Guide - SSL.com","og_description":"Overview guide to CodeSignTool, a remote code signing tool for use with SSL.com's eSigner EV code signing certificates.","og_url":"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/","og_site_name":"SSL.com","article_publisher":"https:\/\/www.facebook.com\/sslcorp","article_modified_time":"2024-10-25T16:02:35+00:00","twitter_card":"summary_large_image","twitter_site":"@sslcorp","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/","url":"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/","name":"eSigner CodeSignTool Command Guide - SSL.com","isPartOf":{"@id":"https:\/\/www.ssl.com\/#website"},"datePublished":"2021-04-23T19:12:23+00:00","dateModified":"2024-10-25T16:02:35+00:00","description":"Overview guide to CodeSignTool, a remote code signing tool for use with SSL.com's eSigner EV code signing certificates.","breadcrumb":{"@id":"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ssl.com\/guide\/esigner-codesigntool-command-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.ssl.com\/"},{"@type":"ListItem","position":2,"name":"Guides","item":"https:\/\/www.ssl.com\/guides\/"},{"@type":"ListItem","position":3,"name":"Solution","item":"https:\/\/www.ssl.com\/category\/solution\/"},{"@type":"ListItem","position":4,"name":"eSigner","item":"https:\/\/www.ssl.com\/category\/solution\/esigner\/"},{"@type":"ListItem","position":5,"name":"eSigner CodeSignTool Command Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.ssl.com\/#website","url":"https:\/\/www.ssl.com\/","name":"SSL.com","description":"SSL\/TLS Certificates, Code Signing Certificates, Document Signing, S\/MIME, and Client Certificates in addition to IoT and Public and Private PKI","publisher":{"@id":"https:\/\/www.ssl.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ssl.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.ssl.com\/#organization","name":"SSL Corp","url":"https:\/\/www.ssl.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.ssl.com\/#\/schema\/logo\/image\/","url":"https:\/\/ssl.com\/wp-content\/uploads\/2019\/10\/ssl-logo-black.svg","contentUrl":"https:\/\/ssl.com\/wp-content\/uploads\/2019\/10\/ssl-logo-black.svg","width":1,"height":1,"caption":"SSL Corp"},"image":{"@id":"https:\/\/www.ssl.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/sslcorp","https:\/\/x.com\/sslcorp","https:\/\/www.linkedin.com\/company\/ssl-com\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.ssl.com\/wp-json\/wp\/v2\/guide\/30663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ssl.com\/wp-json\/wp\/v2\/guide"}],"about":[{"href":"https:\/\/www.ssl.com\/wp-json\/wp\/v2\/types\/guide"}],"author":[{"embeddable":true,"href":"https:\/\/www.ssl.com\/wp-json\/wp\/v2\/users\/155912054"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ssl.com\/wp-json\/wp\/v2\/comments?post=30663"}],"version-history":[{"count":74,"href":"https:\/\/www.ssl.com\/wp-json\/wp\/v2\/guide\/30663\/revisions"}],"predecessor-version":[{"id":36731,"href":"https:\/\/www.ssl.com\/wp-json\/wp\/v2\/guide\/30663\/revisions\/36731"}],"wp:attachment":[{"href":"https:\/\/www.ssl.com\/wp-json\/wp\/v2\/media?parent=30663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ssl.com\/wp-json\/wp\/v2\/categories?post=30663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ssl.com\/wp-json\/wp\/v2\/tags?post=30663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}