# IReadOnlySignatureDetails

## Content

<div class="docapp-java-api-doc-main"><style>:not(h1, h2, h3, h4, h5, h6)>code,
:not(h1, h2, h3, h4, h5, h6)>tt {
    font-size: 14px;
    padding-top: 4px;
    margin-top: 8px;
    line-height: 1.4em;
}

.summary-table dt code {
    font-size: 14px;
    vertical-align: top;
    padding-top: 4px;
}

.tab {
    background-color: #0066FF;
    color: #ffffff;
    padding: 8px;
    width: 5em;
    font-weight: bold;
}

/*
 * Styles for page header and footer.
 */
.title {
    color: #2c4557;
    margin: 10px 0;
}

.sub-title {
    margin: 5px 0 0 0;
}

.header ul {
    margin: 0 0 15px 0;
    padding: 0;
}

.header ul li,
.footer ul li {
    list-style: none;
}

/*
 * Styles for headings.
 */
.summary h2,
.details h2,
h2,
.block-list h2 {
    padding: 0;
    margin: 15px 0;
}

.summary h3,
.details h3,
.summary .inherited-list h2 {
    background-color: var(--ds-product-color);
    color: #fff;
    border: 1px solid #d0d9e0;
    padding: 7px 5px;
}

.summary h3 a,
.details h3 a,
.summary .inherited-list h2 a {
    color: #fff !important;
}
/*
 * Styles for page layout containers.
 */
dl.notes>dt {
    font-size: 12px;
    font-weight: bold;
    margin: 10px 0 0 0;
    color: #4E4E4E;
}

dl.notes>dd {
    margin: 5px 10px 10px 0;
    font-size: 14px;
}

dl.name-value>dt {
    margin-left: 1px;
    font-size: 1.1em;
    display: inline;
    font-weight: bold;
}

dl.name-value>dd {
    margin: 0 0 0 1px;
    font-size: 1.1em;
    display: inline;
}

/*
 * Styles for lists.
 */
li.circle {
    list-style: circle;
}

ul.horizontal li {
    display: inline;
    font-size: 0.9em;
}

div.inheritance {
    margin: 0;
    padding: 0;
}

div.inheritance div.inheritance {
    margin-left: 2em;
}

ul.block-list,
ul.details-list,
ul.member-list,
ul.summary-list {
    margin: 10px 0 10px 0;
    padding: 0;
}

ul.block-list>li,
ul.details-list>li,
ul.member-list>li,
ul.summary-list>li {
    list-style: none;
    margin-bottom: 15px;
    line-height: 1.4;
}

.summary-table dl,
.summary-table dl dt,
.summary-table dl dd {
    margin-top: 0;
    margin-bottom: 1px;
}

ul.see-list,
ul.see-list-long {
    padding-left: 0;
    list-style: none;
}

ul.see-list li {
    display: inline;
}

ul.see-list li:not(:last-child):after,
ul.see-list-long li:not(:last-child):after {
    content: ", ";
    white-space: pre-wrap;
}

/*
 * Styles for tables.
 */
.summary-table,
.details-table {
    width: 100%;
    border-spacing: 0;
    border-left: 1px solid #EEE;
    border-right: 1px solid #EEE;
    border-bottom: 1px solid #EEE;
    padding: 0;
}

.caption {
    position: relative;
    text-align: left;
    background-repeat: no-repeat;
    color: #253441;
    font-weight: bold;
    clear: none;
    overflow: hidden;
    padding: 0;
    padding-top: 10px;
    padding-left: 1px;
    margin: 0;
    white-space: pre;
}

.caption a:link,
.caption a:visited {
    color: #1f389c;
}

.caption a:hover,
.caption a:active {
    color: #FFFFFF;
}

.caption span {
    white-space: nowrap;
    padding-top: 5px;
    padding-left: 12px;
    padding-right: 12px;
    padding-bottom: 7px;
    display: inline-block;
    background-color: var(--ds-product-color);
    color: #fff;
    border: none;
}

div.table-tabs {
    padding: 10px 0 0 1px;
    margin: 0;
}

