]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/util/SecurityProvider.java
9177a781f96bae623938cb61861d9a5b8899d6db
1 package org
.asamk
.signal
.util
;
3 import java
.security
.Provider
;
4 import java
.security
.SecureRandom
;
5 import java
.security
.SecureRandomSpi
;
7 public class SecurityProvider
extends Provider
{
9 private static final String PROVIDER_NAME
= "SSP";
11 private static final String info
= "Security Provider v1.0";
13 public SecurityProvider() {
14 super(PROVIDER_NAME
, 1.0, info
);
15 put("SecureRandom.DEFAULT", DefaultRandom
.class.getName());
17 // Workaround for BKS truststore
18 put("KeyStore.BKS", "org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std");
19 put("KeyStore.BKS-V1", "org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Version1");
20 put("KeyStore.BouncyCastle", "org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$BouncyCastleStore");
21 put("KeyFactory.X.509", "org.bouncycastle.jcajce.provider.asymmetric.x509.KeyFactory");
22 put("CertificateFactory.X.509", "org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory");
25 public static class DefaultRandom
extends SecureRandomSpi
{
27 private static final SecureRandom random
= RandomUtils
.getSecureRandom();
29 public DefaultRandom() {
32 protected void engineSetSeed(byte[] bytes
) {
33 random
.setSeed(bytes
);
36 protected void engineNextBytes(byte[] bytes
) {
37 random
.nextBytes(bytes
);
40 protected byte[] engineGenerateSeed(int numBytes
) {
41 return random
.generateSeed(numBytes
);