]> Git Repo - secp256k1.git/blob - src/java/org/bitcoin/Secp256k1Context.java
JNI library
[secp256k1.git] / src / java / org / bitcoin / Secp256k1Context.java
1 package org.bitcoin;
2
3 /**
4  * This class holds the context reference used in native methods 
5    to handle ECDSA operations.
6  */
7 public class Secp256k1Context {
8   private static final boolean enabled; //true if the library is loaded
9   private static final long context; //ref to pointer to context obj
10
11   static { //static initializer
12       boolean isEnabled = true;
13       long contextRef = -1;
14       try {
15           System.loadLibrary("secp256k1");
16           contextRef = secp256k1_init_context();
17       } catch (UnsatisfiedLinkError e) {
18           System.out.println("UnsatisfiedLinkError: " + e.toString());
19           isEnabled = false;
20       }
21       enabled = isEnabled;
22       context = contextRef;
23   }
24
25   public static boolean isEnabled() {
26      return enabled;
27   }
28
29   public static long getContext() {
30      if(!enabled) return -1; //sanity check
31      return context;
32   }
33
34   private static native long secp256k1_init_context();
35 }
This page took 0.023218 seconds and 4 git commands to generate.