00001
00002
00003 #include "system.h"
00004
00005 #include <rpmlib.h>
00006 #include "rpmlead.h"
00007 #include "signature.h"
00008 #include "debug.h"
00009
00010 int main(int argc, char **argv)
00011 {
00012 FD_t fdi, fdo;
00013 struct rpmlead lead;
00014 Header hd;
00015 int rc;
00016
00017 setprogname(argv[0]);
00018 if (argc == 1) {
00019 fdi = Fopen("-", "r.ufdio");
00020 } else {
00021 fdi = Fopen(argv[1], "r.ufdio");
00022 }
00023
00024 if (Ferror(fdi)) {
00025 fprintf(stderr, "%s: %s: %s\n", argv[0],
00026 (argc == 1 ? "<stdin>" : argv[1]), Fstrerror(fdi));
00027 exit(EXIT_FAILURE);
00028 }
00029
00030 readLead(fdi, &lead);
00031 rpmReadSignature(fdi, NULL, lead.signature_type, NULL);
00032 hd = headerRead(fdi, (lead.major >= 3) ?
00033 HEADER_MAGIC_YES : HEADER_MAGIC_NO);
00034 fdo = Fopen("-", "w.ufdio");
00035 rc = headerWrite(fdo, hd, HEADER_MAGIC_YES);
00036
00037 return rc;
00038 }