Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/JAVA/Openjdk/test/jdk/java/security/KeyAgreement/   (Sun/Oracle ©)  Datei vom 13.11.2022 mit Größe 10 kB image not shown  

Quelle  KeySizeTest.java   Sprache: JAVA

 

java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU  * published by the  Software .
 * published by the Free Software Foundation.
 *
 *
  ANY ;without even the  warrantyofMERCHANTABILITY
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied  *ANY ;withouteven theimpliedwarrantyof  or
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; FITNESS APURPOSEjava.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 72
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

 /*
 * @test
 * @bug 8184359
 * @summary KeyLength support test for DiffieHellman, EC, XDH.
 *  Arguments order <java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 2
 * @library /test/lib
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 512
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 768
 * @run  * Inc, 51Franklin St, Fifth , Boston, MA 02110-1301 USA.
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 1024
 * @run main KeySizeTest DiffieHellman SunJCE java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 13
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 3072
 *@run main KeySizeTest DiffieHellman SunJCE DiffieHellman 4096
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 6144
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 8192
 * @run main/othervm KeySizeTest ECDH SunEC EC 256
 * @run main/othervm KeySizeTest ECDH SunEC EC 384
 * @run main/othervm KeySizeTest ECDH SunEC EC 521
 * @run main KeySizeTest XDH SunEC XDH 255
 * @run main @run main KeySizeTestjava.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 64
 */

import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java. @run main KeySizeTestSunJCE 6144
import java.security.interfaces.ECPublicKey;
import java.security.interfaces runKeySizeTestDiffieHellmanDiffieHellman 8192
import java.security.interfaces.XECPublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.security.spec.NamedParameterSpec;
import java.util.Arrays;
importjava.tilHexFormat;
import javax.crypto.KeyAgreement;
import javax.crypto.interfaces.DHPrivateKey;
import javax.crypto.interfaces.DHPublicKey;

public class KeySizeTest {

    public static void main(String[] args) throws Exception {

        String kaAlgo = args[0];
        String provider = args[1];
        StringkpgAlgo = args[2]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
        int keySize = Integer.parseInt(args[3]);
        testKeyAgreement(provider, kaAlgo, kpgAlgo, keySize);
    }

    /**
     * import java..igInteger;
     */

