亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? signature.java

?? gcc的組建
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* Signature.java --- Signature Class   Copyright (C) 1999, 2002, 2003, 2004  Free Software Foundation, Inc.This file is part of GNU Classpath.GNU Classpath is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.GNU Classpath is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Classpath; see the file COPYING.  If not, write to theFree Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA02110-1301 USA.Linking this library statically or dynamically with other modules ismaking a combined work based on this library.  Thus, the terms andconditions of the GNU General Public License cover the wholecombination.As a special exception, the copyright holders of this library give youpermission to link this library with independent modules to produce anexecutable, regardless of the license terms of these independentmodules, and to copy and distribute the resulting executable underterms of your choice, provided that you also meet, for each linkedindependent module, the terms and conditions of the license of thatmodule.  An independent module is a module which is not derived fromor based on this library.  If you modify this library, you may extendthis exception to your version of the library, but you are notobligated to do so.  If you do not wish to do so, delete thisexception statement from your version. */package java.security;import gnu.java.security.Engine;import java.security.cert.Certificate;import java.security.cert.X509Certificate;import java.security.spec.AlgorithmParameterSpec;/** * <p>This <code>Signature</code> class is used to provide applications the * functionality of a digital signature algorithm. Digital signatures are used * for authentication and integrity assurance of digital data.</p> * * <p>The signature algorithm can be, among others, the NIST standard <i>DSS</i>, * using <i>DSA</i> and <i>SHA-1</i>. The <i>DSA</i> algorithm using the * <i>SHA-1</i> message digest algorithm can be specified as <code>SHA1withDSA * </code>. In the case of <i>RSA</i>, there are multiple choices for the * message digest algorithm, so the signing algorithm could be specified as, for * example, <code>MD2withRSA</code>, <code>MD5withRSA</code>, or * <code>SHA1withRSA</code>. The algorithm name must be specified, as there is * no default.</p> * * <p>Like other algorithm-based classes in Java Security, <code>Signature</code> * provides implementation-independent algorithms, whereby a caller (application * code) requests a particular signature algorithm and is handed back a properly * initialized <code>Signature</code> object. It is also possible, if desired, * to request a particular algorithm from a particular provider. See the * <code>getInstance()</code> methods.</p> * * <p>Thus, there are two ways to request a <code>Signature</code> algorithm * object: by specifying either just an algorithm name, or both an algorithm * name and a package provider.</p> * * <p>If just an algorithm name is specified, the system will determine if there * is an implementation of the algorithm requested available in the environment, * and if there is more than one, if there is a preferred one.</p> * * <p>If both an algorithm name and a package provider are specified, the system * will determine if there is an implementation of the algorithm in the package * requested, and throw an exception if there is not.</p> * * <p>A <code>Signature</code> object can be used to generate and verify digital * signatures.</p> * * <p>There are three phases to the use of a <code>Signature</code> object for * either signing data or verifying a signature:</p> * * <ol> * <li>Initialization, with either *     <ul> *     <li>a public key, which initializes the signature for verification *         (see <code>initVerify()</code>), or</li> *     <li>a private key (and optionally a Secure Random Number Generator), *         which initializes the signature for signing (see *         {@link #initSign(PrivateKey)} and {@link #initSign(PrivateKey, SecureRandom)} *         ).</li> *     </ul></li> * <li>Updating<br/> *     Depending on the type of initialization, this will update the bytes to *     be signed or verified. See the update methods.<br/></li> * <li>Signing or Verifying a signature on all updated bytes. See the *     <code>sign()</code> methods and the <code>verify()</code> method.</li> *  </ol> * * <p>Note that this class is abstract and extends from {@link SignatureSpi} for * historical reasons. Application developers should only take notice of the * methods defined in this <code>Signature</code> class; all the methods in the * superclass are intended for cryptographic service providers who wish to * supply their own implementations of digital signature algorithms. * * @author Mark Benvenuto  (ivymccough@worldnet.att.net) */public abstract class Signature extends SignatureSpi{  /** Service name for signatures. */  private static final String SIGNATURE = "Signature";  /**   * Possible <code>state</code> value, signifying that this signature object   * has not yet been initialized.   */  protected static final int UNINITIALIZED = 0;  // Constructor.  // ------------------------------------------------------------------------  /**   * Possible <code>state</code> value, signifying that this signature object   * has been initialized for signing.   */  protected static final int SIGN = 2;  /**   * Possible <code>state</code> value, signifying that this signature object   * has been initialized for verification.   */  protected static final int VERIFY = 3;  /** Current state of this signature object. */  protected int state = UNINITIALIZED;  private String algorithm;  Provider provider;  /**   * Creates a <code>Signature</code> object for the specified algorithm.   *   * @param algorithm the standard string name of the algorithm. See Appendix A   * in the Java Cryptography Architecture API Specification &amp; Reference for   * information about standard algorithm names.   */  protected Signature(String algorithm)  {    this.algorithm = algorithm;    state = UNINITIALIZED;  }  /**   * Generates a <code>Signature</code> object that implements the specified   * digest algorithm. If the default provider package provides an   * implementation of the requested digest algorithm, an instance of   * <code>Signature</code> containing that implementation is returned. If the   * algorithm is not available in the default package, other packages are   * searched.   *   * @param algorithm the standard name of the algorithm requested. See Appendix   * A in the Java Cryptography Architecture API Specification &amp; Reference   * for information about standard algorithm names.   * @return the new Signature object.   * @throws NoSuchAlgorithmException if the algorithm is not available in the   * environment.   */  public static Signature getInstance(String algorithm)    throws NoSuchAlgorithmException  {    Provider[] p = Security.getProviders();    for (int i = 0; i < p.length; i++)      {        try          {            return getInstance(algorithm, p[i]);          }	catch (NoSuchAlgorithmException e)	  {	    // Ignored.	  }      }    throw new NoSuchAlgorithmException(algorithm);  }  /**   * Generates a <code>Signature</code> object implementing the specified   * algorithm, as supplied from the specified provider, if such an algorithm   * is available from the provider.   *   * @param algorithm the name of the algorithm requested. See Appendix A in   * the Java Cryptography Architecture API Specification &amp; Reference for   * information about standard algorithm names.   * @param provider the name of the provider.   * @return the new <code>Signature</code> object.   * @throws NoSuchAlgorithmException if the algorithm is not available in the   * package supplied by the requested provider.   * @throws NoSuchProviderException if the provider is not available in the   * environment.   * @throws IllegalArgumentException if the provider name is <code>null</code>   * or empty.   * @see Provider   */  public static Signature getInstance(String algorithm, String provider)    throws NoSuchAlgorithmException, NoSuchProviderException  {    if (provider == null || provider.length() == 0)      throw new IllegalArgumentException("Illegal provider");    Provider p = Security.getProvider(provider);    if (p == null)      throw new NoSuchProviderException(provider);    return getInstance(algorithm, p);  }  /**   * Generates a <code>Signature</code> object implementing the specified   * algorithm, as supplied from the specified provider, if such an algorithm   * is available from the provider. Note: the provider doesn't have to be   * registered.   *   * @param algorithm the name of the algorithm requested. See Appendix A in   * the Java Cryptography Architecture API Specification &amp; Reference for   * information about standard algorithm names.   * @param provider the provider.   * @return the new <code>Signature</code> object.   * @throws NoSuchAlgorithmException if the <code>algorithm</code> is not   * available in the package supplied by the requested <code>provider</code>.   * @throws IllegalArgumentException if the <code>provider</code> is   * <code>null</code>.   * @since 1.4   * @see Provider   */  public static Signature getInstance(String algorithm, Provider provider)    throws NoSuchAlgorithmException  {    if (provider == null)      throw new IllegalArgumentException("Illegal provider");    Signature result = null;    Object o = null;    try      {        o = Engine.getInstance(SIGNATURE, algorithm, provider);      }    catch (java.lang.reflect.InvocationTargetException ite)      {        throw new NoSuchAlgorithmException(algorithm);      }    if (o instanceof SignatureSpi)      {        result = new DummySignature((SignatureSpi) o, algorithm);      }    else if (o instanceof Signature)      {        result = (Signature) o;        result.algorithm = algorithm;      }    else      {        throw new NoSuchAlgorithmException(algorithm);      }    result.provider = provider;    return result;  }  /**   * Returns the provider of this signature object.   *   * @return the provider of this signature object.   */  public final Provider getProvider()  {    return provider;  }  /**   * Initializes this object for verification. If this method is called again   * with a different argument, it negates the effect of this call.   *   * @param publicKey the public key of the identity whose signature is going   * to be verified.   * @throws InvalidKeyException if the key is invalid.   */  public final void initVerify(PublicKey publicKey) throws InvalidKeyException  {    state = VERIFY;    engineInitVerify(publicKey);  }  /**   * <p>Initializes this object for verification, using the public key from the   * given certificate.</p>   *   * <p>If the certificate is of type <i>X.509</i> and has a <i>key usage</i>   * extension field marked as <i>critical</i>, and the value of the <i>key   * usage</i> extension field implies that the public key in the certificate   * and its corresponding private key are not supposed to be used for digital   * signatures, an {@link InvalidKeyException} is thrown.</p>   *   * @param certificate the certificate of the identity whose signature is   * going to be verified.   * @throws InvalidKeyException if the public key in the certificate is not   * encoded properly or does not include required parameter information or   * cannot be used for digital signature purposes.   */  public final void initVerify(Certificate certificate)    throws InvalidKeyException  {    state = VERIFY;    if (certificate.getType().equals("X509"))      {        X509Certificate cert = (X509Certificate) certificate;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜激情在线| 麻豆视频观看网址久久| 成人av影视在线观看| 国产精品私房写真福利视频| 国产福利一区二区三区视频在线| 久久久国产午夜精品 | 日韩精品在线看片z| 九九在线精品视频| 欧美国产日韩在线观看| 91麻豆.com| 天堂午夜影视日韩欧美一区二区| 欧美一区二区三区在线观看| 国产一区二区三区精品视频| 国产精品国产精品国产专区不片| 日本国产一区二区| 免费高清在线视频一区·| 久久久久久免费毛片精品| 不卡的av在线播放| 日韩二区三区在线观看| 国产欧美日韩在线| 在线观看不卡视频| 国内久久精品视频| 亚洲人精品午夜| 日韩欧美国产一区二区在线播放| 国产成人精品三级| 午夜免费久久看| 国产女同性恋一区二区| 欧美日韩二区三区| 国产精品1区二区.| 午夜伊人狠狠久久| 欧美激情在线看| 欧美电影一区二区| 成人自拍视频在线观看| 日韩影院在线观看| 亚洲日本电影在线| 精品国精品国产| 欧美性淫爽ww久久久久无| 国产成人综合亚洲91猫咪| 亚洲图片欧美综合| 中文字幕高清一区| 欧美一二三区在线| 色一情一乱一乱一91av| 国产精品99久久不卡二区| 天堂av在线一区| 亚洲欧美一区二区久久| 久久久91精品国产一区二区三区| 欧美性xxxxxx少妇| 99国产精品国产精品久久| 美女精品自拍一二三四| 亚洲444eee在线观看| 国产精品成人午夜| 久久久久久久久久久99999| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 69堂国产成人免费视频| 成人av网站在线| 国产精品夜夜嗨| 美脚の诱脚舐め脚责91 | 日韩黄色在线观看| 一区二区三区四区在线免费观看| 2024国产精品| 欧美一级专区免费大片| 欧美精品乱码久久久久久| 在线看一区二区| 91亚洲男人天堂| 不卡欧美aaaaa| 成人深夜福利app| 国产精品一区二区你懂的| 久久99精品网久久| 麻豆专区一区二区三区四区五区| 丝袜美腿亚洲一区| 婷婷国产在线综合| 爽好多水快深点欧美视频| 亚洲国产日韩a在线播放| 亚洲一区二区三区四区在线 | 亚洲福利视频导航| 亚洲综合一区在线| 亚洲国产精品麻豆| 五月婷婷综合网| 天堂在线一区二区| 日本免费在线视频不卡一不卡二| 日韩精品乱码av一区二区| 天堂va蜜桃一区二区三区漫画版| 日韩精品一卡二卡三卡四卡无卡| 天天色综合天天| 美女高潮久久久| 国产乱对白刺激视频不卡| 风间由美中文字幕在线看视频国产欧美| 国产一区 二区 三区一级| 国产成人精品免费在线| 99综合影院在线| 91黄色免费版| 9191精品国产综合久久久久久 | 久久综合色8888| 国产午夜精品久久久久久免费视 | 日韩区在线观看| 久久久亚洲午夜电影| 国产精品久久午夜| 亚洲国产日韩一级| 久久国内精品自在自线400部| 国产在线精品一区二区三区不卡| 国产成人av电影在线| 91一区二区三区在线观看| 欧美日韩国产综合草草| 精品国产一区久久| 日韩理论片在线| 午夜精品福利一区二区蜜股av| 久草精品在线观看| jlzzjlzz国产精品久久| 欧美色爱综合网| ww久久中文字幕| 亚洲精选视频免费看| 免费成人美女在线观看.| 成人亚洲精品久久久久软件| 欧美午夜精品久久久久久超碰| 日韩女优av电影在线观看| 成人欧美一区二区三区视频网页| 亚洲成人一区在线| 丁香婷婷综合网| 欧美片在线播放| 国产精品美女久久久久aⅴ国产馆| 亚洲国产精品欧美一二99| 国产精品18久久久久| 欧美亚洲图片小说| 国产欧美一区二区在线| 婷婷综合五月天| 丁香网亚洲国际| 日韩一卡二卡三卡四卡| 亚洲欧洲日韩一区二区三区| 蜜桃视频在线一区| 在线免费观看日本欧美| 国产亚洲成年网址在线观看| 午夜国产不卡在线观看视频| 成人av动漫网站| 亚洲精品一区二区三区精华液| 洋洋成人永久网站入口| 丁香激情综合国产| 欧美成人激情免费网| 亚洲午夜在线电影| 成人国产一区二区三区精品| 日韩欧美第一区| 亚洲国产欧美日韩另类综合| av成人老司机| 精品国产露脸精彩对白| 日韩高清一区二区| 色综合色综合色综合色综合色综合| 久久综合999| 日精品一区二区三区| 91麻豆国产福利在线观看| 欧美国产1区2区| 国产精品66部| 精品成人私密视频| 日日噜噜夜夜狠狠视频欧美人| 色狠狠色噜噜噜综合网| 国产精品日韩精品欧美在线| 国产一区二区91| 亚洲精品一区二区三区四区高清 | 亚洲午夜久久久久中文字幕久| 成人激情综合网站| 中文字幕第一页久久| 国产专区综合网| 亚洲国产精品欧美一二99| 成人av在线播放网址| 中文字幕欧美三区| 成人精品一区二区三区中文字幕| wwwwww.欧美系列| 国产在线国偷精品免费看| 欧美大片顶级少妇| 狠狠色狠狠色综合系列| 精品国产凹凸成av人导航| 黄一区二区三区| 久久色中文字幕| 粉嫩一区二区三区在线看| 欧美国产乱子伦| 99re这里都是精品| 一区二区三区在线视频免费| 欧美色成人综合| 日韩在线一区二区| 精品999在线播放| 国产精品亚洲一区二区三区妖精 | 国产精品高潮呻吟| 91麻豆免费在线观看| 亚洲午夜影视影院在线观看| 欧美天堂亚洲电影院在线播放| 天堂精品中文字幕在线| 日韩三区在线观看| 高清日韩电视剧大全免费| 国产精品高潮久久久久无| 欧美无乱码久久久免费午夜一区| 午夜精彩视频在线观看不卡| 精品国产污网站| 成人性生交大片免费看视频在线 | 久久伊人中文字幕| 成人网男人的天堂| 夜夜嗨av一区二区三区四季av| 91麻豆精品国产91久久久久久| 国产乱一区二区| 亚洲男帅同性gay1069| 91精品国产手机| 国产成人免费在线观看不卡| 亚洲激情六月丁香|