private void CreateInitialState() { ulong[] array = (ulong[])SkeinEngine.INITIAL_STATES[SkeinEngine.VariantIdentifier(this.BlockSize, this.OutputSize)]; if (this.key == null && array != null) { this.chain = Arrays.Clone(array); } else { this.chain = new ulong[this.BlockSize / 8]; if (this.key != null) { this.UbiComplete(0, this.key); } this.UbiComplete(4, new SkeinEngine.Configuration((long)(this.outputSizeBytes * 8)).Bytes); } if (this.preMessageParameters != null) { for (int i = 0; i < this.preMessageParameters.Length; i++) { SkeinEngine.Parameter parameter = this.preMessageParameters[i]; this.UbiComplete(parameter.Type, parameter.Value); } } this.initialState = Arrays.Clone(this.chain); }
private static void InitialState(int blockSize, int outputSize, ulong[] state) { SkeinEngine.INITIAL_STATES.Add(SkeinEngine.VariantIdentifier(blockSize / 8, outputSize / 8), state); }