Wireshark-dev: Re: [Wireshark-dev] Remove our bundled crypto library (in favor of Libgcrypt)?

From: Peter Wu <peter@xxxxxxxxxxxxx>
Date: Sat, 11 Feb 2017 22:38:06 +0100
(forgot to attach the file lists...)

On Sat, Feb 11, 2017 at 10:35:10PM +0100, Peter Wu wrote:
> On Sat, Feb 11, 2017 at 09:31:17PM +0100, Erik de Jong wrote:
> > On Sat, Feb 11, 2017 at 8:55 PM, Peter Wu <peter@xxxxxxxxxxxxx> wrote:
> [..]
> > > My original goal was to replace wsutil by an existing crypto library
> > > (case 2). Since we Libgcrypt is already used in a lot of places, it
> > > seemed natural to replace wsutil by Libgcrypt.
> > >
> > > When trying to do so, I noticed that having an optional Libgcrypt makes
> > > it much harder and hence changeset 20030 was created first to make it
> > > mandatory. Once that is in place, we can change the wsutil crypto users
> > > to Libgcrypt. I plan to start working on that in the next days, let me
> > > know if you want to join this effort :-)
> > >
> > 
> > I'd like to help out, please tell me how I can assist in a way that won't
> > be counterproductive.
> 
> Thanks!  The following files need to be modified / removed:
> 
>     debian/libwsutil0.symbols
>     wsutil/CMakeLists.txt
>     wsutil/Makefile.am
>     wsutil/aes.c
>     wsutil/aes.h
>     wsutil/des.c
>     wsutil/des.h
>     wsutil/md4.c
>     wsutil/md4.h
>     wsutil/md5.c
>     wsutil/md5.h
>     wsutil/rc4.c
>     wsutil/rc4.h
>     wsutil/sha1.c
>     wsutil/sha1.h
>     wsutil/sha2.c
>     wsutil/sha2.h
> 
> The symbols to be removed are:
> 
> - aes_cmac_encrypt_finish@Base 2.1.0
> - aes_cmac_encrypt_starts@Base 2.1.0
> - aes_cmac_encrypt_update@Base 2.1.0
> - crypt_des_ecb@Base 1.12.0~rc1
> - crypt_md4@Base 1.12.0~rc1
> - crypt_rc4@Base 1.12.0~rc1
> - crypt_rc4_init@Base 1.12.0~rc1
> - md5_append@Base 1.12.0~rc1
> - md5_finish@Base 1.12.0~rc1
> - md5_hmac@Base 1.12.0~rc1
> - md5_hmac_append@Base 1.12.0~rc1
> - md5_hmac_finish@Base 1.12.0~rc1
> - md5_hmac_init@Base 1.12.0~rc1
> - md5_init@Base 1.12.0~rc1
> - sha1_finish@Base 1.12.0~rc1
> - sha1_hmac@Base 1.12.0~rc1
> - sha1_hmac_finish@Base 1.12.0~rc1
> - sha1_hmac_starts@Base 1.12.0~rc1
> - sha1_hmac_update@Base 1.12.0~rc1
> - sha1_starts@Base 1.12.0~rc1
> - sha1_update@Base 1.12.0~rc1
> - sha256_finish@Base 2.1.0
> - sha256_hmac@Base 2.1.0
> - sha256_hmac_finish@Base 2.1.0
> - sha256_hmac_starts@Base 2.1.0
> - sha256_hmac_update@Base 2.1.0
> - sha256_starts@Base 2.1.0
> - sha256_update@Base 2.1.0
> 
> Attached are the files that need to be modified (one list for any
> occurrence per file, one list with files grouped per function).
> 
> The first three functions were "recently" added (see git logs) and is
> only used in airpdcap code.
> 
> Looking at crypt_des_ecb, the users are packet-ntlmssp.c and
> packet-dcerpc-netlogin.c. These also use md5 a lot and crypt_rc4.
> Do you have any preference for a file/crypto function to tackle?
> 
> Note that the current minimum Libgcrypt version is 1.4.2. For CMAC you
> need Libgcrypt 1.6.0 or newer. All other functions have been available
> for longer time. References that might be helpful:
> https://wiki.wireshark.org/Development/Support_library_version_tracking#Libgcrypt
> https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=blob;f=NEWS
> https://gnupg.org/documentation/manuals/gcrypt/
> 
> If it helps, an example of using Libgcrypt (see .c and _test.lua files):
> https://github.com/Lekensteyn/luagcrypt
> -- 
> Kind regards,
> Peter Wu
> https://lekensteyn.nl
epan/dissectors/packet-snmp.c:1681:	md5_hmac(msg, msg_len, key, key_len, calc_auth);
epan/dissectors/packet-snmp.c:1745:	sha1_hmac(key, key_len, msg, msg_len, calc_auth);
epan/dissectors/packet-snmp.c:3369:	md5_init(&MD);   /* initialize MD5 */
epan/dissectors/packet-snmp.c:3387:		md5_append(&MD, password_buf, 64);
epan/dissectors/packet-snmp.c:3390:	md5_finish(&MD, key1); /* tell MD5 we're done */
epan/dissectors/packet-snmp.c:3399:	md5_init(&MD);
epan/dissectors/packet-snmp.c:3400:	md5_append(&MD, key1, 16);
epan/dissectors/packet-snmp.c:3401:	md5_append(&MD, engineID, engineLength);
epan/dissectors/packet-snmp.c:3402:	md5_append(&MD, key1, 16);
epan/dissectors/packet-snmp.c:3403:	md5_finish(&MD, key);
epan/dissectors/packet-snmp.c:3425:	sha1_starts(&SH); /* initialize SHA */
epan/dissectors/packet-snmp.c:3443:		sha1_update (&SH, password_buf, 64);
epan/dissectors/packet-snmp.c:3446:	sha1_finish(&SH, key);
epan/dissectors/packet-snmp.c:3455:	sha1_starts(&SH);
epan/dissectors/packet-snmp.c:3456:	sha1_update(&SH, key, SHA1_DIGEST_LEN);
epan/dissectors/packet-snmp.c:3457:	sha1_update(&SH, engineID, engineLength);
epan/dissectors/packet-snmp.c:3458:	sha1_update(&SH, key, SHA1_DIGEST_LEN);
epan/dissectors/packet-snmp.c:3459:	sha1_finish(&SH, key);
epan/dissectors/packet-3com-njack.c:542:	md5_init(&md_ctx);
epan/dissectors/packet-3com-njack.c:543:	md5_append(&md_ctx, workbuffer, 32);
epan/dissectors/packet-3com-njack.c:544:	md5_finish(&md_ctx, digest);
epan/dissectors/packet-3com-njack.c:545:	md5_init(&md_ctx);
epan/dissectors/packet-3com-njack.c:546:	md5_append(&md_ctx, packetdata, 12);
epan/dissectors/packet-3com-njack.c:547:	md5_append(&md_ctx, digest, 16);
epan/dissectors/packet-3com-njack.c:548:	md5_append(&md_ctx, packetdata + 28, length - 28);
epan/dissectors/packet-3com-njack.c:549:	md5_finish(&md_ctx, digest);
epan/dissectors/packet-ntlmssp.c:365:  It's in fact 3 susbsequent call to crypt_des_ecb with a 7-byte key.
epan/dissectors/packet-ntlmssp.c:380:  /* crypt_des_ecb(data, key)*/
epan/dissectors/packet-ntlmssp.c:381:  crypt_des_ecb(response, data, pw21, 1);
epan/dissectors/packet-ntlmssp.c:382:  crypt_des_ecb(response + 8, data, pw21 + 7, 1);
epan/dissectors/packet-ntlmssp.c:383:  crypt_des_ecb(response + 16, data, pw21 + 14, 1);
epan/dissectors/packet-ntlmssp.c:405:  crypt_des_ecb(response, challenge, pw21, 1);
epan/dissectors/packet-ntlmssp.c:406:  crypt_des_ecb(response + 8, challenge, pw21 + 7, 1);
epan/dissectors/packet-ntlmssp.c:407:  crypt_des_ecb(response + 16, challenge, pw21 + 14, 1);
epan/dissectors/packet-ntlmssp.c:448:    crypt_des_ecb(keyexchangekey, lm_challenge_response, basekey, 1);
epan/dissectors/packet-ntlmssp.c:449:    crypt_des_ecb(keyexchangekey+8, lm_challenge_response, basekey+7, 1);
epan/dissectors/packet-ntlmssp.c:459:      crypt_des_ecb(keyexchangekey, zeros, basekey, 3);
epan/dissectors/packet-ntlmssp.c:460:      crypt_des_ecb(keyexchangekey+8, zeros, basekey+7, 1);
epan/dissectors/packet-ntlmssp.c:501:    crypt_md4(nt_password_hash, nt_password_unicode, password_len*2);
epan/dissectors/packet-ntlmssp.c:597:    md5_hmac(buf, domain_len*2+user_len*2, nt_password_hash, NTLMSSP_KEY_LEN, ntowf);
epan/dissectors/packet-ntlmssp.c:604:    md5_hmac(buf, NTLMSSP_KEY_LEN, ntowf, NTLMSSP_KEY_LEN, lm_challenge_response);
epan/dissectors/packet-ntlmssp.c:612:    md5_hmac(buf, ntlm_response->length-8, ntowf, NTLMSSP_KEY_LEN, nt_proof);
epan/dissectors/packet-ntlmssp.c:623:  md5_hmac(nt_proof, NTLMSSP_KEY_LEN, ntowf, NTLMSSP_KEY_LEN, sessionbasekey);
epan/dissectors/packet-ntlmssp.c:629:    crypt_rc4_init(&rc4state, keyexchangekey, NTLMSSP_KEY_LEN);
epan/dissectors/packet-ntlmssp.c:630:    crypt_rc4(&rc4state, sessionkey, NTLMSSP_KEY_LEN);
epan/dissectors/packet-ntlmssp.c:682:    crypt_md4(nt_password_hash, nt_password_unicode, password_len*2);
epan/dissectors/packet-ntlmssp.c:698:    crypt_des_ecb(lm_password_hash, lmhash_key, lm_password_upper, 1);
epan/dissectors/packet-ntlmssp.c:699:    crypt_des_ecb(lm_password_hash+8, lmhash_key, lm_password_upper+7, 1);
epan/dissectors/packet-ntlmssp.c:720:        md5_init(&md5state);
epan/dissectors/packet-ntlmssp.c:721:        md5_append(&md5state, serverchallenge, 8);
epan/dissectors/packet-ntlmssp.c:722:        md5_append(&md5state, clientchallenge, 8);
epan/dissectors/packet-ntlmssp.c:723:        md5_finish(&md5state, challenges_hash);
epan/dissectors/packet-ntlmssp.c:751:    crypt_md4(md4, nt_password_hash, NTLMSSP_KEY_LEN);
epan/dissectors/packet-ntlmssp.c:757:      /*md5_hmac(text, text_len, key, key_len, digest);*/
epan/dissectors/packet-ntlmssp.c:758:      md5_hmac(challenges, NTLMSSP_KEY_LEN, md4, NTLMSSP_KEY_LEN, sessionbasekey);
epan/dissectors/packet-ntlmssp.c:779:    crypt_rc4_init(&rc4state, keyexchangekey, NTLMSSP_KEY_LEN);
epan/dissectors/packet-ntlmssp.c:780:    crypt_rc4(&rc4state, sessionkey, NTLMSSP_KEY_LEN);
epan/dissectors/packet-ntlmssp.c:797:  md5_init(&md5state);
epan/dissectors/packet-ntlmssp.c:798:  md5_append(&md5state, key, keylen);
epan/dissectors/packet-ntlmssp.c:799:  md5_append(&md5state, CLIENT_SIGN_TEXT, strlen(CLIENT_SIGN_TEXT)+1);
epan/dissectors/packet-ntlmssp.c:800:  md5_finish(&md5state, sign_key_client);
epan/dissectors/packet-ntlmssp.c:801:  md5_init(&md5state2);
epan/dissectors/packet-ntlmssp.c:802:  md5_append(&md5state2, key, keylen);
epan/dissectors/packet-ntlmssp.c:803:  md5_append(&md5state2, SERVER_SIGN_TEXT, strlen(SERVER_SIGN_TEXT)+1);
epan/dissectors/packet-ntlmssp.c:804:  md5_finish(&md5state2, sign_key_server);
epan/dissectors/packet-ntlmssp.c:841:    md5_init(&md5state);
epan/dissectors/packet-ntlmssp.c:842:    md5_append(&md5state, clientsealkey,*keylen);
epan/dissectors/packet-ntlmssp.c:843:    md5_append(&md5state, CLIENT_SEAL_TEXT, strlen(CLIENT_SEAL_TEXT)+1);
epan/dissectors/packet-ntlmssp.c:844:    md5_finish(&md5state, clientsealkey);
epan/dissectors/packet-ntlmssp.c:845:    md5_init(&md5state2);
epan/dissectors/packet-ntlmssp.c:846:    md5_append(&md5state2, serversealkey,*keylen);
epan/dissectors/packet-ntlmssp.c:847:    md5_append(&md5state2, SERVER_SEAL_TEXT, strlen(SERVER_SEAL_TEXT)+1);
epan/dissectors/packet-ntlmssp.c:848:    md5_finish(&md5state2, serversealkey);
epan/dissectors/packet-ntlmssp.c:1509:        crypt_rc4_init(&conv_ntlmssp_info->rc4_state_client, sspkey, ssp_key_len);
epan/dissectors/packet-ntlmssp.c:1510:        crypt_rc4_init(&conv_ntlmssp_info->rc4_state_server, sspkey, ssp_key_len);
epan/dissectors/packet-ntlmssp.c:1809:          crypt_rc4_init(&conv_ntlmssp_info->rc4_state_server, serverkey, ssp_key_len);
epan/dissectors/packet-ntlmssp.c:1810:          crypt_rc4_init(&conv_ntlmssp_info->rc4_state_client, clientkey, ssp_key_len);
epan/dissectors/packet-ntlmssp.c:2063:      crypt_rc4(rc4_state, packet_ntlmssp_info->decrypted_payload,
epan/dissectors/packet-ntlmssp.c:2074:        crypt_rc4(rc4_state_peer, peer_block, encrypted_block_length);
epan/dissectors/packet-ntlmssp.c:2266:          crypt_rc4(rc4_state, packet_ntlmssp_info->verifier, 8);
epan/dissectors/packet-ntlmssp.c:2278:          md5_hmac(check_buf, (int)(packet_ntlmssp_info->payload_len+4), sign_key, NTLMSSP_KEY_LEN, calculated_md5);
epan/dissectors/packet-ntlmssp.c:2288:        crypt_rc4(rc4_state, packet_ntlmssp_info->verifier,
epan/dissectors/packet-ntlmssp.c:2300:        crypt_rc4(rc4_state_peer, peer_block, encrypted_block_length);
epan/dissectors/packet-ntlmssp.c:2553:    crypt_rc4(rc4_state, packet_ntlmssp_info->decrypted_payload,
epan/dissectors/packet-ntlmssp.c:2559:    crypt_rc4(rc4_state_peer, peer_block, encrypted_block_length);
epan/dissectors/packet-dcerpc-netlogon.c:6593:        crypt_md4(ntlm_pass_hash.md4,ntlm_pass_unicode,password_len*2);
epan/dissectors/packet-dcerpc-netlogon.c:6677:                md5_init(&md5state);
epan/dissectors/packet-dcerpc-netlogon.c:6678:                md5_append(&md5state,zeros,4);
epan/dissectors/packet-dcerpc-netlogon.c:6679:                md5_append(&md5state,(unsigned char*)&vars->client_challenge,8);
epan/dissectors/packet-dcerpc-netlogon.c:6680:                md5_append(&md5state,(unsigned char*)&vars->server_challenge,8);
epan/dissectors/packet-dcerpc-netlogon.c:6681:                md5_finish(&md5state,md5);
epan/dissectors/packet-dcerpc-netlogon.c:6689:                    md5_hmac(md5,16,(guint8*) &password,16,session_key);
epan/dissectors/packet-dcerpc-netlogon.c:6690:                    crypt_des_ecb(buf,(unsigned char*)&vars->server_challenge,session_key,1);
epan/dissectors/packet-dcerpc-netlogon.c:6691:                    crypt_des_ecb((unsigned char*)&calculated_cred,buf,session_key+7,1);
epan/dissectors/packet-dcerpc-netlogon.c:7653:        md5_hmac(zeros,4,buf,key_len,buf2);
epan/dissectors/packet-dcerpc-netlogon.c:7654:        md5_hmac((guint8*)&sequence,8,buf2,16,seal_key);
epan/dissectors/packet-dcerpc-netlogon.c:7673:    md5_hmac(zeros,4,session_key,16,buf);
epan/dissectors/packet-dcerpc-netlogon.c:7674:    md5_hmac((guint8*)&checksum,8,buf,16,key);
epan/dissectors/packet-dcerpc-netlogon.c:7676:    crypt_rc4_init(&rc4state,key,16);
epan/dissectors/packet-dcerpc-netlogon.c:7677:    crypt_rc4(&rc4state,p_seq,8);
epan/dissectors/packet-dcerpc-netlogon.c:7721:                crypt_rc4_init(&rc4state,vars->encryption_key,16);
epan/dissectors/packet-dcerpc-netlogon.c:7722:                crypt_rc4(&rc4state,(guint8*)&copyconfounder,8);
epan/dissectors/packet-dcerpc-netlogon.c:7724:                crypt_rc4_init(&rc4state,vars->encryption_key,16);
epan/dissectors/packet-dcerpc-netlogon.c:7725:                crypt_rc4(&rc4state,decrypted,data_len);
epan/dissectors/packet-frame.c:462:			md5_init(&md_ctx);
epan/dissectors/packet-frame.c:463:			md5_append(&md_ctx, cp, cap_len);
epan/dissectors/packet-frame.c:464:			md5_finish(&md_ctx, digest);
epan/dissectors/packet-corosync-totemnet.c:317:  sha1_hmac(hmac_key, 16,
epan/dissectors/packet-pktc.c:729:           "SHA-1 HMAC", "pktc.sha1_hmac", FT_BYTES, BASE_NONE,
epan/dissectors/packet-l2tp.c:1039:        md5_hmac(&data, 1, secret, strlen(secret), tunnel->shared_key);
epan/dissectors/packet-l2tp.c:1061:    md5_hmac_init(&ms, tunnel->shared_key, L2TP_HMAC_MD5_KEY_LEN);
epan/dissectors/packet-l2tp.c:1066:                md5_hmac_append(&ms, tunnel->lcce1_nonce, tunnel->lcce1_nonce_len);
epan/dissectors/packet-l2tp.c:1067:                md5_hmac_append(&ms, tunnel->lcce2_nonce, tunnel->lcce2_nonce_len);
epan/dissectors/packet-l2tp.c:1069:                md5_hmac_append(&ms, tunnel->lcce2_nonce, tunnel->lcce2_nonce_len);
epan/dissectors/packet-l2tp.c:1070:                md5_hmac_append(&ms, tunnel->lcce1_nonce, tunnel->lcce1_nonce_len);
epan/dissectors/packet-l2tp.c:1075:    md5_hmac_append(&ms, tvb_get_ptr(tvb, offset, idx + 1 - offset), idx + 1 - offset);
epan/dissectors/packet-l2tp.c:1078:    md5_hmac_append(&ms, zero, avp_len - 1);
epan/dissectors/packet-l2tp.c:1080:    md5_hmac_append(&ms, tvb_get_ptr(tvb, idx + avp_len, remainder), remainder);
epan/dissectors/packet-l2tp.c:1081:    md5_hmac_finish(&ms, digest);
epan/dissectors/packet-l2tp.c:1101:    sha1_hmac_starts(&ms, tunnel->shared_key, L2TP_HMAC_MD5_KEY_LEN);
epan/dissectors/packet-l2tp.c:1106:                sha1_hmac_update(&ms, tunnel->lcce1_nonce, tunnel->lcce1_nonce_len);
epan/dissectors/packet-l2tp.c:1107:                sha1_hmac_update(&ms, tunnel->lcce2_nonce, tunnel->lcce2_nonce_len);
epan/dissectors/packet-l2tp.c:1109:                sha1_hmac_update(&ms, tunnel->lcce2_nonce, tunnel->lcce2_nonce_len);
epan/dissectors/packet-l2tp.c:1110:                sha1_hmac_update(&ms, tunnel->lcce1_nonce, tunnel->lcce1_nonce_len);
epan/dissectors/packet-l2tp.c:1115:    sha1_hmac_update(&ms, tvb_get_ptr(tvb, offset, idx + 1 - offset), idx + 1 - offset);
epan/dissectors/packet-l2tp.c:1118:    sha1_hmac_update(&ms, zero, avp_len - 1);
epan/dissectors/packet-l2tp.c:1120:    sha1_hmac_update(&ms, tvb_get_ptr(tvb, idx + avp_len, remainder), remainder);
epan/dissectors/packet-l2tp.c:1121:    sha1_hmac_finish(&ms, digest);
epan/dissectors/packet-sigcomp.c:2489:        sha1_starts( &ctx );
epan/dissectors/packet-sigcomp.c:2500:            sha1_update( &ctx, &buff[k], handle_now );
epan/dissectors/packet-sigcomp.c:2510:        sha1_finish( &ctx, sha1_digest_buf );
epan/dissectors/packet-sigcomp.c:4371:                sha1_starts( &ctx );
epan/dissectors/packet-sigcomp.c:4372:                sha1_update( &ctx, (guint8 *) sha1buff, state_length_buff[n] + 8);
epan/dissectors/packet-sigcomp.c:4373:                sha1_finish( &ctx, sha1_digest_buf );
epan/dissectors/packet-spnego.c:796:    md5_hmac(L40, 14, key_data, key_size, k5_data);
epan/dissectors/packet-spnego.c:799:    md5_hmac(T, 4, key_data, key_size, k5_data);
epan/dissectors/packet-spnego.c:802:  md5_hmac(cksum_data, cksum_size, k5_data, 16, key6_data);
epan/dissectors/packet-spnego.c:842:  md5_hmac(signature, sizeof(signature), key_data, key_length, ksign_c);
epan/dissectors/packet-spnego.c:843:  md5_init(&ms);
epan/dissectors/packet-spnego.c:848:  md5_append(&ms, t, 4);
epan/dissectors/packet-spnego.c:849:  md5_append(&ms, v1, l1);
epan/dissectors/packet-spnego.c:850:  md5_append(&ms, v2, l2);
epan/dissectors/packet-spnego.c:851:  md5_append(&ms, v3, l3);
epan/dissectors/packet-spnego.c:852:  md5_finish(&ms, digest);
epan/dissectors/packet-spnego.c:853:  md5_hmac(digest, 16, ksign_c, 16, cksum);
epan/dissectors/packet-spnego.c:926:  crypt_rc4_init(&rc4_state, k6_data, sizeof(k6_data));
epan/dissectors/packet-spnego.c:928:  crypt_rc4(&rc4_state, (guint8 *)SND_SEQ, 8);
epan/dissectors/packet-spnego.c:952:    crypt_rc4_init(&rc4_state, k6_data, sizeof(k6_data));
epan/dissectors/packet-spnego.c:954:    crypt_rc4(&rc4_state, Confounder, 8);
epan/dissectors/packet-spnego.c:956:    crypt_rc4(&rc4_state, output_message_buffer, datalen);
epan/dissectors/packet-tcp.c:2427:    sha1_starts(&sha1_ctx);
epan/dissectors/packet-tcp.c:2428:    sha1_update(&sha1_ctx, (const guint8 *)&pseudokey, 8);
epan/dissectors/packet-tcp.c:2429:    sha1_finish(&sha1_ctx, digest_buf);
epan/dissectors/asn1/spnego/packet-spnego-template.c:344:    md5_hmac(L40, 14, key_data, key_size, k5_data);
epan/dissectors/asn1/spnego/packet-spnego-template.c:347:    md5_hmac(T, 4, key_data, key_size, k5_data);
epan/dissectors/asn1/spnego/packet-spnego-template.c:350:  md5_hmac(cksum_data, cksum_size, k5_data, 16, key6_data);
epan/dissectors/asn1/spnego/packet-spnego-template.c:390:  md5_hmac(signature, sizeof(signature), key_data, key_length, ksign_c);
epan/dissectors/asn1/spnego/packet-spnego-template.c:391:  md5_init(&ms);
epan/dissectors/asn1/spnego/packet-spnego-template.c:396:  md5_append(&ms, t, 4);
epan/dissectors/asn1/spnego/packet-spnego-template.c:397:  md5_append(&ms, v1, l1);
epan/dissectors/asn1/spnego/packet-spnego-template.c:398:  md5_append(&ms, v2, l2);
epan/dissectors/asn1/spnego/packet-spnego-template.c:399:  md5_append(&ms, v3, l3);
epan/dissectors/asn1/spnego/packet-spnego-template.c:400:  md5_finish(&ms, digest);
epan/dissectors/asn1/spnego/packet-spnego-template.c:401:  md5_hmac(digest, 16, ksign_c, 16, cksum);
epan/dissectors/asn1/spnego/packet-spnego-template.c:474:  crypt_rc4_init(&rc4_state, k6_data, sizeof(k6_data));
epan/dissectors/asn1/spnego/packet-spnego-template.c:476:  crypt_rc4(&rc4_state, (guint8 *)SND_SEQ, 8);
epan/dissectors/asn1/spnego/packet-spnego-template.c:500:    crypt_rc4_init(&rc4_state, k6_data, sizeof(k6_data));
epan/dissectors/asn1/spnego/packet-spnego-template.c:502:    crypt_rc4(&rc4_state, Confounder, 8);
epan/dissectors/asn1/spnego/packet-spnego-template.c:504:    crypt_rc4(&rc4_state, output_message_buffer, datalen);
epan/dissectors/asn1/kerberos/packet-kerberos-template.c:728:		md5_init(&md5s);
epan/dissectors/asn1/kerberos/packet-kerberos-template.c:760:		md5_append(&md5s, confounder, 8);
epan/dissectors/asn1/kerberos/packet-kerberos-template.c:761:		md5_append(&md5s, zero_fill, 16);
epan/dissectors/asn1/kerberos/packet-kerberos-template.c:762:		md5_append(&md5s, decrypted_data + CONFOUNDER_PLUS_CHECKSUM, data_len);
epan/dissectors/asn1/kerberos/packet-kerberos-template.c:763:		md5_finish(&md5s, digest);
epan/dissectors/asn1/snmp/packet-snmp-template.c:1579:	md5_hmac(msg, msg_len, key, key_len, calc_auth);
epan/dissectors/asn1/snmp/packet-snmp-template.c:1643:	sha1_hmac(key, key_len, msg, msg_len, calc_auth);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2160:	md5_init(&MD);   /* initialize MD5 */
epan/dissectors/asn1/snmp/packet-snmp-template.c:2178:		md5_append(&MD, password_buf, 64);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2181:	md5_finish(&MD, key1); /* tell MD5 we're done */
epan/dissectors/asn1/snmp/packet-snmp-template.c:2190:	md5_init(&MD);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2191:	md5_append(&MD, key1, 16);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2192:	md5_append(&MD, engineID, engineLength);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2193:	md5_append(&MD, key1, 16);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2194:	md5_finish(&MD, key);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2216:	sha1_starts(&SH); /* initialize SHA */
epan/dissectors/asn1/snmp/packet-snmp-template.c:2234:		sha1_update (&SH, password_buf, 64);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2237:	sha1_finish(&SH, key);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2246:	sha1_starts(&SH);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2247:	sha1_update(&SH, key, SHA1_DIGEST_LEN);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2248:	sha1_update(&SH, engineID, engineLength);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2249:	sha1_update(&SH, key, SHA1_DIGEST_LEN);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2250:	sha1_finish(&SH, key);
epan/dissectors/asn1/cms/packet-cms-template.c:91:    sha1_starts(&sha1_ctx);
epan/dissectors/asn1/cms/packet-cms-template.c:93:    sha1_update(&sha1_ctx, tvb_get_ptr(content, 0, tvb_captured_length(content)),
epan/dissectors/asn1/cms/packet-cms-template.c:96:    sha1_finish(&sha1_ctx, digest_buf);
epan/dissectors/asn1/cms/packet-cms-template.c:102:    md5_init(&md5_ctx);
epan/dissectors/asn1/cms/packet-cms-template.c:104:    md5_append(&md5_ctx, tvb_get_ptr(content, 0, tvb_captured_length(content)),
epan/dissectors/asn1/cms/packet-cms-template.c:107:    md5_finish(&md5_ctx, digest_buf);
epan/dissectors/packet-data.c:99:				md5_init(&md_ctx);
epan/dissectors/packet-data.c:100:				md5_append(&md_ctx, cp, bytes);
epan/dissectors/packet-data.c:101:				md5_finish(&md_ctx, digest);
epan/dissectors/packet-cms.c:287:    sha1_starts(&sha1_ctx);
epan/dissectors/packet-cms.c:289:    sha1_update(&sha1_ctx, tvb_get_ptr(content, 0, tvb_captured_length(content)),
epan/dissectors/packet-cms.c:292:    sha1_finish(&sha1_ctx, digest_buf);
epan/dissectors/packet-cms.c:298:    md5_init(&md5_ctx);
epan/dissectors/packet-cms.c:300:    md5_append(&md5_ctx, tvb_get_ptr(content, 0, tvb_captured_length(content)),
epan/dissectors/packet-cms.c:303:    md5_finish(&md5_ctx, digest_buf);
epan/dissectors/packet-radius.c:935:	md5_init(&md_ctx);
epan/dissectors/packet-radius.c:936:	md5_append(&md_ctx, (const guint8 *)shared_secret, (int)strlen(shared_secret));
epan/dissectors/packet-radius.c:938:	md5_append(&md_ctx, authenticator, AUTHENTICATOR_LENGTH);
epan/dissectors/packet-radius.c:939:	md5_finish(&md_ctx, digest);
epan/dissectors/packet-radius.c:962:		md5_append(&md_ctx, &pd[i], AUTHENTICATOR_LENGTH);
epan/dissectors/packet-radius.c:963:		md5_finish(&md_ctx, digest);
epan/dissectors/packet-radius.c:1791:	md5_init(&md_ctx);
epan/dissectors/packet-radius.c:1792:	md5_append(&md_ctx, payload, tvb_length);
epan/dissectors/packet-radius.c:1793:	md5_append(&md_ctx, shared_secret, strlen(shared_secret));
epan/dissectors/packet-radius.c:1794:	md5_finish(&md_ctx, digest);
epan/dissectors/packet-tacacs.c:1311:	md5_init(&mdcontext);
epan/dissectors/packet-tacacs.c:1312:	md5_append(&mdcontext, md5_buff, md5_len);
epan/dissectors/packet-tacacs.c:1313:	md5_finish(&mdcontext,hash);
epan/dissectors/packet-tacacs.c:1325:		md5_init(&mdcontext);
epan/dissectors/packet-tacacs.c:1326:		md5_append(&mdcontext, md5_buff, md5_len);
epan/dissectors/packet-tacacs.c:1327:		md5_finish(&mdcontext,hash);
epan/dissectors/packet-kerberos.c:987:		md5_init(&md5s);
epan/dissectors/packet-kerberos.c:1019:		md5_append(&md5s, confounder, 8);
epan/dissectors/packet-kerberos.c:1020:		md5_append(&md5s, zero_fill, 16);
epan/dissectors/packet-kerberos.c:1021:		md5_append(&md5s, decrypted_data + CONFOUNDER_PLUS_CHECKSUM, data_len);
epan/dissectors/packet-kerberos.c:1022:		md5_finish(&md5s, digest);
epan/crypt/airpdcap.c:398:        crypt_rc4_init(&rc4_state, new_key, sizeof(new_key));
epan/crypt/airpdcap.c:401:        crypt_rc4(&rc4_state, dummy, 256);
epan/crypt/airpdcap.c:402:        crypt_rc4(&rc4_state, szEncryptedKey, key_bytes_len);
epan/crypt/airpdcap.c:1549:        md5_hmac(eapol, eapol_len, KCK, AIRPDCAP_WPA_KCK_LEN, c_mic);
epan/crypt/airpdcap.c:1552:        sha1_hmac(KCK, AIRPDCAP_WPA_KCK_LEN, eapol, eapol_len, c_mic);
epan/crypt/airpdcap.c:1859:        sha1_hmac(pmk, 32, R, 100, &output[20 * i]);
epan/crypt/airpdcap.c:1894:    sha1_hmac(ppBytes, ppLength, digest, (guint32) ssidLength+4, digest1);
epan/crypt/airpdcap.c:1900:        sha1_hmac(ppBytes, ppLength, digest1, SHA1_DIGEST_LEN, digest);
epan/crypt/airpdcap.c:2186:    sha256_starts(&(sha_ctx.ctx));
epan/crypt/airpdcap.c:2188:        sha256_update(&(sha_ctx.ctx), anonce, AIRPDCAP_WPA_NONCE_LEN);
epan/crypt/airpdcap.c:2189:        sha256_update(&(sha_ctx.ctx), snonce, AIRPDCAP_WPA_NONCE_LEN);
epan/crypt/airpdcap.c:2191:        sha256_update(&(sha_ctx.ctx), snonce, AIRPDCAP_WPA_NONCE_LEN);
epan/crypt/airpdcap.c:2192:        sha256_update(&(sha_ctx.ctx), anonce, AIRPDCAP_WPA_NONCE_LEN);
epan/crypt/airpdcap.c:2194:    sha256_finish(&(sha_ctx.ctx), key_input);
epan/crypt/airpdcap.c:2200:    sha256_hmac_starts(&sha_ctx, key_input, SHA256_DIGEST_LEN);
epan/crypt/airpdcap.c:2203:    sha256_hmac_update(&sha_ctx, (const guint8 *)&iter, 2);
epan/crypt/airpdcap.c:2204:    sha256_hmac_update(&sha_ctx, "TDLS PMK", 8);
epan/crypt/airpdcap.c:2206:        sha256_hmac_update(&sha_ctx, initiator, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2207:        sha256_hmac_update(&sha_ctx, responder, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2209:        sha256_hmac_update(&sha_ctx, responder, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2210:        sha256_hmac_update(&sha_ctx, initiator, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2212:    sha256_hmac_update(&sha_ctx, bssid, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2215:    sha256_hmac_update(&sha_ctx, (const guint8 *)&length, 2);
epan/crypt/airpdcap.c:2216:    sha256_hmac_finish(&sha_ctx, key_input);
epan/crypt/airpdcap.c:2219:    aes_cmac_encrypt_starts(&aes_ctx, key_input, 16);
epan/crypt/airpdcap.c:2220:    aes_cmac_encrypt_update(&aes_ctx, initiator, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2221:    aes_cmac_encrypt_update(&aes_ctx, responder, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2222:    aes_cmac_encrypt_update(&aes_ctx, &seq_num, 1);
epan/crypt/airpdcap.c:2223:    aes_cmac_encrypt_update(&aes_ctx, &data[offset_link], data[offset_link + 1] + 2);
epan/crypt/airpdcap.c:2224:    aes_cmac_encrypt_update(&aes_ctx, &data[offset_rsne], data[offset_rsne + 1] + 2);
epan/crypt/airpdcap.c:2225:    aes_cmac_encrypt_update(&aes_ctx, &data[offset_timeout], data[offset_timeout + 1] + 2);
epan/crypt/airpdcap.c:2226:    aes_cmac_encrypt_update(&aes_ctx, &data[offset_fte], 4);
epan/crypt/airpdcap.c:2228:    aes_cmac_encrypt_update(&aes_ctx, mic, 16);
epan/crypt/airpdcap.c:2229:    aes_cmac_encrypt_update(&aes_ctx, &data[offset_fte + 20], data[offset_fte + 1] + 2 - 20);
epan/crypt/airpdcap.c:2230:    aes_cmac_encrypt_finish(&aes_ctx, mic);
debian/libwsutil0.symbols:7: aes_cmac_encrypt_finish@Base 2.1.0
debian/libwsutil0.symbols:8: aes_cmac_encrypt_starts@Base 2.1.0
debian/libwsutil0.symbols:9: aes_cmac_encrypt_update@Base 2.1.0
debian/libwsutil0.symbols:45: crypt_des_ecb@Base 1.12.0~rc1
debian/libwsutil0.symbols:46: crypt_md4@Base 1.12.0~rc1
debian/libwsutil0.symbols:47: crypt_rc4@Base 1.12.0~rc1
debian/libwsutil0.symbols:48: crypt_rc4_init@Base 1.12.0~rc1
debian/libwsutil0.symbols:98: md5_append@Base 1.12.0~rc1
debian/libwsutil0.symbols:99: md5_finish@Base 1.12.0~rc1
debian/libwsutil0.symbols:100: md5_hmac@Base 1.12.0~rc1
debian/libwsutil0.symbols:101: md5_hmac_append@Base 1.12.0~rc1
debian/libwsutil0.symbols:102: md5_hmac_finish@Base 1.12.0~rc1
debian/libwsutil0.symbols:103: md5_hmac_init@Base 1.12.0~rc1
debian/libwsutil0.symbols:104: md5_init@Base 1.12.0~rc1
debian/libwsutil0.symbols:144: sha1_finish@Base 1.12.0~rc1
debian/libwsutil0.symbols:145: sha1_hmac@Base 1.12.0~rc1
debian/libwsutil0.symbols:146: sha1_hmac_finish@Base 1.12.0~rc1
debian/libwsutil0.symbols:147: sha1_hmac_starts@Base 1.12.0~rc1
debian/libwsutil0.symbols:148: sha1_hmac_update@Base 1.12.0~rc1
debian/libwsutil0.symbols:149: sha1_starts@Base 1.12.0~rc1
debian/libwsutil0.symbols:150: sha1_update@Base 1.12.0~rc1
debian/libwsutil0.symbols:151: sha256_finish@Base 2.1.0
debian/libwsutil0.symbols:152: sha256_hmac@Base 2.1.0
debian/libwsutil0.symbols:153: sha256_hmac_finish@Base 2.1.0
debian/libwsutil0.symbols:154: sha256_hmac_starts@Base 2.1.0
debian/libwsutil0.symbols:155: sha256_hmac_update@Base 2.1.0
debian/libwsutil0.symbols:156: sha256_starts@Base 2.1.0
debian/libwsutil0.symbols:157: sha256_update@Base 2.1.0
wsutil/md5.c:23: *  2012-08-21 - C Elston - Split md5_hmac function to allow incremental usage.
wsutil/md5.c:79:void md5_init(md5_state_t *ctx)
wsutil/md5.c:94:void md5_append( md5_state_t *ctx, const guint8 *buf, size_t len)
wsutil/md5.c:142:void md5_finish(md5_state_t *ctx, guint8 digest[16])
wsutil/md5.c:285:void md5_hmac_init(md5_hmac_state_t *hctx, const guint8* key, size_t key_len)
wsutil/md5.c:295:        md5_init(&tctx);
wsutil/md5.c:296:        md5_append(&tctx, key, key_len);
wsutil/md5.c:297:        md5_finish(&tctx, tk);
wsutil/md5.c:329:    md5_init(&hctx->ctx);                   /* init context for 1st  pass */
wsutil/md5.c:330:    md5_append(&hctx->ctx, k_ipad, 64);     /* start with inner pad */
wsutil/md5.c:333:void md5_hmac_append(md5_hmac_state_t *hctx, const guint8* text, size_t text_len)
wsutil/md5.c:335:    md5_append(&hctx->ctx, text, text_len);
wsutil/md5.c:338:void md5_hmac_finish(md5_hmac_state_t *hctx, guint8 digest[16])
wsutil/md5.c:342:    md5_finish(&hctx->ctx, digest);          /* finish up 1st pass */
wsutil/md5.c:347:    md5_init(&context);                     /* init context for 2nd pass */
wsutil/md5.c:348:    md5_append(&context, hctx->k_opad, 64); /* start with outer pad */
wsutil/md5.c:349:    md5_append(&context, digest, 16);       /* then results of 1st hash */
wsutil/md5.c:350:    md5_finish(&context, digest);           /* finish up 2nd pass */
wsutil/md5.c:353:void md5_hmac(const guint8* text, size_t text_len, const guint8* key, size_t key_len, guint8 digest[16])
wsutil/md5.c:357:    md5_hmac_init(&hctx, key, key_len);
wsutil/md5.c:358:    md5_hmac_append(&hctx, text, text_len);
wsutil/md5.c:359:    md5_hmac_finish(&hctx, digest);
wsutil/aes.c:1259:void aes_cmac_encrypt_starts(aes_cmac_ctx *ctx, const guint8 *key, guint key_len)
wsutil/aes.c:1282:void aes_cmac_encrypt_update(aes_cmac_ctx *ctx, const guint8 *input, guint length)
wsutil/aes.c:1332:void aes_cmac_encrypt_finish(aes_cmac_ctx *ctx, guint8 *output)
wsutil/sha1.h:25: *  2012-08-21 - C Elston - Split sha1_hmac function to allow incremental usage.
wsutil/sha1.h:47:void sha1_starts( sha1_context *ctx );
wsutil/sha1.h:49:void sha1_update( sha1_context *ctx, const guint8 *input, guint32 length );
wsutil/sha1.h:51:void sha1_finish( sha1_context *ctx, guint8 digest[SHA1_DIGEST_LEN] );
wsutil/sha1.h:60:void sha1_hmac_starts( sha1_hmac_context *hctx, const guint8 *key, guint32 keylen );
wsutil/sha1.h:62:void sha1_hmac_update( sha1_hmac_context *hctx, const guint8 *buf, guint32 buflen );
wsutil/sha1.h:64:void sha1_hmac_finish( sha1_hmac_context *hctx, guint8 digest[SHA1_DIGEST_LEN] );
wsutil/sha1.h:66:void sha1_hmac( const guint8 *key, guint32 keylen, const guint8 *buf, guint32 buflen,
wsutil/md4.h:27:void crypt_md4(unsigned char *out, const unsigned char *in, size_t n);
wsutil/sha1.c:25: *  2012-08-21 - C Elston - Split sha1_hmac function to allow incremental usage.
wsutil/sha1.c:49:void sha1_starts( sha1_context *ctx )
wsutil/sha1.c:217:void sha1_update( sha1_context *ctx, const guint8 *input, guint32 length )
wsutil/sha1.c:264:void sha1_finish( sha1_context *ctx, guint8 digest[SHA1_DIGEST_LEN] )
wsutil/sha1.c:280:    sha1_update( ctx, sha1_padding, padn );
wsutil/sha1.c:281:    sha1_update( ctx, msglen, 8 );
wsutil/sha1.c:290:void sha1_hmac_starts( sha1_hmac_context *hctx, const guint8 *key, guint32 keylen )
wsutil/sha1.c:306:    sha1_starts( &hctx->ctx );
wsutil/sha1.c:307:    sha1_update( &hctx->ctx, k_ipad, 64 );
wsutil/sha1.c:310:void sha1_hmac_update( sha1_hmac_context *hctx, const guint8 *buf, guint32 buflen )
wsutil/sha1.c:312:    sha1_update( &hctx->ctx, buf, buflen );
wsutil/sha1.c:315:void sha1_hmac_finish( sha1_hmac_context *hctx, guint8 digest[SHA1_DIGEST_LEN] )
wsutil/sha1.c:319:    sha1_finish( &hctx->ctx, tmpbuf );
wsutil/sha1.c:321:    sha1_starts( &hctx->ctx );
wsutil/sha1.c:322:    sha1_update( &hctx->ctx, hctx->k_opad, 64 );
wsutil/sha1.c:323:    sha1_update( &hctx->ctx, tmpbuf, SHA1_DIGEST_LEN );
wsutil/sha1.c:324:    sha1_finish( &hctx->ctx, digest );
wsutil/sha1.c:327:void sha1_hmac( const guint8 *key, guint32 keylen, const guint8 *buf, guint32 buflen,
wsutil/sha1.c:332:    sha1_hmac_starts( &hctx, key, keylen );
wsutil/sha1.c:333:    sha1_hmac_update( &hctx, buf, buflen );
wsutil/sha1.c:334:    sha1_hmac_finish( &hctx, digest );
wsutil/sha1.c:379:            sha1_starts( &ctx );
wsutil/sha1.c:383:                sha1_update( &ctx, (guint8 *) msg[i],
wsutil/sha1.c:392:                    sha1_update( &ctx, (guint8 *) buf, 1000 );
wsutil/sha1.c:396:            sha1_finish( &ctx, sha1sum );
wsutil/sha1.c:422:        sha1_starts( &ctx );
wsutil/sha1.c:426:            sha1_update( &ctx, buf, i );
wsutil/sha1.c:429:        sha1_finish( &ctx, sha1sum );
wsutil/aes.h:80:void aes_cmac_encrypt_starts(
wsutil/aes.h:92:void aes_cmac_encrypt_update(
wsutil/aes.h:103:void aes_cmac_encrypt_finish(
wsutil/des.h:30:void crypt_des_ecb(unsigned char *out, const unsigned char *in, const unsigned char *key, int forw);
wsutil/rc4.c:36:   between calls to crypt_rc4.
wsutil/rc4.c:39:void crypt_rc4_init(rc4_state_struct *rc4_state,
wsutil/rc4.c:67:void crypt_rc4(rc4_state_struct *rc4_state, unsigned char *data, int data_len)
wsutil/des.c:281:void crypt_des_ecb(unsigned char *out, const unsigned char *in, const unsigned char *key, int forw)
wsutil/sha2.c:59:void sha256_starts( sha256_context *ctx )
wsutil/sha2.c:144:void sha256_update( sha256_context *ctx, const guint8 *input, guint32 length )
wsutil/sha2.c:187:void sha256_finish( sha256_context *ctx, guint8 digest[SHA256_DIGEST_LEN] )
wsutil/sha2.c:201:    sha256_update( ctx, sha256_padding, padn );
wsutil/sha2.c:202:    sha256_update( ctx, msglen, 8 );
wsutil/sha2.c:214:void sha256_hmac_starts( sha256_hmac_context *hctx, const guint8 *key, guint32 keylen )
wsutil/sha2.c:225:        sha256_starts( &hctx->ctx );
wsutil/sha2.c:226:        sha256_update( &hctx->ctx, key, keylen );
wsutil/sha2.c:227:        sha256_finish( &hctx->ctx, key_compress );
wsutil/sha2.c:238:    sha256_starts( &hctx->ctx );
wsutil/sha2.c:239:    sha256_update( &hctx->ctx, k_ipad, SHA256_BLOCK_SIZE );
wsutil/sha2.c:242:void sha256_hmac_update( sha256_hmac_context *hctx, const guint8 *buf, guint32 buflen )
wsutil/sha2.c:244:    sha256_update( &hctx->ctx, buf, buflen );
wsutil/sha2.c:247:void sha256_hmac_finish( sha256_hmac_context *hctx, guint8 digest[SHA256_DIGEST_LEN] )
wsutil/sha2.c:251:    sha256_finish( &hctx->ctx, tmpbuf );
wsutil/sha2.c:253:    sha256_starts( &hctx->ctx );
wsutil/sha2.c:254:    sha256_update( &hctx->ctx, hctx->k_opad, SHA256_BLOCK_SIZE );
wsutil/sha2.c:255:    sha256_update( &hctx->ctx, tmpbuf, SHA256_DIGEST_LEN );
wsutil/sha2.c:256:    sha256_finish( &hctx->ctx, digest );
wsutil/sha2.c:259:void sha256_hmac( const guint8 *key, guint32 keylen, const guint8 *buf, guint32 buflen,
wsutil/sha2.c:264:    sha256_hmac_starts( &hctx, key, keylen );
wsutil/sha2.c:265:    sha256_hmac_update( &hctx, buf, buflen );
wsutil/sha2.c:266:    sha256_hmac_finish( &hctx, digest );
wsutil/rc4.h:36:void crypt_rc4_init(rc4_state_struct *rc4_state,
wsutil/rc4.h:40:void crypt_rc4(rc4_state_struct *rc4_state, unsigned char *data, int data_len);
wsutil/sha2.h:37:void sha256_starts( sha256_context *ctx );
wsutil/sha2.h:39:void sha256_update( sha256_context *ctx, const guint8 *input, guint32 length );
wsutil/sha2.h:41:void sha256_finish( sha256_context *ctx, guint8 digest[SHA256_DIGEST_LEN] );
wsutil/sha2.h:51:void sha256_hmac_starts( sha256_hmac_context *hctx, const guint8 *key, guint32 keylen );
wsutil/sha2.h:53:void sha256_hmac_update( sha256_hmac_context *hctx, const guint8 *buf, guint32 buflen );
wsutil/sha2.h:55:void sha256_hmac_finish( sha256_hmac_context *hctx, guint8 digest[SHA256_DIGEST_LEN] );
wsutil/sha2.h:57:void sha256_hmac( const guint8 *key, guint32 keylen, const guint8 *buf, guint32 buflen,
wsutil/md4.c:126:void crypt_md4(unsigned char *out, const unsigned char *in, size_t n)
wsutil/md5.h:21: *  2012-08-21 - C Elston - Split md5_hmac function to allow incremental usage.
wsutil/md5.h:54:void md5_init(md5_state_t *pms);
wsutil/md5.h:62:void md5_append( md5_state_t *pms,
wsutil/md5.h:70:void md5_finish(md5_state_t *pms, guint8 digest[16]);
wsutil/md5.h:79:void md5_hmac_init(md5_hmac_state_t *hctx,
wsutil/md5.h:83:void md5_hmac_append(md5_hmac_state_t *hctx,
wsutil/md5.h:87:void md5_hmac_finish(md5_hmac_state_t *hctx, guint8 digest[16]);
wsutil/md5.h:90:void md5_hmac(const guint8* text, size_t text_len, const guint8* key,
editcap.c:600:    md5_init(&ms);
editcap.c:601:    md5_append(&ms, new_fd, new_len);
editcap.c:602:    md5_finish(&ms, fd_hash[cur_dup_entry].digest);
editcap.c:642:    md5_init(&ms);
editcap.c:643:    md5_append(&ms, new_fd, new_len);
editcap.c:644:    md5_finish(&ms, fd_hash[cur_dup_entry].digest);
aes_cmac_encrypt_finish
epan/crypt/airpdcap.c:2230:    aes_cmac_encrypt_finish(&aes_ctx, mic);

aes_cmac_encrypt_starts
epan/crypt/airpdcap.c:2219:    aes_cmac_encrypt_starts(&aes_ctx, key_input, 16);

aes_cmac_encrypt_update
epan/crypt/airpdcap.c:2220:    aes_cmac_encrypt_update(&aes_ctx, initiator, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2221:    aes_cmac_encrypt_update(&aes_ctx, responder, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2222:    aes_cmac_encrypt_update(&aes_ctx, &seq_num, 1);
epan/crypt/airpdcap.c:2223:    aes_cmac_encrypt_update(&aes_ctx, &data[offset_link], data[offset_link + 1] + 2);
epan/crypt/airpdcap.c:2224:    aes_cmac_encrypt_update(&aes_ctx, &data[offset_rsne], data[offset_rsne + 1] + 2);
epan/crypt/airpdcap.c:2225:    aes_cmac_encrypt_update(&aes_ctx, &data[offset_timeout], data[offset_timeout + 1] + 2);
epan/crypt/airpdcap.c:2226:    aes_cmac_encrypt_update(&aes_ctx, &data[offset_fte], 4);
epan/crypt/airpdcap.c:2228:    aes_cmac_encrypt_update(&aes_ctx, mic, 16);
epan/crypt/airpdcap.c:2229:    aes_cmac_encrypt_update(&aes_ctx, &data[offset_fte + 20], data[offset_fte + 1] + 2 - 20);

crypt_des_ecb
epan/dissectors/packet-ntlmssp.c:365:  It's in fact 3 susbsequent call to crypt_des_ecb with a 7-byte key.
epan/dissectors/packet-ntlmssp.c:380:  /* crypt_des_ecb(data, key)*/
epan/dissectors/packet-ntlmssp.c:381:  crypt_des_ecb(response, data, pw21, 1);
epan/dissectors/packet-ntlmssp.c:382:  crypt_des_ecb(response + 8, data, pw21 + 7, 1);
epan/dissectors/packet-ntlmssp.c:383:  crypt_des_ecb(response + 16, data, pw21 + 14, 1);
epan/dissectors/packet-ntlmssp.c:405:  crypt_des_ecb(response, challenge, pw21, 1);
epan/dissectors/packet-ntlmssp.c:406:  crypt_des_ecb(response + 8, challenge, pw21 + 7, 1);
epan/dissectors/packet-ntlmssp.c:407:  crypt_des_ecb(response + 16, challenge, pw21 + 14, 1);
epan/dissectors/packet-ntlmssp.c:448:    crypt_des_ecb(keyexchangekey, lm_challenge_response, basekey, 1);
epan/dissectors/packet-ntlmssp.c:449:    crypt_des_ecb(keyexchangekey+8, lm_challenge_response, basekey+7, 1);
epan/dissectors/packet-ntlmssp.c:459:      crypt_des_ecb(keyexchangekey, zeros, basekey, 3);
epan/dissectors/packet-ntlmssp.c:460:      crypt_des_ecb(keyexchangekey+8, zeros, basekey+7, 1);
epan/dissectors/packet-ntlmssp.c:698:    crypt_des_ecb(lm_password_hash, lmhash_key, lm_password_upper, 1);
epan/dissectors/packet-ntlmssp.c:699:    crypt_des_ecb(lm_password_hash+8, lmhash_key, lm_password_upper+7, 1);
epan/dissectors/packet-dcerpc-netlogon.c:6690:                    crypt_des_ecb(buf,(unsigned char*)&vars->server_challenge,session_key,1);
epan/dissectors/packet-dcerpc-netlogon.c:6691:                    crypt_des_ecb((unsigned char*)&calculated_cred,buf,session_key+7,1);

crypt_md4
epan/dissectors/packet-ntlmssp.c:501:    crypt_md4(nt_password_hash, nt_password_unicode, password_len*2);
epan/dissectors/packet-ntlmssp.c:682:    crypt_md4(nt_password_hash, nt_password_unicode, password_len*2);
epan/dissectors/packet-ntlmssp.c:751:    crypt_md4(md4, nt_password_hash, NTLMSSP_KEY_LEN);
epan/dissectors/packet-dcerpc-netlogon.c:6593:        crypt_md4(ntlm_pass_hash.md4,ntlm_pass_unicode,password_len*2);

crypt_rc4
epan/dissectors/packet-ntlmssp.c:630:    crypt_rc4(&rc4state, sessionkey, NTLMSSP_KEY_LEN);
epan/dissectors/packet-ntlmssp.c:780:    crypt_rc4(&rc4state, sessionkey, NTLMSSP_KEY_LEN);
epan/dissectors/packet-ntlmssp.c:2063:      crypt_rc4(rc4_state, packet_ntlmssp_info->decrypted_payload,
epan/dissectors/packet-ntlmssp.c:2074:        crypt_rc4(rc4_state_peer, peer_block, encrypted_block_length);
epan/dissectors/packet-ntlmssp.c:2266:          crypt_rc4(rc4_state, packet_ntlmssp_info->verifier, 8);
epan/dissectors/packet-ntlmssp.c:2288:        crypt_rc4(rc4_state, packet_ntlmssp_info->verifier,
epan/dissectors/packet-ntlmssp.c:2300:        crypt_rc4(rc4_state_peer, peer_block, encrypted_block_length);
epan/dissectors/packet-ntlmssp.c:2553:    crypt_rc4(rc4_state, packet_ntlmssp_info->decrypted_payload,
epan/dissectors/packet-ntlmssp.c:2559:    crypt_rc4(rc4_state_peer, peer_block, encrypted_block_length);
epan/dissectors/packet-dcerpc-netlogon.c:7677:    crypt_rc4(&rc4state,p_seq,8);
epan/dissectors/packet-dcerpc-netlogon.c:7722:                crypt_rc4(&rc4state,(guint8*)&copyconfounder,8);
epan/dissectors/packet-dcerpc-netlogon.c:7725:                crypt_rc4(&rc4state,decrypted,data_len);
epan/dissectors/packet-spnego.c:928:  crypt_rc4(&rc4_state, (guint8 *)SND_SEQ, 8);
epan/dissectors/packet-spnego.c:954:    crypt_rc4(&rc4_state, Confounder, 8);
epan/dissectors/packet-spnego.c:956:    crypt_rc4(&rc4_state, output_message_buffer, datalen);
epan/dissectors/asn1/spnego/packet-spnego-template.c:476:  crypt_rc4(&rc4_state, (guint8 *)SND_SEQ, 8);
epan/dissectors/asn1/spnego/packet-spnego-template.c:502:    crypt_rc4(&rc4_state, Confounder, 8);
epan/dissectors/asn1/spnego/packet-spnego-template.c:504:    crypt_rc4(&rc4_state, output_message_buffer, datalen);
epan/crypt/airpdcap.c:401:        crypt_rc4(&rc4_state, dummy, 256);
epan/crypt/airpdcap.c:402:        crypt_rc4(&rc4_state, szEncryptedKey, key_bytes_len);

crypt_rc4_init
epan/dissectors/packet-ntlmssp.c:629:    crypt_rc4_init(&rc4state, keyexchangekey, NTLMSSP_KEY_LEN);
epan/dissectors/packet-ntlmssp.c:779:    crypt_rc4_init(&rc4state, keyexchangekey, NTLMSSP_KEY_LEN);
epan/dissectors/packet-ntlmssp.c:1509:        crypt_rc4_init(&conv_ntlmssp_info->rc4_state_client, sspkey, ssp_key_len);
epan/dissectors/packet-ntlmssp.c:1510:        crypt_rc4_init(&conv_ntlmssp_info->rc4_state_server, sspkey, ssp_key_len);
epan/dissectors/packet-ntlmssp.c:1809:          crypt_rc4_init(&conv_ntlmssp_info->rc4_state_server, serverkey, ssp_key_len);
epan/dissectors/packet-ntlmssp.c:1810:          crypt_rc4_init(&conv_ntlmssp_info->rc4_state_client, clientkey, ssp_key_len);
epan/dissectors/packet-dcerpc-netlogon.c:7676:    crypt_rc4_init(&rc4state,key,16);
epan/dissectors/packet-dcerpc-netlogon.c:7721:                crypt_rc4_init(&rc4state,vars->encryption_key,16);
epan/dissectors/packet-dcerpc-netlogon.c:7724:                crypt_rc4_init(&rc4state,vars->encryption_key,16);
epan/dissectors/packet-spnego.c:926:  crypt_rc4_init(&rc4_state, k6_data, sizeof(k6_data));
epan/dissectors/packet-spnego.c:952:    crypt_rc4_init(&rc4_state, k6_data, sizeof(k6_data));
epan/dissectors/asn1/spnego/packet-spnego-template.c:474:  crypt_rc4_init(&rc4_state, k6_data, sizeof(k6_data));
epan/dissectors/asn1/spnego/packet-spnego-template.c:500:    crypt_rc4_init(&rc4_state, k6_data, sizeof(k6_data));
epan/crypt/airpdcap.c:398:        crypt_rc4_init(&rc4_state, new_key, sizeof(new_key));

md5_append
epan/dissectors/packet-snmp.c:3387:		md5_append(&MD, password_buf, 64);
epan/dissectors/packet-snmp.c:3400:	md5_append(&MD, key1, 16);
epan/dissectors/packet-snmp.c:3401:	md5_append(&MD, engineID, engineLength);
epan/dissectors/packet-snmp.c:3402:	md5_append(&MD, key1, 16);
epan/dissectors/packet-3com-njack.c:543:	md5_append(&md_ctx, workbuffer, 32);
epan/dissectors/packet-3com-njack.c:546:	md5_append(&md_ctx, packetdata, 12);
epan/dissectors/packet-3com-njack.c:547:	md5_append(&md_ctx, digest, 16);
epan/dissectors/packet-3com-njack.c:548:	md5_append(&md_ctx, packetdata + 28, length - 28);
epan/dissectors/packet-ntlmssp.c:721:        md5_append(&md5state, serverchallenge, 8);
epan/dissectors/packet-ntlmssp.c:722:        md5_append(&md5state, clientchallenge, 8);
epan/dissectors/packet-ntlmssp.c:798:  md5_append(&md5state, key, keylen);
epan/dissectors/packet-ntlmssp.c:799:  md5_append(&md5state, CLIENT_SIGN_TEXT, strlen(CLIENT_SIGN_TEXT)+1);
epan/dissectors/packet-ntlmssp.c:802:  md5_append(&md5state2, key, keylen);
epan/dissectors/packet-ntlmssp.c:803:  md5_append(&md5state2, SERVER_SIGN_TEXT, strlen(SERVER_SIGN_TEXT)+1);
epan/dissectors/packet-ntlmssp.c:842:    md5_append(&md5state, clientsealkey,*keylen);
epan/dissectors/packet-ntlmssp.c:843:    md5_append(&md5state, CLIENT_SEAL_TEXT, strlen(CLIENT_SEAL_TEXT)+1);
epan/dissectors/packet-ntlmssp.c:846:    md5_append(&md5state2, serversealkey,*keylen);
epan/dissectors/packet-ntlmssp.c:847:    md5_append(&md5state2, SERVER_SEAL_TEXT, strlen(SERVER_SEAL_TEXT)+1);
epan/dissectors/packet-dcerpc-netlogon.c:6678:                md5_append(&md5state,zeros,4);
epan/dissectors/packet-dcerpc-netlogon.c:6679:                md5_append(&md5state,(unsigned char*)&vars->client_challenge,8);
epan/dissectors/packet-dcerpc-netlogon.c:6680:                md5_append(&md5state,(unsigned char*)&vars->server_challenge,8);
epan/dissectors/packet-frame.c:463:			md5_append(&md_ctx, cp, cap_len);
epan/dissectors/packet-spnego.c:848:  md5_append(&ms, t, 4);
epan/dissectors/packet-spnego.c:849:  md5_append(&ms, v1, l1);
epan/dissectors/packet-spnego.c:850:  md5_append(&ms, v2, l2);
epan/dissectors/packet-spnego.c:851:  md5_append(&ms, v3, l3);
epan/dissectors/asn1/spnego/packet-spnego-template.c:396:  md5_append(&ms, t, 4);
epan/dissectors/asn1/spnego/packet-spnego-template.c:397:  md5_append(&ms, v1, l1);
epan/dissectors/asn1/spnego/packet-spnego-template.c:398:  md5_append(&ms, v2, l2);
epan/dissectors/asn1/spnego/packet-spnego-template.c:399:  md5_append(&ms, v3, l3);
epan/dissectors/asn1/kerberos/packet-kerberos-template.c:760:		md5_append(&md5s, confounder, 8);
epan/dissectors/asn1/kerberos/packet-kerberos-template.c:761:		md5_append(&md5s, zero_fill, 16);
epan/dissectors/asn1/kerberos/packet-kerberos-template.c:762:		md5_append(&md5s, decrypted_data + CONFOUNDER_PLUS_CHECKSUM, data_len);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2178:		md5_append(&MD, password_buf, 64);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2191:	md5_append(&MD, key1, 16);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2192:	md5_append(&MD, engineID, engineLength);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2193:	md5_append(&MD, key1, 16);
epan/dissectors/asn1/cms/packet-cms-template.c:104:    md5_append(&md5_ctx, tvb_get_ptr(content, 0, tvb_captured_length(content)),
epan/dissectors/packet-data.c:100:				md5_append(&md_ctx, cp, bytes);
epan/dissectors/packet-cms.c:300:    md5_append(&md5_ctx, tvb_get_ptr(content, 0, tvb_captured_length(content)),
epan/dissectors/packet-radius.c:936:	md5_append(&md_ctx, (const guint8 *)shared_secret, (int)strlen(shared_secret));
epan/dissectors/packet-radius.c:938:	md5_append(&md_ctx, authenticator, AUTHENTICATOR_LENGTH);
epan/dissectors/packet-radius.c:962:		md5_append(&md_ctx, &pd[i], AUTHENTICATOR_LENGTH);
epan/dissectors/packet-radius.c:1792:	md5_append(&md_ctx, payload, tvb_length);
epan/dissectors/packet-radius.c:1793:	md5_append(&md_ctx, shared_secret, strlen(shared_secret));
epan/dissectors/packet-tacacs.c:1312:	md5_append(&mdcontext, md5_buff, md5_len);
epan/dissectors/packet-tacacs.c:1326:		md5_append(&mdcontext, md5_buff, md5_len);
epan/dissectors/packet-kerberos.c:1019:		md5_append(&md5s, confounder, 8);
epan/dissectors/packet-kerberos.c:1020:		md5_append(&md5s, zero_fill, 16);
epan/dissectors/packet-kerberos.c:1021:		md5_append(&md5s, decrypted_data + CONFOUNDER_PLUS_CHECKSUM, data_len);
editcap.c:601:    md5_append(&ms, new_fd, new_len);
editcap.c:643:    md5_append(&ms, new_fd, new_len);

md5_finish
epan/dissectors/packet-snmp.c:3390:	md5_finish(&MD, key1); /* tell MD5 we're done */
epan/dissectors/packet-snmp.c:3403:	md5_finish(&MD, key);
epan/dissectors/packet-3com-njack.c:544:	md5_finish(&md_ctx, digest);
epan/dissectors/packet-3com-njack.c:549:	md5_finish(&md_ctx, digest);
epan/dissectors/packet-ntlmssp.c:723:        md5_finish(&md5state, challenges_hash);
epan/dissectors/packet-ntlmssp.c:800:  md5_finish(&md5state, sign_key_client);
epan/dissectors/packet-ntlmssp.c:804:  md5_finish(&md5state2, sign_key_server);
epan/dissectors/packet-ntlmssp.c:844:    md5_finish(&md5state, clientsealkey);
epan/dissectors/packet-ntlmssp.c:848:    md5_finish(&md5state2, serversealkey);
epan/dissectors/packet-dcerpc-netlogon.c:6681:                md5_finish(&md5state,md5);
epan/dissectors/packet-frame.c:464:			md5_finish(&md_ctx, digest);
epan/dissectors/packet-spnego.c:852:  md5_finish(&ms, digest);
epan/dissectors/asn1/spnego/packet-spnego-template.c:400:  md5_finish(&ms, digest);
epan/dissectors/asn1/kerberos/packet-kerberos-template.c:763:		md5_finish(&md5s, digest);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2181:	md5_finish(&MD, key1); /* tell MD5 we're done */
epan/dissectors/asn1/snmp/packet-snmp-template.c:2194:	md5_finish(&MD, key);
epan/dissectors/asn1/cms/packet-cms-template.c:107:    md5_finish(&md5_ctx, digest_buf);
epan/dissectors/packet-data.c:101:				md5_finish(&md_ctx, digest);
epan/dissectors/packet-cms.c:303:    md5_finish(&md5_ctx, digest_buf);
epan/dissectors/packet-radius.c:939:	md5_finish(&md_ctx, digest);
epan/dissectors/packet-radius.c:963:		md5_finish(&md_ctx, digest);
epan/dissectors/packet-radius.c:1794:	md5_finish(&md_ctx, digest);
epan/dissectors/packet-tacacs.c:1313:	md5_finish(&mdcontext,hash);
epan/dissectors/packet-tacacs.c:1327:		md5_finish(&mdcontext,hash);
epan/dissectors/packet-kerberos.c:1022:		md5_finish(&md5s, digest);
editcap.c:602:    md5_finish(&ms, fd_hash[cur_dup_entry].digest);
editcap.c:644:    md5_finish(&ms, fd_hash[cur_dup_entry].digest);

md5_hmac
epan/dissectors/packet-snmp.c:1681:	md5_hmac(msg, msg_len, key, key_len, calc_auth);
epan/dissectors/packet-ntlmssp.c:597:    md5_hmac(buf, domain_len*2+user_len*2, nt_password_hash, NTLMSSP_KEY_LEN, ntowf);
epan/dissectors/packet-ntlmssp.c:604:    md5_hmac(buf, NTLMSSP_KEY_LEN, ntowf, NTLMSSP_KEY_LEN, lm_challenge_response);
epan/dissectors/packet-ntlmssp.c:612:    md5_hmac(buf, ntlm_response->length-8, ntowf, NTLMSSP_KEY_LEN, nt_proof);
epan/dissectors/packet-ntlmssp.c:623:  md5_hmac(nt_proof, NTLMSSP_KEY_LEN, ntowf, NTLMSSP_KEY_LEN, sessionbasekey);
epan/dissectors/packet-ntlmssp.c:757:      /*md5_hmac(text, text_len, key, key_len, digest);*/
epan/dissectors/packet-ntlmssp.c:758:      md5_hmac(challenges, NTLMSSP_KEY_LEN, md4, NTLMSSP_KEY_LEN, sessionbasekey);
epan/dissectors/packet-ntlmssp.c:2278:          md5_hmac(check_buf, (int)(packet_ntlmssp_info->payload_len+4), sign_key, NTLMSSP_KEY_LEN, calculated_md5);
epan/dissectors/packet-dcerpc-netlogon.c:6689:                    md5_hmac(md5,16,(guint8*) &password,16,session_key);
epan/dissectors/packet-dcerpc-netlogon.c:7653:        md5_hmac(zeros,4,buf,key_len,buf2);
epan/dissectors/packet-dcerpc-netlogon.c:7654:        md5_hmac((guint8*)&sequence,8,buf2,16,seal_key);
epan/dissectors/packet-dcerpc-netlogon.c:7673:    md5_hmac(zeros,4,session_key,16,buf);
epan/dissectors/packet-dcerpc-netlogon.c:7674:    md5_hmac((guint8*)&checksum,8,buf,16,key);
epan/dissectors/packet-l2tp.c:1039:        md5_hmac(&data, 1, secret, strlen(secret), tunnel->shared_key);
epan/dissectors/packet-spnego.c:796:    md5_hmac(L40, 14, key_data, key_size, k5_data);
epan/dissectors/packet-spnego.c:799:    md5_hmac(T, 4, key_data, key_size, k5_data);
epan/dissectors/packet-spnego.c:802:  md5_hmac(cksum_data, cksum_size, k5_data, 16, key6_data);
epan/dissectors/packet-spnego.c:842:  md5_hmac(signature, sizeof(signature), key_data, key_length, ksign_c);
epan/dissectors/packet-spnego.c:853:  md5_hmac(digest, 16, ksign_c, 16, cksum);
epan/dissectors/asn1/spnego/packet-spnego-template.c:344:    md5_hmac(L40, 14, key_data, key_size, k5_data);
epan/dissectors/asn1/spnego/packet-spnego-template.c:347:    md5_hmac(T, 4, key_data, key_size, k5_data);
epan/dissectors/asn1/spnego/packet-spnego-template.c:350:  md5_hmac(cksum_data, cksum_size, k5_data, 16, key6_data);
epan/dissectors/asn1/spnego/packet-spnego-template.c:390:  md5_hmac(signature, sizeof(signature), key_data, key_length, ksign_c);
epan/dissectors/asn1/spnego/packet-spnego-template.c:401:  md5_hmac(digest, 16, ksign_c, 16, cksum);
epan/dissectors/asn1/snmp/packet-snmp-template.c:1579:	md5_hmac(msg, msg_len, key, key_len, calc_auth);
epan/crypt/airpdcap.c:1549:        md5_hmac(eapol, eapol_len, KCK, AIRPDCAP_WPA_KCK_LEN, c_mic);

md5_hmac_append
epan/dissectors/packet-l2tp.c:1066:                md5_hmac_append(&ms, tunnel->lcce1_nonce, tunnel->lcce1_nonce_len);
epan/dissectors/packet-l2tp.c:1067:                md5_hmac_append(&ms, tunnel->lcce2_nonce, tunnel->lcce2_nonce_len);
epan/dissectors/packet-l2tp.c:1069:                md5_hmac_append(&ms, tunnel->lcce2_nonce, tunnel->lcce2_nonce_len);
epan/dissectors/packet-l2tp.c:1070:                md5_hmac_append(&ms, tunnel->lcce1_nonce, tunnel->lcce1_nonce_len);
epan/dissectors/packet-l2tp.c:1075:    md5_hmac_append(&ms, tvb_get_ptr(tvb, offset, idx + 1 - offset), idx + 1 - offset);
epan/dissectors/packet-l2tp.c:1078:    md5_hmac_append(&ms, zero, avp_len - 1);
epan/dissectors/packet-l2tp.c:1080:    md5_hmac_append(&ms, tvb_get_ptr(tvb, idx + avp_len, remainder), remainder);

md5_hmac_finish
epan/dissectors/packet-l2tp.c:1081:    md5_hmac_finish(&ms, digest);

md5_hmac_init
epan/dissectors/packet-l2tp.c:1061:    md5_hmac_init(&ms, tunnel->shared_key, L2TP_HMAC_MD5_KEY_LEN);

md5_init
epan/dissectors/packet-snmp.c:3369:	md5_init(&MD);   /* initialize MD5 */
epan/dissectors/packet-snmp.c:3399:	md5_init(&MD);
epan/dissectors/packet-3com-njack.c:542:	md5_init(&md_ctx);
epan/dissectors/packet-3com-njack.c:545:	md5_init(&md_ctx);
epan/dissectors/packet-ntlmssp.c:720:        md5_init(&md5state);
epan/dissectors/packet-ntlmssp.c:797:  md5_init(&md5state);
epan/dissectors/packet-ntlmssp.c:801:  md5_init(&md5state2);
epan/dissectors/packet-ntlmssp.c:841:    md5_init(&md5state);
epan/dissectors/packet-ntlmssp.c:845:    md5_init(&md5state2);
epan/dissectors/packet-dcerpc-netlogon.c:6677:                md5_init(&md5state);
epan/dissectors/packet-frame.c:462:			md5_init(&md_ctx);
epan/dissectors/packet-spnego.c:843:  md5_init(&ms);
epan/dissectors/asn1/spnego/packet-spnego-template.c:391:  md5_init(&ms);
epan/dissectors/asn1/kerberos/packet-kerberos-template.c:728:		md5_init(&md5s);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2160:	md5_init(&MD);   /* initialize MD5 */
epan/dissectors/asn1/snmp/packet-snmp-template.c:2190:	md5_init(&MD);
epan/dissectors/asn1/cms/packet-cms-template.c:102:    md5_init(&md5_ctx);
epan/dissectors/packet-data.c:99:				md5_init(&md_ctx);
epan/dissectors/packet-cms.c:298:    md5_init(&md5_ctx);
epan/dissectors/packet-radius.c:935:	md5_init(&md_ctx);
epan/dissectors/packet-radius.c:1791:	md5_init(&md_ctx);
epan/dissectors/packet-tacacs.c:1311:	md5_init(&mdcontext);
epan/dissectors/packet-tacacs.c:1325:		md5_init(&mdcontext);
epan/dissectors/packet-kerberos.c:987:		md5_init(&md5s);
editcap.c:600:    md5_init(&ms);
editcap.c:642:    md5_init(&ms);

sha1_finish
epan/dissectors/packet-snmp.c:3446:	sha1_finish(&SH, key);
epan/dissectors/packet-snmp.c:3459:	sha1_finish(&SH, key);
epan/dissectors/packet-sigcomp.c:2510:        sha1_finish( &ctx, sha1_digest_buf );
epan/dissectors/packet-sigcomp.c:4373:                sha1_finish( &ctx, sha1_digest_buf );
epan/dissectors/packet-tcp.c:2429:    sha1_finish(&sha1_ctx, digest_buf);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2237:	sha1_finish(&SH, key);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2250:	sha1_finish(&SH, key);
epan/dissectors/asn1/cms/packet-cms-template.c:96:    sha1_finish(&sha1_ctx, digest_buf);
epan/dissectors/packet-cms.c:292:    sha1_finish(&sha1_ctx, digest_buf);

sha1_hmac
epan/dissectors/packet-snmp.c:1745:	sha1_hmac(key, key_len, msg, msg_len, calc_auth);
epan/dissectors/packet-corosync-totemnet.c:317:  sha1_hmac(hmac_key, 16,
epan/dissectors/packet-pktc.c:729:           "SHA-1 HMAC", "pktc.sha1_hmac", FT_BYTES, BASE_NONE,
epan/dissectors/asn1/snmp/packet-snmp-template.c:1643:	sha1_hmac(key, key_len, msg, msg_len, calc_auth);
epan/crypt/airpdcap.c:1552:        sha1_hmac(KCK, AIRPDCAP_WPA_KCK_LEN, eapol, eapol_len, c_mic);
epan/crypt/airpdcap.c:1859:        sha1_hmac(pmk, 32, R, 100, &output[20 * i]);
epan/crypt/airpdcap.c:1894:    sha1_hmac(ppBytes, ppLength, digest, (guint32) ssidLength+4, digest1);
epan/crypt/airpdcap.c:1900:        sha1_hmac(ppBytes, ppLength, digest1, SHA1_DIGEST_LEN, digest);

sha1_hmac_finish
epan/dissectors/packet-l2tp.c:1121:    sha1_hmac_finish(&ms, digest);

sha1_hmac_starts
epan/dissectors/packet-l2tp.c:1101:    sha1_hmac_starts(&ms, tunnel->shared_key, L2TP_HMAC_MD5_KEY_LEN);

sha1_hmac_update
epan/dissectors/packet-l2tp.c:1106:                sha1_hmac_update(&ms, tunnel->lcce1_nonce, tunnel->lcce1_nonce_len);
epan/dissectors/packet-l2tp.c:1107:                sha1_hmac_update(&ms, tunnel->lcce2_nonce, tunnel->lcce2_nonce_len);
epan/dissectors/packet-l2tp.c:1109:                sha1_hmac_update(&ms, tunnel->lcce2_nonce, tunnel->lcce2_nonce_len);
epan/dissectors/packet-l2tp.c:1110:                sha1_hmac_update(&ms, tunnel->lcce1_nonce, tunnel->lcce1_nonce_len);
epan/dissectors/packet-l2tp.c:1115:    sha1_hmac_update(&ms, tvb_get_ptr(tvb, offset, idx + 1 - offset), idx + 1 - offset);
epan/dissectors/packet-l2tp.c:1118:    sha1_hmac_update(&ms, zero, avp_len - 1);
epan/dissectors/packet-l2tp.c:1120:    sha1_hmac_update(&ms, tvb_get_ptr(tvb, idx + avp_len, remainder), remainder);

sha1_starts
epan/dissectors/packet-snmp.c:3425:	sha1_starts(&SH); /* initialize SHA */
epan/dissectors/packet-snmp.c:3455:	sha1_starts(&SH);
epan/dissectors/packet-sigcomp.c:2489:        sha1_starts( &ctx );
epan/dissectors/packet-sigcomp.c:4371:                sha1_starts( &ctx );
epan/dissectors/packet-tcp.c:2427:    sha1_starts(&sha1_ctx);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2216:	sha1_starts(&SH); /* initialize SHA */
epan/dissectors/asn1/snmp/packet-snmp-template.c:2246:	sha1_starts(&SH);
epan/dissectors/asn1/cms/packet-cms-template.c:91:    sha1_starts(&sha1_ctx);
epan/dissectors/packet-cms.c:287:    sha1_starts(&sha1_ctx);

sha1_update
epan/dissectors/packet-snmp.c:3443:		sha1_update (&SH, password_buf, 64);
epan/dissectors/packet-snmp.c:3456:	sha1_update(&SH, key, SHA1_DIGEST_LEN);
epan/dissectors/packet-snmp.c:3457:	sha1_update(&SH, engineID, engineLength);
epan/dissectors/packet-snmp.c:3458:	sha1_update(&SH, key, SHA1_DIGEST_LEN);
epan/dissectors/packet-sigcomp.c:2500:            sha1_update( &ctx, &buff[k], handle_now );
epan/dissectors/packet-sigcomp.c:4372:                sha1_update( &ctx, (guint8 *) sha1buff, state_length_buff[n] + 8);
epan/dissectors/packet-tcp.c:2428:    sha1_update(&sha1_ctx, (const guint8 *)&pseudokey, 8);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2234:		sha1_update (&SH, password_buf, 64);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2247:	sha1_update(&SH, key, SHA1_DIGEST_LEN);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2248:	sha1_update(&SH, engineID, engineLength);
epan/dissectors/asn1/snmp/packet-snmp-template.c:2249:	sha1_update(&SH, key, SHA1_DIGEST_LEN);
epan/dissectors/asn1/cms/packet-cms-template.c:93:    sha1_update(&sha1_ctx, tvb_get_ptr(content, 0, tvb_captured_length(content)),
epan/dissectors/packet-cms.c:289:    sha1_update(&sha1_ctx, tvb_get_ptr(content, 0, tvb_captured_length(content)),

sha256_finish
epan/crypt/airpdcap.c:2194:    sha256_finish(&(sha_ctx.ctx), key_input);

sha256_hmac

sha256_hmac_finish
epan/crypt/airpdcap.c:2216:    sha256_hmac_finish(&sha_ctx, key_input);

sha256_hmac_starts
epan/crypt/airpdcap.c:2200:    sha256_hmac_starts(&sha_ctx, key_input, SHA256_DIGEST_LEN);

sha256_hmac_update
epan/crypt/airpdcap.c:2203:    sha256_hmac_update(&sha_ctx, (const guint8 *)&iter, 2);
epan/crypt/airpdcap.c:2204:    sha256_hmac_update(&sha_ctx, "TDLS PMK", 8);
epan/crypt/airpdcap.c:2206:        sha256_hmac_update(&sha_ctx, initiator, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2207:        sha256_hmac_update(&sha_ctx, responder, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2209:        sha256_hmac_update(&sha_ctx, responder, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2210:        sha256_hmac_update(&sha_ctx, initiator, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2212:    sha256_hmac_update(&sha_ctx, bssid, AIRPDCAP_MAC_LEN);
epan/crypt/airpdcap.c:2215:    sha256_hmac_update(&sha_ctx, (const guint8 *)&length, 2);

sha256_starts
epan/crypt/airpdcap.c:2186:    sha256_starts(&(sha_ctx.ctx));

sha256_update
epan/crypt/airpdcap.c:2188:        sha256_update(&(sha_ctx.ctx), anonce, AIRPDCAP_WPA_NONCE_LEN);
epan/crypt/airpdcap.c:2189:        sha256_update(&(sha_ctx.ctx), snonce, AIRPDCAP_WPA_NONCE_LEN);
epan/crypt/airpdcap.c:2191:        sha256_update(&(sha_ctx.ctx), snonce, AIRPDCAP_WPA_NONCE_LEN);
epan/crypt/airpdcap.c:2192:        sha256_update(&(sha_ctx.ctx), anonce, AIRPDCAP_WPA_NONCE_LEN);