childPrivateToPrivate method

Uint8List childPrivateToPrivate(
  1. Uint8List extended,
  2. int index
)

Implementation

Uint8List childPrivateToPrivate(Uint8List extended, int index) {
  final chain = Uint8List.fromList(extended.sublist(0, 57));
  final key = Uint8List.fromList(extended.sublist(57, 114));

  late Uint8List r0;
  late Uint8List r1;
  if (index >= 0x80000000) {
    r0 = concatenateAndHex(1, key, index, chain);
    r1 = concatenateAndHex(0, key, index, chain);
  } else {
    final pub = ed448DerivePublicKey(key);
    r0 = concatenateAndHex(3, pub, index, chain);
    r1 = concatenateAndHex(2, pub, index, chain);
  }

  final r2 = addScalar(key, r1);
  final result = Uint8List(114);
  result.setRange(0, 57, r0);
  result.setRange(57, 114, r2);
  return result;
}