publickeystore.java
来自「This is a resource based on j2me embedde」· Java 代码 · 共 179 行
JAVA
179 行
/* * * * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */package com.sun.midp.publickeystore;import java.io.*;import java.util.*;/** * A read-only public keystore for use with MIDP. */public class PublicKeyStore { /** Holds the all the keys as {@link PublicKeyInfo} objects. */ private Vector keyList = null; /** * Constructor for subclasses. */ protected PublicKeyStore() { } /** * Constructs a read-only keystore from a serialized keystore created * by {@link PublicKeyStoreBuilder}. * @param in stream to read a keystore serialized by * {@link PublicKeyStoreBuilder#serialize(OutputStream)} from * @exception IOException if the key storage was corrupted */ public PublicKeyStore(InputStream in) throws IOException { initPublicKeyStore(in, new Vector()); } /** * Constructs a read-only keystore from a serialized keystore created * by {@link PublicKeyStoreBuilder}. * @param in stream to read a keystore serialized by * {@link PublicKeyStoreBuilder#serialize(OutputStream)} from * @param sharedKeyList key list of a subclass * @exception IOException if the key storage was corrupted */ public PublicKeyStore(InputStream in, Vector sharedKeyList) throws IOException { initPublicKeyStore(in, sharedKeyList); } /** * Lets this class work with a writeable key list of a subclass. * This is needed because we cannot make the key list in this * class protected for security reasons. This method will only * work if the PublicKeyStore has not been initialized. * @param sharedKeyList key list of a subclass */ protected void initPublicKeyStore(Vector sharedKeyList) { if (keyList != null) { return; } keyList = sharedKeyList; } /** * Lets this class work with a writeable key list of a subclass and * initialized that key list from a serialized key list. * This is needed because we cannot make the key list in this * class protected for security reasons. This method will only * work if the PublicKeyStore has not been initialized. * @param sharedKeyList key list of a subclass * @param in stream to read the serialized keystore * @exception IOException if the key storage was corrupted */ protected void initPublicKeyStore(InputStream in, Vector sharedKeyList) throws IOException { InputStorage storage = new InputStorage(in); PublicKeyInfo keyInfo; if (keyList != null) { return; } keyList = sharedKeyList; for (;;) { keyInfo = PublicKeyInfo.getKeyFromStorage(storage); if (keyInfo == null) return; keyList.addElement(keyInfo); } } /** * Gets a by number from the keystore. 0 is the first key. * * @param number number of key * * @return public key information of the key * * @exception ArrayIndexOutOfBoundsException if an invalid number was * given. */ public synchronized PublicKeyInfo getKey(int number) { return (PublicKeyInfo)keyList.elementAt(number); } /** * Finds a CAs Public keys based on the distinguished name. * * @param owner distinguished name of keys' owner * @return public key information of the keys */ public synchronized Vector findKeys(String owner) { PublicKeyInfo keyInfo; Vector keys = null; for (int i = 0; i < keyList.size(); i++) { keyInfo = (PublicKeyInfo)keyList.elementAt(i); if (keyInfo.getOwner().compareTo(owner) == 0) { if (keys == null) { keys = new Vector(); } keys.addElement(keyInfo); } } return keys; } /** * Returns all CAs Public keys. * * @return public key information of the keys */ public synchronized Vector getKeys() { Object keyInfo; Vector keys; keys = new Vector(keyList.size()); for (int i = 0; i < keyList.size(); i++) { keyInfo = keyList.elementAt(i); keys.addElement(keyInfo); } return keys; } /** * Gets the number of keys in the store. * @return number of keys in the keystore */ public synchronized int numberOfKeys() { return keyList.size(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?