what-the-bank/sources/org/bouncycastle/jcajce/spec/SkeinParameterSpec.java

144 lines
5.1 KiB
Java
Raw Permalink Normal View History

2024-07-27 18:17:47 +07:00
package org.bouncycastle.jcajce.spec;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.security.spec.AlgorithmParameterSpec;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import org.bouncycastle.util.Arrays;
import org.bouncycastle.util.Integers;
/* loaded from: classes6.dex */
public class SkeinParameterSpec implements AlgorithmParameterSpec {
public static final int PARAM_TYPE_CONFIG = 4;
public static final int PARAM_TYPE_KEY = 0;
public static final int PARAM_TYPE_KEY_IDENTIFIER = 16;
public static final int PARAM_TYPE_MESSAGE = 48;
public static final int PARAM_TYPE_NONCE = 20;
public static final int PARAM_TYPE_OUTPUT = 63;
public static final int PARAM_TYPE_PERSONALISATION = 8;
public static final int PARAM_TYPE_PUBLIC_KEY = 12;
private Map parameters;
/* loaded from: classes6.dex */
public static class Builder {
private Map parameters = new HashMap();
public Builder setPublicKey(byte[] bArr) {
return set(12, bArr);
}
public Builder setPersonalisation(byte[] bArr) {
return set(8, bArr);
}
public Builder setPersonalisation(Date date, Locale locale, String str, String str2) {
try {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(byteArrayOutputStream, "UTF-8");
outputStreamWriter.write(new SimpleDateFormat("YYYYMMDD", locale).format(date));
outputStreamWriter.write(" ");
outputStreamWriter.write(str);
outputStreamWriter.write(" ");
outputStreamWriter.write(str2);
outputStreamWriter.close();
return set(8, byteArrayOutputStream.toByteArray());
} catch (IOException e) {
throw new IllegalStateException("Byte I/O failed: ".concat(String.valueOf(e)));
}
}
public Builder setPersonalisation(Date date, String str, String str2) {
try {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(byteArrayOutputStream, "UTF-8");
outputStreamWriter.write(new SimpleDateFormat("YYYYMMDD").format(date));
outputStreamWriter.write(" ");
outputStreamWriter.write(str);
outputStreamWriter.write(" ");
outputStreamWriter.write(str2);
outputStreamWriter.close();
return set(8, byteArrayOutputStream.toByteArray());
} catch (IOException e) {
throw new IllegalStateException("Byte I/O failed: ".concat(String.valueOf(e)));
}
}
public Builder setNonce(byte[] bArr) {
return set(20, bArr);
}
public Builder setKeyIdentifier(byte[] bArr) {
return set(16, bArr);
}
public Builder setKey(byte[] bArr) {
return set(0, bArr);
}
public Builder set(int i, byte[] bArr) {
if (bArr == null) {
throw new IllegalArgumentException("Parameter value must not be null.");
}
if (i != 0 && (i <= 4 || i >= 63 || i == 48)) {
throw new IllegalArgumentException("Parameter types must be in the range 0,5..47,49..62.");
}
if (i == 4) {
throw new IllegalArgumentException("Parameter type 4 is reserved for internal use.");
}
this.parameters.put(Integers.valueOf(i), bArr);
return this;
}
public SkeinParameterSpec build() {
return new SkeinParameterSpec(this.parameters);
}
public Builder(SkeinParameterSpec skeinParameterSpec) {
for (Integer num : skeinParameterSpec.parameters.keySet()) {
this.parameters.put(num, skeinParameterSpec.parameters.get(num));
}
}
public Builder() {
}
}
public byte[] getPublicKey() {
return Arrays.clone((byte[]) this.parameters.get(Integers.valueOf(12)));
}
public byte[] getPersonalisation() {
return Arrays.clone((byte[]) this.parameters.get(Integers.valueOf(8)));
}
public Map getParameters() {
return this.parameters;
}
public byte[] getNonce() {
return Arrays.clone((byte[]) this.parameters.get(Integers.valueOf(20)));
}
public byte[] getKeyIdentifier() {
return Arrays.clone((byte[]) this.parameters.get(Integers.valueOf(16)));
}
public byte[] getKey() {
return Arrays.clone((byte[]) this.parameters.get(Integers.valueOf(0)));
}
private SkeinParameterSpec(Map map) {
this.parameters = Collections.unmodifiableMap(map);
}
public SkeinParameterSpec() {
this(new HashMap());
}
}