• [^] # Re: Remplacer l'assembleur par Ada ou Rust ?

    Posté par . En réponse à la dépêche Nouvelle vulnérabilité dans l’implémentation OpenSSL. Évalué à 1. Dernière modification le 10 avril 2014 à 21:23.

    il y aura certainement en Rust des fonctions intrinsics qui permettent d'appeler directement les opérations assembleur d'un chiffrement AES, comme il y en a déjà en C/C++ avec gcc et d'autres compilateurs

    Eh bien figure-toi qu'il n'y en a pas non plus en C/C++ (et qu'il n'y en aura probablement jamais vu comment ces opcodes ont un usage très spécifique), c'est pour ça que quand on doit utiliser ce genre d'opcodes on le fait en assembleur.
    Ce n'est pas parce que Rust, comme d'autres langages, donne accès aux opérations atomiques qu'il donnera accès à toutes les opérations des processeurs.

    Pour illustrer, on peut prendre une opération beaucoup moins spécialisée: la rotation de bit, qui est un équivalent du décallage de bit (opérateurs << et >> en C, Java & co) mais où le bit qui disapraît à droite ou à gauche réapparait de l'autre côté. Ces opérations existent depuis plus de 30 ans dans tous les processeurs (à part peut-être certains RISC j'en sais rien), et il n'y a pas de méthode ou d'opérateur standard en C pour effectuer cette opération. Probablement parce qu'il est rare d'en avoir besoin à part dans des algos ultra optimisés. Et ça fait plus de 30 ans.

    Et la rotation de bit, elle existe sur tous les processeurs, contrairement aux spécificités comme AESNI. Donc ce serait facile de fournir un langage fortement portable avec des rotations de bits. Pour AESNI en revanche...