org.bouncycastle.crypto.DerivationParameters Java Examples
The following examples show how to use
org.bouncycastle.crypto.DerivationParameters.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ECIESEncryptionEngine.java From besu with Apache License 2.0 | 5 votes |
@Override public void init(final DerivationParameters param) { checkArgument(param instanceof KDFParameters, "unexpected expected KDF params type"); final KDFParameters p = (KDFParameters) param; shared = p.getSharedSecret(); iv = p.getIV(); }
Example #2
Source File: Smb3KeyDerivation.java From jcifs with GNU Lesser General Public License v2.1 | 5 votes |
/** * @param sessionKey * @param label * @param context */ private static byte[] derive ( byte[] sessionKey, byte[] label, byte[] context ) { KDFCounterBytesGenerator gen = new KDFCounterBytesGenerator(new HMac(new SHA256Digest())); int r = 32; byte[] suffix = new byte[label.length + context.length + 5]; // per bouncycastle // <li>1: K(i) := PRF( KI, [i]_2 || Label || 0x00 || Context || [L]_2 ) with the counter at the very beginning // of the fixedInputData (The default implementation has this format)</li> // with the parameters // <li>1. KDFCounterParameters(ki, null, "Label || 0x00 || Context || [L]_2]", 8); // all fixed inputs go into the suffix: // + label System.arraycopy(label, 0, suffix, 0, label.length); // + 1 byte 0x00 // + context System.arraycopy(context, 0, suffix, label.length + 1, context.length); // + 4 byte (== r bits) big endian encoding of L suffix[ suffix.length - 1 ] = (byte) 128; DerivationParameters param = new KDFCounterParameters(sessionKey, null /* prefix */, suffix /* suffix */, r /* r */); gen.init(param); byte[] derived = new byte[16]; gen.generateBytes(derived, 0, 16); return derived; }
Example #3
Source File: Smb3KeyDerivation.java From jcifs-ng with GNU Lesser General Public License v2.1 | 5 votes |
/** * @param sessionKey * @param label * @param context */ private static byte[] derive ( byte[] sessionKey, byte[] label, byte[] context ) { KDFCounterBytesGenerator gen = new KDFCounterBytesGenerator(new HMac(new SHA256Digest())); int r = 32; byte[] suffix = new byte[label.length + context.length + 5]; // per bouncycastle // <li>1: K(i) := PRF( KI, [i]_2 || Label || 0x00 || Context || [L]_2 ) with the counter at the very beginning // of the fixedInputData (The default implementation has this format)</li> // with the parameters // <li>1. KDFCounterParameters(ki, null, "Label || 0x00 || Context || [L]_2]", 8); // all fixed inputs go into the suffix: // + label System.arraycopy(label, 0, suffix, 0, label.length); // + 1 byte 0x00 // + context System.arraycopy(context, 0, suffix, label.length + 1, context.length); // + 4 byte (== r bits) big endian encoding of L suffix[ suffix.length - 1 ] = (byte) 128; DerivationParameters param = new KDFCounterParameters(sessionKey, null /* prefix */, suffix /* suffix */, r /* r */); gen.init(param); byte[] derived = new byte[16]; gen.generateBytes(derived, 0, 16); return derived; }