|
@@ -8,8 +8,13 @@
|
|
|
|
|
|
<div class="container">
|
|
|
<div class="left">
|
|
|
- <p :class="{ 'highlighted': isHighlighted === 0 }" @focus="isHighlighted = 0" @blur="isHighlighted = -1" tabindex="-1">ComPDFKit 1</p>
|
|
|
- <p :class="{ 'highlighted': isHighlighted === 1 }" @focus="isHighlighted = 1" @blur="isHighlighted = -1" tabindex="-1">ComPDFKit 2</p>
|
|
|
+ <p v-for="(signer, index) in signature.signerList" :key="index"
|
|
|
+ :class="{ 'highlighted': selectedSignerIndex === index }"
|
|
|
+ @focus="selectedSignerIndex = index"
|
|
|
+ @blur="selectedSignerIndex = 0"
|
|
|
+ tabindex="-1">
|
|
|
+ {{ signer.issuer[3] }}
|
|
|
+ </p>
|
|
|
</div>
|
|
|
|
|
|
<div class="right">
|
|
@@ -27,32 +32,32 @@
|
|
|
</div>
|
|
|
<div class="content">
|
|
|
<div v-show="activePanel === 1" class="abstracts">
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.issuedTo') }} <span>ComPDFKit<12341234@qq.com></span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.issuer') }} <span>ComPDFKit</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.validFrom') }} <span>2021/01/27 13:41:56 +08`00`</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.validTo') }} <span>Digital Signatures, Encrypted Documents, Key Agreements</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.issuedTo') }} <span>{{ selectedSigner.issuer[3] }}<{{ selectedSigner.issuer[6] }}></span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.issuer') }} <span>{{ selectedSigner.issuer[3] }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.validFrom') }} <span>{{ formatDate(selectedSigner.validDateStart) }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.validTo') }} <span>{{ formatDate(selectedSigner.validDateEnd) }}</span></p>
|
|
|
<p>{{ $t('signatures.certificateViewerDialog.intendedUsage') }} <span>Digital Signature, Non-Repudiation</span></p>
|
|
|
</div>
|
|
|
|
|
|
<div v-show="activePanel === 2" class="details">
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.version') }} <span>1.9.0</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.algorithm') }} <span>SHA - 256 with RSA encryption (1.2.840.113549.1.11)</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.subject') }} <span>C=CN,O=ComPDFKit</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.issuer') }} <span>ComPDFKit</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.serialNumber') }} <span>3223484506630560670</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.validFrom') }} <span>2021/01/27 13:41:56 +08`00`</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.validTo') }} <span>2021/01/27 13:41:56 +08`00`</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.certificatePolicy') }} <span>Windows Certificate Policy</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.crlDistributionPoints') }} <span>/</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.issuerInfoAccess') }} <span>223384759660</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.issuerKeyIdentifier') }} <span>223384759660</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.subjectKeyIdentifier') }} <span>/</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.basicConstraints') }} <span>View Detailed Information</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.keyUsage') }} <span>/</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.publicKey') }} <span>256 bytes: D3 10 27 F7 23</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.X509') }} <span>Unspecified value</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.SHA1Digest') }} <span>/</span></p>
|
|
|
- <p>{{ $t('signatures.certificateViewerDialog.MD5Digest') }} <span>50:28:38:22:09:34:63</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.version') }} <span>{{ selectedSigner.version }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.algorithm') }} <span>{{ selectedSigner.signAlgOidType }} ({{ selectedSigner.signAlgOid }})</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.subject') }} <span>C={{ selectedSigner.subject[0] }},ST={{ selectedSigner.subject[1] }},L={{ selectedSigner.subject[2] }},O={{ selectedSigner.subject[3] }},OU={{ selectedSigner.subject[4] }},CN={{ selectedSigner.subject[5] }},emailAddress={{ selectedSigner.subject[6] }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.issuer') }} <span>C={{ selectedSigner.issuer[0] }},ST={{ selectedSigner.issuer[1] }},L={{ selectedSigner.issuer[2] }},O={{ selectedSigner.issuer[3] }},OU={{ selectedSigner.issuer[4] }},CN={{ selectedSigner.issuer[5] }},emailAddress={{ selectedSigner.issuer[6] }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.serialNumber') }} <span>{{ selectedSigner.serialNumber }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.validFrom') }} <span>{{ formatDate(selectedSigner.validDateStart) }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.validTo') }} <span>{{ formatDate(selectedSigner.validDateEnd) }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.certificatePolicy') }} <span>{{ selectedSigner.certificatePolicies[0] }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.crlDistributionPoints') }} <span>{{ selectedSigner.CRLDistributionPoints }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.issuerInfoAccess') }} <span v-for="(info, index) in selectedSigner.sccessInfo" :key="index">{{ info.Key }}={{ info.AccessInfo }}{{ index === selectedSigner.sccessInfo.length - 1 ? '' : ',' }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.issuerKeyIdentifier') }} <span>{{ selectedSigner.authorityKeyIdentifier }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.subjectKeyIdentifier') }} <span>{{ selectedSigner.subjectKeyIdentifier }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.basicConstraints') }} <span>{{ selectedSigner.basicConstraints }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.keyUsage') }} <span>{{ selectedSigner.keyUsage }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.publicKey') }} <span>{{ selectedSigner.publicKey }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.X509') }} <span>{{ selectedSigner.X509Data }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.SHA1Digest') }} <span>{{ selectedSigner.SHA1Digest }}</span></p>
|
|
|
+ <p>{{ $t('signatures.certificateViewerDialog.MD5Digest') }} <span>{{ selectedSigner.MD5Digest }}</span></p>
|
|
|
</div>
|
|
|
|
|
|
<div v-show="activePanel === 3" class="trust">
|
|
@@ -79,19 +84,50 @@
|
|
|
<script setup>
|
|
|
import { computed, ref } from 'vue'
|
|
|
import { useViewerStore } from '@/stores/modules/viewer'
|
|
|
+import { useDocumentStore } from '@/stores/modules/document'
|
|
|
|
|
|
const dialogName = 'certificateViewerDialog'
|
|
|
|
|
|
const useViewer = useViewerStore()
|
|
|
+const useDocument = useDocumentStore()
|
|
|
|
|
|
const show = computed(() => useViewer.isElementOpen(dialogName))
|
|
|
+const signature = computed(() => useDocument.getSelectedSignature)
|
|
|
+const selectedSigner = computed(() => signature.value.signerList[selectedSignerIndex.value])
|
|
|
|
|
|
const activePanel = ref(1)
|
|
|
-const isHighlighted = ref(-1)
|
|
|
+const selectedSignerIndex = ref(0)
|
|
|
|
|
|
const close = () => {
|
|
|
useViewer.closeElement(dialogName)
|
|
|
}
|
|
|
+
|
|
|
+const formatDate = (dateStr) => {
|
|
|
+ // const isoString = dateStr.replace(/Z$/, '')
|
|
|
+
|
|
|
+ // const utcDate = new Date(isoString)
|
|
|
+ // const localDate = new Date(utcDate.getTime() + (utcDate.getTimezoneOffset() * 60000))
|
|
|
+
|
|
|
+ // const year = localDate.getFullYear()
|
|
|
+ // const month = String(localDate.getMonth() + 1).padStart(2, '0')
|
|
|
+ // const day = String(localDate.getDate()).padStart(2, '0')
|
|
|
+ // const hours = String(localDate.getHours()).padStart(2, '0')
|
|
|
+ // const minutes = String(localDate.getMinutes()).padStart(2, '0')
|
|
|
+ // const seconds = String(localDate.getSeconds()).padStart(2, '0')
|
|
|
+
|
|
|
+ // const timeZoneOffset = '+0800'
|
|
|
+ // return `${year}/${month}/${day} ${hours}:${minutes}:${seconds} ${timeZoneOffset}`
|
|
|
+
|
|
|
+ let year = dateStr.slice(0, 4)
|
|
|
+ let month = dateStr.slice(4, 6)
|
|
|
+ let day = dateStr.slice(6, 8)
|
|
|
+ let hours = dateStr.slice(8, 10)
|
|
|
+ let minutes = dateStr.slice(10, 12)
|
|
|
+ let seconds = dateStr.slice(12, 14)
|
|
|
+
|
|
|
+ return `${year}/${month}/${day} ${hours}:${minutes}:${seconds}`
|
|
|
+
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
@@ -224,8 +260,14 @@ const close = () => {
|
|
|
color: var(--c-side-annotation-text);
|
|
|
}
|
|
|
|
|
|
- .details p {
|
|
|
- color: var(--c-black-text);
|
|
|
+ .details {
|
|
|
+ overflow-y: auto;
|
|
|
+ max-height: 564px;
|
|
|
+
|
|
|
+ p {
|
|
|
+ color: var(--c-black-text);
|
|
|
+ word-break: break-all;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.trust p {
|