📄 tstinfo.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: TSTInfo.java
package jit.timestamp;
import java.util.Date;
import jit.asn1.*;
import jit.asn1.x509.*;
import jit.asn1parser.Parser;
import jit.math.BigInteger;
// Referenced classes of package jit.timestamp:
// MessageImprint, Accuracy
public class TSTInfo
implements DEREncodable
{
private DERInteger version;
private DERObjectIdentifier policy;
private MessageImprint messageImprint;
private DERInteger serialNumber;
private DERGeneralizedTime genTime;
private Accuracy accuracy;
private DERBoolean ordering;
private DERInteger nonce;
private GeneralName tsa;
private X509Extensions extensions;
public TSTInfo()
{
version = null;
policy = null;
messageImprint = null;
serialNumber = null;
genTime = null;
accuracy = null;
ordering = null;
nonce = null;
tsa = null;
extensions = null;
}
public TSTInfo(byte tstInfo[])
throws Exception
{
version = null;
policy = null;
messageImprint = null;
serialNumber = null;
genTime = null;
accuracy = null;
ordering = null;
nonce = null;
tsa = null;
extensions = null;
ASN1Sequence seq = ASN1Sequence.getInstance(Parser.writeBytes2DERObj(tstInfo));
initValue(seq);
}
public TSTInfo(ASN1Sequence seq)
throws Exception
{
version = null;
policy = null;
messageImprint = null;
serialNumber = null;
genTime = null;
accuracy = null;
ordering = null;
nonce = null;
tsa = null;
extensions = null;
initValue(seq);
}
private void initValue(ASN1Sequence seq)
throws Exception
{
if(seq.size() < 5)
throw new Exception("wrong number of elements in the sequence");
version = DERInteger.getInstance(seq.getObjectAt(0));
if(version.getValue().intValue() != 1)
throw new Exception("construct TSTInfo error: wrong version");
policy = DERObjectIdentifier.getInstance(seq.getObjectAt(1));
ASN1Sequence seqMessageImprint = ASN1Sequence.getInstance(seq.getObjectAt(2));
messageImprint = new MessageImprint(seqMessageImprint);
serialNumber = DERInteger.getInstance(seq.getObjectAt(3));
genTime = DERGeneralizedTime.getInstance(seq.getObjectAt(4));
if(seq.size() > 5)
{
for(int i = 5; i < seq.size(); i++)
{
DEREncodable obj = seq.getObjectAt(i);
if(obj instanceof Accuracy)
{
accuracy = (Accuracy)obj;
continue;
}
if(obj instanceof DERBoolean)
{
ordering = DERBoolean.getInstance(obj);
continue;
}
if(obj instanceof DERInteger)
{
nonce = DERInteger.getInstance(obj);
continue;
}
if(obj instanceof ASN1TaggedObject)
{
int tag = ((ASN1TaggedObject)obj).getTagNo();
switch(tag)
{
case 0: // '\0'
tsa = GeneralName.getInstance((ASN1TaggedObject)obj, true);
break;
case 1: // '\001'
extensions = X509Extensions.getInstance((ASN1TaggedObject)obj, false);
break;
}
} else
{
throw new Exception("construct TSTInfo error: wrong type of elements in sequence");
}
}
}
}
public void setVersion(int version)
{
this.version = new DERInteger(1);
}
public int getVersion()
{
return version.getValue().intValue();
}
public void setPolicy(DERObjectIdentifier policy)
{
this.policy = policy;
}
public DERObjectIdentifier getPolicy()
{
return policy;
}
public void setMessageImprint(MessageImprint messageImprint)
{
this.messageImprint = messageImprint;
}
public MessageImprint getMessageImprint()
{
return messageImprint;
}
public void setSerialNumber(byte serialNumber[])
{
BigInteger bigSN = new BigInteger(serialNumber);
this.serialNumber = new DERInteger(bigSN);
}
public byte[] getSerialNumber()
{
BigInteger bigSN = serialNumber.getValue();
return bigSN.toByteArray();
}
public void setGenTime(Date genTime)
{
this.genTime = new DERGeneralizedTime(genTime);
}
public String getGenTime()
{
return genTime.getTime();
}
public void setAccuracy(Accuracy accuracy)
{
this.accuracy = accuracy;
}
public Accuracy getAccuracy()
{
if(accuracy != null)
return accuracy;
else
return null;
}
public void setOrdering(boolean ordering)
{
this.ordering = new DERBoolean(ordering);
}
public DERBoolean getOrdering()
{
if(ordering != null)
return ordering;
else
return null;
}
public void setNonce(byte nonce[])
{
BigInteger bigNonce = new BigInteger(nonce);
this.nonce = new DERInteger(bigNonce);
}
public byte[] getNonce()
{
if(nonce != null)
return nonce.getValue().toByteArray();
else
return null;
}
public void setTSAName(String tsaName)
throws Exception
{
if(tsaName == null || tsaName.length() == 0)
{
throw new Exception("tsaName must not be null");
} else
{
tsa = new GeneralName(new X509Name(tsaName));
return;
}
}
public GeneralName getTSAName()
{
return tsa;
}
public void setExtensions(X509Extensions extensions)
{
this.extensions = extensions;
}
public X509Extensions getExtensions()
{
return extensions;
}
public DERObject getDERObject()
{
ASN1EncodableVector v = new ASN1EncodableVector();
v.add(version);
v.add(policy);
v.add(messageImprint);
v.add(serialNumber);
v.add(genTime);
if(accuracy != null)
v.add(accuracy);
if(ordering != null)
v.add(ordering);
if(nonce != null)
v.add(nonce);
if(tsa != null)
v.add(new DERTaggedObject(0, tsa));
if(extensions != null)
v.add(new DERTaggedObject(false, 1, extensions));
return new DERSequence(v);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -