rpm 4.15.1

rpmpgp.h
Go to the documentation of this file.
1 #ifndef H_RPMPGP
2 #define H_RPMPGP
3
13 #include <string.h>
14 #include <stdio.h>
15 #include <stdlib.h>
16 #include <rpm/rpmtypes.h>
17 #include <rpm/rpmstring.h>
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
25 typedef struct DIGEST_CTX_s * DIGEST_CTX;
26 typedef struct rpmDigestBundle_s * rpmDigestBundle;
27
30 typedef struct pgpDig_s * pgpDig;
31
34 typedef struct pgpDigParams_s * pgpDigParams;
35
36 typedef uint8_t pgpKeyID_t[8];
37 typedef uint8_t pgpTime_t[4];
38
46 typedef enum pgpTag_e {
47 PGPTAG_RESERVED = 0,
48 PGPTAG_PUBLIC_SESSION_KEY = 1,
49 PGPTAG_SIGNATURE = 2,
50 PGPTAG_SYMMETRIC_SESSION_KEY= 3,
51 PGPTAG_ONEPASS_SIGNATURE = 4,
52 PGPTAG_SECRET_KEY = 5,
53 PGPTAG_PUBLIC_KEY = 6,
54 PGPTAG_SECRET_SUBKEY = 7,
55 PGPTAG_COMPRESSED_DATA = 8,
56 PGPTAG_SYMMETRIC_DATA = 9,
57 PGPTAG_MARKER = 10,
58 PGPTAG_LITERAL_DATA = 11,
59 PGPTAG_TRUST = 12,
60 PGPTAG_USER_ID = 13,
61 PGPTAG_PUBLIC_SUBKEY = 14,
62 PGPTAG_COMMENT_OLD = 16,
63 PGPTAG_PHOTOID = 17,
64 PGPTAG_ENCRYPTED_MDC = 18,
65 PGPTAG_MDC = 19,
66 PGPTAG_PRIVATE_60 = 60,
67 PGPTAG_COMMENT = 61,
68 PGPTAG_PRIVATE_62 = 62,
69 PGPTAG_CONTROL = 63
70 } pgpTag;
71
106 typedef struct pgpPktPubkey_s {
107 uint8_t version;
108 pgpKeyID_t keyid;
109 uint8_t algo;
110 } pgpPktPubkey;
111
112
119 typedef enum pgpSigType_e {
120 PGPSIGTYPE_BINARY = 0x00,
121 PGPSIGTYPE_TEXT = 0x01,
122 PGPSIGTYPE_STANDALONE = 0x02,
123 PGPSIGTYPE_GENERIC_CERT = 0x10,
125 PGPSIGTYPE_PERSONA_CERT = 0x11,
127 PGPSIGTYPE_CASUAL_CERT = 0x12,
129 PGPSIGTYPE_POSITIVE_CERT = 0x13,
131 PGPSIGTYPE_SUBKEY_BINDING = 0x18,
132 PGPSIGTYPE_SIGNED_KEY = 0x1F,
133 PGPSIGTYPE_KEY_REVOKE = 0x20,
134 PGPSIGTYPE_SUBKEY_REVOKE = 0x28,
135 PGPSIGTYPE_CERT_REVOKE = 0x30,
136 PGPSIGTYPE_TIMESTAMP = 0x40
137 } pgpSigType;
138
162 typedef enum pgpPubkeyAlgo_e {
163 PGPPUBKEYALGO_RSA = 1,
164 PGPPUBKEYALGO_RSA_ENCRYPT = 2,
165 PGPPUBKEYALGO_RSA_SIGN = 3,
166 PGPPUBKEYALGO_ELGAMAL_ENCRYPT = 16,
167 PGPPUBKEYALGO_DSA = 17,
168 PGPPUBKEYALGO_EC = 18,
169 PGPPUBKEYALGO_ECDSA = 19,
170 PGPPUBKEYALGO_ELGAMAL = 20,
171 PGPPUBKEYALGO_DH = 21
172 } pgpPubkeyAlgo;
173
198 typedef enum pgpSymkeyAlgo_e {
199 PGPSYMKEYALGO_PLAINTEXT = 0,
200 PGPSYMKEYALGO_IDEA = 1,
201 PGPSYMKEYALGO_TRIPLE_DES = 2,
202 PGPSYMKEYALGO_CAST5 = 3,
203 PGPSYMKEYALGO_BLOWFISH = 4,
204 PGPSYMKEYALGO_SAFER = 5,
205 PGPSYMKEYALGO_DES_SK = 6,
206 PGPSYMKEYALGO_AES_128 = 7,
207 PGPSYMKEYALGO_AES_192 = 8,
208 PGPSYMKEYALGO_AES_256 = 9,
209 PGPSYMKEYALGO_TWOFISH = 10,
210 PGPSYMKEYALGO_NOENCRYPT = 110
211 } pgpSymkeyAlgo;
212
228 typedef enum pgpCompressAlgo_e {
229 PGPCOMPRESSALGO_NONE = 0,
230 PGPCOMPRESSALGO_ZIP = 1,
231 PGPCOMPRESSALGO_ZLIB = 2,
232 PGPCOMPRESSALGO_BZIP2 = 3
233 } pgpCompressAlgo;
234
258 typedef enum pgpHashAlgo_e {
259 PGPHASHALGO_MD5 = 1,
260 PGPHASHALGO_SHA1 = 2,
261 PGPHASHALGO_RIPEMD160 = 3,
262 PGPHASHALGO_MD2 = 5,
263 PGPHASHALGO_TIGER192 = 6,
264 PGPHASHALGO_HAVAL_5_160 = 7,
265 PGPHASHALGO_SHA256 = 8,
266 PGPHASHALGO_SHA384 = 9,
267 PGPHASHALGO_SHA512 = 10,
268 PGPHASHALGO_SHA224 = 11,
269 } pgpHashAlgo;
270
292 typedef struct pgpPktSigV3_s {
293 uint8_t version;
294 uint8_t hashlen;
295 uint8_t sigtype;
296 pgpTime_t time;
297 pgpKeyID_t signid;
298 uint8_t pubkey_algo;
299 uint8_t hash_algo;
300 uint8_t signhash16[2];
301 } * pgpPktSigV3;
302
324 typedef struct pgpPktSigV4_s {
325 uint8_t version;
326 uint8_t sigtype;
327 uint8_t pubkey_algo;
328 uint8_t hash_algo;
329 uint8_t hashlen[2];
330 } * pgpPktSigV4;
331
398 typedef enum pgpSubType_e {
399 PGPSUBTYPE_NONE = 0,
400 PGPSUBTYPE_SIG_CREATE_TIME = 2,
401 PGPSUBTYPE_SIG_EXPIRE_TIME = 3,
402 PGPSUBTYPE_EXPORTABLE_CERT = 4,
403 PGPSUBTYPE_TRUST_SIG = 5,
404 PGPSUBTYPE_REGEX = 6,
405 PGPSUBTYPE_REVOCABLE = 7,
406 PGPSUBTYPE_KEY_EXPIRE_TIME = 9,
407 PGPSUBTYPE_ARR = 10,
408 PGPSUBTYPE_PREFER_SYMKEY = 11,
409 PGPSUBTYPE_REVOKE_KEY = 12,
410 PGPSUBTYPE_ISSUER_KEYID = 16,
411 PGPSUBTYPE_NOTATION = 20,
412 PGPSUBTYPE_PREFER_HASH = 21,
413 PGPSUBTYPE_PREFER_COMPRESS = 22,
414 PGPSUBTYPE_KEYSERVER_PREFERS= 23,
415 PGPSUBTYPE_PREFER_KEYSERVER = 24,
416 PGPSUBTYPE_PRIMARY_USERID = 25,
417 PGPSUBTYPE_POLICY_URL = 26,
418 PGPSUBTYPE_KEY_FLAGS = 27,
419 PGPSUBTYPE_SIGNER_USERID = 28,
420 PGPSUBTYPE_REVOKE_REASON = 29,
421 PGPSUBTYPE_FEATURES = 30,
422 PGPSUBTYPE_EMBEDDED_SIG = 32,
424 PGPSUBTYPE_INTERNAL_100 = 100,
425 PGPSUBTYPE_INTERNAL_101 = 101,
426 PGPSUBTYPE_INTERNAL_102 = 102,
427 PGPSUBTYPE_INTERNAL_103 = 103,
428 PGPSUBTYPE_INTERNAL_104 = 104,
429 PGPSUBTYPE_INTERNAL_105 = 105,
430 PGPSUBTYPE_INTERNAL_106 = 106,
431 PGPSUBTYPE_INTERNAL_107 = 107,
432 PGPSUBTYPE_INTERNAL_108 = 108,
433 PGPSUBTYPE_INTERNAL_109 = 109,
434 PGPSUBTYPE_INTERNAL_110 = 110,
436 PGPSUBTYPE_CRITICAL = 128
437 } pgpSubType;
438
459 typedef union pgpPktSig_u {
460 struct pgpPktSigV3_s v3;
461 struct pgpPktSigV4_s v4;
462 } * pgpPktSig;
463
492 typedef struct pgpPktSymkey_s {
493 uint8_t version;
494 uint8_t symkey_algo;
495 uint8_t s2k[1];
496 } pgpPktSymkey;
497
527 typedef struct pgpPktOnepass_s {
528 uint8_t version;
529 uint8_t sigtype;
530 uint8_t hash_algo;
531 uint8_t pubkey_algo;
532 pgpKeyID_t signid;
533 uint8_t nested;
534 } * pgpPktOnepass;
535
608 typedef struct pgpPktKeyV3_s {
609 uint8_t version;
610 pgpTime_t time;
611 uint8_t valid[2];
612 uint8_t pubkey_algo;
613 } * pgpPktKeyV3;
614
646 typedef struct pgpPktKeyV4_s {
647 uint8_t version;
648 pgpTime_t time;
649 uint8_t pubkey_algo;
650 } * pgpPktKeyV4;
651
716 typedef union pgpPktKey_u {
717 struct pgpPktKeyV3_s v3;
718 struct pgpPktKeyV4_s v4;
719 } pgpPktKey;
720
721 /* \ingroup rpmpgp
722 * 5.6. Compressed Data Packet (Tag 8)
723 *
724 * The Compressed Data packet contains compressed data. Typically, this
725 * packet is found as the contents of an encrypted packet, or following
726 * a Signature or One-Pass Signature packet, and contains literal data
727 * packets.
728 *
729 * The body of this packet consists of:
730 * - One octet that gives the algorithm used to compress the packet.
731 * - The remainder of the packet is compressed data.
732 *
733 * A Compressed Data Packet's body contains an block that compresses
734 * some set of packets. See section "Packet Composition" for details on
735 * how messages are formed.
736 *
737 * ZIP-compressed packets are compressed with raw RFC 1951 DEFLATE
738 * blocks. Note that PGP V2.6 uses 13 bits of compression. If an
739 * implementation uses more bits of compression, PGP V2.6 cannot
740 * decompress it.
741 *
742 * ZLIB-compressed packets are compressed with RFC 1950 ZLIB-style
743 * blocks.
744 */
745 typedef struct pgpPktCdata_s {
746 uint8_t compressalgo;
747 uint8_t data[1];
748 } pgpPktCdata;
749
750 /* \ingroup rpmpgp
751 * 5.7. Symmetrically Encrypted Data Packet (Tag 9)
752 *
753 * The Symmetrically Encrypted Data packet contains data encrypted with
754 * a symmetric-key algorithm. When it has been decrypted, it will
755 * typically contain other packets (often literal data packets or
756 * compressed data packets).
757 *
758 * The body of this packet consists of:
759 * - Encrypted data, the output of the selected symmetric-key cipher
760 * operating in PGP's variant of Cipher Feedback (CFB) mode.
761 *
762 * The symmetric cipher used may be specified in an Public-Key or
763 * Symmetric-Key Encrypted Session Key packet that precedes the
764 * Symmetrically Encrypted Data Packet. In that case, the cipher
765 * algorithm octet is prefixed to the session key before it is
766 * encrypted. If no packets of these types precede the encrypted data,
767 * the IDEA algorithm is used with the session key calculated as the MD5
768 * hash of the passphrase.
769 *
770 * The data is encrypted in CFB mode, with a CFB shift size equal to the
771 * cipher's block size. The Initial Vector (IV) is specified as all
772 * zeros. Instead of using an IV, OpenPGP prefixes a 10-octet string to
773 * the data before it is encrypted. The first eight octets are random,
774 * and the 9th and 10th octets are copies of the 7th and 8th octets,
775 * respectively. After encrypting the first 10 octets, the CFB state is
776 * resynchronized if the cipher block size is 8 octets or less. The
777 * last 8 octets of ciphertext are passed through the cipher and the
778 * block boundary is reset.
779 *
780 * The repetition of 16 bits in the 80 bits of random data prefixed to
781 * the message allows the receiver to immediately check whether the
782 * session key is incorrect.
783 */
784 typedef struct pgpPktEdata_s {
785 uint8_t data[1];
786 } pgpPktEdata;
787
788 /* \ingroup rpmpgp
789 * 5.8. Marker Packet (Obsolete Literal Packet) (Tag 10)
790 *
791 * An experimental version of PGP used this packet as the Literal
792 * packet, but no released version of PGP generated Literal packets with
793 * this tag. With PGP 5.x, this packet has been re-assigned and is
794 * reserved for use as the Marker packet.
795 *
796 * The body of this packet consists of:
797 * - The three octets 0x50, 0x47, 0x50 (which spell "PGP" in UTF-8).
798 *
799 * Such a packet MUST be ignored when received. It may be placed at the
800 * beginning of a message that uses features not available in PGP 2.6.x
801 * in order to cause that version to report that newer software is
802 * necessary to process the message.
803 */
804 /* \ingroup rpmpgp
805 * 5.9. Literal Data Packet (Tag 11)
806 *
807 * A Literal Data packet contains the body of a message; data that is
808 * not to be further interpreted.
809 *
810 * The body of this packet consists of:
811 * - A one-octet field that describes how the data is formatted.
812 *
813 * If it is a 'b' (0x62), then the literal packet contains binary data.
814 * If it is a 't' (0x74), then it contains text data, and thus may need
815 * line ends converted to local form, or other text-mode changes. RFC
816 * 1991 also defined a value of 'l' as a 'local' mode for machine-local
817 * conversions. This use is now deprecated.
818 * - File name as a string (one-octet length, followed by file name),
819 * if the encrypted data should be saved as a file.
820 *
821 * If the special name "_CONSOLE" is used, the message is considered to
822 * be "for your eyes only". This advises that the message data is
823 * unusually sensitive, and the receiving program should process it more
824 * carefully, perhaps avoiding storing the received data to disk, for
825 * example.
826 * - A four-octet number that indicates the modification date of the
827 * file, or the creation time of the packet, or a zero that
828 * indicates the present time.
829 * - The remainder of the packet is literal data.
830 *
831 * Text data is stored with <CR><LF> text endings (i.e. network-normal
832 * line endings). These should be converted to native line endings by
833 * the receiving software.
834 */
835 typedef struct pgpPktLdata_s {
836 uint8_t format;
837 uint8_t filenamelen;
838 uint8_t filename[1];
839 } pgpPktLdata;
840
841 /* \ingroup rpmpgp
842 * 5.10. Trust Packet (Tag 12)
843 *
844 * The Trust packet is used only within keyrings and is not normally
845 * exported. Trust packets contain data that record the user's
846 * specifications of which key holders are trustworthy introducers,
847 * along with other information that implementing software uses for
848 * trust information.
849 *
850 * Trust packets SHOULD NOT be emitted to output streams that are
851 * transferred to other users, and they SHOULD be ignored on any input
852 * other than local keyring files.
853 */
854 typedef struct pgpPktTrust_s {
855 uint8_t flag;
856 } pgpPktTrust;
857
858 /* \ingroup rpmpgp
859 * 5.11. User ID Packet (Tag 13)
860 *
861 * A User ID packet consists of data that is intended to represent the
862 * name and email address of the key holder. By convention, it includes
863 * an RFC 822 mail name, but there are no restrictions on its content.
864 * The packet length in the header specifies the length of the user id.
865 * If it is text, it is encoded in UTF-8.
866 *
867 */
868 typedef struct pgpPktUid_s {
869 uint8_t userid[1];
870 } pgpPktUid;
871
874 union pgpPktPre_u {
875 pgpPktPubkey pubkey;
876 pgpPktSig sig;
877 pgpPktSymkey symkey;
878 pgpPktOnepass onepass;
879 pgpPktKey key;
880 pgpPktCdata cdata;
881 pgpPktEdata edata;
883 pgpPktLdata ldata;
884 pgpPktTrust tdata;
885 pgpPktUid uid;
886 };
887
890 typedef enum pgpArmor_e {
891 PGPARMOR_ERR_CRC_CHECK = -7,
892 PGPARMOR_ERR_BODY_DECODE = -6,
893 PGPARMOR_ERR_CRC_DECODE = -5,
894 PGPARMOR_ERR_NO_END_PGP = -4,
895 PGPARMOR_ERR_UNKNOWN_PREAMBLE_TAG = -3,
896 PGPARMOR_ERR_UNKNOWN_ARMOR_TYPE = -2,
897 PGPARMOR_ERR_NO_BEGIN_PGP = -1,
898 #define PGPARMOR_ERROR PGPARMOR_ERR_NO_BEGIN_PGP
899 PGPARMOR_NONE = 0,
900 PGPARMOR_MESSAGE = 1,
901 PGPARMOR_PUBKEY = 2,
902 PGPARMOR_SIGNATURE = 3,
903 PGPARMOR_SIGNED_MESSAGE = 4,
904 PGPARMOR_FILE = 5,
905 PGPARMOR_PRIVKEY = 6,
906 PGPARMOR_SECKEY = 7
907 } pgpArmor;
908
911 typedef enum pgpArmorKey_e {
912 PGPARMORKEY_VERSION = 1,
913 PGPARMORKEY_COMMENT = 2,
914 PGPARMORKEY_MESSAGEID = 3,
915 PGPARMORKEY_HASH = 4,
916 PGPARMORKEY_CHARSET = 5
917 } pgpArmorKey;
918
919 typedef enum pgpValType_e {
920 PGPVAL_TAG = 1,
921 PGPVAL_ARMORBLOCK = 2,
922 PGPVAL_ARMORKEY = 3,
923 PGPVAL_SIGTYPE = 4,
924 PGPVAL_SUBTYPE = 5,
925 PGPVAL_PUBKEYALGO = 6,
926 PGPVAL_SYMKEYALGO = 7,
927 PGPVAL_COMPRESSALGO = 8,
928 PGPVAL_HASHALGO = 9,
929 PGPVAL_SERVERPREFS = 10,
930 } pgpValType;
931
935 enum rpmDigestFlags_e {
936 RPMDIGEST_NONE = 0
937 };
938
939 typedef rpmFlags rpmDigestFlags;
940
947 const char * pgpValString(pgpValType type, uint8_t val);
948
955 static inline
956 unsigned int pgpGrab(const uint8_t *s, size_t nbytes)
957 {
958 size_t i = 0;
959 size_t nb = (nbytes <= sizeof(i) ? nbytes : sizeof(i));
960 while (nb--)
961 i = (i << 8) | *s++;
962 return i;
963 }
964
971 char * pgpHexStr(const uint8_t *p, size_t plen);
972
981 int pgpPubkeyFingerprint(const uint8_t * pkt, size_t pktlen,
982 uint8_t **fp, size_t *fplen);
983
991 int pgpPubkeyKeyID(const uint8_t * pkt, size_t pktlen, pgpKeyID_t keyid);
992
1001 int pgpPrtParams(const uint8_t *pkts, size_t pktlen, unsigned int pkttype,
1002 pgpDigParams * ret);
1003
1013 int pgpPrtParamsSubkeys(const uint8_t *pkts, size_t pktlen,
1014 pgpDigParams mainkey, pgpDigParams **subkeys,
1015 int *subkeysCount);
1024 int pgpPrtPkts(const uint8_t *pkts, size_t pktlen, pgpDig dig, int printing);
1025
1033 pgpArmor pgpReadPkts(const char * fn, uint8_t ** pkt, size_t * pktlen);
1034
1042 pgpArmor pgpParsePkts(const char *armor, uint8_t ** pkt, size_t * pktlen);
1043
1056 int pgpPubKeyCertLen(const uint8_t *pkts, size_t pktslen, size_t *certlen);
1057
1065 char * pgpArmorWrap(int atype, const unsigned char * s, size_t ns);
1066
1071 pgpDig pgpNewDig(void);
1072
1077 void pgpCleanDig(pgpDig dig);
1078
1084 pgpDig pgpFreeDig(pgpDig dig);
1085
1092 pgpDigParams pgpDigGetParams(pgpDig dig, unsigned int pkttype);
1093
1100 int pgpDigParamsCmp(pgpDigParams p1, pgpDigParams p2);
1101
1108 unsigned int pgpDigParamsAlgo(pgpDigParams digp, unsigned int algotype);
1109
1115 pgpDigParams pgpDigParamsFree(pgpDigParams digp);
1116
1124 rpmRC pgpVerifySignature(pgpDigParams key, pgpDigParams sig, DIGEST_CTX hashctx);
1125
1134 rpmRC pgpVerifySig(pgpDig dig, DIGEST_CTX hashctx);
1135
1141 char *pgpIdentItem(pgpDigParams digp);
1142
1150 int rpmInitCrypto(void);
1151
1155 int rpmFreeCrypto(void);
1156
1162 DIGEST_CTX rpmDigestDup(DIGEST_CTX octx);
1163
1169 size_t rpmDigestLength(int hashalgo);
1170
1178 DIGEST_CTX rpmDigestInit(int hashalgo, rpmDigestFlags flags);
1179
1187 int rpmDigestUpdate(DIGEST_CTX ctx, const void * data, size_t len);
1188
1200 int rpmDigestFinal(DIGEST_CTX ctx,
1201 void ** datap,
1202 size_t * lenp, int asAscii);
1203
1208 rpmDigestBundle rpmDigestBundleNew(void);
1209
1215 rpmDigestBundle rpmDigestBundleFree(rpmDigestBundle bundle);
1216
1225 int rpmDigestBundleAdd(rpmDigestBundle bundle, int algo,
1226 rpmDigestFlags flags);
1227
1236 int rpmDigestBundleAddID(rpmDigestBundle bundle, int algo, int id,
1237 rpmDigestFlags flags);
1238
1246 int rpmDigestBundleUpdate(rpmDigestBundle bundle, const void *data, size_t len);
1247
1258 int rpmDigestBundleFinal(rpmDigestBundle bundle, int id,
1259 void ** datap, size_t * lenp, int asAscii);
1260
1267 DIGEST_CTX rpmDigestBundleDupCtx(rpmDigestBundle bundle, int id);
1268
1269 #ifdef __cplusplus
1270 }
1271 #endif
1272
1273 #endif /* H_RPMPGP */
pgpPktCdata_s
Definition: rpmpgp.h:745
pgpArmor
enum pgpArmor_e pgpArmor
pgpPktOnepass_s::signid
pgpKeyID_t signid
Definition: rpmpgp.h:532
pgpPrtParams
int pgpPrtParams(const uint8_t *pkts, size_t pktlen, unsigned int pkttype, pgpDigParams *ret)
PGPVAL_TAG
@ PGPVAL_TAG
Definition: rpmpgp.h:920
rpmFlags
uint32_t rpmFlags
Definition: rpmtypes.h:42
pgpPktSig_u
Definition: rpmpgp.h:459
PGPVAL_SIGTYPE
@ PGPVAL_SIGTYPE
Definition: rpmpgp.h:923
pgpPktCdata_s::compressalgo
uint8_t compressalgo
Definition: rpmpgp.h:746
pgpPktLdata_s::filenamelen
uint8_t filenamelen
Definition: rpmpgp.h:837
PGPSYMKEYALGO_SAFER
@ PGPSYMKEYALGO_SAFER
Definition: rpmpgp.h:204
PGPTAG_PRIVATE_62
@ PGPTAG_PRIVATE_62
Definition: rpmpgp.h:68
PGPSYMKEYALGO_BLOWFISH
@ PGPSYMKEYALGO_BLOWFISH
Definition: rpmpgp.h:203
pgpPktSigV4_s::pubkey_algo
uint8_t pubkey_algo
Definition: rpmpgp.h:327
pgpVerifySig
rpmRC pgpVerifySig(pgpDig dig, DIGEST_CTX hashctx)
PGPCOMPRESSALGO_ZIP
@ PGPCOMPRESSALGO_ZIP
Definition: rpmpgp.h:230
PGPHASHALGO_SHA256
@ PGPHASHALGO_SHA256
Definition: rpmpgp.h:265
pgpPktPre_u::onepass
pgpPktOnepass onepass
Definition: rpmpgp.h:878
PGPVAL_SYMKEYALGO
@ PGPVAL_SYMKEYALGO
Definition: rpmpgp.h:926
pgpPktKeyV4_s::version
uint8_t version
Definition: rpmpgp.h:647
PGPTAG_SECRET_KEY
@ PGPTAG_SECRET_KEY
Definition: rpmpgp.h:52
PGPTAG_PUBLIC_SUBKEY
@ PGPTAG_PUBLIC_SUBKEY
Definition: rpmpgp.h:61
PGPHASHALGO_SHA1
@ PGPHASHALGO_SHA1
Definition: rpmpgp.h:260
PGPSIGTYPE_POSITIVE_CERT
@ PGPSIGTYPE_POSITIVE_CERT
Definition: rpmpgp.h:129
PGPHASHALGO_SHA512
@ PGPHASHALGO_SHA512
Definition: rpmpgp.h:267
PGPSIGTYPE_SIGNED_KEY
@ PGPSIGTYPE_SIGNED_KEY
Definition: rpmpgp.h:132
PGPARMOR_MESSAGE
@ PGPARMOR_MESSAGE
Definition: rpmpgp.h:900
pgpCompressAlgo
enum pgpCompressAlgo_e pgpCompressAlgo
pgpPktKeyV3_s
Definition: rpmpgp.h:608
pgpPktSymkey_s::symkey_algo
uint8_t symkey_algo
Definition: rpmpgp.h:494
PGPSUBTYPE_SIGNER_USERID
@ PGPSUBTYPE_SIGNER_USERID
Definition: rpmpgp.h:419
rpmDigestLength
size_t rpmDigestLength(int hashalgo)
pgpKeyID_t
uint8_t pgpKeyID_t[8]
Definition: rpmpgp.h:36
pgpPktSigV4_s
Definition: rpmpgp.h:324
rpmFreeCrypto
int rpmFreeCrypto(void)
pgpNewDig
pgpDig pgpNewDig(void)
PGPTAG_ONEPASS_SIGNATURE
@ PGPTAG_ONEPASS_SIGNATURE
Definition: rpmpgp.h:51
rpmDigestFinal
int rpmDigestFinal(DIGEST_CTX ctx, void **datap, size_t *lenp, int asAscii)
PGPSUBTYPE_INTERNAL_102
@ PGPSUBTYPE_INTERNAL_102
Definition: rpmpgp.h:426
PGPSYMKEYALGO_IDEA
@ PGPSYMKEYALGO_IDEA
Definition: rpmpgp.h:200
PGPARMORKEY_COMMENT
@ PGPARMORKEY_COMMENT
Definition: rpmpgp.h:913
PGPSUBTYPE_PREFER_SYMKEY
@ PGPSUBTYPE_PREFER_SYMKEY
Definition: rpmpgp.h:408
PGPARMOR_PRIVKEY
@ PGPARMOR_PRIVKEY
Definition: rpmpgp.h:905
pgpSubType
enum pgpSubType_e pgpSubType
pgpHashAlgo_e
pgpHashAlgo_e
Definition: rpmpgp.h:258
pgpPktKey
union pgpPktKey_u pgpPktKey
pgpPktSig_u::v4
struct pgpPktSigV4_s v4
Definition: rpmpgp.h:461
PGPSUBTYPE_CRITICAL
@ PGPSUBTYPE_CRITICAL
Definition: rpmpgp.h:436
pgpArmorKey_e
pgpArmorKey_e
Definition: rpmpgp.h:911
pgpPktSigV4_s::version
uint8_t version
Definition: rpmpgp.h:325
pgpPktOnepass_s::hash_algo
uint8_t hash_algo
Definition: rpmpgp.h:530
pgpPktPre_u::symkey
pgpPktSymkey symkey
Definition: rpmpgp.h:877
PGPPUBKEYALGO_EC
@ PGPPUBKEYALGO_EC
Definition: rpmpgp.h:168
PGPSUBTYPE_PREFER_HASH
@ PGPSUBTYPE_PREFER_HASH
Definition: rpmpgp.h:412
PGPPUBKEYALGO_ELGAMAL_ENCRYPT
@ PGPPUBKEYALGO_ELGAMAL_ENCRYPT
Definition: rpmpgp.h:166
PGPTAG_RESERVED
@ PGPTAG_RESERVED
Definition: rpmpgp.h:47
PGPARMOR_SIGNATURE
@ PGPARMOR_SIGNATURE
Definition: rpmpgp.h:902
PGPTAG_CONTROL
@ PGPTAG_CONTROL
Definition: rpmpgp.h:69
pgpDigParamsAlgo
unsigned int pgpDigParamsAlgo(pgpDigParams digp, unsigned int algotype)
pgpPktPre_u::pubkey
pgpPktPubkey pubkey
Definition: rpmpgp.h:875
PGPPUBKEYALGO_ECDSA
@ PGPPUBKEYALGO_ECDSA
Definition: rpmpgp.h:169
rpmDigestBundleAddID
int rpmDigestBundleAddID(rpmDigestBundle bundle, int algo, int id, rpmDigestFlags flags)
pgpPktUid_s
Definition: rpmpgp.h:868
pgpPktSigV3
struct pgpPktSigV3_s * pgpPktSigV3
pgpPktTrust_s::flag
uint8_t flag
Definition: rpmpgp.h:855
pgpPubkeyFingerprint
int pgpPubkeyFingerprint(const uint8_t *pkt, size_t pktlen, uint8_t **fp, size_t *fplen)
pgpPktPre_u::edata
pgpPktEdata edata
Definition: rpmpgp.h:881
PGPARMOR_FILE
@ PGPARMOR_FILE
Definition: rpmpgp.h:904
PGPHASHALGO_MD5
@ PGPHASHALGO_MD5
Definition: rpmpgp.h:259
pgpPktOnepass_s::pubkey_algo
uint8_t pubkey_algo
Definition: rpmpgp.h:531
pgpPktOnepass_s::version
uint8_t version
Definition: rpmpgp.h:528
PGPPUBKEYALGO_DH
@ PGPPUBKEYALGO_DH
Definition: rpmpgp.h:171
pgpPktPre_u::tdata
pgpPktTrust tdata
Definition: rpmpgp.h:884
PGPSYMKEYALGO_PLAINTEXT
@ PGPSYMKEYALGO_PLAINTEXT
Definition: rpmpgp.h:199
pgpPubkeyAlgo_e
pgpPubkeyAlgo_e
Definition: rpmpgp.h:162
PGPSUBTYPE_PREFER_KEYSERVER
@ PGPSUBTYPE_PREFER_KEYSERVER
Definition: rpmpgp.h:415
PGPSUBTYPE_INTERNAL_110
@ PGPSUBTYPE_INTERNAL_110
Definition: rpmpgp.h:434
pgpPubKeyCertLen
int pgpPubKeyCertLen(const uint8_t *pkts, size_t pktslen, size_t *certlen)
PGPHASHALGO_HAVAL_5_160
@ PGPHASHALGO_HAVAL_5_160
Definition: rpmpgp.h:264
PGPTAG_PRIVATE_60
@ PGPTAG_PRIVATE_60
Definition: rpmpgp.h:66
pgpSymkeyAlgo_e
pgpSymkeyAlgo_e
Definition: rpmpgp.h:198
pgpArmorKey
enum pgpArmorKey_e pgpArmorKey
PGPSIGTYPE_GENERIC_CERT
@ PGPSIGTYPE_GENERIC_CERT
Definition: rpmpgp.h:123
PGPSYMKEYALGO_AES_128
@ PGPSYMKEYALGO_AES_128
Definition: rpmpgp.h:206
PGPSUBTYPE_INTERNAL_107
@ PGPSUBTYPE_INTERNAL_107
Definition: rpmpgp.h:431
PGPSUBTYPE_SIG_EXPIRE_TIME
@ PGPSUBTYPE_SIG_EXPIRE_TIME
Definition: rpmpgp.h:401
pgpParsePkts
pgpArmor pgpParsePkts(const char *armor, uint8_t **pkt, size_t *pktlen)
PGPTAG_USER_ID
@ PGPTAG_USER_ID
Definition: rpmpgp.h:60
PGPARMORKEY_VERSION
@ PGPARMORKEY_VERSION
Definition: rpmpgp.h:912
pgpPktSigV3_s::pubkey_algo
uint8_t pubkey_algo
Definition: rpmpgp.h:298
PGPARMORKEY_CHARSET
@ PGPARMORKEY_CHARSET
Definition: rpmpgp.h:916
PGPVAL_PUBKEYALGO
@ PGPVAL_PUBKEYALGO
Definition: rpmpgp.h:925
PGPTAG_PUBLIC_KEY
@ PGPTAG_PUBLIC_KEY
Definition: rpmpgp.h:53
PGPTAG_TRUST
@ PGPTAG_TRUST
Definition: rpmpgp.h:59
PGPHASHALGO_SHA384
@ PGPHASHALGO_SHA384
Definition: rpmpgp.h:266
pgpPktSigV3_s
Definition: rpmpgp.h:292
pgpPktPre_u::ldata
pgpPktLdata ldata
Definition: rpmpgp.h:883
pgpDigGetParams
pgpDigParams pgpDigGetParams(pgpDig dig, unsigned int pkttype)
pgpPktKeyV3
struct pgpPktKeyV3_s * pgpPktKeyV3
rpmDigestBundleAdd
int rpmDigestBundleAdd(rpmDigestBundle bundle, int algo, rpmDigestFlags flags)
PGPSIGTYPE_TIMESTAMP
@ PGPSIGTYPE_TIMESTAMP
Definition: rpmpgp.h:136
pgpCleanDig
void pgpCleanDig(pgpDig dig)
rpmRC
enum rpmRC_e rpmRC
pgpPrtPkts
int pgpPrtPkts(const uint8_t *pkts, size_t pktlen, pgpDig dig, int printing)
pgpPktPubkey_s::keyid
pgpKeyID_t keyid
Definition: rpmpgp.h:108
pgpHexStr
char * pgpHexStr(const uint8_t *p, size_t plen)
PGPTAG_SECRET_SUBKEY
@ PGPTAG_SECRET_SUBKEY
Definition: rpmpgp.h:54
PGPSUBTYPE_REVOCABLE
@ PGPSUBTYPE_REVOCABLE
Definition: rpmpgp.h:405
PGPSUBTYPE_NOTATION
@ PGPSUBTYPE_NOTATION
Definition: rpmpgp.h:411
pgpPktCdata_s::data
uint8_t data[1]
Definition: rpmpgp.h:747
PGPTAG_LITERAL_DATA
@ PGPTAG_LITERAL_DATA
Definition: rpmpgp.h:58
PGPSYMKEYALGO_TRIPLE_DES
@ PGPSYMKEYALGO_TRIPLE_DES
Definition: rpmpgp.h:201
pgpPktCdata
struct pgpPktCdata_s pgpPktCdata
PGPSIGTYPE_KEY_REVOKE
@ PGPSIGTYPE_KEY_REVOKE
Definition: rpmpgp.h:133
PGPPUBKEYALGO_RSA_ENCRYPT
@ PGPPUBKEYALGO_RSA_ENCRYPT
Definition: rpmpgp.h:164
pgpPktPre_u::cdata
pgpPktCdata cdata
Definition: rpmpgp.h:880
PGPSUBTYPE_PRIMARY_USERID
@ PGPSUBTYPE_PRIMARY_USERID
Definition: rpmpgp.h:416
pgpPktLdata_s::filename
uint8_t filename[1]
Definition: rpmpgp.h:838
pgpDigParamsCmp
int pgpDigParamsCmp(pgpDigParams p1, pgpDigParams p2)
pgpPktPubkey_s
Definition: rpmpgp.h:106
pgpTag_e
pgpTag_e
Definition: rpmpgp.h:46
pgpPktLdata_s::format
uint8_t format
Definition: rpmpgp.h:836
pgpReadPkts
pgpArmor pgpReadPkts(const char *fn, uint8_t **pkt, size_t *pktlen)
PGPVAL_ARMORKEY
@ PGPVAL_ARMORKEY
Definition: rpmpgp.h:922
pgpPktKey_u::v4
struct pgpPktKeyV4_s v4
Definition: rpmpgp.h:718
rpmDigestBundleFree
rpmDigestBundle rpmDigestBundleFree(rpmDigestBundle bundle)
PGPSUBTYPE_SIG_CREATE_TIME
@ PGPSUBTYPE_SIG_CREATE_TIME
Definition: rpmpgp.h:400
pgpPktSigV3_s::hash_algo
uint8_t hash_algo
Definition: rpmpgp.h:299
PGPARMOR_ERR_BODY_DECODE
@ PGPARMOR_ERR_BODY_DECODE
Definition: rpmpgp.h:892
pgpValString
const char * pgpValString(pgpValType type, uint8_t val)
PGPSIGTYPE_CERT_REVOKE
@ PGPSIGTYPE_CERT_REVOKE
Definition: rpmpgp.h:135
rpmDigestFlags
rpmFlags rpmDigestFlags
Definition: rpmpgp.h:939
pgpPktKeyV3_s::time
pgpTime_t time
Definition: rpmpgp.h:610
PGPSUBTYPE_EMBEDDED_SIG
@ PGPSUBTYPE_EMBEDDED_SIG
Definition: rpmpgp.h:422
PGPPUBKEYALGO_ELGAMAL
@ PGPPUBKEYALGO_ELGAMAL
Definition: rpmpgp.h:170
pgpPktKeyV3_s::pubkey_algo
uint8_t pubkey_algo
Definition: rpmpgp.h:612
PGPTAG_SYMMETRIC_DATA
@ PGPTAG_SYMMETRIC_DATA
Definition: rpmpgp.h:56
PGPSUBTYPE_INTERNAL_100
@ PGPSUBTYPE_INTERNAL_100
Definition: rpmpgp.h:424
PGPTAG_COMMENT
@ PGPTAG_COMMENT
Definition: rpmpgp.h:67
PGPVAL_SUBTYPE
@ PGPVAL_SUBTYPE
Definition: rpmpgp.h:924
rpmDigestBundleDupCtx
DIGEST_CTX rpmDigestBundleDupCtx(rpmDigestBundle bundle, int id)
PGPPUBKEYALGO_RSA
@ PGPPUBKEYALGO_RSA
Definition: rpmpgp.h:163
PGPARMORKEY_MESSAGEID
@ PGPARMORKEY_MESSAGEID
Definition: rpmpgp.h:914
pgpPktUid
struct pgpPktUid_s pgpPktUid
PGPSUBTYPE_INTERNAL_108
@ PGPSUBTYPE_INTERNAL_108
Definition: rpmpgp.h:432
RPMDIGEST_NONE
@ RPMDIGEST_NONE
Definition: rpmpgp.h:936
pgpPktPre_u
Definition: rpmpgp.h:874
PGPSUBTYPE_FEATURES
@ PGPSUBTYPE_FEATURES
Definition: rpmpgp.h:421
PGPSUBTYPE_INTERNAL_103
@ PGPSUBTYPE_INTERNAL_103
Definition: rpmpgp.h:427
PGPTAG_PHOTOID
@ PGPTAG_PHOTOID
Definition: rpmpgp.h:63
PGPARMOR_ERR_NO_END_PGP
@ PGPARMOR_ERR_NO_END_PGP
Definition: rpmpgp.h:894
pgpPktKeyV3_s::version
uint8_t version
Definition: rpmpgp.h:609
rpmDigestBundle
struct rpmDigestBundle_s * rpmDigestBundle
Definition: rpmpgp.h:26
pgpPktTrust
struct pgpPktTrust_s pgpPktTrust
pgpIdentItem
char * pgpIdentItem(pgpDigParams digp)
PGPARMOR_SECKEY
@ PGPARMOR_SECKEY
Definition: rpmpgp.h:906
pgpPktKeyV4_s::time
pgpTime_t time
Definition: rpmpgp.h:648
pgpCompressAlgo_e
pgpCompressAlgo_e
Definition: rpmpgp.h:228
PGPSUBTYPE_INTERNAL_106
@ PGPSUBTYPE_INTERNAL_106
Definition: rpmpgp.h:430
PGPSYMKEYALGO_CAST5
@ PGPSYMKEYALGO_CAST5
Definition: rpmpgp.h:202
PGPARMORKEY_HASH
@ PGPARMORKEY_HASH
Definition: rpmpgp.h:915
pgpPktUid_s::userid
uint8_t userid[1]
Definition: rpmpgp.h:869
PGPSUBTYPE_REGEX
@ PGPSUBTYPE_REGEX
Definition: rpmpgp.h:404
pgpPktPubkey_s::version
uint8_t version
Definition: rpmpgp.h:107
pgpPktSigV3_s::signid
pgpKeyID_t signid
Definition: rpmpgp.h:297
pgpPubkeyKeyID
int pgpPubkeyKeyID(const uint8_t *pkt, size_t pktlen, pgpKeyID_t keyid)
PGPTAG_COMMENT_OLD
@ PGPTAG_COMMENT_OLD
Definition: rpmpgp.h:62
PGPSYMKEYALGO_AES_192
@ PGPSYMKEYALGO_AES_192
Definition: rpmpgp.h:207
pgpPktKey_u
Definition: rpmpgp.h:716
rpmInitCrypto
int rpmInitCrypto(void)
PGPPUBKEYALGO_RSA_SIGN
@ PGPPUBKEYALGO_RSA_SIGN
Definition: rpmpgp.h:165
PGPSUBTYPE_ISSUER_KEYID
@ PGPSUBTYPE_ISSUER_KEYID
Definition: rpmpgp.h:410
PGPARMOR_NONE
@ PGPARMOR_NONE
Definition: rpmpgp.h:899
rpmDigestBundleNew
rpmDigestBundle rpmDigestBundleNew(void)
pgpPktKeyV4_s::pubkey_algo
uint8_t pubkey_algo
Definition: rpmpgp.h:649
PGPTAG_COMPRESSED_DATA
@ PGPTAG_COMPRESSED_DATA
Definition: rpmpgp.h:55
pgpPktOnepass_s::nested
uint8_t nested
Definition: rpmpgp.h:533
PGPARMOR_SIGNED_MESSAGE
@ PGPARMOR_SIGNED_MESSAGE
Definition: rpmpgp.h:903
pgpPktOnepass_s
Definition: rpmpgp.h:527
PGPTAG_MDC
@ PGPTAG_MDC
Definition: rpmpgp.h:65
PGPARMOR_ERR_UNKNOWN_PREAMBLE_TAG
@ PGPARMOR_ERR_UNKNOWN_PREAMBLE_TAG
Definition: rpmpgp.h:895
PGPSYMKEYALGO_DES_SK
@ PGPSYMKEYALGO_DES_SK
Definition: rpmpgp.h:205
pgpPktSigV4_s::hashlen
uint8_t hashlen[2]
Definition: rpmpgp.h:329
PGPSUBTYPE_TRUST_SIG
@ PGPSUBTYPE_TRUST_SIG
Definition: rpmpgp.h:403
pgpPktSigV3_s::signhash16
uint8_t signhash16[2]
Definition: rpmpgp.h:300
PGPVAL_HASHALGO
@ PGPVAL_HASHALGO
Definition: rpmpgp.h:928
pgpSubType_e
pgpSubType_e
Definition: rpmpgp.h:398
PGPCOMPRESSALGO_ZLIB
@ PGPCOMPRESSALGO_ZLIB
Definition: rpmpgp.h:231
pgpPktSigV3_s::hashlen
uint8_t hashlen
Definition: rpmpgp.h:294
pgpPktKeyV4
struct pgpPktKeyV4_s * pgpPktKeyV4
pgpPktPre_u::uid
pgpPktUid uid
Definition: rpmpgp.h:885
PGPTAG_ENCRYPTED_MDC
@ PGPTAG_ENCRYPTED_MDC
Definition: rpmpgp.h:64
PGPSIGTYPE_PERSONA_CERT
@ PGPSIGTYPE_PERSONA_CERT
Definition: rpmpgp.h:125
pgpPktEdata
struct pgpPktEdata_s pgpPktEdata
pgpValType
enum pgpValType_e pgpValType
pgpArmorWrap
char * pgpArmorWrap(int atype, const unsigned char *s, size_t ns)
PGPSUBTYPE_INTERNAL_104
@ PGPSUBTYPE_INTERNAL_104
Definition: rpmpgp.h:428
PGPSUBTYPE_INTERNAL_105
@ PGPSUBTYPE_INTERNAL_105
Definition: rpmpgp.h:429
PGPVAL_SERVERPREFS
@ PGPVAL_SERVERPREFS
Definition: rpmpgp.h:929
PGPVAL_COMPRESSALGO
@ PGPVAL_COMPRESSALGO
Definition: rpmpgp.h:927
pgpPktSigV3_s::version
uint8_t version
Definition: rpmpgp.h:293
pgpPktSymkey_s
5.3.
Definition: rpmpgp.h:492
rpmDigestInit
DIGEST_CTX rpmDigestInit(int hashalgo, rpmDigestFlags flags)
PGPPUBKEYALGO_DSA
@ PGPPUBKEYALGO_DSA
Definition: rpmpgp.h:167
PGPSYMKEYALGO_AES_256
@ PGPSYMKEYALGO_AES_256
Definition: rpmpgp.h:208
PGPSIGTYPE_SUBKEY_BINDING
@ PGPSIGTYPE_SUBKEY_BINDING
Definition: rpmpgp.h:131
PGPHASHALGO_TIGER192
@ PGPHASHALGO_TIGER192
Definition: rpmpgp.h:263
pgpValType_e
pgpValType_e
Definition: rpmpgp.h:919
PGPSIGTYPE_SUBKEY_REVOKE
@ PGPSIGTYPE_SUBKEY_REVOKE
Definition: rpmpgp.h:134
PGPTAG_SYMMETRIC_SESSION_KEY
@ PGPTAG_SYMMETRIC_SESSION_KEY
Definition: rpmpgp.h:50
pgpPktSig_u::v3
struct pgpPktSigV3_s v3
Definition: rpmpgp.h:460
pgpPktSymkey_s::version
uint8_t version
Definition: rpmpgp.h:493
pgpPktSigV4_s::hash_algo
uint8_t hash_algo
Definition: rpmpgp.h:328
PGPTAG_MARKER
@ PGPTAG_MARKER
Definition: rpmpgp.h:57
pgpHashAlgo
enum pgpHashAlgo_e pgpHashAlgo
pgpPktSymkey_s::s2k
uint8_t s2k[1]
Definition: rpmpgp.h:495
pgpSymkeyAlgo
enum pgpSymkeyAlgo_e pgpSymkeyAlgo
pgpSigType
enum pgpSigType_e pgpSigType
pgpPktKeyV4_s
Definition: rpmpgp.h:646
pgpPktTrust_s
Definition: rpmpgp.h:854
pgpFreeDig
pgpDig pgpFreeDig(pgpDig dig)
pgpDig
struct pgpDig_s * pgpDig
Definition: rpmpgp.h:30
PGPSIGTYPE_TEXT
@ PGPSIGTYPE_TEXT
Definition: rpmpgp.h:121
pgpVerifySignature
rpmRC pgpVerifySignature(pgpDigParams key, pgpDigParams sig, DIGEST_CTX hashctx)
PGPSUBTYPE_REVOKE_KEY
@ PGPSUBTYPE_REVOKE_KEY
Definition: rpmpgp.h:409
pgpPktLdata_s
Definition: rpmpgp.h:835
pgpDigParamsFree
pgpDigParams pgpDigParamsFree(pgpDigParams digp)
PGPSIGTYPE_STANDALONE
@ PGPSIGTYPE_STANDALONE
Definition: rpmpgp.h:122
rpmDigestFlags_e
rpmDigestFlags_e
Definition: rpmpgp.h:935
PGPSIGTYPE_BINARY
@ PGPSIGTYPE_BINARY
Definition: rpmpgp.h:120
PGPSUBTYPE_KEY_EXPIRE_TIME
@ PGPSUBTYPE_KEY_EXPIRE_TIME
Definition: rpmpgp.h:406
pgpPktKey_u::v3
struct pgpPktKeyV3_s v3
Definition: rpmpgp.h:717
rpmDigestBundleUpdate
int rpmDigestBundleUpdate(rpmDigestBundle bundle, const void *data, size_t len)
PGPTAG_PUBLIC_SESSION_KEY
@ PGPTAG_PUBLIC_SESSION_KEY
Definition: rpmpgp.h:48
PGPCOMPRESSALGO_BZIP2
@ PGPCOMPRESSALGO_BZIP2
Definition: rpmpgp.h:232
pgpSigType_e
pgpSigType_e
Definition: rpmpgp.h:119
pgpPktSymkey
struct pgpPktSymkey_s pgpPktSymkey
5.3.
rpmDigestBundleFinal
int rpmDigestBundleFinal(rpmDigestBundle bundle, int id, void **datap, size_t *lenp, int asAscii)
pgpTime_t
uint8_t pgpTime_t[4]
Definition: rpmpgp.h:37
pgpGrab
static unsigned int pgpGrab(const uint8_t *s, size_t nbytes)
Definition: rpmpgp.h:956
pgpPktLdata
struct pgpPktLdata_s pgpPktLdata
pgpPktPre_u::sig
pgpPktSig sig
Definition: rpmpgp.h:876
pgpDigParams
struct pgpDigParams_s * pgpDigParams
Definition: rpmpgp.h:34
pgpPktEdata_s::data
uint8_t data[1]
Definition: rpmpgp.h:785
PGPSIGTYPE_CASUAL_CERT
@ PGPSIGTYPE_CASUAL_CERT
Definition: rpmpgp.h:127
pgpPktSig
union pgpPktSig_u * pgpPktSig
PGPARMOR_ERR_CRC_CHECK
@ PGPARMOR_ERR_CRC_CHECK
Definition: rpmpgp.h:891
PGPSUBTYPE_INTERNAL_101
@ PGPSUBTYPE_INTERNAL_101
Definition: rpmpgp.h:425
PGPHASHALGO_MD2
@ PGPHASHALGO_MD2
Definition: rpmpgp.h:262
pgpPktKeyV3_s::valid
uint8_t valid[2]
Definition: rpmpgp.h:611
PGPARMOR_ERR_CRC_DECODE
@ PGPARMOR_ERR_CRC_DECODE
Definition: rpmpgp.h:893
PGPSUBTYPE_NONE
@ PGPSUBTYPE_NONE
Definition: rpmpgp.h:399
pgpArmor_e
pgpArmor_e
Definition: rpmpgp.h:890
PGPTAG_SIGNATURE
@ PGPTAG_SIGNATURE
Definition: rpmpgp.h:49
pgpPktEdata_s
Definition: rpmpgp.h:784
PGPHASHALGO_SHA224
@ PGPHASHALGO_SHA224
Definition: rpmpgp.h:268
PGPSYMKEYALGO_NOENCRYPT
@ PGPSYMKEYALGO_NOENCRYPT
Definition: rpmpgp.h:210
pgpPktSigV3_s::time
pgpTime_t time
Definition: rpmpgp.h:296
PGPARMOR_ERR_UNKNOWN_ARMOR_TYPE
@ PGPARMOR_ERR_UNKNOWN_ARMOR_TYPE
Definition: rpmpgp.h:896
PGPSYMKEYALGO_TWOFISH
@ PGPSYMKEYALGO_TWOFISH
Definition: rpmpgp.h:209
pgpPktOnepass_s::sigtype
uint8_t sigtype
Definition: rpmpgp.h:529
PGPSUBTYPE_PREFER_COMPRESS
@ PGPSUBTYPE_PREFER_COMPRESS
Definition: rpmpgp.h:413
PGPARMOR_PUBKEY
@ PGPARMOR_PUBKEY
Definition: rpmpgp.h:901
pgpPktSigV4
struct pgpPktSigV4_s * pgpPktSigV4
PGPSUBTYPE_KEYSERVER_PREFERS
@ PGPSUBTYPE_KEYSERVER_PREFERS
Definition: rpmpgp.h:414
pgpPktSigV3_s::sigtype
uint8_t sigtype
Definition: rpmpgp.h:295
PGPSUBTYPE_REVOKE_REASON
@ PGPSUBTYPE_REVOKE_REASON
Definition: rpmpgp.h:420
DIGEST_CTX
struct DIGEST_CTX_s * DIGEST_CTX
Definition: rpmpgp.h:25
PGPHASHALGO_RIPEMD160
@ PGPHASHALGO_RIPEMD160
Definition: rpmpgp.h:261
pgpPktPubkey_s::algo
uint8_t algo
Definition: rpmpgp.h:109
pgpPrtParamsSubkeys
int pgpPrtParamsSubkeys(const uint8_t *pkts, size_t pktlen, pgpDigParams mainkey, pgpDigParams **subkeys, int *subkeysCount)
pgpPubkeyAlgo
enum pgpPubkeyAlgo_e pgpPubkeyAlgo
pgpTag
enum pgpTag_e pgpTag
pgpPktPre_u::key
pgpPktKey key
Definition: rpmpgp.h:879
PGPSUBTYPE_ARR
@ PGPSUBTYPE_ARR
Definition: rpmpgp.h:407
rpmDigestUpdate
int rpmDigestUpdate(DIGEST_CTX ctx, const void *data, size_t len)
pgpPktOnepass
struct pgpPktOnepass_s * pgpPktOnepass
rpmDigestDup
DIGEST_CTX rpmDigestDup(DIGEST_CTX octx)
PGPARMOR_ERR_NO_BEGIN_PGP
@ PGPARMOR_ERR_NO_BEGIN_PGP
Definition: rpmpgp.h:897
pgpPktSigV4_s::sigtype
uint8_t sigtype
Definition: rpmpgp.h:326
PGPCOMPRESSALGO_NONE
@ PGPCOMPRESSALGO_NONE
Definition: rpmpgp.h:229
PGPSUBTYPE_INTERNAL_109
@ PGPSUBTYPE_INTERNAL_109
Definition: rpmpgp.h:433
PGPVAL_ARMORBLOCK
@ PGPVAL_ARMORBLOCK
Definition: rpmpgp.h:921
PGPSUBTYPE_POLICY_URL
@ PGPSUBTYPE_POLICY_URL
Definition: rpmpgp.h:417
PGPSUBTYPE_EXPORTABLE_CERT
@ PGPSUBTYPE_EXPORTABLE_CERT
Definition: rpmpgp.h:402
PGPSUBTYPE_KEY_FLAGS
@ PGPSUBTYPE_KEY_FLAGS
Definition: rpmpgp.h:418
pgpPktPubkey
struct pgpPktPubkey_s pgpPktPubkey