OPENSSL_instrument_bus2(3) Instrumenter les

Other Alias

OPENSSL_instrument_bus

SYNOPSIS

#ifdef OPENSSL_CPUID_OBJ
 size_t OPENSSL_instrument_bus (int *vector, size_t num);
 size_t OPENSSL_instrument_bus2(int *vector, size_t num, size_t max);
 #endif

DESCRIPTION

De façon empirique, les délais de références à la mémoire primaire sont soumis à des variations irrégulières, apparemment non déterministes. Les sous-routines en question instrumentent ces références dans le but de rassembler de l’entropie pour le générateur de nombres aléatoires. De façon à la lier au bus, une instruction « flush cache line » est utilisée entre les mesures. De plus, des mesures sont ajoutées aux éléments vector de façon atomique ou imbriquée, ce qui devrait contribuer à ajouter du bruit aux systèmes multiprocesseurs. Cela signifie également que vector[num] devrait être vidée lors de l’appel (si le but est de récupérer les véritables valeurs de mesure).

OPENSSL_instrument_bus() réalise num mesures et enregistre le nombre de cycles oscillatoires pris par chaque mesure.

OPENSSL_instrument_bus2() de son côté accumule les mesures consécutives qui ont la même valeur, c’est-à-dire de façon à enregistrer la durée des périodes quand les valeurs de mesure semblent déterministes. La sous-routine réalise au plus max mesures en essayant de remplir le vector[num], avec la valeur max à 0 signifiant « autant que nécessaire ».

VALEUR DE RETOUR

Une valeur de retour nulle indique que le processeur n’est pas capable de réaliser la comparaison, parce que le compteur d’oscillations ou « flush cache line » ne sont pas disponibles sur la plate-forme actuelle. Pour référence, sur x86, « flush cache line » a été introduit avec les extensions SSE2.

Sinon, le nombre de valeurs enregistrées est renvoyé.

TRADUCTION

La traduction de cette page de manuel est maintenue par les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.