public GMSSPrivateKeyParameters nextKey() { GMSSPrivateKeyParameters nKey = new GMSSPrivateKeyParameters(this); nKey.nextKey(gmssPS.getNumOfLayers() - 1); return nKey; }
if (gmssPrivateKey.isUsed()) if (gmssPrivateKey.getIndex(0) >= gmssPrivateKey.getNumLeafs(0)) this.gmssPS = gmssPrivateKey.getParameters(); byte[] seed = gmssPrivateKey.getCurrentSeeds()[numLayer - 1]; byte[] OTSSeed = new byte[mdLength]; byte[] dummy = new byte[mdLength]; byte[][][] helpCurrentAuthPaths = gmssPrivateKey.getCurrentAuthPaths(); currentAuthPaths = new byte[numLayer][][]; System.arraycopy(gmssPrivateKey.getIndex(), 0, index, 0, numLayer); for (int i = 0; i < numLayer - 1; i++) helpSubtreeRootSig = gmssPrivateKey.getSubtreeRootSig(i); subtreeRootSig[i] = new byte[helpSubtreeRootSig.length]; System.arraycopy(helpSubtreeRootSig, 0, subtreeRootSig[i], 0, helpSubtreeRootSig.length); gmssPrivateKey.markUsed();
computeAuthPaths(layer); .floor((double)(this.getNumLeafs(layer) * 2) / (double)(this.heightOfTrees[layer - 1] - this.K[layer - 1])); this.minTreehash[layer - 1] = getMinTreehashIndex(layer - 1); this.updateNextNextAuthRoot(layer);
int Tau = heightOfPhi(Phi); int minTreehash = getMinTreehashIndex(layer); this.minTreehash[layer] = getMinTreehashIndex(layer);
private GMSSPrivateKeyParameters(GMSSPrivateKeyParameters original) super(true, original.getParameters());
GMSSPrivateKeyParameters privateKey = new GMSSPrivateKeyParameters(currentSeeds, nextNextSeeds, currentAuthPaths, nextAuthPaths, currentTreehash, nextTreehash, currentStack, nextStack, currentRetain, nextRetain, nextRoots, currentRootSigs, gmssPS, digestProvider);
computeAuthPaths(layer); .floor((double)(this.getNumLeafs(layer) * 2) / (double)(this.heightOfTrees[layer - 1] - this.K[layer - 1])); this.minTreehash[layer - 1] = getMinTreehashIndex(layer - 1); this.updateNextNextAuthRoot(layer);
int Tau = heightOfPhi(Phi); int minTreehash = getMinTreehashIndex(layer); this.minTreehash[layer] = getMinTreehashIndex(layer);
private GMSSPrivateKeyParameters(GMSSPrivateKeyParameters original) super(true, original.getParameters());
GMSSPrivateKeyParameters privateKey = new GMSSPrivateKeyParameters(currentSeeds, nextNextSeeds, currentAuthPaths, nextAuthPaths, currentTreehash, nextTreehash, currentStack, nextStack, currentRetain, nextRetain, nextRoots, currentRootSigs, gmssPS, digestProvider);
if (gmssPrivateKey.isUsed()) if (gmssPrivateKey.getIndex(0) >= gmssPrivateKey.getNumLeafs(0)) this.gmssPS = gmssPrivateKey.getParameters(); byte[] seed = gmssPrivateKey.getCurrentSeeds()[numLayer - 1]; byte[] OTSSeed = new byte[mdLength]; byte[] dummy = new byte[mdLength]; byte[][][] helpCurrentAuthPaths = gmssPrivateKey.getCurrentAuthPaths(); currentAuthPaths = new byte[numLayer][][]; System.arraycopy(gmssPrivateKey.getIndex(), 0, index, 0, numLayer); for (int i = 0; i < numLayer - 1; i++) helpSubtreeRootSig = gmssPrivateKey.getSubtreeRootSig(i); subtreeRootSig[i] = new byte[helpSubtreeRootSig.length]; System.arraycopy(helpSubtreeRootSig, 0, subtreeRootSig[i], 0, helpSubtreeRootSig.length); gmssPrivateKey.markUsed();
public GMSSPrivateKeyParameters nextKey() { GMSSPrivateKeyParameters nKey = new GMSSPrivateKeyParameters(this); nKey.nextKey(gmssPS.getNumOfLayers() - 1); return nKey; }