Skip to content

Commit

Permalink
🎨 Format
Browse files Browse the repository at this point in the history
  • Loading branch information
heliannuuthus committed Mar 17, 2024
1 parent 41fe3f8 commit 70840fd
Show file tree
Hide file tree
Showing 9 changed files with 221 additions and 223 deletions.
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package io.ghcr.heliannuuthus.devtools.crypto.algorithms;


import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum MessageDigest {
NONE("None"),
SHA_256("SHA256"),
SHA_384("SHA384"),
SHA_512("SHA512");

NONE("None"), SHA_256("SHA256"), SHA_384("SHA384"), SHA_512("SHA512");

private String name;
private String name;
}
Original file line number Diff line number Diff line change
@@ -1,49 +1,47 @@
package io.ghcr.heliannuuthus.devtools.crypto.parameters;

import io.ghcr.heliannuuthus.devtools.exception.CryptoException;
import lombok.Getter;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import lombok.Getter;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

@Getter
public abstract class AsymmetricParameters implements OamParameters {

protected AsymmetricParameters() {
}

public AsymmetricParameters(byte[] key, boolean isPrivate) {
this();
try {
KeyFactory keyFactory =
KeyFactory.getInstance(this.getName(), BouncyCastleProvider.PROVIDER_NAME);
if (isPrivate) {
this.privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(key));
} else {
this.publicKey = keyFactory.generatePublic(new X509EncodedKeySpec(key));
}
} catch (Exception e) {
throw new CryptoException(-1, getName(), e);
}
protected AsymmetricParameters() {}

public AsymmetricParameters(byte[] key, boolean isPrivate) {
this();
try {
KeyFactory keyFactory =
KeyFactory.getInstance(this.getName(), BouncyCastleProvider.PROVIDER_NAME);
if (isPrivate) {
this.privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(key));
} else {
this.publicKey = keyFactory.generatePublic(new X509EncodedKeySpec(key));
}
} catch (Exception e) {
throw new CryptoException(-1, getName(), e);
}

public AsymmetricParameters(byte[] privateKey, byte[] publicKey) {
try {
KeyFactory keyFactory =
KeyFactory.getInstance(this.getName(), BouncyCastleProvider.PROVIDER_NAME);
this.privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(privateKey));
this.publicKey = keyFactory.generatePublic(new X509EncodedKeySpec(publicKey));
} catch (Exception e) {
throw new CryptoException(-1, getName(), e);
}
}

public AsymmetricParameters(byte[] privateKey, byte[] publicKey) {
try {
KeyFactory keyFactory =
KeyFactory.getInstance(this.getName(), BouncyCastleProvider.PROVIDER_NAME);
this.privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(privateKey));
this.publicKey = keyFactory.generatePublic(new X509EncodedKeySpec(publicKey));
} catch (Exception e) {
throw new CryptoException(-1, getName(), e);
}
}

private PrivateKey privateKey;
private PublicKey publicKey;
private PrivateKey privateKey;
private PublicKey publicKey;

public abstract String getName();
public abstract String getName();
}
Original file line number Diff line number Diff line change
@@ -1,44 +1,43 @@
package io.ghcr.heliannuuthus.devtools.crypto.parameters;

import io.ghcr.heliannuuthus.devtools.crypto.algorithms.Padding;
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;

import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.security.spec.AlgorithmParameterSpec;

