public static function ParagonIE_Sodium_Crypto32::secretstream_xchacha20poly1305_rekey in Automatic Updates 8
Same name and namespace in other branches
- 7 vendor/paragonie/sodium_compat/src/Crypto32.php \ParagonIE_Sodium_Crypto32::secretstream_xchacha20poly1305_rekey()
 
Parameters
string $state:
Return value
void
Throws
SodiumException
3 calls to ParagonIE_Sodium_Crypto32::secretstream_xchacha20poly1305_rekey()
- ParagonIE_Sodium_Compat::crypto_secretstream_xchacha20poly1305_rekey in vendor/
paragonie/ sodium_compat/ src/ Compat.php  - ParagonIE_Sodium_Crypto32::secretstream_xchacha20poly1305_pull in vendor/
paragonie/ sodium_compat/ src/ Crypto32.php  - ParagonIE_Sodium_Crypto32::secretstream_xchacha20poly1305_push in vendor/
paragonie/ sodium_compat/ src/ Crypto32.php  
File
- vendor/
paragonie/ sodium_compat/ src/ Crypto32.php, line 1549  
Class
- ParagonIE_Sodium_Crypto32
 - Class ParagonIE_Sodium_Crypto
 
Code
public static function secretstream_xchacha20poly1305_rekey(&$state) {
  $st = ParagonIE_Sodium_Core32_SecretStream_State::fromString($state);
  # unsigned char new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES +
  # crypto_secretstream_xchacha20poly1305_INONCEBYTES];
  # size_t        i;
  # for (i = 0U; i < crypto_stream_chacha20_ietf_KEYBYTES; i++) {
  #     new_key_and_inonce[i] = state->k[i];
  # }
  $new_key_and_inonce = $st
    ->getKey();
  # for (i = 0U; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) {
  #     new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + i] =
  #         STATE_INONCE(state)[i];
  # }
  $new_key_and_inonce .= ParagonIE_Sodium_Core32_Util::substR($st
    ->getNonce(), 0, 8);
  # crypto_stream_chacha20_ietf_xor(new_key_and_inonce, new_key_and_inonce,
  #                                 sizeof new_key_and_inonce,
  #                                 state->nonce, state->k);
  $st
    ->rekey(ParagonIE_Sodium_Core32_ChaCha20::ietfStreamXorIc($new_key_and_inonce, $st
    ->getCombinedNonce(), $st
    ->getKey(), ParagonIE_Sodium_Core32_Util::store64_le(0)));
  # for (i = 0U; i < crypto_stream_chacha20_ietf_KEYBYTES; i++) {
  #     state->k[i] = new_key_and_inonce[i];
  # }
  # for (i = 0U; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) {
  #     STATE_INONCE(state)[i] =
  #          new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + i];
  # }
  # _crypto_secretstream_xchacha20poly1305_counter_reset(state);
  $st
    ->counterReset();
  $state = $st
    ->toString();
}