Here you can find the source of calculateMPrime(BigInteger n, byte[] message)
public static BigInteger calculateMPrime(BigInteger n, byte[] message)
//package com.java2s; /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License./*from w w w.ja v a 2 s . c o m*/ */ import java.math.BigInteger; public class Main { /** * Method taken (renamed) from SpongyCastle ECDSASigner class. Cannot call * from there since it's private and non static. */ public static BigInteger calculateMPrime(BigInteger n, byte[] message) { if (n.bitLength() > message.length * 8) { return new BigInteger(1, message); } else { int messageBitLength = message.length * 8; BigInteger trunc = new BigInteger(1, message); if (messageBitLength - n.bitLength() > 0) { trunc = trunc.shiftRight(messageBitLength - n.bitLength()); } return trunc; } } }