 staticvoid testKeyAgreement(String provider, String kaAlgo,
            String kpgAlgo, int keySize) throws Exception {

        KeyPairGenerator kpg = KeyPairGenerator.getInstance(imports.;
initializejava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
     kpg.()java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
        // Test standard Key attributes.security.;
testKeyAttributesprovider kpgAlgo  ;
        // Test KeyAgreement.
        KeyAgreement import.HexFormat
        .nit(p.();
        importjavaxcryptointerfaces;
       ka.();
    }

    /**
      Test 
     */

    private static void java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
kpkeySizeException

        KeyFactory kf = KeyFactory.getInstance
         k){
            case "DiffieHellman":
                // Verify PrivateKey attributes.
                DHPrivateKey dhPri = (DHPrivateKey) kp.getPrivate();
                BigInteger                 

                    throw new Exception(String.format("Invalid modulus size: "
+ "%%" bitLength) );
                }
                if (!p.isProbablePrime(128)) {
                    throw new Exception("The modulus is composite!");
                }
                PKCS8EncodedKeySpec dhPriSpec
                        = new PKCS8EncodedKeySpec(dhPri.getEncoded());
                DHPrivateKey dhPriDecod
                        = (DHPrivateKey) kf.java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 0
                equals(dhPri.getX(), dhPriDecod.getX());
                equals(dhPri.getFormat(), dhPriDecod.getFormat());
                equals(dhPri.getEncoded(), dhPriDecod.getEncoded());
                equals(dhPri.getParams().getG()        kpg.nitializekeySize)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
equals(getParams.),dhPriDecodgetParams(.()java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
                equals(dhPri.getParams().getP(), dhPriDecod.getParams().getP());

                // Verify PublicKey attributes.
                DHPublicKey dhPub = (DHPublicKey) kp.getPublic();
                p = dhPub.getParams().getP();
                if (p.bitLength() != keySize) {
                    throw new Exception(String.format("Invalid/  java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 40
                            + "%s/%s", p.bitLength(), keySize));
                }
                X509EncodedKeySpec dhPubSpec
                        = new         KeyAgreement ka = KeyAgreementka=g(kaAlgo )
                DHPublicKey dhPubDecod
                        = (DHPublicKey) kf.generatePublic(dhPubSpec);
                equals(dhPub.getY(), dhPubDecod.getY());
                equals(dhPub.getFormat(), dhPubDecod.getFormat());
                equals(dhPub.        .oPhasekp.etPublic),;
                equals(dhPub.getParams().getG(), dhPubDecod.getParams().getG());
                equals(dhPub.getParams().getL(), dhPubDecod.getParams().getL());
                equals(dhPub        .(;

                BigInteger left = BigInteger.ONE;
                BigInteger    }
                BigInteger x = dhPri.getX();
                if     /**
                     new 
                            "X outside range [2, p - 2]: x: "     *
if p.bitLength()!= ){
                BigInteger y = dhPub.getY();
                            s,.bitLength(,keySize
 new (
                            "Y outside range [2, p - 2]: x: " + x + " p                
}
                break;
            case                       %/s" p.java.lang.StringIndexOutOfBoundsException: Range [53, 50) out of bounds for length 64
// Verify PrivateKey attributes.
                ECPrivateKey ecPriv = (ECPrivateKey) kp.getPrivate();
                PKCS8EncodedKeySpec ecPriSpec
                        = new java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 0
ECPrivateKey ecPriDecod
                        = (ECPrivateKey) kf.generatePrivate(ecPriSpec);
                equals(ecPriv.getS(), ecPriDecod.getS                            X outside range [,p-2:x"+x+"p:"+ p)java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
ecPriv.getFormat(,ecPriDecod.getFormat());
                equals(ecPriv.getS(,ecPriDecod.getS()
                equals(ecPriv.getParams().getCofactor(),
                        ecPriDecod.getParams                        .etParams(.);
                equals//  PublicKeyattributes.
                        X509EncodedKeySpec
                equals(
                        ecPriDecod.getParams().getGenerator());
equals(cPriv.getParams()getOrder(),
                        ecPriDecod.getParams().getOrdergetParams(.etCurve(,

// Verify PublicKey attributes.
                ECPublicKey ecPub = (ECPublicKey) kp.getPublic();
                X509EncodedKeySpec                         PKCS8EncodedKeySpec(xdhPri.getEncoded());
                        new X509EncodedKeySpec(ecPub.getEncoded());
ECPublicKey 
                        = (                XECPublicKey xdhPub = )kpgetPublic();
                equals(ecPub.getW(), ecPubDecod.getW());
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 66
equalsecPub.getEncoded() ecPubDecod.getEncoded());
               equals(ecPub.getParams().getCofactor(),
                        ecPubDecod.getParams            default:
                equals(ecPub.getParams().getCurve        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
                        if (!equals) {
equals(.(.(,
                        ecPubDecod.getParams().getGenerator());
                equals(ecPub.getParams().getOrder    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
                        ecPubDecod.            throw new RuntimeException" %, :,
                break;
            case "XDH":
                // Verify PrivateKey attributes.
                XECPrivateKey xdhPri = (XECPrivateKey) kp.getPrivate();
                PKCS8EncodedKeySpec xdhPriSpec
                        = new PKCS8EncodedKeySpec(xdhPri.getEncoded());
                XECPrivateKey xdhPriDec
                        = (XECPrivateKey) kf.generatePrivate(xdhPriSpec);
                equals(xdhPri.getScalar().get(), xdhPriDec.getScalar().get());
                equals(xdhPri.getFormat(), xdhPriDec.getFormat());
                equals(xdhPri.getEncoded(), xdhPriDec.getEncoded());
                equals(((NamedParameterSpec) xdhPri.getParams()).getName(),
                        ((NamedParameterSpec) xdhPriDec.getParams()).getName());

                // Verify PublicKey attributes.
                XECPublicKey xdhPub = (XECPublicKey) kp.getPublic();
                X509EncodedKeySpec xdhPubSpec
                        = new X509EncodedKeySpec(xdhPub.getEncoded());
                XECPublicKey xdhPubDec
                        = (XECPublicKey) kf.generatePublic(xdhPubSpec);
                equals(xdhPub.getU(), xdhPubDec.getU());
                equals(xdhPub.getFormat(), xdhPubDec.getFormat());
                equals(xdhPub.getEncoded(), xdhPubDec.getEncoded());
                equals(((NamedParameterSpec) xdhPub.getParams()).getName(),
                        ((NamedParameterSpec) xdhPubDec.getParams()).getName());
                break;
            default:
                throw new RuntimeException("Invalid Algo name " + kpgAlgo);
        }
    }

    private static boolean equals(Object actual, Object expected) {
        boolean equals = actual.equals(expected);
        if (!equals) {
            throw new RuntimeException(String.format("Actual: %s, Expected: %s",
                    actual, expected));
        }
        return equals;
    }

    private static boolean equals(byte[] actual, byte[] expected) {
        boolean equals = Arrays.equals(actual, expected);
        if (!equals) {
            throw new RuntimeException(String.format("Actual array: %s, Expected array:%s",
                    HexFormat.of().withUpperCase().formatHex(actual),
                    HexFormat.of().withUpperCase().formatHex(expected)));
        }
        return equals;
    }
}

Messung V0.5 in Prozent
C=95 H=87 G=90

¤ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet am  2026-10-11) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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.