cert-d-pgpainless/pgpainless-cert-d/src/main/java/org/pgpainless/certificate_store/PGPainlessCertD.java

37 lines
1.2 KiB
Java

// SPDX-FileCopyrightText: 2022 Paul Schaub <vanitasvitae@fsfe.org>
//
// SPDX-License-Identifier: Apache-2.0
package org.pgpainless.certificate_store;
import pgp.cert_d.BaseDirectoryProvider;
import pgp.cert_d.backend.FileBasedCertificateDirectoryBackend;
import pgp.cert_d.backend.InMemoryCertificateDirectoryBackend;
import pgp.cert_d.exception.NotAStoreException;
import pgp.cert_d.PGPCertificateDirectory;
import java.io.File;
public class PGPainlessCertD extends PGPCertificateDirectory {
private static final KeyMaterialReader keyMaterialReader = new KeyMaterialReader();
public PGPainlessCertD(Backend backend) {
super(backend);
}
public static PGPainlessCertD inMemory() {
Backend backend = new InMemoryCertificateDirectoryBackend(keyMaterialReader);
return new PGPainlessCertD(backend);
}
public static PGPainlessCertD fileBased() throws NotAStoreException {
return fileBased(BaseDirectoryProvider.getDefaultBaseDir());
}
public static PGPainlessCertD fileBased(File baseDirectory) throws NotAStoreException {
Backend backend = new FileBasedCertificateDirectoryBackend(baseDirectory, keyMaterialReader);
return new PGPainlessCertD(backend);
}
}