usb-0000:00:01.2-1/input0
     !ˆÃÆƒî¿ÂÁÈ »    !/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Signature verification
 *
 * Copyright (C) 2014 Red Hat, Inc. All Rights Reserved.
 * Written by David Howells (dhowells@redhat.com)
 */

#ifndef _LINUX_VERIFICATION_H
#define _LINUX_VERIFICATION_H

#include <linux/errno.h>
#include <linux/types.h>

/*
 * Indicate that both builtin trusted keys and secondary trusted keys
 * should be used.
 */
#define VERIFY_USE_SECONDARY_KEYRING ((struct key *)1UL)
#define VERIFY_USE_PLATFORM_KEYRING  ((struct key *)2UL)

static inline int system_keyring_id_check(u64 id)
{
	if (id > (unsigned long)VERIFY_USE_PLATFORM_KEYRING)
		return -EINVAL;

	return 0;
}

/*
 * The use to which an asymmetric key is being put.
 */
enum key_being_used_for {
	VERIFYING_MODULE_SIGNATURE,
	VERIFYING_FIRMWARE_SIGNATURE,
	VERIFYING_KEXEC_PE_SIGNATURE,
	VERIFYING_KEY_SIGNATURE,
	VERIFYING_KEY_SELF_SIGNATURE,
	VERIFYING_UNSPECIFIED_SIGNATURE,
	NR__KEY_BEING_USED_FOR
};
extern const char *const key_being_used_for[NR__KEY_BEING_USED_FOR];

#ifdef CONFIG_SYSTEM_DATA_VERIFICATION

struct key;
struct pkcs7_message;

extern int verify_pkcs7_signature(const void *data, size_t len,
				  const void *raw_pkcs7, size_t pkcs7_len,
				  struct key *trusted_keys,
				  enum key_being_used_for usage,
				  int (*view_content)(void *ctx,
						      const void *data, size_t len,
						      size_t asn1hdrlen),
				  void *ctx);
extern int verify_pkcs7_message_sig(const void *data, size_t len,
				    struct pkcs7_message *pkcs7,
				    struct key *trusted_keys,
				    enum key_being_used_for usage,
				    int (*view_content)(void *ctx,
							const void *data,
							size_t len,
							size_t asn1hdrlen),
				    void *ctx);

#ifdef CONFIG_SIGNED_PE_FILE_VERIFICATION
extern int verify_pefile_signature(const void *pebuf, unsigned pelen,
				   struct key *trusted_keys,
				   enum key_being_used_for usage);
#endif

#endif /* CONFIG_SYSTEM_DATA_VERIFICATION */
#endif /* _LINUX_VERIFY_PEFILE_H */
  6   #ˆl–Ým_J*n-jm@·pÜêbÑ¿Ç…i·¿_�uÐb&=L‰*VBl(éÃÊ ?÷     #ELF          >    :     @       xï         @ 8  @                                 Hô      Hô                                        u     u                   €      €      €     À2     À2                  P·     PÇ     PÇ     ¸!      �#                    ¾      Î      Î                                ¨      ¨      ¨                                   È      È      È      $       $              Såtd   ¨      ¨      ¨                             Påtd   þ     þ     þ     D      D             Qåtd                                                  Råtd   P·     PÇ     PÇ     °      °                      GNU   À                   GNU |6]Å•j½EZ$KßË¨';ßs|    	  z   @      8“Ä¥tÀ@  ` €  ˆ !€‚� P (¸³ € ¨ �5@	{(ácÄ�Á $Ð$  És %‚ƒ  ˆI Ó  P{�NO E ˆ #$ü8,h’°� ¡,µXQh!Ð«„H @ pXX€0%Â:O
`†CP€
 bô‚"  € ’!I`‰!‚ T�‚K°!Ê@ñJQ3’€!"…(�Á>ƒÁÚ¬Š˜€M€•D°ðÐ 	 À� àEÜ4	 (�½«.@N¡aEHzL pP*Z$ 0Ð‚B�yC�
À@@  $ñ ‰   â6@`¸Ô(D  O@�ÀLD` È1‚€¨ÄÀ(`+ Œ‚€ )Í% ÈÄÊ¤H€‚¬°�n Vµ $è*@ "Æ�² S D€
`2Ë¶$SÏ SƒˆDŒ€@€AP  ¢ÀD6¡4 ˆT$C @#Ã˜‰@@&€0 Œ‘$N’€0ìt€e–d0©  8He @¤ ÄeB@€X��Q|…�2HRz       {               |       }   �   ‚   „   …   †           ˆ   Š   �       �   �   ’   ”   —   ™               ›       œ           ž       ¡       £   ¤   ¥   §       ©   ª   ­   ®       ¯   °   ±   ³       ´   ·   º           »   ¼   ½   ¾                   Á   Â   Ã   Æ   È       É   Î       Ï   Ð   Ò           Ó   ×   Ú   Ü           Þ       ß   à       á   â       ã   ä   å   æ   ç   è   é           ê           ë   í   ï       ð   ô   õ   ö       ú   û       þ   ÿ                          	                                                           !  "  &  )  .  /          1      2  4  5  7  :  ;  =  >  ?  @  A  B  D      G  I      K