@peculiar/fortify-webcomponents
Version:
Web-components for creating CSR or Certificate and viewing certificates list using Fortify
18 lines • 14.1 kB
JavaScript
/*!
* © Peculiar Ventures https://peculiarventures.com/ - BSD 3-Clause License
*/
import{r as e,c as t,h as r,H as a}from"./p-1b1223fb.js";import{P as o,C as c,S as s,E as i,O as n,a as v,b as p,A as l,c as h,d,D as b}from"./p-4227eec7.js";import{X as g}from"./p-c66d5b86.js";import{X as f,P as y,a as u}from"./p-e4075fb2.js";import{i as w,a as x}from"./p-435133f4.js";import{B as m}from"./p-3e80562d.js";import{T as z}from"./p-9932bc13.js";import"./p-db3ee43d.js";
/*!
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
*/
/**
* @license
* Copyright (c) Peculiar Ventures, LLC.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/function k(e){return new Promise(((t,r)=>{const a=new FileReader;a.onload=()=>t({value:a.result,fileName:e.name,fileSize:e.size,sourceMime:e.type});a.onerror=()=>r(a.error);a.readAsBinaryString(e)}))}
/*!
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
*/class j extends Array{constructor(e){super();const t=o.isPem(e)?o.decode(e).map((e=>c.ToBase64Url(e))):e.split(",");if(t.length<2){throw new Error("Unable to parse string. The array of elements is less than 2")}for(const e of t){this.push(new g(e))}}get commonName(){return Array.from(this).map((e=>e.commonName)).join("_")}get raw(){const e=new s;e.version=1;e.encapContentInfo.eContentType=w;e.encapContentInfo.eContent=new i({single:new n});e.certificates=new v(Array.from(this).map((e=>new p({certificate:l.parse(e.raw,h)}))));const t=new d({contentType:x,content:l.serialize(e)});return l.serialize(t)}toString(e="pem"){switch(e){case"pem":return Array.from(this).map((e=>e.toString("pem"))).join("\n");case"base64url":return Array.from(this).map((e=>e.toString("base64url"))).join(",");default:return Array.from(this).map((e=>e.toString("base64"))).join(",")}}downloadAsPEM(e){b.cert.asPEM(this.toString("pem"),e||this.commonName)}downloadAsDER(e){b.cert.asDER(this.raw,e||this.commonName)}}const C="*{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:transparent;font-family:var(--pv-font-family, inherit)}.t-h1{font-weight:var(--pv-text-h1-weight);font-size:var(--pv-text-h1-size);line-height:var(--pv-text-h1-height);letter-spacing:var(--pv-text-h1-spacing)}.t-h2{font-weight:var(--pv-text-h2-weight);font-size:var(--pv-text-h2-size);line-height:var(--pv-text-h2-height);letter-spacing:var(--pv-text-h2-spacing)}.t-h3{font-weight:var(--pv-text-h3-weight);font-size:var(--pv-text-h3-size);line-height:var(--pv-text-h3-height);letter-spacing:var(--pv-text-h3-spacing)}.t-h4{font-weight:var(--pv-text-h4-weight);font-size:var(--pv-text-h4-size);line-height:var(--pv-text-h4-height);letter-spacing:var(--pv-text-h4-spacing)}.t-h5{font-weight:var(--pv-text-h5-weight);font-size:var(--pv-text-h5-size);line-height:var(--pv-text-h5-height);letter-spacing:var(--pv-text-h5-spacing)}.t-s1{font-weight:var(--pv-text-s1-weight);font-size:var(--pv-text-s1-size);line-height:var(--pv-text-s1-height);letter-spacing:var(--pv-text-s1-spacing)}.t-s2{font-weight:var(--pv-text-s2-weight);font-size:var(--pv-text-s2-size);line-height:var(--pv-text-s2-height);letter-spacing:var(--pv-text-s2-spacing)}.t-b1{font-weight:var(--pv-text-b1-weight);font-size:var(--pv-text-b1-size);line-height:var(--pv-text-b1-height);letter-spacing:var(--pv-text-b1-spacing)}.t-b2{font-weight:var(--pv-text-b2-weight);font-size:var(--pv-text-b2-size);line-height:var(--pv-text-b2-height);letter-spacing:var(--pv-text-b2-spacing)}.t-b3{font-weight:var(--pv-text-b3-weight);font-size:var(--pv-text-b3-size);line-height:var(--pv-text-b3-height);letter-spacing:var(--pv-text-b3-spacing)}.t-btn1{font-weight:var(--pv-text-btn1-weight);font-size:var(--pv-text-btn1-size);line-height:var(--pv-text-btn1-height);letter-spacing:var(--pv-text-btn1-spacing)}.t-btn2{font-weight:var(--pv-text-btn2-weight);font-size:var(--pv-text-btn2-size);line-height:var(--pv-text-btn2-height);letter-spacing:var(--pv-text-btn2-spacing)}.t-c1{font-weight:var(--pv-text-c1-weight);font-size:var(--pv-text-c1-size);line-height:var(--pv-text-c1-height);letter-spacing:var(--pv-text-c1-spacing)}.t-c2{font-weight:var(--pv-text-c2-weight);font-size:var(--pv-text-c2-size);line-height:var(--pv-text-c2-height);letter-spacing:var(--pv-text-c2-spacing)}.c-primary-tint-5{--pv-color-base:var(--pv-color-primary-tint-5)}.c-primary-tint-4{--pv-color-base:var(--pv-color-primary-tint-4)}.c-primary-tint-3{--pv-color-base:var(--pv-color-primary-tint-3)}.c-primary-tint-2{--pv-color-base:var(--pv-color-primary-tint-2)}.c-primary-tint-1{--pv-color-base:var(--pv-color-primary-tint-1)}.c-primary{--pv-color-base:var(--pv-color-primary)}.c-primary-shade-1{--pv-color-base:var(--pv-color-primary-shade-1)}.c-primary-shade-2{--pv-color-base:var(--pv-color-primary-shade-2)}.c-primary-shade-3{--pv-color-base:var(--pv-color-primary-shade-3)}.c-primary-shade-4{--pv-color-base:var(--pv-color-primary-shade-4)}.c-primary-shade-5{--pv-color-base:var(--pv-color-primary-shade-5)}.c-primary-contrast{--pv-color-base:var(--pv-color-primary-contrast)}.c-secondary-tint-5{--pv-color-base:var(--pv-color-secondary-tint-5)}.c-secondary-tint-4{--pv-color-base:var(--pv-color-secondary-tint-4)}.c-secondary-tint-3{--pv-color-base:var(--pv-color-secondary-tint-3)}.c-secondary-tint-2{--pv-color-base:var(--pv-color-secondary-tint-2)}.c-secondary-tint-1{--pv-color-base:var(--pv-color-secondary-tint-1)}.c-secondary{--pv-color-base:var(--pv-color-secondary)}.c-secondary-shade-1{--pv-color-base:var(--pv-color-secondary-shade-1)}.c-secondary-shade-2{--pv-color-base:var(--pv-color-secondary-shade-2)}.c-secondary-shade-3{--pv-color-base:var(--pv-color-secondary-shade-3)}.c-secondary-shade-4{--pv-color-base:var(--pv-color-secondary-shade-4)}.c-secondary-shade-5{--pv-color-base:var(--pv-color-secondary-shade-5)}.c-secondary-contrast{--pv-color-base:var(--pv-color-secondary-contrast)}.c-wrong-tint-5{--pv-color-base:var(--pv-color-wrong-tint-5)}.c-wrong-tint-4{--pv-color-base:var(--pv-color-wrong-tint-4)}.c-wrong-tint-3{--pv-color-base:var(--pv-color-wrong-tint-3)}.c-wrong-tint-2{--pv-color-base:var(--pv-color-wrong-tint-2)}.c-wrong-tint-1{--pv-color-base:var(--pv-color-wrong-tint-1)}.c-wrong{--pv-color-base:var(--pv-color-wrong)}.c-wrong-shade-1{--pv-color-base:var(--pv-color-wrong-shade-1)}.c-wrong-shade-2{--pv-color-base:var(--pv-color-wrong-shade-2)}.c-wrong-shade-3{--pv-color-base:var(--pv-color-wrong-shade-3)}.c-wrong-shade-4{--pv-color-base:var(--pv-color-wrong-shade-4)}.c-wrong-shade-5{--pv-color-base:var(--pv-color-wrong-shade-5)}.c-wrong-contrast{--pv-color-base:var(--pv-color-wrong-contrast)}.c-attention-tint-5{--pv-color-base:var(--pv-color-attention-tint-5)}.c-attention-tint-4{--pv-color-base:var(--pv-color-attention-tint-4)}.c-attention-tint-3{--pv-color-base:var(--pv-color-attention-tint-3)}.c-attention-tint-2{--pv-color-base:var(--pv-color-attention-tint-2)}.c-attention-tint-1{--pv-color-base:var(--pv-color-attention-tint-1)}.c-attention{--pv-color-base:var(--pv-color-attention)}.c-attention-shade-1{--pv-color-base:var(--pv-color-attention-shade-1)}.c-attention-shade-2{--pv-color-base:var(--pv-color-attention-shade-2)}.c-attention-shade-3{--pv-color-base:var(--pv-color-attention-shade-3)}.c-attention-shade-4{--pv-color-base:var(--pv-color-attention-shade-4)}.c-attention-shade-5{--pv-color-base:var(--pv-color-attention-shade-5)}.c-success-tint-5{--pv-color-base:var(--pv-color-success-tint-5)}.c-success-tint-4{--pv-color-base:var(--pv-color-success-tint-4)}.c-success-tint-3{--pv-color-base:var(--pv-color-success-tint-3)}.c-success-tint-2{--pv-color-base:var(--pv-color-success-tint-2)}.c-success-tint-1{--pv-color-base:var(--pv-color-success-tint-1)}.c-success{--pv-color-base:var(--pv-color-success)}.c-success-shade-1{--pv-color-base:var(--pv-color-success-shade-1)}.c-success-shade-2{--pv-color-base:var(--pv-color-success-shade-2)}.c-success-shade-3{--pv-color-base:var(--pv-color-success-shade-3)}.c-success-shade-4{--pv-color-base:var(--pv-color-success-shade-4)}.c-success-shade-5{--pv-color-base:var(--pv-color-success-shade-5)}.c-black{--pv-color-base:var(--pv-color-black)}.c-gray-10{--pv-color-base:var(--pv-color-gray-10)}.c-gray-9{--pv-color-base:var(--pv-color-gray-9)}.c-gray-8{--pv-color-base:var(--pv-color-gray-8)}.c-gray-7{--pv-color-base:var(--pv-color-gray-7)}.c-gray-6{--pv-color-base:var(--pv-color-gray-6)}.c-gray-5{--pv-color-base:var(--pv-color-gray-5)}.c-gray-4{--pv-color-base:var(--pv-color-gray-4)}.c-gray-3{--pv-color-base:var(--pv-color-gray-3)}.c-gray-2{--pv-color-base:var(--pv-color-gray-2)}.c-gray-1{--pv-color-base:var(--pv-color-gray-1)}.c-white{--pv-color-base:var(--pv-color-white)}.c-extra-1{--pv-color-base:var(--pv-color-extra-1)}.c-extra-2{--pv-color-base:var(--pv-color-extra-2)}.typography{color:var(--pv-color-base)}.button{display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;background:transparent;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;outline:none;font-family:inherit;border-radius:4px;height:var(--pv-size-base-6);min-width:var(--pv-size-base-6);padding:0 var(--pv-size-base-2);-webkit-transition:background-color 200ms ease 0s;transition:background-color 200ms ease 0s;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:var(--pv-size-base-2);font-size:0}.button.m_no_padding{padding:0}.button:hover{background-color:var(--pv-color-gray-3)}.button:focus{background-color:var(--pv-color-gray-4)}.button:active{background-color:var(--pv-color-gray-5)}:host{display:block;width:100%}.textarea{min-height:300px;width:100%;border-radius:4px;border:1px solid var(--pv-color-gray-5);padding:14px;font-family:monospace;resize:vertical}.controls{margin-top:var(--pv-size-base-2);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pv-size-base-2);margin-bottom:var(--pv-size-base-12)}.control_row{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:var(--pv-size-base)}";const A=C;const _=class{constructor(r){e(this,r);this.successParse=t(this,"successParse",7);this.clearCertificate=t(this,"clearCertificate",7);this.handleClickDecode=()=>{const{value:e}=this.inputPaste;if(e){this.decode(e)}};this.handleClickClear=()=>{this.clearValue()};this.handleChangeInputFile=async e=>{const t=e.target;if(t.files){const e=await k(t.files[0]);if(typeof e.value==="string"){this.decode(e.value)}t.value=""}};this.handleChangeExample=e=>{if(e.target.value){this.decode(e.target.value)}else{this.clearValue()}};this.handleDropFile=async e=>{e.stopPropagation();e.preventDefault();const t=e.dataTransfer;if(t.files){const e=await k(t.files[0]);if(typeof e.value==="string"){this.decode(e.value)}}};this.certificateExamples=undefined;this.certificateToDecode=undefined;this.certificateDecoded=undefined}componentDidLoad(){if(this.certificateToDecode){setTimeout((()=>this.decode(this.certificateToDecode)),100)}}clearValue(){this.inputPaste.value="";this.certificateDecoded=null;this.clearCertificate.emit()}setValue(e){this.certificateDecoded=e;this.inputPaste.value=e.toString("pem");this.successParse.emit(e.toString("base64url"))}decode(e){new Promise((t=>{t(new j(e))})).catch((()=>new g(e))).catch((()=>new f(e))).catch((()=>new y(e))).catch((()=>new u(e))).then((e=>this.setValue(e))).catch((t=>{console.log(t);alert(`Error decoding certificate:\n"${e}"\n\nPlease try to use Certificate/AttributeCertificate/CertificateRequest/CRL.`)}))}renderCertificate(){if(this.certificateDecoded instanceof j){return r("peculiar-certificate-chain-viewer",{certificates:this.certificateDecoded,download:true})}if(this.certificateDecoded instanceof g){return r("peculiar-certificate-viewer",{certificate:this.certificateDecoded,download:true})}if(this.certificateDecoded instanceof f){return r("peculiar-attribute-certificate-viewer",{certificate:this.certificateDecoded,download:true})}if(this.certificateDecoded instanceof y){return r("peculiar-csr-viewer",{certificate:this.certificateDecoded,download:true})}if(this.certificateDecoded instanceof u){return r("peculiar-crl-viewer",{certificate:this.certificateDecoded,download:true})}return null}render(){var e;return r(a,{key:"466ae73c347d305938c8b5f7a9ca0fcc8ec000eb"},r("textarea",{key:"00d3552d847823c1e4e10162c5ac22de48062c47",placeholder:"Certificate DER or PEM",class:"textarea t-b2 c-black",ref:e=>{this.inputPaste=e},onDrop:this.handleDropFile}),r("div",{key:"2b45a534e3db2d4c879efcc849f439d494ad5adc",class:"controls"},r("div",{key:"c78db2ec219c7417c10c8aa4b99e72e1fc16499d",class:"control_row"},r(z,{key:"9e72c34b567870083b68fdaf082aae28f8899b24",variant:"b3",color:"secondary-tint-2"},"Drag or load file:"),r("input",{key:"7069e5db2f0de85126b4fdcace19e181ab407a16",type:"file",accept:"application/pkix-cert,application/x-x509-ca-cert,application/x-x509-user-cert,application/pkcs10,application/pkix-crl,.csr,.req,.crl",onChange:this.handleChangeInputFile,value:""})),((e=this.certificateExamples)===null||e===void 0?void 0:e.length)&&r("div",{key:"e184a0864d8432e1f0aa26788e58f3c336abc598",class:"control_row"},r(z,{key:"19e3213a14ef0b24bb110df7a4e943bf1f2a8ebf",variant:"b3",color:"secondary-tint-2"},"Load examples:"),r("select",{key:"79082619d5d4bc82cf90afddf58ec58a5ae232b7",onChange:this.handleChangeExample},r("option",{key:"add23975d376914239389b621bd956bcd4fb52eb",value:""},"None"),this.certificateExamples.map((e=>r("option",{value:e.value},e.title))))),r("div",{key:"876ccefd3125618d5c1e7c83e277349fa78da802",class:"control_row"},r(m,{key:"bb890810c0895ba3fdcc22695e72cd8c2cf9645d",onClick:this.handleClickDecode},"Decode"),r(m,{key:"dadc94b3e9e2e7211d993d99c127abfc8e593545",onClick:this.handleClickClear},"Clear"))),this.renderCertificate())}};_.style=A;export{_ as peculiar_certificate_decoder};
//# sourceMappingURL=p-fe28ba6b.entry.js.map