UNPKG

api-console-assets

Version:

This repo only exists to publish api console components to npm

1,597 lines (1,045 loc) 59.7 kB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="generator" content="JsDoc Toolkit" /> <title>jsrsasign 8.0.0 JavaScript API Reference - KEYUTIL</title> <style type="text/css"> /* default.css */ body { font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif; width: 800px; } .header { clear: both; background-color: #ccc; padding: 8px; } h1 { font-size: 150%; font-weight: bold; padding: 0; margin: 1em 0 0 .3em; } hr { border: none 0; border-top: 1px solid #7F8FB1; height: 1px; } pre.code { display: block; padding: 8px; border: 1px dashed #ccc; } #index { margin-top: 24px; float: left; width: 160px; position: absolute; left: 8px; background-color: #F3F3F3; padding: 8px; } #content { margin-left: 190px; width: 600px; } .classList { list-style-type: none; padding: 0; margin: 0 0 0 8px; font-family: arial, sans-serif; font-size: 1em; overflow: auto; } .classList li { padding: 0; margin: 0 0 8px 0; } .summaryTable { width: 100%; } h1.classTitle { font-size:170%; line-height:130%; } h2 { font-size: 110%; } caption, div.sectionTitle { background-color: #7F8FB1; color: #fff; font-size:130%; text-align: left; padding: 2px 6px 2px 6px; border: 1px #7F8FB1 solid; } div.sectionTitle { margin-bottom: 8px; } .summaryTable thead { display: none; } .summaryTable td { vertical-align: top; padding: 4px; border-bottom: 1px #7F8FB1 solid; border-right: 1px #7F8FB1 solid; } /*col#summaryAttributes {}*/ .summaryTable td.attributes { border-left: 1px #7F8FB1 solid; width: 140px; text-align: right; } td.attributes, .fixedFont { line-height: 15px; color: #002EBE; font-family: "Courier New",Courier,monospace; font-size: 13px; } .summaryTable td.nameDescription { text-align: left; font-size: 13px; line-height: 15px; } .summaryTable td.nameDescription, .description { line-height: 15px; padding: 4px; padding-left: 4px; } .summaryTable { margin-bottom: 8px; } ul.inheritsList { list-style: square; margin-left: 20px; padding-left: 0; } .detailList { margin-left: 20px; line-height: 15px; } .detailList dt { margin-left: 20px; } .detailList .heading { font-weight: bold; padding-bottom: 6px; margin-left: 0; } .light, td.attributes, .light a:link, .light a:visited { color: #777; font-style: italic; } .fineprint { text-align: right; font-size: 10px; } </style> </head> <body> <!-- ============================== header ================================= --> <!-- begin static/header.html --> <div id="header" style="background: #7F8FB1; color: white; margin: -10px"> &nbsp; <b><a href="http://kjur.github.com/jsrsasign/" style="color: white">jsrsasign</a></b> JavaScript API Reference </div> <!-- end static/header.html --> <!-- ============================== classes index ============================ --> <div id="index"> <!-- begin publish.classesIndex --> <div align="center"><a href="../index.html">Class Index</a> | <a href="../files.html">File Index</a></div> <hr /> <h2>Classes</h2> <ul class="classList"> <li><i><a href="../symbols/global__.html">global__</a></i></li> <li><a href="../symbols/ASN1HEX.html">ASN1HEX</a></li> <li><a href="../symbols/Base64x.html">Base64x</a></li> <li><a href="../symbols/KEYUTIL.html">KEYUTIL</a></li> <li><a href="../symbols/KJUR.html">KJUR</a></li> <li><a href="../symbols/KJUR.asn1.html">KJUR.asn1</a></li> <li><a href="../symbols/KJUR.asn1.ASN1Object.html">KJUR.asn1.ASN1Object</a></li> <li><a href="../symbols/KJUR.asn1.ASN1Util.html">KJUR.asn1.ASN1Util</a></li> <li><a href="../symbols/KJUR.asn1.cades.html">KJUR.asn1.cades</a></li> <li><a href="../symbols/KJUR.asn1.cades.CAdESUtil.html">KJUR.asn1.cades.CAdESUtil</a></li> <li><a href="../symbols/KJUR.asn1.cades.CompleteCertificateRefs.html">KJUR.asn1.cades.CompleteCertificateRefs</a></li> <li><a href="../symbols/KJUR.asn1.cades.OtherCertID.html">KJUR.asn1.cades.OtherCertID</a></li> <li><a href="../symbols/KJUR.asn1.cades.OtherHash.html">KJUR.asn1.cades.OtherHash</a></li> <li><a href="../symbols/KJUR.asn1.cades.OtherHashAlgAndValue.html">KJUR.asn1.cades.OtherHashAlgAndValue</a></li> <li><a href="../symbols/KJUR.asn1.cades.SignaturePolicyIdentifier.html">KJUR.asn1.cades.SignaturePolicyIdentifier</a></li> <li><a href="../symbols/KJUR.asn1.cades.SignatureTimeStamp.html">KJUR.asn1.cades.SignatureTimeStamp</a></li> <li><a href="../symbols/KJUR.asn1.cms.html">KJUR.asn1.cms</a></li> <li><a href="../symbols/KJUR.asn1.cms.Attribute.html">KJUR.asn1.cms.Attribute</a></li> <li><a href="../symbols/KJUR.asn1.cms.AttributeList.html">KJUR.asn1.cms.AttributeList</a></li> <li><a href="../symbols/KJUR.asn1.cms.CMSUtil.html">KJUR.asn1.cms.CMSUtil</a></li> <li><a href="../symbols/KJUR.asn1.cms.ContentInfo.html">KJUR.asn1.cms.ContentInfo</a></li> <li><a href="../symbols/KJUR.asn1.cms.ContentType.html">KJUR.asn1.cms.ContentType</a></li> <li><a href="../symbols/KJUR.asn1.cms.EncapsulatedContentInfo.html">KJUR.asn1.cms.EncapsulatedContentInfo</a></li> <li><a href="../symbols/KJUR.asn1.cms.IssuerAndSerialNumber.html">KJUR.asn1.cms.IssuerAndSerialNumber</a></li> <li><a href="../symbols/KJUR.asn1.cms.MessageDigest.html">KJUR.asn1.cms.MessageDigest</a></li> <li><a href="../symbols/KJUR.asn1.cms.SignedData.html">KJUR.asn1.cms.SignedData</a></li> <li><a href="../symbols/KJUR.asn1.cms.SignerInfo.html">KJUR.asn1.cms.SignerInfo</a></li> <li><a href="../symbols/KJUR.asn1.cms.SigningCertificate.html">KJUR.asn1.cms.SigningCertificate</a></li> <li><a href="../symbols/KJUR.asn1.cms.SigningCertificateV2.html">KJUR.asn1.cms.SigningCertificateV2</a></li> <li><a href="../symbols/KJUR.asn1.cms.SigningTime.html">KJUR.asn1.cms.SigningTime</a></li> <li><a href="../symbols/KJUR.asn1.csr.html">KJUR.asn1.csr</a></li> <li><a href="../symbols/KJUR.asn1.csr.CertificationRequest.html">KJUR.asn1.csr.CertificationRequest</a></li> <li><a href="../symbols/KJUR.asn1.csr.CertificationRequestInfo.html">KJUR.asn1.csr.CertificationRequestInfo</a></li> <li><a href="../symbols/KJUR.asn1.csr.CSRUtil.html">KJUR.asn1.csr.CSRUtil</a></li> <li><a href="../symbols/KJUR.asn1.DERAbstractString.html">KJUR.asn1.DERAbstractString</a></li> <li><a href="../symbols/KJUR.asn1.DERAbstractStructured.html">KJUR.asn1.DERAbstractStructured</a></li> <li><a href="../symbols/KJUR.asn1.DERAbstractTime.html">KJUR.asn1.DERAbstractTime</a></li> <li><a href="../symbols/KJUR.asn1.DERBitString.html">KJUR.asn1.DERBitString</a></li> <li><a href="../symbols/KJUR.asn1.DERBoolean.html">KJUR.asn1.DERBoolean</a></li> <li><a href="../symbols/KJUR.asn1.DEREnumerated.html">KJUR.asn1.DEREnumerated</a></li> <li><a href="../symbols/KJUR.asn1.DERGeneralizedTime.html">KJUR.asn1.DERGeneralizedTime</a></li> <li><a href="../symbols/KJUR.asn1.DERIA5String.html">KJUR.asn1.DERIA5String</a></li> <li><a href="../symbols/KJUR.asn1.DERInteger.html">KJUR.asn1.DERInteger</a></li> <li><a href="../symbols/KJUR.asn1.DERNull.html">KJUR.asn1.DERNull</a></li> <li><a href="../symbols/KJUR.asn1.DERNumericString.html">KJUR.asn1.DERNumericString</a></li> <li><a href="../symbols/KJUR.asn1.DERObjectIdentifier.html">KJUR.asn1.DERObjectIdentifier</a></li> <li><a href="../symbols/KJUR.asn1.DEROctetString.html">KJUR.asn1.DEROctetString</a></li> <li><a href="../symbols/KJUR.asn1.DERPrintableString.html">KJUR.asn1.DERPrintableString</a></li> <li><a href="../symbols/KJUR.asn1.DERSequence.html">KJUR.asn1.DERSequence</a></li> <li><a href="../symbols/KJUR.asn1.DERSet.html">KJUR.asn1.DERSet</a></li> <li><a href="../symbols/KJUR.asn1.DERTaggedObject.html">KJUR.asn1.DERTaggedObject</a></li> <li><a href="../symbols/KJUR.asn1.DERTeletexString.html">KJUR.asn1.DERTeletexString</a></li> <li><a href="../symbols/KJUR.asn1.DERUTCTime.html">KJUR.asn1.DERUTCTime</a></li> <li><a href="../symbols/KJUR.asn1.DERUTF8String.html">KJUR.asn1.DERUTF8String</a></li> <li><a href="../symbols/KJUR.asn1.ocsp.html">KJUR.asn1.ocsp</a></li> <li><a href="../symbols/KJUR.asn1.ocsp.CertID.html">KJUR.asn1.ocsp.CertID</a></li> <li><a href="../symbols/KJUR.asn1.ocsp.OCSPRequest.html">KJUR.asn1.ocsp.OCSPRequest</a></li> <li><a href="../symbols/KJUR.asn1.ocsp.OCSPUtil.html">KJUR.asn1.ocsp.OCSPUtil</a></li> <li><a href="../symbols/KJUR.asn1.ocsp.Request.html">KJUR.asn1.ocsp.Request</a></li> <li><a href="../symbols/KJUR.asn1.ocsp.TBSRequest.html">KJUR.asn1.ocsp.TBSRequest</a></li> <li><a href="../symbols/KJUR.asn1.tsp.html">KJUR.asn1.tsp</a></li> <li><a href="../symbols/KJUR.asn1.tsp.AbstractTSAAdapter.html">KJUR.asn1.tsp.AbstractTSAAdapter</a></li> <li><a href="../symbols/KJUR.asn1.tsp.Accuracy.html">KJUR.asn1.tsp.Accuracy</a></li> <li><a href="../symbols/KJUR.asn1.tsp.FixedTSAAdapter.html">KJUR.asn1.tsp.FixedTSAAdapter</a></li> <li><a href="../symbols/KJUR.asn1.tsp.MessageImprint.html">KJUR.asn1.tsp.MessageImprint</a></li> <li><a href="../symbols/KJUR.asn1.tsp.PKIFailureInfo.html">KJUR.asn1.tsp.PKIFailureInfo</a></li> <li><a href="../symbols/KJUR.asn1.tsp.PKIFreeText.html">KJUR.asn1.tsp.PKIFreeText</a></li> <li><a href="../symbols/KJUR.asn1.tsp.PKIStatus.html">KJUR.asn1.tsp.PKIStatus</a></li> <li><a href="../symbols/KJUR.asn1.tsp.PKIStatusInfo.html">KJUR.asn1.tsp.PKIStatusInfo</a></li> <li><a href="../symbols/KJUR.asn1.tsp.SimpleTSAAdapter.html">KJUR.asn1.tsp.SimpleTSAAdapter</a></li> <li><a href="../symbols/KJUR.asn1.tsp.TimeStampReq.html">KJUR.asn1.tsp.TimeStampReq</a></li> <li><a href="../symbols/KJUR.asn1.tsp.TimeStampResp.html">KJUR.asn1.tsp.TimeStampResp</a></li> <li><a href="../symbols/KJUR.asn1.tsp.TSPUtil.html">KJUR.asn1.tsp.TSPUtil</a></li> <li><a href="../symbols/KJUR.asn1.tsp.TSTInfo.html">KJUR.asn1.tsp.TSTInfo</a></li> <li><a href="../symbols/KJUR.asn1.x509.html">KJUR.asn1.x509</a></li> <li><a href="../symbols/KJUR.asn1.x509.AlgorithmIdentifier.html">KJUR.asn1.x509.AlgorithmIdentifier</a></li> <li><a href="../symbols/KJUR.asn1.x509.AttributeTypeAndValue.html">KJUR.asn1.x509.AttributeTypeAndValue</a></li> <li><a href="../symbols/KJUR.asn1.x509.AuthorityInfoAccess.html">KJUR.asn1.x509.AuthorityInfoAccess</a></li> <li><a href="../symbols/KJUR.asn1.x509.AuthorityKeyIdentifier.html">KJUR.asn1.x509.AuthorityKeyIdentifier</a></li> <li><a href="../symbols/KJUR.asn1.x509.BasicConstraints.html">KJUR.asn1.x509.BasicConstraints</a></li> <li><a href="../symbols/KJUR.asn1.x509.Certificate.html">KJUR.asn1.x509.Certificate</a></li> <li><a href="../symbols/KJUR.asn1.x509.CRL.html">KJUR.asn1.x509.CRL</a></li> <li><a href="../symbols/KJUR.asn1.x509.CRLDistributionPoints.html">KJUR.asn1.x509.CRLDistributionPoints</a></li> <li><a href="../symbols/KJUR.asn1.x509.CRLEntry.html">KJUR.asn1.x509.CRLEntry</a></li> <li><a href="../symbols/KJUR.asn1.x509.DistributionPoint.html">KJUR.asn1.x509.DistributionPoint</a></li> <li><a href="../symbols/KJUR.asn1.x509.DistributionPointName.html">KJUR.asn1.x509.DistributionPointName</a></li> <li><a href="../symbols/KJUR.asn1.x509.Extension.html">KJUR.asn1.x509.Extension</a></li> <li><a href="../symbols/KJUR.asn1.x509.ExtKeyUsage.html">KJUR.asn1.x509.ExtKeyUsage</a></li> <li><a href="../symbols/KJUR.asn1.x509.GeneralName.html">KJUR.asn1.x509.GeneralName</a></li> <li><a href="../symbols/KJUR.asn1.x509.GeneralNames.html">KJUR.asn1.x509.GeneralNames</a></li> <li><a href="../symbols/KJUR.asn1.x509.IssuerAltName.html">KJUR.asn1.x509.IssuerAltName</a></li> <li><a href="../symbols/KJUR.asn1.x509.KeyUsage.html">KJUR.asn1.x509.KeyUsage</a></li> <li><a href="../symbols/KJUR.asn1.x509.OID.html">KJUR.asn1.x509.OID</a></li> <li><a href="../symbols/KJUR.asn1.x509.RDN.html">KJUR.asn1.x509.RDN</a></li> <li><a href="../symbols/KJUR.asn1.x509.SubjectAltName.html">KJUR.asn1.x509.SubjectAltName</a></li> <li><a href="../symbols/KJUR.asn1.x509.SubjectPublicKeyInfo.html">KJUR.asn1.x509.SubjectPublicKeyInfo</a></li> <li><a href="../symbols/KJUR.asn1.x509.TBSCertificate.html">KJUR.asn1.x509.TBSCertificate</a></li> <li><a href="../symbols/KJUR.asn1.x509.TBSCertList.html">KJUR.asn1.x509.TBSCertList</a></li> <li><a href="../symbols/KJUR.asn1.x509.Time.html">KJUR.asn1.x509.Time</a></li> <li><a href="../symbols/KJUR.asn1.x509.X500Name.html">KJUR.asn1.x509.X500Name</a></li> <li><a href="../symbols/KJUR.asn1.x509.X509Util.html">KJUR.asn1.x509.X509Util</a></li> <li><a href="../symbols/KJUR.crypto.html">KJUR.crypto</a></li> <li><a href="../symbols/KJUR.crypto.Cipher.html">KJUR.crypto.Cipher</a></li> <li><a href="../symbols/KJUR.crypto.DSA.html">KJUR.crypto.DSA</a></li> <li><a href="../symbols/KJUR.crypto.ECDSA.html">KJUR.crypto.ECDSA</a></li> <li><a href="../symbols/KJUR.crypto.ECParameterDB.html">KJUR.crypto.ECParameterDB</a></li> <li><a href="../symbols/KJUR.crypto.Mac.html">KJUR.crypto.Mac</a></li> <li><a href="../symbols/KJUR.crypto.MessageDigest.html">KJUR.crypto.MessageDigest</a></li> <li><a href="../symbols/KJUR.crypto.OID.html">KJUR.crypto.OID</a></li> <li><a href="../symbols/KJUR.crypto.Signature.html">KJUR.crypto.Signature</a></li> <li><a href="../symbols/KJUR.crypto.Util.html">KJUR.crypto.Util</a></li> <li><a href="../symbols/KJUR.jws.html">KJUR.jws</a></li> <li><a href="../symbols/KJUR.jws.IntDate.html">KJUR.jws.IntDate</a></li> <li><a href="../symbols/KJUR.jws.JWS.html">KJUR.jws.JWS</a></li> <li><a href="../symbols/KJUR.jws.JWSJS.html">KJUR.jws.JWSJS</a></li> <li><a href="../symbols/KJUR.lang.String.html">KJUR.lang.String</a></li> <li><a href="../symbols/RSAKey.html">RSAKey</a></li> <li><a href="../symbols/X509.html">X509</a></li> </ul> <hr /> <!-- end publish.classesIndex --> </div> <div id="content"> <!-- ============================== class title ============================ --> <h1 class="classTitle"> Class KEYUTIL </h1> <!-- ============================== class summary ========================== --> <p class="description"> class for RSA/ECC/DSA key utility <br /><i>Defined in: </i> <a href="../symbols/src/keyutil-1.0.js.html">keyutil-1.0.js</a>. </p> <!-- ============================== constructor summary ==================== --> <table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class KEYUTIL."> <caption>Class Summary</caption> <thead> <tr> <th scope="col">Constructor Attributes</th> <th scope="col">Constructor Name and Description</th> </tr> </thead> <tbody> <tr> <td class="attributes">&nbsp;</td> <td class="nameDescription" > <div class="fixedFont"> <b><a href="../symbols/KEYUTIL.html#constructor">KEYUTIL</a></b>() </div> <div class="description"><br/> <a href="../symbols/KEYUTIL.html">KEYUTIL</a> class is an update of former PKCS5PKEY class.</div> </td> </tr> </tbody> </table> <!-- ============================== properties summary ===================== --> <table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class KEYUTIL."> <caption>Field Summary</caption> <thead> <tr> <th scope="col">Field Attributes</th> <th scope="col">Field Name and Description</th> </tr> </thead> <tbody> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont"> KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.version">version</a></b> </div> <div class="description">decrypt private key by shared key version string of KEYUTIL class</div> </td> </tr> </tbody> </table> <!-- ============================== methods summary ======================== --> <table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class KEYUTIL."> <caption>Method Summary</caption> <thead> <tr> <th scope="col">Method Attributes</th> <th scope="col">Method Name and Description</th> </tr> </thead> <tbody> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.generateKeypair">generateKeypair</a></b>(alg, keylenOrCurve) </div> <div class="description">This method generates a key pair of public key algorithm.</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getDecryptedKeyHex">getDecryptedKeyHex</a></b>(sEncryptedPEM, passcode) </div> <div class="description">decrypt PEM formatted protected PKCS#5 private key with passcode</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getJWKFromKey">getJWKFromKey</a></b>() </div> <div class="description">convert from RSAKey/KJUR.crypto.ECDSA public/private key object to RFC 7517 JSON Web Key(JWK) This static method convert from RSAKey/KJUR.crypto.ECDSA public/private key object to RFC 7517 JSON Web Key(JWK)</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getKey">getKey</a></b>(param, passcode, hextype) </div> <div class="description">get private or public key object from any arguments This method gets private or public key object(<a href="../symbols/RSAKey.html">RSAKey</a>, <a href="../symbols/KJUR.crypto.DSA.html">KJUR.crypto.DSA</a> or <a href="../symbols/KJUR.crypto.ECDSA.html">KJUR.crypto.ECDSA</a>) for RSA, DSA and ECC.</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getKeyAndUnusedIvByPasscodeAndIvsalt">getKeyAndUnusedIvByPasscodeAndIvsalt</a></b>(algName, passcode, hexadecimal) </div> <div class="description">the same function as OpenSSL EVP_BytsToKey to generate shared key and IV</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getKeyFromCSRHex">getKeyFromCSRHex</a></b>(csrHex) </div> <div class="description">get RSAKey/DSA/ECDSA public key object from hexadecimal string of PKCS#10 CSR</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getKeyFromCSRPEM">getKeyFromCSRPEM</a></b>(csrPEM) </div> <div class="description">get RSAKey/DSA/ECDSA public key object from PEM formatted PKCS#10 CSR string</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getKeyFromEncryptedPKCS8PEM">getKeyFromEncryptedPKCS8PEM</a></b>(pkcs8PEM, passcode) </div> <div class="description">get RSAKey/ECDSA private key object from encrypted PEM PKCS#8 private key</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getKeyFromPlainPrivatePKCS8Hex">getKeyFromPlainPrivatePKCS8Hex</a></b>(prvKeyHex) </div> <div class="description">get RSAKey/DSA/ECDSA private key object from HEX plain PEM PKCS#8 private key</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getKeyFromPlainPrivatePKCS8PEM">getKeyFromPlainPrivatePKCS8PEM</a></b>(pkcs8PEM) </div> <div class="description">get RSAKey/ECDSA private key object from PEM plain PEM PKCS#8 private key</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getPBKDF2KeyHexFromParam">getPBKDF2KeyHexFromParam</a></b>(info, passcode) </div> <div class="description">generate PBKDF2 key hexstring with specified passcode and information As for info, this uses following properties: <ul> <li>info.pbkdf2Salt - hexadecimal string of PBKDF2 salt</li> <li>info.pkbdf2Iter - iteration count</li> </ul> Currently, this method only supports PKCS#5v2.0 with PBES2/PBDKF2 of HmacSHA1 and TripleDES.</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.getPEM">getPEM</a></b>(keyObjOrHex, formatType, passwd, encAlg, hexType, ivsaltHex) </div> <div class="description">get PEM formatted private or public key file from a RSA/ECDSA/DSA key object <dl> <dt><b>NOTE1:</b> <dd> PKCS#5 encrypted private key protection algorithm supports DES-CBC, DES-EDE3-CBC and AES-{128,192,256}-CBC <dt><b>NOTE2:</b> <dd> OpenSSL supports <dt><b>NOTE3:</b> <dd> Parameter "ivsaltHex" supported since jsrsasign 8.0.0 keyutil 1.2.0.</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.parseCSRHex">parseCSRHex</a></b>(csrHex) </div> <div class="description">parse hexadecimal string of PKCS#10 CSR (certificate signing request) Resulted associative array has following properties: <ul> <li>p8pubkeyhex - hexadecimal string of subject public key in PKCS#8</li> </ul></div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.parseHexOfEncryptedPKCS8">parseHexOfEncryptedPKCS8</a></b>(passcode) </div> <div class="description">generate PBKDF2 key hexstring with specified passcode and information The associative array which is returned by this method has following properties: <ul> <li>info.pbkdf2Salt - hexadecimal string of PBKDF2 salt</li> <li>info.pkbdf2Iter - iteration count</li> <li>info.ciphertext - hexadecimal string of encrypted private key</li> <li>info.encryptionSchemeAlg - encryption algorithm name (currently TripleDES only)</li> <li>info.encryptionSchemeIV - initial vector for encryption algorithm</li> </ul> Currently, this method only supports PKCS#5v2.0 with PBES2/PBDKF2 of HmacSHA1 and TripleDES.</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.parsePKCS5PEM">parsePKCS5PEM</a></b>(sEncryptedPEM) </div> <div class="description">parse PEM formatted passcode protected PKCS#5 private key Resulted hash has following attributes.</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.parsePlainPrivatePKCS8Hex">parsePlainPrivatePKCS8Hex</a></b>(pkcs8PrvHex) </div> <div class="description">parse hexadecimal string of plain PKCS#8 private key Resulted associative array has following properties: <ul> <li>algoid - hexadecimal string of OID of asymmetric key algorithm</li> <li>algparam - hexadecimal string of OID of ECC curve name or null</li> <li>keyidx - string starting index of key in pkcs8PrvHex</li> </ul></div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.parsePublicPKCS8Hex">parsePublicPKCS8Hex</a></b>(pkcs8PubHex) </div> <div class="description">parse hexadecimal string of PKCS#8 RSA/EC/DSA public key Resulted hash has following attributes.</div> </td> </tr> <tr> <td class="attributes">&lt;static&gt; &nbsp;</td> <td class="nameDescription"> <div class="fixedFont">KEYUTIL.<b><a href="../symbols/KEYUTIL.html#.parsePublicRawRSAKeyHex">parsePublicRawRSAKeyHex</a></b>(pubRawRSAHex) </div> <div class="description">parse hexadecimal string of plain PKCS#8 private key Resulted associative array has following properties: <ul> <li>n - hexadecimal string of public key <li>e - hexadecimal string of public exponent </ul></div> </td> </tr> </tbody> </table> <!-- ============================== events summary ======================== --> <!-- ============================== constructor details ==================== --> <div class="details"><a name="constructor"> </a> <div class="sectionTitle"> Class Detail </div> <div class="fixedFont"> <b>KEYUTIL</b>() </div> <div class="description"> <br/> <a href="../symbols/KEYUTIL.html">KEYUTIL</a> class is an update of former PKCS5PKEY class. <a href="../symbols/KEYUTIL.html">KEYUTIL</a> class has following features: <dl> <dt><b>key loading - <a href="../symbols/KEYUTIL.html#.getKey">KEYUTIL.getKey</a></b> <dd> <ul> <li>supports RSAKey and KJUR.crypto.{ECDSA,DSA} key object</li> <li>supports private key and public key</li> <li>supports encrypted and plain private key</li> <li>supports PKCS#1, PKCS#5 and PKCS#8 key</li> <li>supports public key in X.509 certificate</li> <li>key represented by JSON object</li> </ul> NOTE1: Encrypted PKCS#8 only supports PBKDF2/HmacSHA1/3DES <br/> NOTE2: Encrypted PKCS#5 supports DES-CBC, DES-EDE3-CBC, AES-{128,192.256}-CBC <br/> <dt><b>exporting key - <a href="../symbols/KEYUTIL.html#.getPEM">KEYUTIL.getPEM</a></b> <dd> <a href="../symbols/KEYUTIL.html#.getPEM">KEYUTIL.getPEM</a> method supports following formats: <ul> <li>supports RSA/EC/DSA keys</li> <li>PKCS#1 plain RSA/EC/DSA private key</li> <li>PKCS#5 encrypted RSA/EC/DSA private key with DES-CBC, DES-EDE3-CBC, AES-{128,192.256}-CBC</li> <li>PKCS#8 plain RSA/EC/DSA private key</li> <li>PKCS#8 encrypted RSA/EC/DSA private key with PBKDF2_HmacSHA1_3DES</li> </ul> <dt><b>keypair generation - <a href="../symbols/KEYUTIL.html#.generateKeypair">KEYUTIL.generateKeypair</a></b> <ul> <li>generate key pair of <a href="../symbols/RSAKey.html">RSAKey</a> or <a href="../symbols/KJUR.crypto.ECDSA.html">KJUR.crypto.ECDSA</a>.</li> <li>generate private key and convert it to PKCS#5 encrypted private key.</li> </ul> NOTE: <a href="../symbols/KJUR.crypto.DSA.html">KJUR.crypto.DSA</a> is not yet supported. </dl> </div> <pre class="code">// 1. loading PEM private key var key = KEYUTIL.getKey(pemPKCS1PrivateKey); var key = KEYUTIL.getKey(pemPKCS5EncryptedPrivateKey, "passcode"); var key = KEYUTIL.getKey(pemPKC85PlainPrivateKey); var key = KEYUTIL.getKey(pemPKC85EncryptedPrivateKey, "passcode"); // 2. loading PEM public key var key = KEYUTIL.getKey(pemPKCS8PublicKey); var key = KEYUTIL.getKey(pemX509Certificate); // 3. exporting private key var pem = KEYUTIL.getPEM(privateKeyObj, "PKCS1PRV"); var pem = KEYUTIL.getPEM(privateKeyObj, "PKCS5PRV", "passcode"); // DES-EDE3-CBC by default var pem = KEYUTIL.getPEM(privateKeyObj, "PKCS5PRV", "passcode", "DES-CBC"); var pem = KEYUTIL.getPEM(privateKeyObj, "PKCS8PRV"); var pem = KEYUTIL.getPEM(privateKeyObj, "PKCS8PRV", "passcode"); // 4. exporting public key var pem = KEYUTIL.getPEM(publicKeyObj);</pre> </div> <!-- ============================== field details ========================== --> <div class="sectionTitle"> Field Detail </div> <a name=".version"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">KEYUTIL.</span><b>version</b> </div> <div class="description"> decrypt private key by shared key version string of KEYUTIL class </div> <!-- ============================== method details ========================= --> <div class="sectionTitle"> Method Detail </div> <a name=".generateKeypair"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{Array}</span> <span class="light">KEYUTIL.</span><b>generateKeypair</b>(alg, keylenOrCurve) </div> <div class="description"> This method generates a key pair of public key algorithm. The result will be an associative array which has following parameters: <ul> <li>prvKeyObj - RSAKey or ECDSA object of private key</li> <li>pubKeyObj - RSAKey or ECDSA object of public key</li> </ul> NOTE1: As for RSA algoirthm, public exponent has fixed value '0x10001'. NOTE2: As for EC algorithm, supported names of curve are secp256r1, secp256k1 and secp384r1. NOTE3: DSA is not supported yet. </div> <pre class="code">var rsaKeypair = KEYUTIL.generateKeypair("RSA", 1024); var ecKeypair = KEYUTIL.generateKeypair("EC", "secp256r1");</pre> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{String}</span> <b>alg</b> </dt> <dd>'RSA' or 'EC'</dd> <dt> <span class="light fixedFont">{Object}</span> <b>keylenOrCurve</b> </dt> <dd>key length for RSA or curve name for EC</dd> </dl> <dl class="detailList"> <dt class="heading">Since:</dt> <dd>keyutil 1.0.1</dd> </dl> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{Array}</span> associative array of keypair which has prvKeyObj and pubKeyObj parameters</dd> </dl> <hr /> <a name=".getDecryptedKeyHex"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{String}</span> <span class="light">KEYUTIL.</span><b>getDecryptedKeyHex</b>(sEncryptedPEM, passcode) </div> <div class="description"> decrypt PEM formatted protected PKCS#5 private key with passcode </div> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{String}</span> <b>sEncryptedPEM</b> </dt> <dd>PEM formatted protected passcode protected PKCS#5 private key</dd> <dt> <span class="light fixedFont">{String}</span> <b>passcode</b> </dt> <dd>passcode to decrypt private key (ex. 'password')</dd> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{String}</span> hexadecimal string of decrypted RSA priavte key</dd> </dl> <hr /> <a name=".getJWKFromKey"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{Object}</span> <span class="light">KEYUTIL.</span><b>getJWKFromKey</b>() </div> <div class="description"> convert from RSAKey/KJUR.crypto.ECDSA public/private key object to RFC 7517 JSON Web Key(JWK) This static method convert from RSAKey/KJUR.crypto.ECDSA public/private key object to RFC 7517 JSON Web Key(JWK) </div> <pre class="code">kp1 = KEYUTIL.generateKeypair("EC", "P-256"); jwkPrv1 = KEYUTIL.getJWKFromKey(kp1.prvKeyObj); jwkPub1 = KEYUTIL.getJWKFromKey(kp1.pubKeyObj); kp2 = KEYUTIL.generateKeypair("RSA", 2048); jwkPrv2 = KEYUTIL.getJWKFromKey(kp2.prvKeyObj); jwkPub2 = KEYUTIL.getJWKFromKey(kp2.pubKeyObj); // if you need RFC 7638 JWK thumprint as kid do like this: jwkPub2.kid = KJUR.jws.JWS.getJWKthumbprint(jwkPub2);</pre> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{Object}</span> <b>RSAKey/KJUR.crypto.ECDSA</b> </dt> <dd>public/private key object</dd> </dl> <dl class="detailList"> <dt class="heading">Since:</dt> <dd>keyutil 1.0.13 jsrsasign 5.0.14</dd> </dl> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{Object}</span> JWK object</dd> </dl> <hr /> <a name=".getKey"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{Object}</span> <span class="light">KEYUTIL.</span><b>getKey</b>(param, passcode, hextype) </div> <div class="description"> get private or public key object from any arguments This method gets private or public key object(<a href="../symbols/RSAKey.html">RSAKey</a>, <a href="../symbols/KJUR.crypto.DSA.html">KJUR.crypto.DSA</a> or <a href="../symbols/KJUR.crypto.ECDSA.html">KJUR.crypto.ECDSA</a>) for RSA, DSA and ECC. Arguments for this methods depends on a key format you specify. Following key representations are supported. <ul> <li>ECC private/public key object(as is): param=KJUR.crypto.ECDSA</li> <li>DSA private/public key object(as is): param=KJUR.crypto.DSA</li> <li>RSA private/public key object(as is): param=RSAKey </li> <li>ECC private key parameters: param={d: d, curve: curveName}</li> <li>RSA private key parameters: param={n: n, e: e, d: d, p: p, q: q, dp: dp, dq: dq, co: co}<br/> NOTE: Each value shall be hexadecimal string of key spec.</li> <li>DSA private key parameters: param={p: p, q: q, g: g, y: y, x: x}<br/> NOTE: Each value shall be hexadecimal string of key spec.</li> <li>ECC public key parameters: param={xy: xy, curve: curveName}<br/> NOTE: ECC public key 'xy' shall be concatination of "04", x-bytes-hex and y-bytes-hex.</li> <li>DSA public key parameters: param={p: p, q: q, g: g, y: y}<br/> NOTE: Each value shall be hexadecimal string of key spec.</li> <li>RSA public key parameters: param={n: n, e: e} </li> <li>X.509v1/v3 PEM certificate (RSA/DSA/ECC): param=pemString</li> <li>PKCS#8 hexadecimal RSA/ECC public key: param=pemString, null, "pkcs8pub"</li> <li>PKCS#8 PEM RSA/DSA/ECC public key: param=pemString</li> <li>PKCS#5 plain hexadecimal RSA private key: param=hexString, null, "pkcs5prv"</li> <li>PKCS#5 plain PEM DSA/RSA private key: param=pemString</li> <li>PKCS#8 plain PEM RSA/ECDSA private key: param=pemString</li> <li>PKCS#5 encrypted PEM RSA/DSA private key: param=pemString, passcode</li> <li>PKCS#8 encrypted PEM RSA/ECDSA private key: param=pemString, passcode</li> </ul> Please note following limitation on encrypted keys: <ul> <li>Encrypted PKCS#8 only supports PBKDF2/HmacSHA1/3DES</li> <li>Encrypted PKCS#5 supports DES-CBC, DES-EDE3-CBC, AES-{128,192.256}-CBC</li> <li>JWT plain ECC private/public key</li> <li>JWT plain RSA public key</li> <li>JWT plain RSA private key with P/Q/DP/DQ/COEFF</li> <li>JWT plain RSA private key without P/Q/DP/DQ/COEFF (since jsrsasign 5.0.0)</li> </ul> NOTE1: <a href="https://tools.ietf.org/html/rfc7517">RFC 7517 JSON Web Key(JWK)</a> support for RSA/ECC private/public key from jsrsasign 4.8.1.<br/> NOTE2: X509v1 support is added since jsrsasign 5.0.11. <h5>EXAMPLE</h5> </div> <pre class="code">// 1. loading private key from PEM string keyObj = KEYUTIL.getKey("-----BEGIN RSA PRIVATE KEY..."); keyObj = KEYUTIL.getKey("-----BEGIN RSA PRIVATE KEY..., "passcode"); keyObj = KEYUTIL.getKey("-----BEGIN PRIVATE KEY..."); keyObj = KEYUTIL.getKey("-----BEGIN PRIVATE KEY...", "passcode"); // 2. loading public key from PEM string keyObj = KEYUTIL.getKey("-----BEGIN PUBLIC KEY..."); keyObj = KEYUTIL.getKey("-----BEGIN X509 CERTIFICATE..."); // 3. loading hexadecimal PKCS#5/PKCS#8 key keyObj = KEYUTIL.getKey("308205c1...", null, "pkcs8pub"); keyObj = KEYUTIL.getKey("3082048b...", null, "pkcs5prv"); // 4. loading JSON Web Key(JWK) keyObj = KEYUTIL.getKey({kty: "RSA", n: "0vx7...", e: "AQAB"}); keyObj = KEYUTIL.getKey({kty: "EC", crv: "P-256", x: "MKBC...", y: "4Etl6...", d: "870Mb..."}); // 5. bare hexadecimal key keyObj = KEYUTIL.getKey({n: "75ab..", e: "010001"});</pre> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{Object}</span> <b>param</b> </dt> <dd>parameter to get key object. see description in detail.</dd> <dt> <span class="light fixedFont">{String}</span> <b>passcode</b> </dt> <dd>(OPTION) parameter to get key object. see description in detail.</dd> <dt> <span class="light fixedFont">{String}</span> <b>hextype</b> </dt> <dd>(OPTOIN) parameter to get key object. see description in detail.</dd> </dl> <dl class="detailList"> <dt class="heading">Since:</dt> <dd>keyutil 1.0.0</dd> </dl> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{Object}</span> <a href="../symbols/RSAKey.html">RSAKey</a>, <a href="../symbols/KJUR.crypto.ECDSA.html">KJUR.crypto.ECDSA</a> or <a href="../symbols/KJUR.crypto.ECDSA.html">KJUR.crypto.ECDSA</a> object</dd> </dl> <hr /> <a name=".getKeyAndUnusedIvByPasscodeAndIvsalt"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{Hash}</span> <span class="light">KEYUTIL.</span><b>getKeyAndUnusedIvByPasscodeAndIvsalt</b>(algName, passcode, hexadecimal) </div> <div class="description"> the same function as OpenSSL EVP_BytsToKey to generate shared key and IV </div> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{String}</span> <b>algName</b> </dt> <dd>name of symmetric key algorithm (ex. 'DES-EBE3-CBC')</dd> <dt> <span class="light fixedFont">{String}</span> <b>passcode</b> </dt> <dd>passcode to decrypt private key (ex. 'password')</dd> <dt> <span class="light fixedFont">{String}</span> <b>hexadecimal</b> </dt> <dd>string of IV. heading 8 bytes will be used for passcode salt</dd> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{Hash}</span> hash of key and unused IV (ex. {keyhex:2fe3..., ivhex:3fad..})</dd> </dl> <hr /> <a name=".getKeyFromCSRHex"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{Object}</span> <span class="light">KEYUTIL.</span><b>getKeyFromCSRHex</b>(csrHex) </div> <div class="description"> get RSAKey/DSA/ECDSA public key object from hexadecimal string of PKCS#10 CSR </div> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{String}</span> <b>csrHex</b> </dt> <dd>hexadecimal string of PKCS#10 CSR</dd> </dl> <dl class="detailList"> <dt class="heading">Since:</dt> <dd>keyutil 1.0.5</dd> </dl> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{Object}</span> RSAKey/DSA/ECDSA public key object</dd> </dl> <hr /> <a name=".getKeyFromCSRPEM"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{Object}</span> <span class="light">KEYUTIL.</span><b>getKeyFromCSRPEM</b>(csrPEM) </div> <div class="description"> get RSAKey/DSA/ECDSA public key object from PEM formatted PKCS#10 CSR string </div> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{String}</span> <b>csrPEM</b> </dt> <dd>PEM formatted PKCS#10 CSR string</dd> </dl> <dl class="detailList"> <dt class="heading">Since:</dt> <dd>keyutil 1.0.5</dd> </dl> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{Object}</span> RSAKey/DSA/ECDSA public key object</dd> </dl> <hr /> <a name=".getKeyFromEncryptedPKCS8PEM"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{Object}</span> <span class="light">KEYUTIL.</span><b>getKeyFromEncryptedPKCS8PEM</b>(pkcs8PEM, passcode) </div> <div class="description"> get RSAKey/ECDSA private key object from encrypted PEM PKCS#8 private key </div> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{String}</span> <b>pkcs8PEM</b> </dt> <dd>string of PEM formatted PKCS#8 private key</dd> <dt> <span class="light fixedFont">{String}</span> <b>passcode</b> </dt> <dd>passcode string to decrypt key</dd> </dl> <dl class="detailList"> <dt class="heading">Since:</dt> <dd>pkcs5pkey 1.0.5</dd> </dl> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{Object}</span> RSAKey or KJUR.crypto.ECDSA private key object</dd> </dl> <hr /> <a name=".getKeyFromPlainPrivatePKCS8Hex"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{Object}</span> <span class="light">KEYUTIL.</span><b>getKeyFromPlainPrivatePKCS8Hex</b>(prvKeyHex) </div> <div class="description"> get RSAKey/DSA/ECDSA private key object from HEX plain PEM PKCS#8 private key </div> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{String}</span> <b>prvKeyHex</b> </dt> <dd>hexadecimal string of plain PKCS#8 private key</dd> </dl> <dl class="detailList"> <dt class="heading">Since:</dt> <dd>pkcs5pkey 1.0.5</dd> </dl> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{Object}</span> RSAKey or KJUR.crypto.{DSA,ECDSA} private key object</dd> </dl> <hr /> <a name=".getKeyFromPlainPrivatePKCS8PEM"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{Object}</span> <span class="light">KEYUTIL.</span><b>getKeyFromPlainPrivatePKCS8PEM</b>(pkcs8PEM) </div> <div class="description"> get RSAKey/ECDSA private key object from PEM plain PEM PKCS#8 private key </div> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{String}</span> <b>pkcs8PEM</b> </dt> <dd>string of plain PEM formatted PKCS#8 private key</dd> </dl> <dl class="detailList"> <dt class="heading">Since:</dt> <dd>pkcs5pkey 1.0.5</dd> </dl> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{Object}</span> RSAKey or KJUR.crypto.ECDSA private key object</dd> </dl> <hr /> <a name=".getPBKDF2KeyHexFromParam"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">{String}</span> <span class="light">KEYUTIL.</span><b>getPBKDF2KeyHexFromParam</b>(info, passcode) </div> <div class="description"> generate PBKDF2 key hexstring with specified passcode and information As for info, this uses following properties: <ul> <li>info.pbkdf2Salt - hexadecimal string of PBKDF2 salt</li> <li>info.pkbdf2Iter - iteration count</li> </ul> Currently, this method only supports PKCS#5v2.0 with PBES2/PBDKF2 of HmacSHA1 and TripleDES. <ul> <li>keyDerivationFunc = pkcs5PBKDF2 with HmacSHA1</li> <li>encryptionScheme = des-EDE3-CBC(i.e. TripleDES</li> </ul> </div> <pre class="code">// to convert plain PKCS#5 private key to encrypted PKCS#8 private // key with PBKDF2 with TripleDES % openssl pkcs8 -in plain_p5.pem -topk8 -v2 -des3 -out encrypted_p8.pem</pre> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{Array}</span> <b>info</b> </dt> <dd>result of parseHexOfEncryptedPKCS8 which has preference of PKCS#8 file</dd> <dt> <span class="light fixedFont">{String}</span> <b>passcode</b> </dt> <dd>passcode to decrypto private key</dd> </dl> <dl class="detailList"> <dt class="heading">Since:</dt> <dd>pkcs5pkey 1.0.3</dd> </dl> </dl> <dl class="detailList"> <dt class="heading">Returns:</dt> <dd><span class="light fixedFont">{String}</span> hexadecimal string of PBKDF2 key</dd> </dl> <hr /> <a name=".getPEM"> </a> <div class="fixedFont">&lt;static&gt; <span class="light">KEYUTIL.</span><b>getPEM</b>(keyObjOrHex, formatType, passwd, encAlg, hexType, ivsaltHex) </div> <div class="description"> get PEM formatted private or public key file from a RSA/ECDSA/DSA key object <dl> <dt><b>NOTE1:</b> <dd> PKCS#5 encrypted private key protection algorithm supports DES-CBC, DES-EDE3-CBC and AES-{128,192,256}-CBC <dt><b>NOTE2:</b> <dd> OpenSSL supports <dt><b>NOTE3:</b> <dd> Parameter "ivsaltHex" supported since jsrsasign 8.0.0 keyutil 1.2.0. </dl> </div> <pre class="code">KEUUTIL.getPEM(publicKey) =&gt; generates PEM PKCS#8 public key KEUUTIL.getPEM(privateKey, "PKCS1PRV") =&gt; generates PEM PKCS#1 plain private key KEUUTIL.getPEM(privateKey, "PKCS5PRV", "pass") =&gt; generates PEM PKCS#5 encrypted private key with DES-EDE3-CBC (DEFAULT) KEUUTIL.getPEM(privateKey, "PKCS5PRV", "pass", "DES-CBC") =&gt; generates PEM PKCS#5 encrypted private key with DES-CBC KEUUTIL.getPEM(privateKey, "PKCS8PRV") =&gt; generates PEM PKCS#8 plain private key KEUUTIL.getPEM(privateKey, "PKCS8PRV", "pass") =&gt; generates PEM PKCS#8 encrypted private key with PBKDF2_HmacSHA1_3DES</pre> <dl class="detailList"> <dt class="heading">Parameters:</dt> <dt> <span class="light fixedFont">{Object}</span> <b>keyObjOrHex</b> </dt> <dd>key object <a href="../symbols/RSAKey.html">RSAKey</a>, <a href="../symbols/KJUR.crypto.ECDSA.html">KJUR.crypto.ECDSA</a> or <a href="../symbols/KJUR.crypto.DSA.html">KJUR.crypto.DSA</a> to encode to</dd> <dt> <span class="light fixedFont">{String}</span> <b>formatType</b>