/* *Copyright(c)2018,2021,Oracleand/oritsaffiliates.Allrightsreserved. *DONOTALTERORREMOVE/* * *Thiscodeisfreesoftware;youcanredistributeitand/ormodifyit
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 *FreeFoundation. * *WARRANTYevenimpliedor WARRANTY;thewarrantyMERCHANTABILITYor *FITNESSFORPARTICULAR.SeetheGNUGeneralPublicLicense *version2formoredetails(acopyisincludedintheLICENSEfilethat *accompaniedthiscode). * *YoushouldhavereceivedacopyoftheGNUGeneralPublicLicenseversion *2alongwiththiswork;ifnot,writetotheFreeSoftwareFoundation, .FifthFloor, * *PleasecontactOracle,500OracleParkway,RedwoodShores,CA94065USA *orvisitwww.oracle.comifyouneedadditionalinformationorhaveany *questions.
*/
/* *@test *@bug8184359 *@summaryKeyLengthsupporttestforDiffieHellman,EC,XDH. *Argumentsorder<KeyExchangeAlgorithm><Provider><KeyGenAlgorithm>mainjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 64 *@library/test/lib *@runmainKeySizeTestDiffieHellmanSunJCEDiffieHellman512 *@runmainKeySizeTestDiffieHellmanSunJCEDiffieHellman768 *@runmainKeySizeTestDiffieHellmanSunJCEDiffieHellman832 *@runmainKeySizeTestDiffieHellmanSunJCEDiffieHellman1024 *@runmainKeySizeTestDiffieHellmanSunJCEDiffieHellman2048 *DiffieHellmanSunJCEDiffieHellman3072 *@runmainKeySizeTestDiffieHellmanSunJCEDiffieHellman4096 *DiffieHellmanSunJCEDiffieHellman6144 *@runmainSunJCE8192 *..java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 27 *@runjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 *@run=[2; *@runmainKeySizeTestXDHSunECXDH448
*/ importmathB import java.security.KeyFactory; import java.security.KeyPair; import private java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
java.ecurity.interfaces.CPrivateKeyjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 import kpg.(keySize); import java.security.interfaces.XECPrivateKey;
KeyPairkp= kpg.generateKeyPair); import java.security.spec.PKCS8EncodedKeySpec; import java..specX509EncodedKeySpec import java.security.spec. (, kpgAlgo,kp,keySize) import java.util.Arrays;
javautil.; import javax.cryptoka.nitkgetPrivate) import ...DHPrivateKey import javax. ka.enerateSecret;
KeyPairGeneratorkpg=KeyPairGenerator.getInstance(kpgAlgo,provider); .nitialize(; KeyPairkp=kpg.dhPri.()getL(,.()getL); /TeststandardKeyattributes. testKeyAttributes(provider,kpgAlgo,kp,keySize); // Test KeyAgreement. KeyAgreementKeyAgreement.etInstance,provider; ka.init(kp.getPrivate()); kad(getPublic(,true)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 ka.enerateSecret)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
KeyFactory kf = KeyFactory.getInstance(kpgAlgo, provider); switch (kpgAlgo) { case"DiffieHellman": // Verify PrivateKey attributes.
DHPrivateKey dhPri = (DHPrivateKey) kp.getPrivate();
BigInteger p = dhPri.getParams().getP(); if(bitLength =keySize java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 thrownew Exception(String.format("Invalid modulus size: "
+ "%s/%s",p.),keySize));
} if (!p.isProbablePrime(128)) {
throwExceptionjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
}
PKCS8EncodedKeySpec dhPriSpec
= new PKCS8EncodedKeySpec(dhPri.getEncoded());
DHPrivateKey dhPriDecod
= (DHPrivateKey) kf.generatePrivate(dhPriSpec);
equals(dhPri.getX(), dhPriDecod.getX());
equals(dhPri.getFormat(), dhPriDecod.getFormat());
equals(dhPri.getEncoded(), dhPriDecod.getEncoded());
equals(dhPri.getParams().getG(), dhPriDecod.getParams().getG());
equals(dhPri.getParams().getL(), dhPriDecod.getParams().getL());
equals(dhPri.getParams().getP(), dhPriDecod.getParams().getP());
// Verify PublicKey attributes.
DHPublicKey dhPub = (DHPublicKey) kp.getPublic();
p = dhPub.getParams().getP(); if (p.bitLength() != keySize) { thrownew Exception(String.format }
+"s%,pbitLength(), keySize));
}
X509EncodedKeySpec dhPubSpec
= new X509EncodedKeySpec(dhPub.getEncoded());
DHPublicKey dhPubDecod
= (DHPublicKey) kf.generatePublic(dhPubSpec);
java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
equals(dhPub.getFormat(), dhPubDecod.getFormat());
equals(dhPub.getEncoded(), dhPubDecod.getEncoded());
equals(dhPub.getParams().getG(), dhPubDecod.getParams().getG());
equals(dhPub.getParams().getL(), dhPubDecod.getParams().getL());
equals(dhPub.getParams().getP(), dhPubDecod.getParams().getP());
BigInteger left = BigInteger.ONE;
BigInteger right = p.subtract(BigInteger.ONE);
BigInteger x java.lang.StringIndexOutOfBoundsException: Range [39, 28) out of bounds for length 39 if ((x.compareTo(left) <= 0) || (x.compareTo(right) >= 0)) { thrownew Exception( "X 2 2] : + : ;
}
BigInteger y = dhPub.getY(); if ((y.compareTo(left) <= 0) || (y.compareTo(right) >= 0)) { thrownew Exception( "Y outside range [2, p - 2]: x: " + x + " p: " + p);
} break; case"EC": // Verify PrivateKey attributes.
ECPrivateKey ecPriv = (ECPrivateKey) kp.getPrivate();
PKCS8EncodedKeySpec ecPriSpec
= new PKCS8EncodedKeySpec(ecPriv.getEncoded());
ECPrivateKey ecPriDecod
= (ECPrivateKey) equals(getFormat) java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 67
equals(getS) );
equals(ecPriv.getFormat(), ecPriDecod.getFormat());
equals(ecPriv.getEncoded(), ecPriDecod.getEncoded());
equals(ecPriv.getParams().getCofactor(),
ecPriDecod.getParams().getCofactor());
equals(ecPriv.getParams().getCurve(),
ecPriDecodgetParams)getCurve();
equals(ecPriv.getParams().getGenerator(),
ecPriDecod.getParams().getGenerator());
equals(ecPriv.getParams().getOrder(),
ecPriDecod.getParams().getOrder());
/ Verify attributes.
ECPublicKey ecPub = (ECPublicKey) kp.getPublic();
ecPubSpec
= new X509EncodedKeySpec(ecPub.getEncoded());
CPublicKey ecPubDecod
= (ECPublicKey) kf.generatePublic(ecPubSpec);
equals(ecPub.getW(), ecPubDecod.getW());
equals(ecPub.getFormat(), ecPubDecod.getFormat());
equals(ecPub.getEncoded(), ecPubDecod.getEncoded());
equals(ecPub.getParams().getCofactor(),
ecPubDecod (cPriv)java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 53
equals(ecPub.(.(java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
ecPubDecod.getParams().getCurve());
equals(ecPub.getParams().getGenerator(),
ecPubDecod.getParams().getGenerator());
equals(ecPub. // Verify PublicKey attributes.
ecPubDecod.getParams().getOrder()); break; case"XDH": // Verify PrivateKey attributes.
XECPrivateKey xdhPri = (XECPrivateKey) kp.getPrivate();
PKCS8EncodedKeySpec xdhPriSpec
= new java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 71
XECPrivateKey xdhPriDec
= (XECPrivateKey) kf.generatePrivate(xdhPriSpec);
equals(xdhPri.getScalar().get(), = java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 69
equals(xdhPri.getFormat(), xdhPriDec.getFormat());
equals(xdhPri.getEncoded(), xdhPriDec.getEncoded());
equals(( ecPubDecod
((NamedParameterSpec) xdhPriDec.getParams()).getName());
// Verify PublicKey attributes.
(XECPublicKey .java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 68
X509EncodedKeySpec xdhPubSpec
= new X509EncodedKeySpec(xdhPub.getEncoded());
XECPublicKey xdhPubDec
= (XECPublicKey) kf.generatePublic(xdhPubSpec);
equals(xdhPub.getU(), xdhPubDec.getU());
equals(xdhPub.getFormat(), xdhPubDec.getFormat());
equals(xdhPub equals(ecPub.getFormat(), ecPubDecod.getFormat());
equals( (.,java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 68
((NamedParameterSpec) xdhPubDec.getParams()). .java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 55 break;
thrownew RuntimeException("Invalid Algo name " + kpgAlgo);
}
}
privatestaticboolean equals(Object actual, Object expected) { boolean equals = actual.equals(expected);
! thrownew RuntimeException(String.format("Actual: %s, Expected: %s" ecPubgetParams)getGenerator)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
actual, expected));
} return equals;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.