forked from rachanon/stdbWeb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2514 lines
72 KiB
2514 lines
72 KiB
<!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 4.8.7 JavaScript API Reference - PKCS5PKEY</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"> |
|
<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.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.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.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.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.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/PKCS5PKEY.html">PKCS5PKEY</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 PKCS5PKEY |
|
</h1> |
|
|
|
<!-- ============================== class summary ========================== --> |
|
<p class="description"> |
|
|
|
|
|
|
|
class for PKCS#5 and PKCS#8 private key |
|
|
|
|
|
<br /><i>Defined in: </i> <a href="../symbols/src/pkcs5pkey-1.0.js.html">pkcs5pkey-1.0.js</a>. |
|
|
|
</p> |
|
|
|
<!-- ============================== constructor summary ==================== --> |
|
|
|
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class PKCS5PKEY."> |
|
<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"> </td> |
|
<td class="nameDescription" > |
|
<div class="fixedFont"> |
|
<b><a href="../symbols/PKCS5PKEY.html#constructor">PKCS5PKEY</a></b>() |
|
</div> |
|
<div class="description"><br/> |
|
<a href="../symbols/PKCS5PKEY.html">PKCS5PKEY</a> class has following features: |
|
<ul> |
|
<li>read and parse PEM formatted encrypted PKCS#5 private key |
|
<li>generate PEM formatted encrypted PKCS#5 private key |
|
<li>read and parse PEM formatted plain PKCS#8 private key |
|
<li>read and parse PEM formatted encrypted PKCS#8 private key by PBKDF2/HmacSHA1/3DES |
|
</ul> |
|
Currently supports only RSA private key and |
|
following symmetric key algorithms to protect private key.</div> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
|
|
|
|
<!-- ============================== properties summary ===================== --> |
|
|
|
|
|
|
|
<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class PKCS5PKEY."> |
|
<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"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont"> |
|
PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.version">version</a></b> |
|
</div> |
|
<div class="description">decrypt private key by shared key |
|
version string of PKCS5PKEY class</div> |
|
</td> |
|
</tr> |
|
|
|
</tbody> |
|
</table> |
|
|
|
|
|
|
|
|
|
|
|
<!-- ============================== methods summary ======================== --> |
|
|
|
|
|
|
|
<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class PKCS5PKEY."> |
|
<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"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.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"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getDecryptedKeyHexByKeyIV">getDecryptedKeyHexByKeyIV</a></b>(encryptedKeyHex, algName, sharedKeyHex, ivHex) |
|
</div> |
|
<div class="description">decrypt private key by shared key</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getEryptedPKCS5PEMFromPrvKeyHex">getEryptedPKCS5PEMFromPrvKeyHex</a></b>(hPrvKey, passcode, sharedKeyAlgName, ivsaltHex) |
|
</div> |
|
<div class="description">get PEM formatted encrypted PKCS#5 private key from hexadecimal string of plain private key |
|
<br/> |
|
generate PEM formatted encrypted PKCS#5 private key by hexadecimal string encoded |
|
ASN.1 object of plain RSA private key.</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getEryptedPKCS5PEMFromRSAKey">getEryptedPKCS5PEMFromRSAKey</a></b>(pKey, passcode, alg, ivsaltHex) |
|
</div> |
|
<div class="description">get PEM formatted encrypted PKCS#5 private key from RSAKey object of private key |
|
<br/> |
|
generate PEM formatted encrypted PKCS#5 private key by |
|
<a href="../symbols/RSAKey.html">RSAKey</a> object of RSA private key and passcode.</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getHexFromPEM">getHexFromPEM</a></b>(sPEM, sHead) |
|
</div> |
|
<div class="description">get hexacedimal string of PEM format</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.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"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.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"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getKeyFromPlainPrivatePKCS8Hex">getKeyFromPlainPrivatePKCS8Hex</a></b>(prvKeyHex) |
|
</div> |
|
<div class="description">get RSAKey/ECDSA private key object from HEX plain PEM PKCS#8 private key</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.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"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getKeyFromPublicPKCS8Hex">getKeyFromPublicPKCS8Hex</a></b>(pkcsPub8Hex) |
|
</div> |
|
<div class="description">get RSAKey/ECDSA public key object from hexadecimal string of PKCS#8 public key</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getKeyFromPublicPKCS8PEM">getKeyFromPublicPKCS8PEM</a></b>(pkcsPub8PEM) |
|
</div> |
|
<div class="description">get RSAKey/ECDSA public key object from PEM PKCS#8 public key</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.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"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getPlainPKCS8HexFromEncryptedPKCS8PEM">getPlainPKCS8HexFromEncryptedPKCS8PEM</a></b>(pkcs8PEM, passcode) |
|
</div> |
|
<div class="description">read PEM formatted encrypted PKCS#8 private key and returns hexadecimal string of plain PKCS#8 private key |
|
Currently, this method only supports PKCS#5v2.0 with PBES2/PBDKF2 of HmacSHA1 and TripleDES.</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromEncryptedPKCS5PEM">getRSAKeyFromEncryptedPKCS5PEM</a></b>(sEncryptedP5PEM, passcode) |
|
</div> |
|
<div class="description">read PEM formatted encrypted PKCS#5 private key and returns RSAKey object</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromEncryptedPKCS8PEM">getRSAKeyFromEncryptedPKCS8PEM</a></b>(pkcs8PEM, passcode) |
|
</div> |
|
<div class="description">read PEM formatted encrypted PKCS#8 private key and returns RSAKey object |
|
Currently, this method only supports PKCS#5v2.0 with PBES2/PBDKF2 of HmacSHA1 and TripleDES.</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromPlainPKCS8Hex">getRSAKeyFromPlainPKCS8Hex</a></b>(prvKeyHex) |
|
</div> |
|
<div class="description">provide hexadecimal string of unencrypted PKCS#8 private key and returns RSAKey object</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromPlainPKCS8PEM">getRSAKeyFromPlainPKCS8PEM</a></b>(pkcs8PEM) |
|
</div> |
|
<div class="description">read PEM formatted unencrypted PKCS#8 private key and returns RSAKey object</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromPublicPKCS8Hex">getRSAKeyFromPublicPKCS8Hex</a></b>(pkcs8PubHex) |
|
</div> |
|
<div class="description">provide hexadecimal string of unencrypted PKCS#8 private key and returns RSAKey object</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromPublicPKCS8PEM">getRSAKeyFromPublicPKCS8PEM</a></b>(pkcs8PubPEM) |
|
</div> |
|
<div class="description">read PEM formatted PKCS#8 public key and returns RSAKey object</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.newEncryptedPKCS5PEM">newEncryptedPKCS5PEM</a></b>(passcode, keyLen, hPublicExponent, alg) |
|
</div> |
|
<div class="description">generate RSAKey and PEM formatted encrypted PKCS#5 private key</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.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"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.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"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.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"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.parsePrivateRawECKeyHexAtObj">parsePrivateRawECKeyHexAtObj</a></b>(pkcs8PrvHex) |
|
</div> |
|
<div class="description">parse hexadecimal string of ECC private key |
|
Following properties are added to associative array 'info' |
|
<ul> |
|
<li>key - hexadecimal string of ECC private key |
|
</ul></div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.parsePrivateRawRSAKeyHexAtObj">parsePrivateRawRSAKeyHexAtObj</a></b>(pkcs8PrvHex) |
|
</div> |
|
<div class="description">parse hexadecimal string of RSA private key |
|
Following properties are added to associative array 'info' |
|
<ul> |
|
<li>n - hexadecimal string of public key |
|
<li>e - hexadecimal string of public exponent |
|
<li>d - hexadecimal string of private key |
|
<li>p - hexadecimal string |
|
<li>q - hexadecimal string |
|
<li>dp - hexadecimal string |
|
<li>dq - hexadecimal string |
|
<li>co - hexadecimal string |
|
</ul></div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.html#.parsePublicPKCS8Hex">parsePublicPKCS8Hex</a></b>(pkcs8PubHex) |
|
</div> |
|
<div class="description">parse hexadecimal string of PKCS#8 public key |
|
Resulted hash has following attributes.</div> |
|
</td> |
|
</tr> |
|
|
|
<tr> |
|
<td class="attributes"><static> </td> |
|
<td class="nameDescription"> |
|
<div class="fixedFont">PKCS5PKEY.<b><a href="../symbols/PKCS5PKEY.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>PKCS5PKEY</b>() |
|
</div> |
|
|
|
<div class="description"> |
|
<br/> |
|
<a href="../symbols/PKCS5PKEY.html">PKCS5PKEY</a> class has following features: |
|
<ul> |
|
<li>read and parse PEM formatted encrypted PKCS#5 private key |
|
<li>generate PEM formatted encrypted PKCS#5 private key |
|
<li>read and parse PEM formatted plain PKCS#8 private key |
|
<li>read and parse PEM formatted encrypted PKCS#8 private key by PBKDF2/HmacSHA1/3DES |
|
</ul> |
|
Currently supports only RSA private key and |
|
following symmetric key algorithms to protect private key. |
|
<ul> |
|
<li>DES-EDE3-CBC</li> |
|
<li>AES-256-CBC</li> |
|
<li>AES-192-CBC</li> |
|
<li>AES-128-CBC</li> |
|
</ul> |
|
|
|
<h5>METHOD SUMMARY</h5> |
|
<dl> |
|
<dt><b>PKCS8 PRIVATE KEY METHODS</b><dd> |
|
<ul> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromPlainPKCS8PEM">PKCS5PKEY.getRSAKeyFromPlainPKCS8PEM</a> - convert plain PKCS8 PEM to RSAKey object</li> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromPlainPKCS8Hex">PKCS5PKEY.getRSAKeyFromPlainPKCS8Hex</a> - convert plain PKCS8 hexadecimal data to RSAKey object</li> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromEncryptedPKCS8PEM">PKCS5PKEY.getRSAKeyFromEncryptedPKCS8PEM</a> - convert encrypted PKCS8 PEM to RSAKey object</li> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getPlainPKCS8HexFromEncryptedPKCS8PEM">PKCS5PKEY.getPlainPKCS8HexFromEncryptedPKCS8PEM</a> - convert encrypted PKCS8 PEM to plain PKCS8 Hex</li> |
|
</ul> |
|
<dt><b>PKCS5 PRIVATE KEY METHODS</b><dd> |
|
<ul> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromEncryptedPKCS5PEM">PKCS5PKEY.getRSAKeyFromEncryptedPKCS5PEM</a> - convert encrypted PKCS5 PEM to RSAKey object</li> |
|
<li>PKCS5PKEY.getEncryptedPKCS5PEMFromRSAKey - convert RSAKey object to encryped PKCS5 PEM</li> |
|
<li><a href="../symbols/PKCS5PKEY.html#.newEncryptedPKCS5PEM">PKCS5PKEY.newEncryptedPKCS5PEM</a> - generate RSAKey and its encrypted PKCS5 PEM</li> |
|
</ul> |
|
<dt><b>PKCS8 PUBLIC KEY METHODS</b><dd> |
|
<ul> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getKeyFromPublicPKCS8PEM">PKCS5PKEY.getKeyFromPublicPKCS8PEM</a> - convert encrypted PKCS8 PEM to RSAKey/ECDSA object</li> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getKeyFromPublicPKCS8Hex">PKCS5PKEY.getKeyFromPublicPKCS8Hex</a> - convert encrypted PKCS8 Hex to RSAKey/ECDSA object</li> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromPublicPKCS8PEM">PKCS5PKEY.getRSAKeyFromPublicPKCS8PEM</a> - convert encrypted PKCS8 PEM to RSAKey object</li> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getRSAKeyFromPublicPKCS8Hex">PKCS5PKEY.getRSAKeyFromPublicPKCS8Hex</a> - convert encrypted PKCS8 Hex to RSAKey object</li> |
|
</ul> |
|
<dt><b>UTITILIY METHODS</b><dd> |
|
<ul> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getHexFromPEM">PKCS5PKEY.getHexFromPEM</a> - convert PEM string to hexadecimal data</li> |
|
<li><a href="../symbols/PKCS5PKEY.html#.getDecryptedKeyHexByKeyIV">PKCS5PKEY.getDecryptedKeyHexByKeyIV</a> - decrypt key by sharedKey and IV</li> |
|
</ul> |
|
</dl> |
|
|
|
</div> |
|
|
|
|
|
|
|
<pre class="code">Here is an example of PEM formatted encrypted PKCS#5 private key. |
|
-----BEGIN RSA PRIVATE KEY----- |
|
Proc-Type: 4,ENCRYPTED |
|
DEK-Info: AES-256-CBC,40555967F759530864FE022E257DE34E |
|
|
|
jV7uXajRw4cccDaliagcqiLOiQEUCe19l761pXRxzgQP+DH4rCi12T4puTdZyy6l |
|
...(snip)... |
|
qxLS+BASmyGm4DME6m+kltZ12LXwPgNU6+d+XQ4NXSA= |
|
-----END RSA PRIVATE KEY-----</pre> |
|
|
|
|
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Deprecated:</dt> |
|
<dt> |
|
Since jsrsasign 4.1.3. Please use KEYUTIL class. |
|
</dt> |
|
</dl> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
<!-- ============================== field details ========================== --> |
|
|
|
<div class="sectionTitle"> |
|
Field Detail |
|
</div> |
|
|
|
<a name=".version"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
|
|
<span class="light">PKCS5PKEY.</span><b>version</b> |
|
|
|
</div> |
|
<div class="description"> |
|
decrypt private key by shared key |
|
version string of PKCS5PKEY class |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ============================== method details ========================= --> |
|
|
|
<div class="sectionTitle"> |
|
Method Detail |
|
</div> |
|
|
|
<a name=".getDecryptedKeyHex"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{String}</span> |
|
<span class="light">PKCS5PKEY.</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=".getDecryptedKeyHexByKeyIV"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{String}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getDecryptedKeyHexByKeyIV</b>(encryptedKeyHex, algName, sharedKeyHex, ivHex) |
|
|
|
</div> |
|
<div class="description"> |
|
decrypt private key by shared key |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>encryptedKeyHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of encrypted private key</dd> |
|
|
|
<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>sharedKeyHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of symmetric key</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>ivHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of initial vector(IV).</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Returns:</dt> |
|
|
|
<dd><span class="light fixedFont">{String}</span> hexadecimal string of decrypted privated key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getEryptedPKCS5PEMFromPrvKeyHex"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{String}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getEryptedPKCS5PEMFromPrvKeyHex</b>(hPrvKey, passcode, sharedKeyAlgName, ivsaltHex) |
|
|
|
</div> |
|
<div class="description"> |
|
get PEM formatted encrypted PKCS#5 private key from hexadecimal string of plain private key |
|
<br/> |
|
generate PEM formatted encrypted PKCS#5 private key by hexadecimal string encoded |
|
ASN.1 object of plain RSA private key. |
|
Following arguments can be omitted. |
|
<ul> |
|
<li>alg - AES-256-CBC will be used if omitted.</li> |
|
<li>ivsaltHex - automatically generate IV and salt which length depends on algorithm</li> |
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<pre class="code">var pem = |
|
PKCS5PKEY.getEryptedPKCS5PEMFromPrvKeyHex(plainKeyHex, "password"); |
|
var pem2 = |
|
PKCS5PKEY.getEryptedPKCS5PEMFromPrvKeyHex(plainKeyHex, "password", "AES-128-CBC"); |
|
var pem3 = |
|
PKCS5PKEY.getEryptedPKCS5PEMFromPrvKeyHex(plainKeyHex, "password", "AES-128-CBC", "1f3d02...");</pre> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>hPrvKey</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of plain private key</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>passcode</b> |
|
|
|
</dt> |
|
<dd>pass code to protect private key (ex. password)</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>sharedKeyAlgName</b> |
|
|
|
</dt> |
|
<dd>algorithm name to protect private key (ex. AES-256-CBC)</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>ivsaltHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of IV and salt</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Since:</dt> |
|
<dd>pkcs5pkey 1.0.2</dd> |
|
</dl> |
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Returns:</dt> |
|
|
|
<dd><span class="light fixedFont">{String}</span> string of PEM formatted encrypted PKCS#5 private key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getEryptedPKCS5PEMFromRSAKey"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{String}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getEryptedPKCS5PEMFromRSAKey</b>(pKey, passcode, alg, ivsaltHex) |
|
|
|
</div> |
|
<div class="description"> |
|
get PEM formatted encrypted PKCS#5 private key from RSAKey object of private key |
|
<br/> |
|
generate PEM formatted encrypted PKCS#5 private key by |
|
<a href="../symbols/RSAKey.html">RSAKey</a> object of RSA private key and passcode. |
|
Following argument can be omitted. |
|
<ul> |
|
<li>alg - AES-256-CBC will be used if omitted.</li> |
|
<li>ivsaltHex - automatically generate IV and salt which length depends on algorithm</li> |
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<pre class="code">var pkey = new RSAKey(); |
|
pkey.generate(1024, '10001'); // generate 1024bit RSA private key with public exponent 'x010001' |
|
var pem = PKCS5PKEY.getEryptedPKCS5PEMFromRSAKey(pkey, "password");</pre> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> <b>pKey</b> |
|
|
|
</dt> |
|
<dd>RSAKey object of private key</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>passcode</b> |
|
|
|
</dt> |
|
<dd>pass code to protect private key (ex. password)</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>alg</b> |
|
|
|
</dt> |
|
<dd>algorithm name to protect private key (default AES-256-CBC)</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>ivsaltHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of IV and salt (default generated random IV)</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Since:</dt> |
|
<dd>pkcs5pkey 1.0.2</dd> |
|
</dl> |
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Returns:</dt> |
|
|
|
<dd><span class="light fixedFont">{String}</span> string of PEM formatted encrypted PKCS#5 private key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getHexFromPEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{String}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getHexFromPEM</b>(sPEM, sHead) |
|
|
|
</div> |
|
<div class="description"> |
|
get hexacedimal string of PEM format |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>sPEM</b> |
|
|
|
</dt> |
|
<dd>PEM formatted string</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>sHead</b> |
|
|
|
</dt> |
|
<dd>PEM header string without BEGIN/END</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">{String}</span> hexadecimal string data of PEM contents</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getKeyAndUnusedIvByPasscodeAndIvsalt"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Hash}</span> |
|
<span class="light">PKCS5PKEY.</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=".getKeyFromEncryptedPKCS8PEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Object}</span> |
|
<span class="light">PKCS5PKEY.</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"><static> |
|
|
|
<span class="light">{Object}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getKeyFromPlainPrivatePKCS8Hex</b>(prvKeyHex) |
|
|
|
</div> |
|
<div class="description"> |
|
get RSAKey/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.ECDSA private key object</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getKeyFromPlainPrivatePKCS8PEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Object}</span> |
|
<span class="light">PKCS5PKEY.</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=".getKeyFromPublicPKCS8Hex"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Object}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getKeyFromPublicPKCS8Hex</b>(pkcsPub8Hex) |
|
|
|
</div> |
|
<div class="description"> |
|
get RSAKey/ECDSA public key object from hexadecimal string of PKCS#8 public key |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>pkcsPub8Hex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of PKCS#8 public 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=".getKeyFromPublicPKCS8PEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Object}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getKeyFromPublicPKCS8PEM</b>(pkcsPub8PEM) |
|
|
|
</div> |
|
<div class="description"> |
|
get RSAKey/ECDSA public key object from PEM PKCS#8 public key |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>pkcsPub8PEM</b> |
|
|
|
</dt> |
|
<dd>string of PEM formatted PKCS#8 public 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"><static> |
|
|
|
<span class="light">{String}</span> |
|
<span class="light">PKCS5PKEY.</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=".getPlainPKCS8HexFromEncryptedPKCS8PEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{String}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getPlainPKCS8HexFromEncryptedPKCS8PEM</b>(pkcs8PEM, passcode) |
|
|
|
</div> |
|
<div class="description"> |
|
read PEM formatted encrypted PKCS#8 private key and returns hexadecimal string of plain PKCS#8 private key |
|
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">{String}</span> <b>pkcs8PEM</b> |
|
|
|
</dt> |
|
<dd>PEM formatted encrypted PKCS#8 private key</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 plain PKCS#8 private key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getRSAKeyFromEncryptedPKCS5PEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getRSAKeyFromEncryptedPKCS5PEM</b>(sEncryptedP5PEM, passcode) |
|
|
|
</div> |
|
<div class="description"> |
|
read PEM formatted encrypted PKCS#5 private key and returns RSAKey object |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>sEncryptedP5PEM</b> |
|
|
|
</dt> |
|
<dd>PEM formatted encrypted PKCS#5 private key</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>passcode</b> |
|
|
|
</dt> |
|
<dd>passcode to decrypt private key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Since:</dt> |
|
<dd>pkcs5pkey 1.0.2</dd> |
|
</dl> |
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Returns:</dt> |
|
|
|
<dd><span class="light fixedFont">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> loaded RSAKey object of RSA private key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getRSAKeyFromEncryptedPKCS8PEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getRSAKeyFromEncryptedPKCS8PEM</b>(pkcs8PEM, passcode) |
|
|
|
</div> |
|
<div class="description"> |
|
read PEM formatted encrypted PKCS#8 private key and returns RSAKey object |
|
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">{String}</span> <b>pkcs8PEM</b> |
|
|
|
</dt> |
|
<dd>PEM formatted encrypted PKCS#8 private key</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">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> loaded RSAKey object of RSA private key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getRSAKeyFromPlainPKCS8Hex"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getRSAKeyFromPlainPKCS8Hex</b>(prvKeyHex) |
|
|
|
</div> |
|
<div class="description"> |
|
provide hexadecimal string of unencrypted PKCS#8 private key and returns RSAKey object |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>prvKeyHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of unencrypted PKCS#8 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">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> loaded RSAKey object of RSA private key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getRSAKeyFromPlainPKCS8PEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getRSAKeyFromPlainPKCS8PEM</b>(pkcs8PEM) |
|
|
|
</div> |
|
<div class="description"> |
|
read PEM formatted unencrypted PKCS#8 private key and returns RSAKey object |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>pkcs8PEM</b> |
|
|
|
</dt> |
|
<dd>PEM formatted unencrypted PKCS#8 private key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Since:</dt> |
|
<dd>pkcs5pkey 1.0.1</dd> |
|
</dl> |
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Returns:</dt> |
|
|
|
<dd><span class="light fixedFont">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> loaded RSAKey object of RSA private key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getRSAKeyFromPublicPKCS8Hex"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getRSAKeyFromPublicPKCS8Hex</b>(pkcs8PubHex) |
|
|
|
</div> |
|
<div class="description"> |
|
provide hexadecimal string of unencrypted PKCS#8 private key and returns RSAKey object |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>pkcs8PubHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of unencrypted PKCS#8 public key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Since:</dt> |
|
<dd>pkcs5pkey 1.0.4</dd> |
|
</dl> |
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Returns:</dt> |
|
|
|
<dd><span class="light fixedFont">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> loaded RSAKey object of RSA public key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".getRSAKeyFromPublicPKCS8PEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> |
|
<span class="light">PKCS5PKEY.</span><b>getRSAKeyFromPublicPKCS8PEM</b>(pkcs8PubPEM) |
|
|
|
</div> |
|
<div class="description"> |
|
read PEM formatted PKCS#8 public key and returns RSAKey object |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>pkcs8PubPEM</b> |
|
|
|
</dt> |
|
<dd>PEM formatted PKCS#8 public key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Since:</dt> |
|
<dd>pkcs5pkey 1.0.4</dd> |
|
</dl> |
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Returns:</dt> |
|
|
|
<dd><span class="light fixedFont">{<a href="../symbols/RSAKey.html">RSAKey</a>}</span> loaded RSAKey object of RSA public key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".newEncryptedPKCS5PEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{String}</span> |
|
<span class="light">PKCS5PKEY.</span><b>newEncryptedPKCS5PEM</b>(passcode, keyLen, hPublicExponent, alg) |
|
|
|
</div> |
|
<div class="description"> |
|
generate RSAKey and PEM formatted encrypted PKCS#5 private key |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<pre class="code">var pem1 = PKCS5PKEY.newEncryptedPKCS5PEM("password"); // RSA1024bit/10001/AES-256-CBC |
|
var pem2 = PKCS5PKEY.newEncryptedPKCS5PEM("password", 512); // RSA 512bit/10001/AES-256-CBC |
|
var pem3 = PKCS5PKEY.newEncryptedPKCS5PEM("password", 512, '3'); // RSA 512bit/ 3/AES-256-CBC</pre> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>passcode</b> |
|
|
|
</dt> |
|
<dd>pass code to protect private key (ex. password)</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{Integer}</span> <b>keyLen</b> |
|
|
|
</dt> |
|
<dd>key bit length of RSA key to be generated. (default 1024)</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>hPublicExponent</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of public exponent (default 10001)</dd> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>alg</b> |
|
|
|
</dt> |
|
<dd>shared key algorithm to encrypt private key (default AES-258-CBC)</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Since:</dt> |
|
<dd>pkcs5pkey 1.0.2</dd> |
|
</dl> |
|
</dl> |
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Returns:</dt> |
|
|
|
<dd><span class="light fixedFont">{String}</span> string of PEM formatted encrypted PKCS#5 private key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".parseHexOfEncryptedPKCS8"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Array}</span> |
|
<span class="light">PKCS5PKEY.</span><b>parseHexOfEncryptedPKCS8</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. |
|
<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">{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">{Array}</span> info associative array of PKCS#8 parameters</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".parsePKCS5PEM"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Hash}</span> |
|
<span class="light">PKCS5PKEY.</span><b>parsePKCS5PEM</b>(sEncryptedPEM) |
|
|
|
</div> |
|
<div class="description"> |
|
parse PEM formatted passcode protected PKCS#5 private key |
|
Resulted hash has following attributes. |
|
<ul> |
|
<li>cipher - symmetric key algorithm name (ex. 'DES-EBE3-CBC', 'AES-256-CBC')</li> |
|
<li>ivsalt - IV used for decrypt. Its heading 8 bytes will be used for passcode salt.</li> |
|
<li>type - asymmetric key algorithm name of private key described in PEM header.</li> |
|
<li>data - base64 encoded encrypted private key.</li> |
|
</ul> |
|
|
|
|
|
</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> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Returns:</dt> |
|
|
|
<dd><span class="light fixedFont">{Hash}</span> hash of key information</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".parsePlainPrivatePKCS8Hex"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Array}</span> |
|
<span class="light">PKCS5PKEY.</span><b>parsePlainPrivatePKCS8Hex</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> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>pkcs8PrvHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of PKCS#8 plain 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">{Array}</span> associative array of parsed key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".parsePrivateRawECKeyHexAtObj"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Array}</span> |
|
<span class="light">PKCS5PKEY.</span><b>parsePrivateRawECKeyHexAtObj</b>(pkcs8PrvHex) |
|
|
|
</div> |
|
<div class="description"> |
|
parse hexadecimal string of ECC private key |
|
Following properties are added to associative array 'info' |
|
<ul> |
|
<li>key - hexadecimal string of ECC private key |
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>pkcs8PrvHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of PKCS#8 private key concluding EC 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">{Array}</span> info associative array to add parsed ECC private key information</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".parsePrivateRawRSAKeyHexAtObj"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Array}</span> |
|
<span class="light">PKCS5PKEY.</span><b>parsePrivateRawRSAKeyHexAtObj</b>(pkcs8PrvHex) |
|
|
|
</div> |
|
<div class="description"> |
|
parse hexadecimal string of RSA private key |
|
Following properties are added to associative array 'info' |
|
<ul> |
|
<li>n - hexadecimal string of public key |
|
<li>e - hexadecimal string of public exponent |
|
<li>d - hexadecimal string of private key |
|
<li>p - hexadecimal string |
|
<li>q - hexadecimal string |
|
<li>dp - hexadecimal string |
|
<li>dq - hexadecimal string |
|
<li>co - hexadecimal string |
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>pkcs8PrvHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of PKCS#8 private key concluding RSA 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">{Array}</span> info associative array to add parsed RSA private key information</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".parsePublicPKCS8Hex"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Hash}</span> |
|
<span class="light">PKCS5PKEY.</span><b>parsePublicPKCS8Hex</b>(pkcs8PubHex) |
|
|
|
</div> |
|
<div class="description"> |
|
parse hexadecimal string of PKCS#8 public key |
|
Resulted hash has following attributes. |
|
<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>key - hexadecimal string of public key</li> |
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>pkcs8PubHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of PKCS#8 public key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Returns:</dt> |
|
|
|
<dd><span class="light fixedFont">{Hash}</span> hash of key information</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
<hr /> |
|
|
|
<a name=".parsePublicRawRSAKeyHex"> </a> |
|
<div class="fixedFont"><static> |
|
|
|
<span class="light">{Array}</span> |
|
<span class="light">PKCS5PKEY.</span><b>parsePublicRawRSAKeyHex</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> |
|
|
|
|
|
|
|
|
|
<dl class="detailList"> |
|
<dt class="heading">Parameters:</dt> |
|
|
|
<dt> |
|
<span class="light fixedFont">{String}</span> <b>pubRawRSAHex</b> |
|
|
|
</dt> |
|
<dd>hexadecimal string of ASN.1 encoded PKCS#8 public 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">{Array}</span> associative array of parsed key</dd> |
|
|
|
</dl> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ============================== event details ========================= --> |
|
|
|
|
|
<hr /> |
|
</div> |
|
|
|
|
|
<!-- ============================== footer ================================= --> |
|
<div class="fineprint" style="clear:both"> |
|
© 2012-2015 Kenji Urushima, All rights reserved<br/> |
|
|
|
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0 |
|
</div> |
|
</body> |
|
</html>
|
|
|