Add support for xsalsa20_poly1305_lite

This commit is contained in:
Matt Carey 2019-12-04 20:37:48 -05:00 committed by Rapptz
parent 7972570eb6
commit bcbfc354cf

View File

@ -111,9 +111,11 @@ class VoiceClient:
self._runner = None self._runner = None
self._player = None self._player = None
self.encoder = None self.encoder = None
self._lite_nonce = 0
warn_nacl = not has_nacl warn_nacl = not has_nacl
supported_modes = ( supported_modes = (
'xsalsa20_poly1305_lite',
'xsalsa20_poly1305_suffix', 'xsalsa20_poly1305_suffix',
'xsalsa20_poly1305', 'xsalsa20_poly1305',
) )
@ -331,6 +333,16 @@ class VoiceClient:
return header + box.encrypt(bytes(data), nonce).ciphertext + nonce return header + box.encrypt(bytes(data), nonce).ciphertext + nonce
def _encrypt_xsalsa20_poly1305_lite(self, header, data):
box = nacl.secret.SecretBox(bytes(self.secret_key))
nonce = bytearray(24)
nonce[:4] = struct.pack('>I', self._lite_nonce)
self.checked_add('_lite_nonce', 1, 4294967295)
return header + box.encrypt(bytes(data), bytes(nonce)).ciphertext + nonce[:4]
def play(self, source, *, after=None): def play(self, source, *, after=None):
"""Plays an :class:`AudioSource`. """Plays an :class:`AudioSource`.