49 lines
1.3 KiB
C
49 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* PGP library definitions (RFC 4880)
|
|
*
|
|
* Copyright (C) 2012 Red Hat, Inc. All Rights Reserved.
|
|
* Written by David Howells (dhowells@redhat.com)
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public Licence
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the Licence, or (at your option) any later version.
|
|
*/
|
|
|
|
#ifndef _LINUX_PGPLIB_H
|
|
#define _LINUX_PGPLIB_H
|
|
|
|
#if IS_ENABLED(CONFIG_PGP_LIBRARY) || IS_ENABLED(CONFIG_PGP_LIBRARY_MODULE)
|
|
|
|
#include <linux/pgp.h>
|
|
|
|
/*
|
|
* PGP library packet parser
|
|
*/
|
|
struct pgp_parse_context {
|
|
u64 types_of_interest;
|
|
int (*process_packet)(struct pgp_parse_context *context,
|
|
enum pgp_packet_tag type,
|
|
u8 headerlen,
|
|
const u8 *data,
|
|
size_t datalen);
|
|
};
|
|
|
|
extern int pgp_parse_packets(const u8 *data, size_t datalen,
|
|
struct pgp_parse_context *ctx);
|
|
|
|
struct pgp_parse_pubkey {
|
|
enum pgp_key_version version : 8;
|
|
enum pgp_pubkey_algo pubkey_algo : 8;
|
|
__kernel_old_time_t creation_time;
|
|
__kernel_old_time_t expires_at;
|
|
};
|
|
|
|
extern int pgp_parse_public_key(const u8 **_data, size_t *_datalen,
|
|
struct pgp_parse_pubkey *pk);
|
|
|
|
|
|
#endif /* CONFIG_PGP_LIBRARY */
|
|
|
|
#endif /* _LINUX_PGPLIB_H */
|