aboutsummaryrefslogtreecommitdiffstats
path: root/g10/sig-check.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/sig-check.c')
-rw-r--r--g10/sig-check.c32
1 files changed, 23 insertions, 9 deletions
diff --git a/g10/sig-check.c b/g10/sig-check.c
index 773eff7ca..742727c99 100644
--- a/g10/sig-check.c
+++ b/g10/sig-check.c
@@ -390,16 +390,30 @@ hash_uid_node( KBNODE unode, MD_HANDLE md, PKT_signature *sig )
PKT_user_id *uid = unode->pkt->pkt.user_id;
assert( unode->pkt->pkttype == PKT_USER_ID );
- if( sig->version >=4 ) {
- byte buf[5];
- buf[0] = 0xb4; /* indicates a userid packet */
- buf[1] = uid->len >> 24; /* always use 4 length bytes */
- buf[2] = uid->len >> 16;
- buf[3] = uid->len >> 8;
- buf[4] = uid->len;
- md_write( md, buf, 5 );
+ if( uid->photo ) {
+ if( sig->version >=4 ) {
+ byte buf[5];
+ buf[0] = 0xd1; /* packet of type 17 */
+ buf[1] = uid->photolen >> 24; /* always use 4 length bytes */
+ buf[2] = uid->photolen >> 16;
+ buf[3] = uid->photolen >> 8;
+ buf[4] = uid->photolen;
+ md_write( md, buf, 5 );
+ }
+ md_write( md, uid->photo, uid->photolen );
+ }
+ else {
+ if( sig->version >=4 ) {
+ byte buf[5];
+ buf[0] = 0xb4; /* indicates a userid packet */
+ buf[1] = uid->len >> 24; /* always use 4 length bytes */
+ buf[2] = uid->len >> 16;
+ buf[3] = uid->len >> 8;
+ buf[4] = uid->len;
+ md_write( md, buf, 5 );
+ }
+ md_write( md, uid->name, uid->len );
}
- md_write( md, uid->name, uid->len );
}
/****************