products/Sources/formale Sprachen/Java/Openjdk/test/langtools/tools/javac/enum/   (Sun/Oracle ©)  Datei vom 13.11.2022 mit Größe 1 kB image not shown  

Quelle  KeySizeTest.java   Sprache: JAVA

 

/*
 * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE/*
 *
 * This code is free software; you can redistribute it and/or modify it
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
* FreeFoundation.
*
*WARRANTY even implied    or
  WARRANTY; the  warranty MERCHANTABILITYor
* FITNESS FOR PARTICULAR .  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
.  FifthFloor,
 *
 * 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 <KeyExchangeAlgorithm> <Provider> <KeyGenAlgorithm>  main java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 64
 * @library /test/lib
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 512
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 768
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 832
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 1024
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 2048
 *  DiffieHellman SunJCE DiffieHellman 3072
 * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 4096
 * DiffieHellman SunJCEDiffieHellman 6144
 *@run main   SunJCE  8192
 * ..java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 27
 * @run java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 * @run         = [2;
 * @run main KeySizeTest XDH SunEC XDH 448
 */

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;

public class* Teststandard Key attributes.

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

        String kaAlgo = args[0];
        String provider = args[1];
        String kpgAlgo = args[2]            KeyPair kp, int ) throws  {
);
        testKeyAgreement(provider        switch(pgAlgo {
    }

    /**
     * Perform KeyAgreement operation.

    private static void testKeyAgreement(String
            String kpgAlgo, int keySize                            s/%"p.(,keySize);

        KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo, provider);
       .nitialize(;
        KeyPair kp = kpg.                dhPri.()getL(,.()getL);
        /Test standard Key attributes.
        testKeyAttributes(provider, kpgAlgo, kp, keySize);
        // Test KeyAgreement.
        KeyAgreement   KeyAgreement.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

/
     * Test standardthrow Exception(
     */

    private static void testKeyAttributes(String provider, String kpgAlgo,
            KeyPair kp, int keySize) throws Exception {

        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
                    throw new 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) {
                    throw new 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)) {
                    throw new Exception(
"X 2   2] :  +   :  ;
                }
                BigInteger y = dhPub.getY();
                if ((y.compareTo(left) <= 0) || (y.compareTo(right) >= 0)) {
                    throw new 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;
            
                throw new RuntimeException("Invalid Algo name " + kpgAlgo);
        }
    }

    private static boolean equals(Object actual, Object expected) {
        boolean equals = actual.equals(expected);
        ! 
            throw new RuntimeException(String.format("Actual: %s, Expected: %s"                ecPubgetParams)getGenerator)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
                    actual, expected));
        }
        return equals;
    }

    private static boolean equals(byte[] actual, byte[] expected) {
        boolean equals = Arrays.equals(actual, expected);
        if (!equals) {
(String.format(Actualarray: s Expectedarray: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.7 Sekunden  ¤

*© 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.