@peculiar/fortify-webcomponents
Version:
Web-components for creating CSR or Certificate and viewing certificates list using Fortify
18 lines • 14.3 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-BA3hMeq-.js";import{P as o,b as c,S as s,l as i,O as n,m as v,n as p,a as l,C as h,o as d,D as b,p as g}from"./p-CDwMJyak.js";import{X as f}from"./p-DQIB-GfE.js";import{X as y,P as w,a as u}from"./p-dOi64QqT.js";import{i as x,a as m}from"./p-CvvoEL7F.js";import{B as z}from"./p-Cu2G3S4P.js";import{T as k}from"./p-DLAyyF7V.js";import"./p-Ou4nymEQ.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 C(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.Convert.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 f(e))}}get commonName(){return Array.from(this).map((e=>e.commonName)).join("_")}get raw(){const e=new s;e.version=1;e.encapContentInfo.eContentType=x;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:m,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 A=()=>`*{-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:calc(var(--pv-size-base) * 6);min-width:calc(var(--pv-size-base) * 6);padding:0 calc(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:calc(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:calc(var(--pv-size-base) * 2);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:calc(var(--pv-size-base) * 2);margin-bottom:calc(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 D=class{constructor(r){e(this,r);this.successParse=t(this,"successParse");this.clearCertificate=t(this,"clearCertificate");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 C(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 C(t.files[0]);if(typeof e.value==="string"){this.decode(e.value)}}}}componentDidLoad(){if(this.certificateToDecode){setTimeout((()=>this.decode(this.certificateToDecode)),100)}}clearValue(){this.inputPaste.value="";this.certificateDecoded=null;this.clearCertificate.emit()}async setValue(e){this.certificateDecoded=e;this.inputPaste.value=await e.toString("pem");this.successParse.emit(await e.toString("base64url"))}async decode(e){new Promise((t=>{t(new j(e))})).catch((()=>new f(e))).catch((()=>new y(e))).catch((()=>new w(e))).catch((()=>new u(e))).catch((()=>new g(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 f){return r("peculiar-certificate-viewer",{certificate:this.certificateDecoded,download:true})}if(this.certificateDecoded instanceof y){return r("peculiar-attribute-certificate-viewer",{certificate:this.certificateDecoded,download:true})}if(this.certificateDecoded instanceof w){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})}if(this.certificateDecoded instanceof g){return r("peculiar-ssh-certificate-viewer",{certificate:this.certificateDecoded,download:true})}return null}render(){var e;return r(a,{key:"9067f2d7f33a40b3ad0ba03c7338a6f800100dab"},r("textarea",{key:"9e8962631c259fd5e144a1397d8591dde46d032f",placeholder:"Certificate DER or PEM",class:"textarea t-b2 c-black",ref:e=>{this.inputPaste=e},onDrop:this.handleDropFile}),r("div",{key:"9be2b1e6c9b3de94c9d5e1e6cf31d9fb487960d8",class:"controls"},r("div",{key:"3959b89ab5c5654a3c10a1166743c056c0340e2e",class:"control_row"},r(k,{key:"3c03f42d14ff5a485264523bab40765bb4f89a8f",variant:"b3",color:"secondary-tint-2"},"Drag or load file:"),r("input",{key:"29845cfd11955ded4b43d19be3ede89d77b71fef",type:"file",accept:"application/pkix-cert,application/x-x509-ca-cert,application/x-x509-user-cert,application/pkcs10,application/pkix-crl,.csr,.req,.crl,.pub",value:"",onChange:this.handleChangeInputFile})),((e=this.certificateExamples)===null||e===void 0?void 0:e.length)&&r("div",{key:"ec2e21cdcda421bd046d42607569e90eb0a96589",class:"control_row"},r(k,{key:"17850c755e70545949be4f772ec67f02eae829af",variant:"b3",color:"secondary-tint-2"},"Load examples:"),r("select",{key:"4431af8f0dcc97fd8e26637cef8a9524a83e9519",onChange:this.handleChangeExample},r("option",{key:"c08edb4c2faf0f640e100cf62ae7ad07f0714cc3",value:""},"None"),this.certificateExamples.map((e=>r("option",{value:e.value},e.title))))),r("div",{key:"e7f7a693ef5f72ce739fe6a42d8c87345d23a743",class:"control_row"},r(z,{key:"7448517bf7f76af06f8a7f60d1e40360613d3acd",onClick:this.handleClickDecode},"Decode"),r(z,{key:"b831592de27a3b292b2d81a19400216fbce7e797",onClick:this.handleClickClear},"Clear"))),this.renderCertificate())}};D.style=A();export{D as peculiar_certificate_decoder};
//# sourceMappingURL=p-38b10ed1.entry.js.map