]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/util/SecurityProvider.java
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
.class.getCanonicalName());
19 put("KeyStore.BKS-V1", org
.bouncycastle
.jcajce
.provider
.keystore
.bc
.BcKeyStoreSpi
.Version1
.class.getCanonicalName());
20 put("KeyStore.BouncyCastle", org
.bouncycastle
.jcajce
.provider
.keystore
.bc
.BcKeyStoreSpi
.BouncyCastleStore
.class.getCanonicalName());
21 put("KeyFactory.X.509", org
.bouncycastle
.jcajce
.provider
.asymmetric
.x509
.KeyFactory
.class.getCanonicalName());
22 put("CertificateFactory.X.509", org
.bouncycastle
.jcajce
.provider
.asymmetric
.x509
.CertificateFactory
.class.getCanonicalName());
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
);