Lines Matching full:sig
109 decode_sig(int tag, unsigned char **pptr, size_t len, OpenPGP_sig *sig)
132 sig->pgpbytes = malloc(5);
133 if (!sig->pgpbytes)
135 memcpy(sig->pgpbytes, ptr, 5);
136 sig->pgpbytes_len = 5;
137 sig->sig_type = *ptr++;
139 sig->key_id = octets2hex(ptr, 8);
141 sig->sig_alg = *ptr++;
142 sig->hash_alg = *ptr++;
144 sig->sig_type = *ptr++;
145 sig->sig_alg = *ptr++;
146 sig->hash_alg = *ptr++;
149 sig->pgpbytes_len = (size_t)hcount + 6;
150 sig->pgpbytes = malloc(sig->pgpbytes_len + 6);
151 if (!sig->pgpbytes)
153 memcpy(sig->pgpbytes, pgpbytes, sig->pgpbytes_len);
154 sp = &sig->pgpbytes[sig->pgpbytes_len];
157 memcpy(sp, i2octets(4, (int)sig->pgpbytes_len), 4);
158 sig->pgpbytes_len += 6;
172 free(sig->key_id);
173 sig->key_id = octets2hex(sp, 8);
179 if (sig->sig_alg == 1) { /* RSA */
180 sig->sig = decode_mpi(&ptr, &sig->sig_len);
288 OpenPGP_sig *sig;
306 sig = NEW(OpenPGP_sig);
307 if (!sdata || !sig) {
314 rc = decode_packet(2, &ptr, sbytes, (decoder_t)decode_sig, sig);
315 DEBUG_PRINTF(2, ("rc=%d keyID=%s\n", rc, sig->key_id ? sig->key_id : "?"));
316 if (rc == 0 && sig->key_id) {
317 key = load_key_id(sig->key_id);
319 warnx("cannot find key-id: %s", sig->key_id);
321 } else if (!(hname = get_hname(sig->hash_alg))) {
322 warnx("unsupported hash algorithm: %d", sig->hash_alg);
331 switch (sig->hash_alg) { /* see hash_algs above */
359 md->update(&mctx.vtable, sig->pgpbytes,
360 sig->pgpbytes_len);
364 mdata, mlen, sig->sig, sig->sig_len);
369 EVP_DigestUpdate(&mctx, sig->pgpbytes,
370 sig->pgpbytes_len);
375 sig->sig, sig->sig_len);
398 free(sig);