class com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream extends java.io.OutputStream
{
private com.alibaba.com.caucho.hessian.io.Hessian2Output _out;
private java.io.OutputStream _bodyOut;
private javax.crypto.Mac _mac;
final com.alibaba.com.caucho.hessian.security.X509Signature this$0;
void <init>(com.alibaba.com.caucho.hessian.security.X509Signature, com.alibaba.com.caucho.hessian.io.Hessian2Output) throws java.io.IOException
{
java.security.cert.X509Certificate v;
byte[] v, v, v;
javax.crypto.KeyGenerator v;
com.alibaba.com.caucho.hessian.io.Hessian2Output v, v, v, v, v, v, v, v, v, v, v, v;
java.security.SecureRandom v, v;
javax.crypto.Mac v, v;
java.lang.Exception v;
java.security.PrivateKey v, v;
javax.crypto.SecretKey v;
java.security.MessageDigest v;
com.alibaba.com.caucho.hessian.security.X509Signature v;
javax.crypto.Cipher v;
com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream v;
java.lang.String v, v, v, v, v;
java.io.OutputStream v;
java.io.IOException v;
java.security.PublicKey v;
java.lang.RuntimeException v, v;
java.lang.Class v;
v := @this: com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream;
v := @parameter: com.alibaba.com.caucho.hessian.security.X509Signature;
v := @parameter: com.alibaba.com.caucho.hessian.io.Hessian2Output;
v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.security.X509Signature this$0> = v;
specialinvoke v.<java.io.OutputStream: void <init>()>();
label:
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature: java.lang.String _algorithm>;
v = staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature: java.security.SecureRandom _secureRandom>;
if v == null goto label;
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature: java.security.SecureRandom _secureRandom>;
virtualinvoke v.<javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>(v);
label:
v = virtualinvoke v.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();
v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out> = v;
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
v = class "Lcom/alibaba/com/caucho/hessian/security/X509Signature;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void startEnvelope(java.lang.String)>(v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature: java.security.cert.X509Certificate _cert>;
v = virtualinvoke v.<java.security.cert.X509Certificate: java.security.PublicKey getPublicKey()>();
v = interfaceinvoke v.<java.security.PublicKey: byte[] getEncoded()>();
v = staticinvoke <java.security.MessageDigest: java.security.MessageDigest getInstance(java.lang.String)>("SHA1");
virtualinvoke v.<java.security.MessageDigest: void update(byte[])>(v);
v = virtualinvoke v.<java.security.MessageDigest: byte[] digest()>();
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature: java.security.PrivateKey _privateKey>;
v = interfaceinvoke v.<java.security.PrivateKey: java.lang.String getAlgorithm()>();
v = staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature: java.security.PrivateKey _privateKey>;
virtualinvoke v.<javax.crypto.Cipher: void init(int,java.security.Key)>(3, v);
v = virtualinvoke v.<javax.crypto.Cipher: byte[] wrap(java.security.Key)>(v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeInt(int)>(4);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeString(java.lang.String)>("algorithm");
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature: java.lang.String _algorithm>;
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeString(java.lang.String)>(v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeString(java.lang.String)>("fingerprint");
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeBytes(byte[])>(v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeString(java.lang.String)>("key-algorithm");
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeString(java.lang.String)>(v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeString(java.lang.String)>("key");
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeBytes(byte[])>(v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature: java.lang.String _algorithm>;
v = staticinvoke <javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String)>(v);
v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: javax.crypto.Mac _mac> = v;
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: javax.crypto.Mac _mac>;
virtualinvoke v.<javax.crypto.Mac: void init(java.security.Key)>(v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
v = virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: java.io.OutputStream getBytesOutputStream()>();
v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: java.io.OutputStream _bodyOut> = v;
label:
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.RuntimeException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.Exception from label to label with label;
}
public void write(int) throws java.io.IOException
{
java.io.OutputStream v;
int v;
com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream v;
javax.crypto.Mac v;
v := @this: com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream;
v := @parameter: int;
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: java.io.OutputStream _bodyOut>;
virtualinvoke v.<java.io.OutputStream: void write(int)>(v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: javax.crypto.Mac _mac>;
virtualinvoke v.<javax.crypto.Mac: void update(byte)>(v);
return;
}
public void write(byte[], int, int) throws java.io.IOException
{
java.io.OutputStream v;
byte[] v;
int v, v;
com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream v;
javax.crypto.Mac v;
v := @this: com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: java.io.OutputStream _bodyOut>;
virtualinvoke v.<java.io.OutputStream: void write(byte[],int,int)>(v, v, v);
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: javax.crypto.Mac _mac>;
virtualinvoke v.<javax.crypto.Mac: void update(byte[],int,int)>(v, v, v);
return;
}
public void close() throws java.io.IOException
{
java.io.OutputStream v;
byte[] v;
com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream v;
javax.crypto.Mac v;
com.alibaba.com.caucho.hessian.io.Hessian2Output v;
v := @this: com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream;
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out>;
v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: com.alibaba.com.caucho.hessian.io.Hessian2Output _out> = null;
if v != null goto label;
return;
label:
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: java.io.OutputStream _bodyOut>;
virtualinvoke v.<java.io.OutputStream: void close()>();
v = v.<com.alibaba.com.caucho.hessian.security.X509Signature$SignatureOutputStream: javax.crypto.Mac _mac>;
v = virtualinvoke v.<javax.crypto.Mac: byte[] doFinal()>();
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeInt(int)>(1);
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeString(java.lang.String)>("signature");
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void writeBytes(byte[])>(v);
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void completeEnvelope()>();
virtualinvoke v.<com.alibaba.com.caucho.hessian.io.Hessian2Output: void close()>();
return;
}
}