if(typeof KJUR.asn1.csr=="undefined"||!KJUR.asn1.csr){KJUR.asn1.csr={}}KJUR.asn1.csr.CertificationRequest=function(g){var d=KJUR,c=d.asn1,e=c.DERBitString,b=c.DERSequence,a=c.csr,f=c.x509,h=a.CertificationRequestInfo;a.CertificationRequest.superclass.constructor.call(this);this.setByParam=function(i){this.params=i};this.sign=function(){var j=(new h(this.params)).getEncodedHex();var k=new KJUR.crypto.Signature({alg:this.params.sigalg});k.init(this.params.sbjprvkey);k.updateHex(j);var i=k.sign();this.params.sighex=i};this.getPEM=function(){return hextopem(this.getEncodedHex(),"CERTIFICATE REQUEST")};this.getEncodedHex=function(){var l=this.params;var j=new KJUR.asn1.csr.CertificationRequestInfo(this.params);var m=new KJUR.asn1.x509.AlgorithmIdentifier({name:l.sigalg});if(l.sighex==undefined&&l.sbjprvkey!=undefined){this.sign()}if(l.sighex==undefined){throw new Error("sighex or sbjprvkey parameter not defined")}var k=new e({hex:"00"+l.sighex});var i=new b({array:[j,m,k]});return i.getEncodedHex()};if(g!==undefined){this.setByParam(g)}};YAHOO.lang.extend(KJUR.asn1.csr.CertificationRequest,KJUR.asn1.ASN1Object);KJUR.asn1.csr.CertificationRequestInfo=function(f){var b=KJUR,j=b.asn1,c=j.DERBitString,g=j.DERSequence,i=j.DERInteger,n=j.DERUTF8String,d=j.DERTaggedObject,h=j.ASN1Util.newObject,l=j.csr,e=j.x509,a=e.X500Name,k=e.Extensions,m=e.SubjectPublicKeyInfo;l.CertificationRequestInfo.superclass.constructor.call(this);this.params=null;this.setByParam=function(o){if(o!=undefined){this.params=o}};this.getEncodedHex=function(){var s=this.params;var p=[];p.push(new i({"int":0}));p.push(new a(s.subject));p.push(new m(KEYUTIL.getKey(s.sbjpubkey)));if(s.extreq!=undefined){var o=new k(s.extreq);var r=h({tag:{tag:"a0",explict:true,obj:{seq:[{oid:"1.2.840.113549.1.9.14"},{set:[o]}]}}});p.push(r)}else{p.push(new d({tag:"a0",explicit:false,obj:new n({str:""})}))}var q=new g({array:p});return q.getEncodedHex()};if(f!=undefined){this.setByParam(f)}};YAHOO.lang.extend(KJUR.asn1.csr.CertificationRequestInfo,KJUR.asn1.ASN1Object);KJUR.asn1.csr.CSRUtil=new function(){};KJUR.asn1.csr.CSRUtil.newCSRPEM=function(e){var b=KEYUTIL,a=KJUR.asn1.csr;var c=new a.CertificationRequest(e);var d=c.getPEM();return d};KJUR.asn1.csr.CSRUtil.getParam=function(c){var m=ASN1HEX,j=m.getV;_getIdxbyList=m.getIdxbyList;_getTLVbyList=m.getTLVbyList,_getTLVbyListEx=m.getTLVbyListEx,_getVbyListEx=m.getVbyListEx;var b=function(p){var o=_getIdxbyList(p,0,[0,3,0,0],"06");if(j(p,o)!="2a864886f70d01090e"){return null}return _getTLVbyList(p,0,[0,3,0,1,0],"30")};var n={};if(c.indexOf("-----BEGIN CERTIFICATE REQUEST")==-1){throw new Error("argument is not PEM file")}var e=pemtohex(c,"CERTIFICATE REQUEST");try{var g=_getTLVbyListEx(e,0,[0,1]);if(g=="3000"){n.subject={}}else{var k=new X509();n.subject=k.getX500Name(g)}}catch(h){}var d=_getTLVbyListEx(e,0,[0,2]);var f=KEYUTIL.getKey(d,null,"pkcs8pub");n.sbjpubkey=KEYUTIL.getPEM(f,"PKCS8PUB");var i=b(e);var k=new X509();if(i!=null){n.extreq=k.getExtParamArray(i)}try{var a=_getTLVbyListEx(e,0,[1],"30");var k=new X509();n.sigalg=k.getAlgorithmIdentifierName(a)}catch(h){}try{var l=_getVbyListEx(e,0,[2]);n.sighex=l}catch(h){}return n};