3.3. Algorithmes de signature
3.3. Algorithmes de signature
Une signature de message HTTP DOIT utiliser une signature numérique cryptographique ou une méthode MAC (Message Authentication Code) adaptée au matériel de clé, à l'environnement et aux besoins du signataire et du vérificateur. La présente spécification ne limite pas strictement les algorithmes de signature disponibles, et toute application des signatures de message HTTP PEUT utiliser tout algorithme de signature qui satisfait à ces exigences de base.
Pour chaque méthode de signature, HTTP_SIGN prend en entrée la base de signature définie à la Section 2.5 sous forme de tableau d'octets (M) et le matériel de clé de signature (Ks), et produit la signature résultante sous forme de tableau d'octets (S) :
HTTP_SIGN (M, Ks) -> S
Pour chaque méthode de vérification, HTTP_VERIFY prend en entrée la base de signature régénérée définie à la Section 2.5 sous forme de tableau d'octets (M), le matériel de clé de vérification (Kv) et la signature présentée à vérifier sous forme de tableau d'octets (S), et produit le résultat de vérification (V) sous forme de booléen :
HTTP_VERIFY (M, Kv, S) -> V
Les sections suivantes décrivent plusieurs algorithmes de signature courants et montrent comment ces primitives cryptographiques se mappent aux définitions HTTP_SIGN et HTTP_VERIFY ci-dessus. La méthode à utiliser peut être communiquée par le paramètre de signature explicite alg (Section 2.3), par référence au matériel de clé, ou par accord mutuel entre le signataire et le vérificateur. Les algorithmes de signature choisis au moyen du paramètre alg DOIVENT utiliser des valeurs du registre « HTTP Signature Algorithms » (Section 6.2).