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

name.neuhalfen.projects.crypto.bouncycastle.openpgp.keys.generation.KeySpec Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2018 Paul Schaub.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package name.neuhalfen.projects.crypto.bouncycastle.openpgp.keys.generation;

import static java.util.Objects.requireNonNull;

import javax.annotation.Nullable;
import name.neuhalfen.projects.crypto.bouncycastle.openpgp.keys.generation.type.KeyType;
import org.bouncycastle.openpgp.PGPSignatureSubpacketGenerator;
import org.bouncycastle.openpgp.PGPSignatureSubpacketVector;

public class KeySpec {

  private final KeyType keyType;
  private final PGPSignatureSubpacketGenerator subpacketGenerator;
  private final boolean inheritedSubPackets;

  KeySpec(KeyType type,
      @Nullable PGPSignatureSubpacketGenerator subpacketGenerator,
      boolean inheritedSubPackets) {
    this.keyType = type;
    this.subpacketGenerator = subpacketGenerator;
    this.inheritedSubPackets = inheritedSubPackets;
  }

  public static KeySpecBuilderInterface getBuilder(KeyType type) {
    requireNonNull(type, "type must not be null");

    return new KeySpecBuilderImpl(type);
  }

  public KeyType getKeyType() {
    return keyType;
  }

  @Nullable
  public PGPSignatureSubpacketVector getSubpackets() {
    return subpacketGenerator == null ? null : subpacketGenerator.generate();
  }

  public boolean isInheritedSubPackets() {
    return inheritedSubPackets;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy