Provided by: manpages-fr-extra_20151231_all bug

NOM

       ASN1_TIME_set, ASN1_TIME_adj, ASN1_TIME_check, ASN1_TIME_set_string, ASN1_TIME_print,
       ASN1_TIME_diff - Fonctions d’heure ASN.1

SYNOPSIS

        ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t);
        ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t,
                                 int offset_day, long offset_sec);
        int ASN1_TIME_set_string(ASN1_TIME *s, const char *str);
        int ASN1_TIME_check(const ASN1_TIME *t);
        int ASN1_TIME_print(BIO *b, const ASN1_TIME *s);

        int ASN1_TIME_diff(int *pday, int *psec,
                           const ASN1_TIME *from, const ASN1_TIME *to);

DESCRIPTION

       La fonction ASN1_TIME_set() définit la structure ASN1_TIME s à l’heure représentée par la
       valeur time_t t. Si s est NULL, une nouvelle structure ASN1_TIME est allouée et renvoyée.

       ASN1_TIME_adj() définit la structure ASN1_TIME s à l’heure représentée par la valeur
       time_t t. Les valeurs de offset_day ou offset_sec peuvent être négatives pour définir une
       heure avant t. La valeur offset_sec peut aussi dépasser le nombre de secondes dans un
       jour. Si s est NULL, une nouvelle structure ASN1_TIME est allouée et renvoyée.

       ASN1_TIME_set_string() définit la structure ASN1_TIME s à l’heure représentée par la
       chaîne str qui doit être dans un format d’heure ASN.1 approprié (par exemple AAMMJJHHMMSSZ
       ou AAAAMMJJHHMMSSZ).

       ASN1_TIME_check() vérifie la syntaxe de la structure ASN1_TIME s.

       ASN1_TIME_print() affiche l’heure s dans le BIO b en format lisible. Le format est Mmm JJ
       HH:MM:SS AAAA [GMT], par exemple « Feb 3 00:55:52 2015 GMT », sans changement de ligne. Si
       la structure de temps a un format incorrect, elle affiche « Bad time value » et renvoie
       une erreur.

       ASN1_TIME_diff() définit *pday et *psec à la différence d’heure entre from et to. Si to
       représente une heure suivant from, *pday ou *psec ou les deux (en fonction de la
       différence d’heure) seront positives. Si to représente une heure précédent from, *pday ou
       *psec ou les deux seront négatives. Si to et from représentent la même heure, *pday et
       *psec seront toutes deux nulles. Si *pday et *psec ne sont pas nulles, elles seront
       toujours de même signe. La valeur de *psec sera toujours inférieure au nombre de secondes
       dans une journée. Si from ou to sont NULL, l’heure actuelle est utilisée.

NOTES

       La structure ASN1_TIME correspond à la structure ASN.1 Time définie dans la RFC 5280 et
       suivantes. Les fonctions de définition d’heure obéissent aux règles soulignées dans la
       RFC 5280 : si la date peut être représentée par UTCTime, c’est ce qui est utilisé, sinon
       GeneralizedTime est utilisé.

       La structure ASN1_TIME est représentée par une ASN1_STRING en interne et peut être libérée
       en utilisant ASN1_STRING_free().

       La structure ASN1_TIME peut représenter des années entre 0000 et 9999 mais aucune
       correction des modifications de calendrier ancien n’est tentée (par exemple, de calendrier
       julien en grégorien).

       Certaines applications ajoutent des heures de décalage directement dans une valeur time_t
       et passent le résultat à ASN1_TIME_set() (ou équivalent). Cela peut poser des problèmes
       car la valeur time_t peut déborder sur certains systèmes avec pour conséquence des
       résultats inattendus. Les nouvelles applications devraient utiliser ASN1_TIME_adj() à la
       place et passer la valeur de décalage dans les paramètres offset_sec et offset_day au lieu
       de manipuler directement une valeur time_t.

BOGUES

       ASN1_TIME_print() n’affiche actuellement pas le fuseau horaire : elle affiche soit
       « GMT », soit rien. Tous les certificats sont compatibles avec la RFC 5280 et utilisent
       tous GMT de toute façon.

EXEMPLES

       Définir une structure de temps à une heure après l’heure actuelle et l’afficher :

           #include <time.h>
           #include <openssl/asn1.h>
           ASN1_TIME *tm;
           time_t t;
           BIO *b;
           t = time(NULL);
           tm = ASN1_TIME_adj(NULL, t, 0, 60 * 60);
           b = BIO_new_fp(stdout, BIO_NOCLOSE);
           ASN1_TIME_print(b, tm);
           ASN1_STRING_free(tm);
           BIO_free(b);

       Déterminer si une heure est après ou avant l’heure actuelle :

           int day, sec;

           if (!ASN1_TIME_diff(&day, &sec, NULL, to))
               /* Format d’heure incorrect */

           if (day > 0 || sec > 0)
               printf("Après\n");
           else if (day < 0 || sec < 0)
               printf("Avant\n");
           else
               printf("Identique\n");

VALEURS DE RETOUR

       ASN1_TIME_set() et ASN1_TIME_adj() renvoient un pointeur vers une structure ASN1_TIME, ou
       NULL si une erreur est survenue.

       ASN1_TIME_set_string() renvoie 1 si la valeur de temps est définie correctement et 0
       sinon.

       ASN1_TIME_check() renvoie 1 si la structure est correcte d’un point de vue syntaxique et 0
       sinon.

       ASN1_TIME_print() renvoie 1 si le temps est affiché correctement et 0 si une erreur est
       survenue (erreur d’entrée et sortie ou format d’heure incorrect).

       ASN1_TIME_diff() renvoie 1 en cas de réussite et 0 en cas d’échec. Elle peut échouer si la
       structure ASN1_TIME passée a par exemple une syntaxe incorrecte.

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.