@Setter
@Getter
public abstract class BlockParameters implements OamParameters {

public static final String ECB_MODE = "ECB";
public static final String CBC_MODE = "CBC";
public static final String GCM_MODE = "GCM";
public static final String ECB_MODE = "ECB";
public static final String CBC_MODE = "CBC";
public static final String GCM_MODE = "GCM";

protected byte[] key;
protected byte[] key;

@Override
public String getAlgorithm() {
return StringUtils.joinWith("/", getName(), getMode(), getPadding().getName());
}
@Override
public String getAlgorithm() {
return StringUtils.joinWith("/", getName(), getMode(), getPadding().getName());
}

public String getName() {
return null;
}
public String getName() {
return null;
}

public abstract String getMode();
public abstract String getMode();

public Padding getPadding() {
return Padding.PKCS7;
}
public Padding getPadding() {
return Padding.PKCS7;
}

public SecretKey getKey() {
return new SecretKeySpec(this.key, getName());
}
public SecretKey getKey() {
return new SecretKeySpec(this.key, getName());
}

public AlgorithmParameterSpec getSpec() {
return null;
}
public AlgorithmParameterSpec getSpec() {
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

public interface OamParameters {

String AES_ALGORITHM = "AES";
String SM4_ALGORITHM = "SM4";
String RSA_ALGORITHM = "RSA";
String ED_DSA_ALGORITHM = "EdDSA";
String ECDSA_ALGORITHM = "ECDSA";
String AES_ALGORITHM = "AES";
String SM4_ALGORITHM = "SM4";
String RSA_ALGORITHM = "RSA";
String ED_DSA_ALGORITHM = "EdDSA";
String ECDSA_ALGORITHM = "ECDSA";

String getAlgorithm();
String getAlgorithm();
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,38 @@
import io.ghcr.heliannuuthus.devtools.crypto.algorithms.MessageDigest;
import io.ghcr.heliannuuthus.devtools.crypto.parameters.AsymmetricParameters;


public class ECParameters extends AsymmetricParameters {

private MessageDigest messageDigest = MessageDigest.SHA_256;
private MessageDigest messageDigest = MessageDigest.SHA_256;

protected ECParameters() {
super();
}
protected ECParameters() {
super();
}

public ECParameters(byte[] key, boolean isPrivate) {
super(key, isPrivate);
}
public ECParameters(byte[] key, boolean isPrivate) {
super(key, isPrivate);
}

public ECParameters(byte[] privateKey, byte[] publicKey) {
super(privateKey, publicKey);
}
public ECParameters(byte[] privateKey, byte[] publicKey) {
super(privateKey, publicKey);
}

@Override
public String getName() {
return ECDSA_ALGORITHM;
}
@Override
public String getName() {
return ECDSA_ALGORITHM;
}

public String getMessageDigest() {
return messageDigest.getName();
}
public String getMessageDigest() {
return messageDigest.getName();
}

public ECParameters md(MessageDigest messageDigest) {
this.messageDigest = messageDigest;
return this;
}
public ECParameters md(MessageDigest messageDigest) {
this.messageDigest = messageDigest;
return this;
}

@Override
public String getAlgorithm() {
return getMessageDigest() + "with" + getName();
}
@Override
public String getAlgorithm() {
return getMessageDigest() + "with" + getName();
}
}
Original file line number Diff line number Diff line change
@@ -1,35 +1,34 @@
package io.ghcr.heliannuuthus.devtools.crypto.parameters.eddsa;

import io.ghcr.heliannuuthus.devtools.crypto.parameters.AsymmetricParameters;
import org.bouncycastle.jcajce.spec.EdDSAParameterSpec;

import java.security.spec.AlgorithmParameterSpec;
import org.bouncycastle.jcajce.spec.EdDSAParameterSpec;

public class Ed25519Parameters extends AsymmetricParameters {

protected Ed25519Parameters() {
super();
}
protected Ed25519Parameters() {
super();
}

public Ed25519Parameters(byte[] key, boolean isPrivate) {
super(key, isPrivate);
}
public Ed25519Parameters(byte[] key, boolean isPrivate) {
super(key, isPrivate);
}

public Ed25519Parameters(byte[] privateKey, byte[] publicKey) {
super(privateKey, publicKey);
}
public Ed25519Parameters(byte[] privateKey, byte[] publicKey) {
super(privateKey, publicKey);
}

@Override
public String getName() {
return EdDSAParameterSpec.Ed25519;
}
@Override
public String getName() {
return EdDSAParameterSpec.Ed25519;
}

public AlgorithmParameterSpec getSpec() {
return new EdDSAParameterSpec(getName());
}
public AlgorithmParameterSpec getSpec() {
return new EdDSAParameterSpec(getName());
}

@Override
public String getAlgorithm() {
return ED_DSA_ALGORITHM;
}
@Override
public String getAlgorithm() {
return ED_DSA_ALGORITHM;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import io.ghcr.heliannuuthus.devtools.crypto.parameters.ecdsa.ECParameters;

public class RSAParameters extends ECParameters {
@Override
public String getName() {
return RSA_ALGORITHM;
}
@Override
public String getName() {
return RSA_ALGORITHM;
}
}
Loading

0 comments on commit 70840fd

Please sign in to comment.