public abstract class oadd.org.apache.hadoop.security.token.SecretManager extends java.lang.Object
{
private static final java.lang.String DEFAULT_HMAC_ALGORITHM;
private static final int KEY_LENGTH;
private static final java.lang.ThreadLocal threadLocalMac;
private final javax.crypto.KeyGenerator keyGen;
public void <init>()
{
oadd.org.apache.hadoop.security.token.SecretManager v;
java.security.NoSuchAlgorithmException v;
java.lang.IllegalArgumentException v;
javax.crypto.KeyGenerator v, v;
v := @this: oadd.org.apache.hadoop.security.token.SecretManager;
specialinvoke v.<java.lang.Object: void <init>()>();
label:
v = staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("HmacSHA1");
v.<oadd.org.apache.hadoop.security.token.SecretManager: javax.crypto.KeyGenerator keyGen> = v;
v = v.<oadd.org.apache.hadoop.security.token.SecretManager: javax.crypto.KeyGenerator keyGen>;
virtualinvoke v.<javax.crypto.KeyGenerator: void init(int)>(64);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Can\'t find HmacSHA1 algorithm.");
throw v;
label:
return;
catch java.security.NoSuchAlgorithmException from label to label with label;
}
protected abstract byte[] createPassword(oadd.org.apache.hadoop.security.token.TokenIdentifier);
public abstract byte[] retrievePassword(oadd.org.apache.hadoop.security.token.TokenIdentifier) throws oadd.org.apache.hadoop.security.token.SecretManager$InvalidToken;
public byte[] retriableRetrievePassword(oadd.org.apache.hadoop.security.token.TokenIdentifier) throws oadd.org.apache.hadoop.security.token.SecretManager$InvalidToken, oadd.org.apache.hadoop.ipc.StandbyException, oadd.org.apache.hadoop.ipc.RetriableException, java.io.IOException
{
byte[] v;
oadd.org.apache.hadoop.security.token.SecretManager v;
oadd.org.apache.hadoop.security.token.TokenIdentifier v;
v := @this: oadd.org.apache.hadoop.security.token.SecretManager;
v := @parameter: oadd.org.apache.hadoop.security.token.TokenIdentifier;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.token.SecretManager: byte[] retrievePassword(oadd.org.apache.hadoop.security.token.TokenIdentifier)>(v);
return v;
}
public abstract oadd.org.apache.hadoop.security.token.TokenIdentifier createIdentifier();
public void checkAvailableForRead() throws oadd.org.apache.hadoop.ipc.StandbyException
{
oadd.org.apache.hadoop.security.token.SecretManager v;
v := @this: oadd.org.apache.hadoop.security.token.SecretManager;
return;
}
protected javax.crypto.SecretKey generateSecret()
{
java.lang.Throwable v;
oadd.org.apache.hadoop.security.token.SecretManager v;
javax.crypto.SecretKey v;
javax.crypto.KeyGenerator v, v;
v := @this: oadd.org.apache.hadoop.security.token.SecretManager;
v = v.<oadd.org.apache.hadoop.security.token.SecretManager: javax.crypto.KeyGenerator keyGen>;
entermonitor v;
label:
v = v.<oadd.org.apache.hadoop.security.token.SecretManager: javax.crypto.KeyGenerator keyGen>;
v = virtualinvoke v.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public static byte[] createPassword(byte[], javax.crypto.SecretKey)
{
byte[] v, v;
java.lang.ThreadLocal v;
java.lang.Object v;
java.security.InvalidKeyException v;
javax.crypto.SecretKey v;
java.lang.IllegalArgumentException v;
v := @parameter: byte[];
v := @parameter: javax.crypto.SecretKey;
v = <oadd.org.apache.hadoop.security.token.SecretManager: java.lang.ThreadLocal threadLocalMac>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
label:
virtualinvoke v.<javax.crypto.Mac: void init(java.security.Key)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String,java.lang.Throwable)>("Invalid key to HMAC computation", v);
throw v;
label:
v = virtualinvoke v.<javax.crypto.Mac: byte[] doFinal(byte[])>(v);
return v;
catch java.security.InvalidKeyException from label to label with label;
}
protected static javax.crypto.SecretKey createSecretKey(byte[])
{
byte[] v;
javax.crypto.spec.SecretKeySpec v;
v := @parameter: byte[];
v = new javax.crypto.spec.SecretKeySpec;
specialinvoke v.<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>(v, "HmacSHA1");
return v;
}
static void <clinit>()
{
oadd.org.apache.hadoop.security.token.SecretManager$1 v;
v = new oadd.org.apache.hadoop.security.token.SecretManager$1;
specialinvoke v.<oadd.org.apache.hadoop.security.token.SecretManager$1: void <init>()>();
<oadd.org.apache.hadoop.security.token.SecretManager: java.lang.ThreadLocal threadLocalMac> = v;
return;
}
}