/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.util.Cacheable
 *  com.l7tech.util.Pair
 *  org.jetbrains.annotations.NotNull
 *  org.jetbrains.annotations.Nullable
 */
package com.l7tech.server;

import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.util.Cacheable;
import com.l7tech.util.Pair;
import java.io.IOException;
import java.security.KeyStoreException;
import javax.net.ssl.KeyManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public interface DefaultKeyCache {
    @Cacheable(relevantArg=0, maxAge=5000)
    @NotNull
    public SsgKeyEntry getSslInfo() throws IOException;

    @Cacheable(relevantArg=0, maxAge=5000)
    @NotNull
    public SsgKeyEntry getServerSslInfo() throws IOException;

    @Cacheable(relevantArg=0, maxAge=5000)
    @NotNull
    public SsgKeyEntry getClientSslInfo() throws IOException;

    @Cacheable(relevantArg=0, maxAge=5000)
    @Nullable
    public SsgKeyEntry getCaInfo();

    @Cacheable(relevantArg=0, maxAge=5000)
    @Nullable
    public SsgKeyEntry getAuditSigningInfo();

    @Cacheable(relevantArg=0, maxAge=5000)
    @Nullable
    public SsgKeyEntry getAuditViewerInfo();

    @Cacheable(relevantArg=0, maxAge=5000)
    @Nullable
    public Pair<Goid, String> getAuditViewerAlias();

    @Cacheable(relevantArg=0, maxAge=5000)
    @NotNull
    public KeyManager[] getSslKeyManagers();

    @Cacheable(relevantArg=0, maxAge=5000)
    @NotNull
    public KeyManager[] getServerSslKeyManagers();

    @Cacheable(relevantArg=0, maxAge=5000)
    @NotNull
    public KeyManager[] getClientSslKeyManagers();

    @Cacheable(relevantArg=0, maxAge=10000)
    @NotNull
    public SsgKeyEntry lookupKeyByKeyAlias(Pair<String, Goid> var1) throws FindException, KeyStoreException, IOException;
}

