zip_fopen_encrypted |
ZIP : Ouvre un fichier chiffré |
---|---|
libzip |
Syntaxe
zip_file_t * zip_fopen_encrypted(zip_t *archive, const char *fname, zip_flags_t flags, const char *password); |
Retour
Une fois l'opération terminée avec succès, un pointeur struct zip_file est renvoyé. Sinon, NULL est renvoyé et le code d'erreur dans l'archive est défini pour indiquer l'erreur.
Description
Cette fonction permet d'ouvrir un fichier chiffré dans l'archive ZIP pour la lecture.
Remarques
- La fonction zip_fopen_encrypted() ouvre le fichier chiffré nommé fname dans l'archive en utilisant le mot de passe donné dans le paramètre password. Si password est NULL ou une chaîne de caractères vide, le mot de passe par défaut est utilisé (voir zip_set_default_password()). Les paramètres flags sont les mêmes que pour zip_fopen().
- La fonction zip_fopen_index_encrypted() ouvre le fichier à la position index, voir zip_fopen_index(). Ces fonctions sont appelées automatiquement par zip_fopen() ; vous n'avez besoin de les appeler que si vous souhaitez spécifier un mot de passe autre que celui par défaut (voir zip_set_default_password()).
- Le format de fichier zip offre une possibilité très limitée de vérification du mot de passe (un hachage court de est comparé à un octet dans l'archive zip). Pour cette raison, la lecture d'un fichier tout en utilisant un mot de passe incorrect peut immédiatement échouer avec ZIP_ER_WRONGPASSWD, mais si la non-concordance n'est pas détectée, une erreur zlib peut être renvoyée ultérieurement à la place. Étant donné que les erreurs zlib peuvent également être causées par des données compressées endommagées, il n'existe aucun moyen de savoir si le mot de passe était incorrect ou s'il était correct, mais que les données compressées n'étaient pas valides.
Erreurs
Constante | Description |
---|---|
ZIP_ER_NOPASSWD | Aucun mot de passe n'a été fourni. |
La fonction zip_fopen_encrypted() peut également échouer et définir zip_err pour l'une des erreurs spécifiées pour la routine zip_fopen().
La fonction zip_fopen_index_encrypted() peut également échouer et définir zip_err pour l'une des erreurs spécifiées pour la routine zip_fopen_index().
Historique
zip_fopen_encrypted() et zip_fopen_index_encrypted() ont été ajoutés dans libzip 1.0.
Voir également
libzip(), zip_fclose(), zip_fopen(), zip_fread(), zip_get_num_entries(), zip_name_locate()
Dernière mise à jour : Mercredi, le 5 Février 2025