/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.AliasNotFoundException
 *  com.l7tech.common.io.CertGenParams
 *  com.l7tech.common.io.KeyGenParams
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.gateway.common.security.keystore.SsgKeyMetadata
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.objectmodel.SaveException
 *  com.l7tech.objectmodel.UpdateException
 *  org.jetbrains.annotations.NotNull
 *  org.jetbrains.annotations.Nullable
 *  org.springframework.transaction.annotation.Propagation
 *  org.springframework.transaction.annotation.Transactional
 */
package com.l7tech.server.security.keystore;

import com.l7tech.common.io.AliasNotFoundException;
import com.l7tech.common.io.CertGenParams;
import com.l7tech.common.io.KeyGenParams;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.gateway.common.security.keystore.SsgKeyMetadata;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.server.security.keystore.SsgKeyFinder;
import java.security.GeneralSecurityException;
import java.security.InvalidKeyException;
import java.security.KeyStoreException;
import java.security.cert.X509Certificate;
import java.util.List;
import java.util.concurrent.Future;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Transactional(propagation=Propagation.SUPPORTS, rollbackFor={Throwable.class})
public interface SsgKeyStore
extends SsgKeyFinder {
    @Transactional(propagation=Propagation.REQUIRED)
    public Future<X509Certificate> generateKeyPair(Runnable var1, String var2, KeyGenParams var3, CertGenParams var4, @Nullable SsgKeyMetadata var5) throws GeneralSecurityException;

    public List<String> findImpactedKeysByReplaceCertChain(String var1, X509Certificate[] var2) throws GeneralSecurityException, AliasNotFoundException;

    @Transactional(propagation=Propagation.REQUIRED)
    public Future<Boolean> replaceCertificateChain(Runnable var1, String var2, X509Certificate[] var3, boolean var4) throws InvalidKeyException, KeyStoreException;

    @Transactional(propagation=Propagation.REQUIRED)
    public Future<Boolean> storePrivateKeyEntry(Runnable var1, SsgKeyEntry var2, boolean var3, boolean var4) throws KeyStoreException;

    @Transactional(propagation=Propagation.REQUIRED)
    public Future<Boolean> storePrivateKeyEntry(boolean var1, Runnable var2, SsgKeyEntry var3, boolean var4) throws KeyStoreException;

    @Transactional(propagation=Propagation.REQUIRED)
    public Future<Boolean> storePrivateKeyEntry(boolean var1, Runnable var2, SsgKeyEntry var3, boolean var4, boolean var5) throws KeyStoreException;

    @Transactional(propagation=Propagation.REQUIRED)
    public Future<Boolean> deletePrivateKeyEntry(Runnable var1, String var2) throws KeyStoreException;

    @Transactional(propagation=Propagation.REQUIRED)
    public Future<Boolean> deletePrivateKeyEntry(boolean var1, Runnable var2, String var3) throws KeyStoreException;

    @Transactional(propagation=Propagation.REQUIRED)
    public void updateKeyMetadata(Goid var1, @NotNull String var2, @Nullable SsgKeyMetadata var3) throws UpdateException, FindException, SaveException;
}

