331 lines
14 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
javax.crypto
</div>
<h2 class="title" title="Class MacSpi">Class MacSpi</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>javax.crypto.MacSpi</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public abstract class <span class="typeNameLabel">MacSpi</span>
extends <a href="../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<span>这个类定义的 <span>SPI</span> <code>Mac</code>类。</span>
<span>该类中的所有抽象方法必须由希望提供特定MAC算法的实现的每个加密服务提供商来实现。</span>
<p> <span>实现可以实现Cloneable接口。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.4
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../javax/crypto/MacSpi.html#MacSpi--">MacSpi</a></span>()</code> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="../../java/lang/Object.html" title="class in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/MacSpi.html#clone--">clone</a></span>()</code>
<div class="block">
如果实现是可克隆的,则返回克隆。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>protected abstract byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/MacSpi.html#engineDoFinal--">engineDoFinal</a></span>()</code>
<div class="block">
完成MAC计算并重置MAC进一步使用维护MAC初始化的秘密密钥。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>protected abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/MacSpi.html#engineGetMacLength--">engineGetMacLength</a></span>()</code>
<div class="block">
以字节为单位返回MAC的长度。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/MacSpi.html#engineInit-java.security.Key-java.security.spec.AlgorithmParameterSpec-">engineInit</a></span>(<a href="../../java/security/Key.html" title="interface in java.security">Key</a> key, <a href="../../java/security/spec/AlgorithmParameterSpec.html" title="interface in java.security.spec">AlgorithmParameterSpec</a> params)</code>
<div class="block">
用给定秘密密钥和算法参数初始化MAC。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/MacSpi.html#engineReset--">engineReset</a></span>()</code>
<div class="block">
重置MAC进一步使用维护MAC初始化的秘密密钥。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/MacSpi.html#engineUpdate-byte-">engineUpdate</a></span>(byte input)</code>
<div class="block">
处理给定的字节。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/MacSpi.html#engineUpdate-byte:A-int-int-">engineUpdate</a></span>(byte[] input, int offset, int len)</code>
<div class="block">
处理第一
<code>len</code>字节
<code>input</code> ,起始于
<code>offset</code>以下。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/MacSpi.html#engineUpdate-java.nio.ByteBuffer-">engineUpdate</a></span>(<a href="../../java/nio/ByteBuffer.html" title="class in java.nio">ByteBuffer</a> input)</code>
<div class="block">
处理
<code>input.remaining()</code>字节的ByteBuffer
<code>input</code> ,从
<code>input.position()</code>开始。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../java/lang/Object.html#notify--">notify</a>, <a href="../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../java/lang/Object.html#toString--">toString</a>, <a href="../../java/lang/Object.html#wait--">wait</a>, <a href="../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="MacSpi--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>MacSpi</h4> <pre>public MacSpi()</pre> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="engineGetMacLength--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>engineGetMacLength</h4> <pre>protected abstract int engineGetMacLength()</pre>
<div class="block">
以字节为单位返回MAC的长度。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
MAC长度以字节为单位
</dd>
</dl> </li>
</ul> <a name="engineInit-java.security.Key-java.security.spec.AlgorithmParameterSpec-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>engineInit</h4> <pre>protected abstract void engineInit(<a href="../../java/security/Key.html" title="interface in java.security">Key</a> key,
<a href="../../java/security/spec/AlgorithmParameterSpec.html" title="interface in java.security.spec">AlgorithmParameterSpec</a> params)
throws <a href="../../java/security/InvalidKeyException.html" title="class in java.security">InvalidKeyException</a>,
<a href="../../java/security/InvalidAlgorithmParameterException.html" title="class in java.security">InvalidAlgorithmParameterException</a></pre>
<div class="block">
用给定秘密密钥和算法参数初始化MAC。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>key</code> - (秘密)键。
</dd>
<dd>
<code>params</code> - 算法参数。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/security/InvalidKeyException.html" title="class in java.security">InvalidKeyException</a></code> - 如果给定的密钥不适合初始化该MAC。
</dd>
<dd>
<code><a href="../../java/security/InvalidAlgorithmParameterException.html" title="class in java.security">InvalidAlgorithmParameterException</a></code> - 如果给定的算法参数不适合该MAC。
</dd>
</dl> </li>
</ul> <a name="engineUpdate-byte-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>engineUpdate</h4> <pre>protected abstract void engineUpdate(byte input)</pre>
<div class="block">
处理给定的字节。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>input</code> - 要处理的输入字节。
</dd>
</dl> </li>
</ul> <a name="engineUpdate-byte:A-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>engineUpdate</h4> <pre>protected abstract void engineUpdate(byte[] input,
int offset,
int len)</pre>
<div class="block">
处理第一
<code>len</code>字节
<code>input</code> ,起始于
<code>offset</code>以下。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>input</code> - 输入缓冲区。
</dd>
<dd>
<code>offset</code> -
<code>input</code>中输入开始的偏移量。
</dd>
<dd>
<code>len</code> - 要处理的字节数。
</dd>
</dl> </li>
</ul> <a name="engineUpdate-java.nio.ByteBuffer-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>engineUpdate</h4> <pre>protected void engineUpdate(<a href="../../java/nio/ByteBuffer.html" title="class in java.nio">ByteBuffer</a> input)</pre>
<div class="block">
<span>处理<code>input.remaining()</code>字节的ByteBuffer <code>input</code> ,从<code>input.position()</code>开始。</span>
<span>返回时,缓冲区的位置将等于其限制;</span>
<span>其限制将不会改变。</span>
<p> <span>子类应该考虑覆盖此方法如果它们可以比字节数组更有效地处理ByteBuffers。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>input</code> - ByteBuffer
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.5
</dd>
</dl> </li>
</ul> <a name="engineDoFinal--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>engineDoFinal</h4> <pre>protected abstract byte[] engineDoFinal()</pre>
<div class="block">
完成MAC计算并重置MAC进一步使用维护MAC初始化的秘密密钥。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
MAC结果。
</dd>
</dl> </li>
</ul> <a name="engineReset--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>engineReset</h4> <pre>protected abstract void engineReset()</pre>
<div class="block">
重置MAC进一步使用维护MAC初始化的秘密密钥。
</div> </li>
</ul> <a name="clone--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>clone</h4> <pre>public <a href="../../java/lang/Object.html" title="class in java.lang">Object</a> clone()
throws <a href="../../java/lang/CloneNotSupportedException.html" title="class in java.lang">CloneNotSupportedException</a></pre>
<div class="block">
如果实现是可克隆的,则返回克隆。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../java/lang/Object.html#clone--">clone</a></code>
<code><a href="../../java/lang/Object.html" title="class in java.lang">Object</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个克隆,如果实现是可克隆的。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/CloneNotSupportedException.html" title="class in java.lang">CloneNotSupportedException</a></code> - 如果这个调用不支持
<code>Cloneable</code>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../java/lang/Cloneable.html" title="java.lang中的接口"><code>Cloneable</code></a></span>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>