try{
byte[] ref = mySignedReference.getBytes("UTF-8");
BigInteger m = new BigInteger(1, SHA256.digest(ref));
if(logMINOR) Logger.minor(this, "m = "+m.toString(16));
DSASignature _signature = DSA.sign(cryptoGroup, privKey, m, random);
if(logMINOR && !DSA.verify(pubKey, _signature, m, false))
throw new NodeInitException(NodeInitException.EXIT_EXCEPTION_TO_DEBUG, mySignedReference);
return _signature;
} catch(UnsupportedEncodingException e){
throw new NodeInitException(NodeInitException.EXIT_CRAPPY_JVM, "Impossible: JVM doesn't support UTF-8");