All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.rub.nds.x509attacker.signatureengine.keyparsers.DefaultKeyParser Maven / Gradle / Ivy

Go to download

X.509-Attacker is a tool based on ASN.1 Tool for creating arbitrary certificates; including especially invalid and malformed certificates. Since X.509 certificates encode their contents in ASN.1, this tool extends the features of ASN.1 Tool in terms of certificate signing. Also, X.509-Attacker introduces a feature of referencing XML elements in order to avoid redundancies when defining certificates in XML.

The newest version!
/*
 * X.509-Attacker - A Library for Arbitrary X.509 Certificates
 *
 * Copyright 2014-2023 Ruhr University Bochum, Paderborn University, Technology Innovation Institute, and Hackmanit GmbH
 *
 * Licensed under Apache License, Version 2.0
 * http://www.apache.org/licenses/LICENSE-2.0.txt
 */
package de.rub.nds.x509attacker.signatureengine.keyparsers;

import de.rub.nds.x509attacker.constants.KeyFormat;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.security.PrivateKey;
import java.security.PublicKey;

public class DefaultKeyParser implements KeyParser {

    public DefaultKeyParser() {}

    @Override
    public final PrivateKey parsePrivateKey(final byte[] keyBytes, final KeyFormat keyFormat) {
        switch (keyFormat) {
            case PEM_ENCODED:
                return this.parsePemPrivateKey(keyBytes);
            default:
                throw new KeyParserException(
                        "Key format " + keyFormat + " not supported by key parser!");
        }
    }

    @Override
    public final PublicKey parsePublicKey(final byte[] keyBytes, final KeyFormat keyFormat) {
        switch (keyFormat) {
            case PEM_ENCODED:
                return this.parsePemPublicKey(keyBytes);
            default:
                throw new KeyParserException(
                        "Key format " + keyFormat + " not supported by key parser!");
        }
    }

    protected PrivateKey parsePemPrivateKey(final byte[] keyBytes) {
        InputStream keyBytesInputSteam = new ByteArrayInputStream(keyBytes);
        return PemUtil.readPrivateKey(keyBytesInputSteam);
    }

    protected PublicKey parsePemPublicKey(final byte[] keyBytes) {
        InputStream keyBytesInputSteam = new ByteArrayInputStream(keyBytes);
        return PemUtil.readPublicKey(keyBytesInputSteam);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy