public class org.jruby.ext.digest.RubyDigest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ext.digest.RubyDigest
super_class: java.lang.Object
{
private static final java.util.Map<java.lang.String, java.security.MessageDigest> CLONEABLE_DIGESTS;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/security/MessageDigest;>;
private static final java.lang.String PROVIDER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "org.bouncycastle.jce.provider.BouncyCastleProvider"
private static java.security.Provider provider;
descriptor: Ljava/security/Provider;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final byte[] digits;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=0
0: new java.util.HashMap
dup
bipush 8
fconst_1
invokespecial java.util.HashMap.<init>:(IF)V
putstatic org.jruby.ext.digest.RubyDigest.CLONEABLE_DIGESTS:Ljava/util/Map;
1: bipush 6
anewarray java.lang.String
dup
iconst_0
ldc "MD2"
aastore
dup
iconst_1
ldc "MD5"
aastore
dup
iconst_2
ldc "SHA-1"
aastore
dup
iconst_3
ldc "SHA-256"
aastore
dup
iconst_4
ldc "SHA-384"
aastore
dup
iconst_5
ldc "SHA-512"
aastore
dup
astore 3
arraylength
istore 2
iconst_0
istore 1
goto 10
StackMap locals: top int int java.lang.String[]
StackMap stack:
2: aload 3
iload 1
aaload
astore 0
start local 0 3: aload 0
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 4
start local 4 4: aload 4
invokevirtual java.security.MessageDigest.clone:()Ljava/lang/Object;
pop
5: getstatic org.jruby.ext.digest.RubyDigest.CLONEABLE_DIGESTS:Ljava/util/Map;
aload 0
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 6: goto 9
7: StackMap locals: java.lang.String int int java.lang.String[]
StackMap stack: java.lang.Exception
astore 4
start local 4 8: invokestatic org.jruby.ext.digest.RubyDigest.logger:()Lorg/jruby/util/log/Logger;
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " not clonable"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokeinterface org.jruby.util.log.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 4 end local 0 9: StackMap locals: top int int java.lang.String[]
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
10: iload 1
iload 2
if_icmplt 2
11: aconst_null
putstatic org.jruby.ext.digest.RubyDigest.provider:Ljava/security/Provider;
12: bipush 36
newarray 8
dup
iconst_0
13: bipush 48
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 50
bastore
dup
iconst_3
bipush 51
bastore
dup
iconst_4
bipush 52
bastore
dup
iconst_5
bipush 53
bastore
dup
bipush 6
14: bipush 54
bastore
dup
bipush 7
bipush 55
bastore
dup
bipush 8
bipush 56
bastore
dup
bipush 9
bipush 57
bastore
dup
bipush 10
bipush 97
bastore
dup
bipush 11
bipush 98
bastore
dup
bipush 12
15: bipush 99
bastore
dup
bipush 13
bipush 100
bastore
dup
bipush 14
bipush 101
bastore
dup
bipush 15
bipush 102
bastore
dup
bipush 16
bipush 103
bastore
dup
bipush 17
bipush 104
bastore
dup
bipush 18
16: bipush 105
bastore
dup
bipush 19
bipush 106
bastore
dup
bipush 20
bipush 107
bastore
dup
bipush 21
bipush 108
bastore
dup
bipush 22
bipush 109
bastore
dup
bipush 23
bipush 110
bastore
dup
bipush 24
17: bipush 111
bastore
dup
bipush 25
bipush 112
bastore
dup
bipush 26
bipush 113
bastore
dup
bipush 27
bipush 114
bastore
dup
bipush 28
bipush 115
bastore
dup
bipush 29
bipush 116
bastore
dup
bipush 30
18: bipush 117
bastore
dup
bipush 31
bipush 118
bastore
dup
bipush 32
bipush 119
bastore
dup
bipush 33
bipush 120
bastore
dup
bipush 34
bipush 121
bastore
dup
bipush 35
bipush 122
bastore
19: putstatic org.jruby.ext.digest.RubyDigest.digits:[B
20: return
LocalVariableTable:
Start End Slot Name Signature
3 9 0 name Ljava/lang/String;
4 6 4 digest Ljava/security/MessageDigest;
8 9 4 e Ljava/lang/Exception;
Exception table:
from to target type
3 6 7 Class java.lang.Exception
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/digest/RubyDigest;
private static org.jruby.util.log.Logger logger();
descriptor: ()Lorg/jruby/util/log/Logger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/jruby/ext/digest/RubyDigest;
invokestatic org.jruby.util.log.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/jruby/util/log/Logger;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static void createDigest(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: ldc "org.bouncycastle.jce.provider.BouncyCastleProvider"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast java.security.Provider
putstatic org.jruby.ext.digest.RubyDigest.provider:Ljava/security/Provider;
1: goto 3
2: StackMap locals:
StackMap stack: java.lang.Throwable
pop
3: StackMap locals:
StackMap stack:
aload 0
ldc "Digest"
invokevirtual org.jruby.Ruby.defineModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
astore 1
start local 1 4: aload 1
ldc Lorg/jruby/ext/digest/RubyDigest;
invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
5: aload 1
ldc "Instance"
invokevirtual org.jruby.RubyModule.defineModuleUnder:(Ljava/lang/String;)Lorg/jruby/RubyModule;
astore 2
start local 2 6: aload 2
ldc Lorg/jruby/ext/digest/RubyDigest$DigestInstance;
invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
7: aload 1
ldc "Class"
aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
getstatic org.jruby.ext.digest.RubyDigest$DigestClass.DIGEST_CLASS_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 3
start local 3 8: aload 3
ldc Lorg/jruby/ext/digest/RubyDigest$DigestClass;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
9: aload 3
aload 2
invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
10: aload 1
ldc "Base"
aload 3
getstatic org.jruby.ext.digest.RubyDigest$DigestBase.DIGEST_BASE_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 4
start local 4 11: aload 4
ldc Lorg/jruby/ext/digest/RubyDigest$DigestBase;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
12: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 runtime Lorg/jruby/Ruby;
4 13 1 mDigest Lorg/jruby/RubyModule;
6 13 2 mDigestInstance Lorg/jruby/RubyModule;
8 13 3 cDigestClass Lorg/jruby/RubyClass;
11 13 4 cDigestBase Lorg/jruby/RubyClass;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
MethodParameters:
Name Flags
runtime
private static java.security.MessageDigest createMessageDigest(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/MessageDigest;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic org.jruby.ext.digest.RubyDigest.CLONEABLE_DIGESTS:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.MessageDigest
astore 1
start local 1 1: aload 1
ifnull 5
2: aload 1
invokevirtual java.security.MessageDigest.clone:()Ljava/lang/Object;
checkcast java.security.MessageDigest
3: areturn
4: StackMap locals: java.lang.String java.security.MessageDigest
StackMap stack: java.lang.CloneNotSupportedException
pop
5: StackMap locals:
StackMap stack:
getstatic org.jruby.ext.digest.RubyDigest.provider:Ljava/security/Provider;
ifnull 9
6: aload 0
getstatic org.jruby.ext.digest.RubyDigest.provider:Ljava/security/Provider;
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/MessageDigest;
7: areturn
8: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
pop
9: StackMap locals:
StackMap stack:
aload 0
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 name Ljava/lang/String;
1 10 1 cloneable Ljava/security/MessageDigest;
Exception table:
from to target type
2 3 4 Class java.lang.CloneNotSupportedException
6 7 8 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
name final
private static org.jruby.util.ByteList toHex(byte[]);
descriptor: ([B)Lorg/jruby/util/ByteList;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: new org.jruby.util.ByteList
dup
aload 0
arraylength
iconst_2
imul
invokespecial org.jruby.util.ByteList.<init>:(I)V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
arraylength
istore 3
start local 3 3: goto 8
4: StackMap locals: org.jruby.util.ByteList int int
StackMap stack:
aload 0
iload 2
baload
sipush 255
iand
istore 4
start local 4 5: aload 1
getstatic org.jruby.ext.digest.RubyDigest.digits:[B
iload 4
iconst_4
ishr
baload
invokevirtual org.jruby.util.ByteList.append:(B)Lorg/jruby/util/ByteList;
pop
6: aload 1
getstatic org.jruby.ext.digest.RubyDigest.digits:[B
iload 4
bipush 15
iand
baload
invokevirtual org.jruby.util.ByteList.append:(B)Lorg/jruby/util/ByteList;
pop
end local 4 7: iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
iload 3
if_icmplt 4
end local 3 end local 2 9: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 val [B
1 10 1 byteList Lorg/jruby/util/ByteList;
2 9 2 i I
3 9 3 j I
5 7 4 b I
MethodParameters:
Name Flags
val
private static org.jruby.RubyString toHexString(org.jruby.Ruby, byte[]);
descriptor: (Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new org.jruby.util.ByteList
dup
aload 1
invokestatic org.jruby.ext.digest.RubyDigest.toHex:([B)Lorg/jruby/util/ByteList;
invokestatic org.jruby.util.ByteList.plain:(Ljava/lang/CharSequence;)[B
getstatic org.jcodings.specific.USASCIIEncoding.INSTANCE:Lorg/jcodings/specific/USASCIIEncoding;
invokespecial org.jruby.util.ByteList.<init>:([BLorg/jcodings/Encoding;)V
invokestatic org.jruby.RubyString.newStringNoCopy:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runtime Lorg/jruby/Ruby;
0 1 1 val [B
MethodParameters:
Name Flags
runtime
val
public static org.jruby.RubyString hexencode(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.getBytes:()[B
invokestatic org.jruby.ext.digest.RubyDigest.toHexString:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 self Lorg/jruby/runtime/builtin/IRubyObject;
0 1 1 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"hexencode"}, required = 1, meta = true)
MethodParameters:
Name Flags
self
arg
public static org.jruby.RubyString bubblebabble(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
astore 2
start local 2 1: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
aload 2
invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
aload 2
invokevirtual org.jruby.util.ByteList.begin:()I
aload 2
invokevirtual org.jruby.util.ByteList.length:()I
invokestatic org.jruby.ext.digest.BubbleBabble.bubblebabble:([BII)Lorg/jruby/util/ByteList;
invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 recv Lorg/jruby/runtime/builtin/IRubyObject;
0 2 1 arg Lorg/jruby/runtime/builtin/IRubyObject;
1 2 2 bytes Lorg/jruby/util/ByteList;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"bubblebabble"}, required = 1, meta = true)
MethodParameters:
Name Flags
recv
arg
public static void createDigestMD5(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.Ruby.getLoadService:()Lorg/jruby/runtime/load/LoadService;
ldc "digest"
invokevirtual org.jruby.runtime.load.LoadService.require:(Ljava/lang/String;)Z
pop
1: aload 0
ldc "Digest"
invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
astore 1
start local 1 2: aload 1
ldc "Base"
invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
astore 2
start local 2 3: aload 1
ldc "MD5"
aload 2
aload 2
invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 3
start local 3 4: aload 3
ldc "metadata"
new org.jruby.ext.digest.RubyDigest$Metadata
dup
ldc "MD5"
bipush 64
invokespecial org.jruby.ext.digest.RubyDigest$Metadata.<init>:(Ljava/lang/String;I)V
invokevirtual org.jruby.RubyClass.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 runtime Lorg/jruby/Ruby;
2 6 1 Digest Lorg/jruby/RubyModule;
3 6 2 Base Lorg/jruby/RubyClass;
4 6 3 MD5 Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
public static void createDigestRMD160(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.Ruby.getLoadService:()Lorg/jruby/runtime/load/LoadService;
ldc "digest"
invokevirtual org.jruby.runtime.load.LoadService.require:(Ljava/lang/String;)Z
pop
1: getstatic org.jruby.ext.digest.RubyDigest.provider:Ljava/security/Provider;
ifnonnull 3
2: aload 0
ldc "RMD160 not supported without BouncyCastle"
invokevirtual org.jruby.Ruby.newLoadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
3: StackMap locals:
StackMap stack:
aload 0
ldc "Digest"
invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
astore 1
start local 1 4: aload 1
ldc "Base"
invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
astore 2
start local 2 5: aload 1
ldc "RMD160"
aload 2
aload 2
invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 3
start local 3 6: aload 3
ldc "metadata"
new org.jruby.ext.digest.RubyDigest$Metadata
dup
ldc "RIPEMD160"
bipush 64
invokespecial org.jruby.ext.digest.RubyDigest$Metadata.<init>:(Ljava/lang/String;I)V
invokevirtual org.jruby.RubyClass.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 runtime Lorg/jruby/Ruby;
4 8 1 Digest Lorg/jruby/RubyModule;
5 8 2 Base Lorg/jruby/RubyClass;
6 8 3 RMD160 Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
public static void createDigestSHA1(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.Ruby.getLoadService:()Lorg/jruby/runtime/load/LoadService;
ldc "digest"
invokevirtual org.jruby.runtime.load.LoadService.require:(Ljava/lang/String;)Z
pop
1: aload 0
ldc "Digest"
invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
astore 1
start local 1 2: aload 1
ldc "Base"
invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
astore 2
start local 2 3: aload 1
ldc "SHA1"
aload 2
aload 2
invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 3
start local 3 4: aload 3
ldc "metadata"
new org.jruby.ext.digest.RubyDigest$Metadata
dup
ldc "SHA1"
bipush 64
invokespecial org.jruby.ext.digest.RubyDigest$Metadata.<init>:(Ljava/lang/String;I)V
invokevirtual org.jruby.RubyClass.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 runtime Lorg/jruby/Ruby;
2 6 1 Digest Lorg/jruby/RubyModule;
3 6 2 Base Lorg/jruby/RubyClass;
4 6 3 SHA1 Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
public static void createDigestSHA2(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.Ruby.getLoadService:()Lorg/jruby/runtime/load/LoadService;
ldc "digest"
invokevirtual org.jruby.runtime.load.LoadService.require:(Ljava/lang/String;)Z
pop
1: ldc "SHA-256"
invokestatic org.jruby.ext.digest.RubyDigest.createMessageDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
pop
2: goto 7
3: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 1
start local 1 4: aload 0
ldc "SHA2 not supported"
invokevirtual org.jruby.Ruby.newLoadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
astore 2
start local 2 5: aload 2
aload 1
invokevirtual org.jruby.exceptions.RaiseException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
6: aload 2
athrow
end local 2 end local 1 7: StackMap locals:
StackMap stack:
aload 0
ldc "Digest"
invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
astore 1
start local 1 8: aload 1
ldc "Base"
invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
astore 2
start local 2 9: aload 1
ldc "SHA256"
aload 2
aload 2
invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 3
start local 3 10: aload 3
ldc "metadata"
new org.jruby.ext.digest.RubyDigest$Metadata
dup
ldc "SHA-256"
bipush 64
invokespecial org.jruby.ext.digest.RubyDigest$Metadata.<init>:(Ljava/lang/String;I)V
invokevirtual org.jruby.RubyClass.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
11: aload 1
ldc "SHA384"
aload 2
aload 2
invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 4
start local 4 12: aload 4
ldc "metadata"
new org.jruby.ext.digest.RubyDigest$Metadata
dup
ldc "SHA-384"
sipush 128
invokespecial org.jruby.ext.digest.RubyDigest$Metadata.<init>:(Ljava/lang/String;I)V
invokevirtual org.jruby.RubyClass.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
13: aload 1
ldc "SHA512"
aload 2
aload 2
invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 5
start local 5 14: aload 5
ldc "metadata"
new org.jruby.ext.digest.RubyDigest$Metadata
dup
ldc "SHA-512"
sipush 128
invokespecial org.jruby.ext.digest.RubyDigest$Metadata.<init>:(Ljava/lang/String;I)V
invokevirtual org.jruby.RubyClass.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
15: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 runtime Lorg/jruby/Ruby;
4 7 1 e Ljava/security/NoSuchAlgorithmException;
5 7 2 ex Lorg/jruby/exceptions/RaiseException;
8 16 1 Digest Lorg/jruby/RubyModule;
9 16 2 Base Lorg/jruby/RubyClass;
10 16 3 SHA256 Lorg/jruby/RubyClass;
12 16 4 SHA384 Lorg/jruby/RubyClass;
14 16 5 SHA512 Lorg/jruby/RubyClass;
Exception table:
from to target type
1 2 3 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
runtime
public static void createDigestBubbleBabble(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.Ruby.getLoadService:()Lorg/jruby/runtime/load/LoadService;
ldc "digest"
invokevirtual org.jruby.runtime.load.LoadService.require:(Ljava/lang/String;)Z
pop
1: aload 0
ldc "Digest"
invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
astore 1
start local 1 2: aload 1
ldc "Base"
invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
astore 2
start local 2 3: aload 1
ldc "BubbleBabble"
aload 2
aload 2
invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 3
start local 3 4: aload 3
ldc "metadata"
new org.jruby.ext.digest.RubyDigest$Metadata
dup
ldc "BubbleBabble"
bipush 64
invokespecial org.jruby.ext.digest.RubyDigest$Metadata.<init>:(Ljava/lang/String;I)V
invokevirtual org.jruby.RubyClass.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 runtime Lorg/jruby/Ruby;
2 6 1 Digest Lorg/jruby/RubyModule;
3 6 2 Base Lorg/jruby/RubyClass;
4 6 3 MD5 Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
}
SourceFile: "RubyDigest.java"
NestMembers:
org.jruby.ext.digest.RubyDigest$DigestBase org.jruby.ext.digest.RubyDigest$DigestBase$1 org.jruby.ext.digest.RubyDigest$DigestClass org.jruby.ext.digest.RubyDigest$DigestClass$1 org.jruby.ext.digest.RubyDigest$DigestInstance org.jruby.ext.digest.RubyDigest$MD5 org.jruby.ext.digest.RubyDigest$Metadata org.jruby.ext.digest.RubyDigest$RMD160 org.jruby.ext.digest.RubyDigest$SHA1 org.jruby.ext.digest.RubyDigest$SHA256 org.jruby.ext.digest.RubyDigest$SHA384 org.jruby.ext.digest.RubyDigest$SHA512
InnerClasses:
public DigestBase = org.jruby.ext.digest.RubyDigest$DigestBase of org.jruby.ext.digest.RubyDigest
public DigestClass = org.jruby.ext.digest.RubyDigest$DigestClass of org.jruby.ext.digest.RubyDigest
public DigestInstance = org.jruby.ext.digest.RubyDigest$DigestInstance of org.jruby.ext.digest.RubyDigest
public MD5 = org.jruby.ext.digest.RubyDigest$MD5 of org.jruby.ext.digest.RubyDigest
private Metadata = org.jruby.ext.digest.RubyDigest$Metadata of org.jruby.ext.digest.RubyDigest
public RMD160 = org.jruby.ext.digest.RubyDigest$RMD160 of org.jruby.ext.digest.RubyDigest
public SHA1 = org.jruby.ext.digest.RubyDigest$SHA1 of org.jruby.ext.digest.RubyDigest
public SHA256 = org.jruby.ext.digest.RubyDigest$SHA256 of org.jruby.ext.digest.RubyDigest
public SHA384 = org.jruby.ext.digest.RubyDigest$SHA384 of org.jruby.ext.digest.RubyDigest
public SHA512 = org.jruby.ext.digest.RubyDigest$SHA512 of org.jruby.ext.digest.RubyDigest
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyModule(name = {"Digest"})