All Downloads are FREE. Search and download functionalities are using the official Maven repository.

java.security.Provider Maven / Gradle / Ivy

/*
 * Copyright 2016 Carlos Ballesteros Velasco
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package java.security;

import java.io.IOException;
import java.io.InputStream;
import java.util.*;

public abstract class Provider extends Properties {
    private String name;
    private String info;
    private double version;

    protected Provider(String name, double version, String info) {
        this.name = name;
        this.version = version;
        this.info = info;
    }

    public String getName() {
        return name;
    }

    public double getVersion() {
        return version;
    }

    public String getInfo() {
        return info;
    }

    public String toString() {
        return name + " version " + version;
    }

    @Override
    public native synchronized void clear();

    @Override
    public native synchronized void load(InputStream inStream) throws IOException;

    @Override
    native public synchronized void putAll(Map t);

    @Override
    public native synchronized Set> entrySet();

    @Override
    public native Set keySet();

    @Override
    public native Collection values();

    @Override
    public native synchronized Object put(Object key, Object value);

    @Override
    public native synchronized Object remove(Object key);

    @Override
    public native Object get(Object key);

    @Override
    public native Enumeration keys();

    @Override
    public native Enumeration elements();

    public native String getProperty(String key);

    public synchronized native Service getService(String type, String algorithm);

    public native synchronized Set getServices();

    protected native synchronized void putService(Service s);

    protected native synchronized void removeService(Service s);

    public static class Service {
        public Service(Provider provider, String type, String algorithm, String className, List aliases, Map attributes) {
        }

        public native final String getType();

        public native final String getAlgorithm();

        public native final Provider getProvider();

        public native final String getClassName();

        public native final String getAttribute(String name);

        public native Object newInstance(Object constructorParameter) throws NoSuchAlgorithmException;

        public native boolean supportsParameter(Object parameter);

        public native String toString();
    }
}