lib/crypt: Add helpers for operating on /etc/shadow
[petitboot] / lib / security / security.h
1 /*
2  *  Copyright (C) 2016 Raptor Engineering, LLC
3  *  Copyright (C) 2018 Opengear, Inc
4  *
5  *  This program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; version 2 of the License.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, write to the Free Software
16  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18 #ifndef _PB_SECURITY_H
19 #define _PB_SECURITY_H
20
21 #include <discover/boot.h>
22
23 enum {
24         PB_LOCKDOWN_NONE        = 0,
25         PB_LOCKDOWN_SIGN        = 1,
26         PB_LOCKDOWN_DECRYPT     = 2
27 };
28
29
30 int lockdown_status(void);
31
32 struct pb_url * get_signature_url(void *ctx, struct pb_url *base_file);
33
34 int verify_file_signature(const char *plaintext_filename,
35         const char *signature_filename, FILE *authorized_signatures_handle,
36         const char *keyring_path);
37
38 int decrypt_file(const char *filename,
39         FILE * authorized_signatures_handle, const char * keyring_path);
40
41 int validate_boot_files(struct boot_task *boot_task);
42
43 void validate_boot_files_cleanup(struct boot_task *boot_task);
44
45 #endif // _PB_SECURITY_H
46