div.table-tabs>button {
    border: none;
    cursor: pointer;
    padding: 5px 12px 7px 12px;
    font-weight: bold;
    margin-right: 3px;
}

div.table-tabs>button.active-table-tab {
    background: var(--ds-product-color);
    color: #fff;
}

div.table-tabs>button.table-tab {
    background: var(--ds-product-color);
    color: #FFFFFF;
    border-bottom: 1px solid #eee;
}

.two-column-summary {
    display: grid;
    grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
}

.three-column-summary {
    display: grid;
    grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
}

.four-column-summary {
    display: grid;
    grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto);
}

@media screen and (max-width: 600px) {
    .two-column-summary {
        display: grid;
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 800px) {
    .three-column-summary {
        display: grid;
        grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
    }

    .three-column-summary .col-last {
        grid-column-end: span 2;
    }
}

@media screen and (max-width: 1000px) {
    .four-column-summary {
        display: grid;
        grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
    }
}

.summary-table>div,
.details-table>div {
    text-align: left;
    padding: 8px 3px 3px 7px;
}

.col-first,
.col-second,
.col-last,
.col-constructor-name,
.col-summary-item-name {
    vertical-align: top;
    padding-right: 0;
    padding-top: 8px;
    padding-bottom: 3px;
}

.table-header {
    background: var(--ds-product-color);
    color: #fff;
    font-weight: bold;
}

.col-first,
.col-first {
    font-size: 13px;
}

.col-second,
.col-second,
.col-last,
.col-constructor-name,
.col-summary-item-name,
.col-last {
    font-size: 13px;
}

.col-first,
.col-second,
.col-constructor-name {
    vertical-align: top;
    overflow: auto;
}

.col-last {
    white-space: normal;
}

.col-first a:link,
.col-first a:visited,
.col-second a:link,
.col-second a:visited,
.col-first a:link,
.col-first a:visited,
.col-second a:link,
.col-second a:visited,
.col-constructor-name a:link,
.col-constructor-name a:visited,
.col-summary-item-name a:link,
.col-summary-item-name a:visited,
.constant-values-container a:link,
.constant-values-container a:visited,
.all-classes-container a:link,
.all-classes-container a:visited,
.all-packages-container a:link,
.all-packages-container a:visited {
    font-weight: bold;
}

.table-sub-heading-color {
    background-color: #EEEEFF;
}

.even-row-color,
.even-row-color .table-header {
    background-color: #FFFFFF;
}

.odd-row-color,
.odd-row-color .table-header {
    background-color: #EEEEEF;
}

/*
 * Styles for contents.
 */
.deprecated-content {
    margin: 0;
    padding: 10px 0;
}

div.block {
    font-size: 14px;
}

.col-last div {
    padding-top: 0;
}

.col-last a {
    padding-bottom: 3px;
}

.module-signature,
.package-signature,
.type-signature,
.member-signature {
    font-size: 14px;
    margin: 14px 0;
    white-space: pre-wrap;
}

.module-signature,
.package-signature,
.type-signature {
    margin-top: 0;
}

.member-signature .type-parameters-long,
.member-signature .parameters,
.member-signature .exceptions {
    display: inline-block;
    vertical-align: top;
    white-space: pre;
}

.member-signature .type-parameters {
    white-space: normal;
}

/*
 * Styles for formatting effect.
 */
.source-line-no {
    color: green;
    padding: 0 30px 0 0;
}

h1.hidden {
    visibility: hidden;
    overflow: hidden;
    font-size: 10px;
}

.block {
    display: block;
    margin: 0 10px 5px 0;
    color: #474747;
}

.deprecated-label,
.descfrm-type-label,
.implementation-label,
.member-name-label,
.member-name-link,
.module-label-in-package,
.module-label-in-type,
.override-specify-label,
.package-label-in-type,
.package-hierarchy-label,
.type-name-label,
.type-name-link,
.search-tag-link,
.preview-label {
    font-weight: bold;
}

.deprecation-block {
    font-size: 14px;
    border-style: solid;
    border-width: thin;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
    margin-right: 10px;
    display: inline-block;
}

.preview-block {
    font-size: 14px;
    border-style: solid;
    border-width: thin;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
    margin-right: 10px;
    display: inline-block;
}

/*
 * Styles for user-provided tables.
 *
 * borderless:
 *      No borders, vertical margins, styled caption.
 *      This style is provided for use with existing doc comments.
 *      In general, borderless tables should not be used for layout purposes.
 *
 * plain:
 *      Plain borders around table and cells, vertical margins, styled caption.
 *      Best for small tables or for complex tables for tables with cells that span
 *      rows and columns, when the "striped" style does not work well.
 *
 * striped:
 *      Borders around the table and vertical borders between cells, striped rows,
 *      vertical margins, styled caption.
 *      Best for tables that have a header row, and a body containing a series of simple rows.
 */

table.borderless,
table.plain,
table.striped {
    margin-top: 10px;
    margin-bottom: 10px;
}

table.borderless>caption,
table.plain>caption,
table.striped>caption {
    font-weight: bold;
    font-size: smaller;
}

table.borderless th,
table.borderless td,
table.plain th,
table.plain td,
table.striped th,
table.striped td {
    padding: 2px 5px;
}

table.borderless,
table.borderless>thead>tr>th,
table.borderless>tbody>tr>th,
table.borderless>tr>th,
table.borderless>thead>tr>td,
table.borderless>tbody>tr>td,
table.borderless>tr>td {
    border: none;
}

table.borderless>thead>tr,
table.borderless>tbody>tr,
table.borderless>tr {
    background-color: transparent;
}

table.plain {
    border-collapse: collapse;
    border: 1px solid black;
}

table.plain>thead>tr,
table.plain>tbody tr,
table.plain>tr {
    background-color: transparent;
}

table.plain>thead>tr>th,
table.plain>tbody>tr>th,
table.plain>tr>th,
table.plain>thead>tr>td,
table.plain>tbody>tr>td,
table.plain>tr>td {
    border: 1px solid black;
}

table.striped {
    border-collapse: collapse;
    border: 1px solid black;
}

table.striped>thead {
    background-color: #E3E3E3;
}

table.striped>thead>tr>th,
table.striped>thead>tr>td {
    border: 1px solid black;
}

table.striped>tbody>tr:nth-child(even) {
    background-color: #EEE
}

table.striped>tbody>tr:nth-child(odd) {
    background-color: #FFF
}

table.striped>tbody>tr>th,
table.striped>tbody>tr>td {
    border-left: 1px solid black;
    border-right: 1px solid black;
}

table.striped>tbody>tr>th {
    font-weight: normal;
}
</style><h1>Interface IReadOnlySignatureDetails</h1>
<!-- ======== START OF CLASS DATA ======== -->

<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">IReadOnlySignatureDetails</span></div>
<div class="block">Represents read-only details of a digital signature. <p>Use this interface to read signature metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>,  including the signature image or text, certificate information, and the values shown in the  Signature Details and Additional Information dialogs. This interface exposes the persisted  signature data without allowing it to be modified.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String signatureText = details.getSignatureText();
 X509Certificate certificate = details.getSignatureCertificate();
 </code></pre></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div aria-orientation="horizontal" class="table-tabs" role="tablist"><button aria-controls="method-summary-table.tabpanel" aria-selected="true" class="active-table-tab" id="method-summary-table-tab0" onclick="show('method-summary-table', 'method-summary-table', 3)" onkeydown="switchTab(event)" role="tab" tabindex="0">All Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab2" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Instance Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab3" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div aria-labelledby="method-summary-table-tab0" class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getAddress1()">getAddress1</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "address1" field in the signature details dialog.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getAddress2()">getAddress2</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "address2" field in the signature details dialog.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getApplicationVersion()">getApplicationVersion</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "application version" field in the additional information dialog.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCertificateDigestMethod()">getCertificateDigestMethod</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the hash method of the checksum of the certificate.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>byte[]</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCertificateDigestValue()">getCertificateDigestValue</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the checksum of the certificate.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCertificateIssuerName()">getCertificateIssuerName</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the issuer name of the certificate.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCertificateSerialNumber()">getCertificateSerialNumber</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the serial number (in decimal format) of the certificate.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCity()">getCity</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "city" field in the signature details dialog.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getClaimedRole()">getClaimedRole</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "claimed role" field in the signature details dialog.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getColorDepth()">getColorDepth</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "color depth" field in the additional information dialog.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCommitmentTypeDescription()">getCommitmentTypeDescription</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "commitment type description" field in the "sign" dialog.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCommitmentTypeQualifier()">getCommitmentTypeQualifier</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "commitment type qualifier" field in the "sign" dialog.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCountryName()">getCountryName</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "country name" field in the signature details dialog.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getHorizontalResolution()">getHorizontalResolution</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "horizontal resolution" field in the additional information dialog.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getMonitors()">getMonitors</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "monitors" field in the additional information dialog.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getOfficeVersion()">getOfficeVersion</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "office version" field in the additional information dialog.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getPostalCode()">getPostalCode</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "PostalCode" field in the signature details dialog.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/security/cert/X509Certificate.html" title="class or interface in java.security.cert">X509Certificate</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSignatureCertificate()">getSignatureCertificate</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the certificate (private key removed) that was used to sign this workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSignatureComments()">getSignatureComments</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "signature comments" field in the signature details dialog.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>byte[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSignatureImage()">getSignatureImage</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the signature image used to sign the document.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSignatureText()">getSignatureText</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the signature text used to sign this document.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getStateOrProvince()">getStateOrProvince</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "state or province" field in the signature details dialog.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getVerticalResolution()">getVerticalResolution</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "vertical resolution" field in the additional information dialog.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getWindowsVersion()">getWindowsVersion</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the "windows version" field in the additional information dialog.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getSignatureImage()">
<h3>getSignatureImage</h3>
<div class="member-signature"><span class="return-type">byte[]</span>&nbsp;<span class="element-name">getSignatureImage</span>()</div>
<div class="block">Gets the signature image used to sign the document. <p>Use this method to read the persisted signature image bytes from the signature metadata  returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>. The returned value represents the image that was  used when signing the document and may be  <code>null</code> if the signature does not contain an image.</p>
<pre><code data-language="Java">
 workbook.open(getSignedImageWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 byte[] signatureImage = details.getSignatureImage();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The image bytes used to sign the document, or <code>null</code> if the signature does not contain an image.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSignatureText()">
<h3>getSignatureText</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getSignatureText</span>()</div>
<div class="block">Gets the signature text used to sign this document.
 <pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String signatureText = details.getSignatureText();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The signature text used to sign this document.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSignatureCertificate()">
<h3>getSignatureCertificate</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/security/cert/X509Certificate.html" title="class or interface in java.security.cert">X509Certificate</a></span>&nbsp;<span class="element-name">getSignatureCertificate</span>()</div>
<div class="block">Gets the certificate (private key removed) that was used to sign this workbook. <p>Use this method to read the public certificate stored in the signature metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>. The returned certificate does not include the private key  material.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 X509Certificate certificate = details.getSignatureCertificate();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The certificate used to sign this workbook, with the private key removed, or <code>null</code> if the signature details do not contain certificate information.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAddress1()">
<h3>getAddress1</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getAddress1</span>()</div>
<div class="block">Gets the "address1" field in the signature details dialog. <p>This value is part of the signature metadata exposed by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String address1 = details.getAddress1();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "address1" field, or <code>null</code> if this field is not stored in the signature details.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAddress2()">
<h3>getAddress2</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getAddress2</span>()</div>
<div class="block">Gets the "address2" field in the signature details dialog. <p>Use this method to read the second address line stored in the signature  metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String address2 = details.getAddress2();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "address2" field in the signature details dialog.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getApplicationVersion()">
<h3>getApplicationVersion</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getApplicationVersion</span>()</div>
<div class="block">Gets the "application version" field in the additional information dialog. <p>Use this method to read the application version stored in the signature  metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String applicationVersion = details.getApplicationVersion();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "application version" field in the additional information dialog.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCity()">
<h3>getCity</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getCity</span>()</div>
<div class="block">Gets the "city" field in the signature details dialog. <p>Returns the city value stored in the signature details.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String city = details.getCity();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The city field value in the signature details dialog.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getClaimedRole()">
<h3>getClaimedRole</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getClaimedRole</span>()</div>
<div class="block">Gets the "claimed role" field in the signature details dialog. <p>Use this method to read the signer role stored in the signature  metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String claimedRole = details.getClaimedRole();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "claimed role" field, or <code>null</code> if this field is not stored in the signature details.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getColorDepth()">
<h3>getColorDepth</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">getColorDepth</span>()</div>
<div class="block">Gets the "color depth" field in the additional information dialog. <p>This value is part of the signature details metadata shown in the additional information dialog for a digital signature.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 int colorDepth = details.getColorDepth();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The "color depth" value in the additional information dialog.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCommitmentTypeQualifier()">
<h3>getCommitmentTypeQualifier</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getCommitmentTypeQualifier</span>()</div>
<div class="block">Gets the "commitment type qualifier" field in the "sign" dialog. <p>This value corresponds to the commitment type qualifier stored in the signature details.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String commitmentTypeQualifier = details.getCommitmentTypeQualifier();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The commitment type qualifier field value.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCountryName()">
<h3>getCountryName</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getCountryName</span>()</div>
<div class="block">Gets the "country name" field in the signature details dialog. <p>Use this method to read the country name stored in the signature  metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String countryName = details.getCountryName();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "country name" field, or <code>null</code> if this field is not stored in the signature details.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCommitmentTypeDescription()">
<h3>getCommitmentTypeDescription</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getCommitmentTypeDescription</span>()</div>
<div class="block">Gets the "commitment type description" field in the "sign" dialog. <p>Use this method to read the commitment type description stored in the  signature metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String commitmentTypeDescription = details.getCommitmentTypeDescription();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "commitment type description" field in the "sign" dialog.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getHorizontalResolution()">
<h3>getHorizontalResolution</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">getHorizontalResolution</span>()</div>
<div class="block">Gets the "horizontal resolution" field in the additional information dialog. <p>Use this method to read the horizontal display resolution stored in the  signature metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 int horizontalResolution = details.getHorizontalResolution();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The "horizontal resolution" value in the additional information dialog.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMonitors()">
<h3>getMonitors</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">getMonitors</span>()</div>
<div class="block">Gets the "monitors" field in the additional information dialog. <p>Use this method to read the number of monitors recorded in the  signature metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 int monitors = details.getMonitors();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The "monitors" value in the additional information dialog.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getOfficeVersion()">
<h3>getOfficeVersion</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getOfficeVersion</span>()</div>
<div class="block">Gets the "office version" field in the additional information dialog. <p>Use this method to read the Office version stored in the signature  metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String officeVersion = details.getOfficeVersion();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "office version" field in the additional information dialog.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPostalCode()">
<h3>getPostalCode</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getPostalCode</span>()</div>
<div class="block">Gets the "PostalCode" field in the signature details dialog. <p>Use this method to read the postal code stored in the signature  metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String postalCode = details.getPostalCode();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "PostalCode" field, or <code>null</code> if this field is not stored in the signature details.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSignatureComments()">
<h3>getSignatureComments</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getSignatureComments</span>()</div>
<div class="block">Gets the "signature comments" field in the signature details dialog. <p>Use this method to read the signature comments stored in the signature  metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String signatureComments = details.getSignatureComments();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "signature comments" field, or <code>null</code> if this field is not stored in the signature details.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getStateOrProvince()">
<h3>getStateOrProvince</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getStateOrProvince</span>()</div>
<div class="block">Gets the "state or province" field in the signature details dialog. <p>Use this method to read the state or province stored in the signature  metadata returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String stateOrProvince = details.getStateOrProvince();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "state or province" field, or <code>null</code> if this field is not stored in the signature details.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getVerticalResolution()">
<h3>getVerticalResolution</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">getVerticalResolution</span>()</div>
<div class="block">Gets the "vertical resolution" field in the additional information dialog.
 <pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 int verticalResolution = details.getVerticalResolution();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The vertical resolution value in the additional information dialog.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getWindowsVersion()">
<h3>getWindowsVersion</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getWindowsVersion</span>()</div>
<div class="block">Gets the "windows version" field in the additional information dialog. <p>Use this method to read the Windows version metadata stored in the  signature details returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String windowsVersion = details.getWindowsVersion();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value of the "windows version" field, or <code>null</code> if this field is not stored in the signature details.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCertificateDigestMethod()">
<h3>getCertificateDigestMethod</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getCertificateDigestMethod</span>()</div>
<div class="block">Gets the hash method of the checksum of the certificate. <p>Use this method to read the digest algorithm name stored with the certificate  checksum in the signature details returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String certificateDigestMethod = details.getCertificateDigestMethod();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The digest algorithm name used for the certificate checksum.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCertificateDigestValue()">
<h3>getCertificateDigestValue</h3>
<div class="member-signature"><span class="return-type">byte[]</span>&nbsp;<span class="element-name">getCertificateDigestValue</span>()</div>
<div class="block">Gets the checksum of the certificate. <p>Use this method to read the certificate checksum bytes stored in the  signature details returned by  <a href="ISignature.html#getDetails()"><code>ISignature.getDetails()</code></a>.  Use  <a href="#getCertificateDigestMethod()"><code>getCertificateDigestMethod()</code></a> to determine the digest algorithm associated with this checksum.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 byte[] certificateDigestValue = details.getCertificateDigestValue();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The certificate checksum bytes.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCertificateIssuerName()">
<h3>getCertificateIssuerName</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getCertificateIssuerName</span>()</div>
<div class="block">Gets the issuer name of the certificate. <p>Returns the issuer name from the certificate associated with this signature's  read-only details.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String issuerName = details.getCertificateIssuerName();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The issuer name of the certificate.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCertificateSerialNumber()">
<h3>getCertificateSerialNumber</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getCertificateSerialNumber</span>()</div>
<div class="block">Gets the serial number (in decimal format) of the certificate. <p>This method returns the serial number from the certificate associated with the signature details.</p>
<pre><code data-language="Java">
 workbook.open(getSignedWorkbookStream());
 ISignature signature = workbook.getSignatures().get(0);
 IReadOnlySignatureDetails details = signature.getDetails();
 String certificateSerialNumber = details.getCertificateSerialNumber();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The certificate serial number in decimal format.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
<script>var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";

function show(tableId, selected, columns) {
    if (tableId !== selected) {
        document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
            .forEach(function (elem) {
                elem.style.display = 'none';
            });
    }
    document.querySelectorAll('div.' + selected)
        .forEach(function (elem, index) {
            elem.style.display = '';
            var isEvenRow = index % (columns * 2) < columns;
            elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor);
            elem.classList.add(isEvenRow ? evenRowColor : oddRowColor);
        });
    updateTabs(tableId, selected);
}

function updateTabs(tableId, selected) {
    document.querySelector('div#' + tableId + ' .summary-table')
        .setAttribute('aria-labelledby', selected);
    document.querySelectorAll('button[id^="' + tableId + '"]')
        .forEach(function (tab, index) {
            if (selected === tab.id || (tableId === selected && index === 0)) {
                tab.className = activeTableTab;
                tab.setAttribute('aria-selected', true);
                tab.setAttribute('tabindex', 0);
            } else {
                tab.className = tableTab;
                tab.setAttribute('aria-selected', false);
                tab.setAttribute('tabindex', -1);
            }
        });
}

function switchTab(e) {
    var selected = document.querySelector('[aria-selected=true]');
    if (selected) {
        if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
            // left or up arrow key pressed: move focus to previous tab
            selected.previousSibling.click();
            selected.previousSibling.focus();
            e.preventDefault();
        } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
            // right or down arrow key pressed: move focus to next tab
            selected.nextSibling.click();
            selected.nextSibling.focus();
            e.preventDefault();
        }
    }
}
</script></div>