# Vertical bar and comma in hash function input

I came across to a definition of a term PMKID while studying 4-way handshake in IEEE 802.11i. It is defined as:

PMKID = H(PMK,"PMK name"||AA||SPA)

I know the vertical bar || in the input of the hash function means concatenation, i.e. joining them end-to-end. How about the comma? Any difference?

And also, does "PMK name" means that the string is converted into binary form and serve as part of the input or is it there for demonstration purpose only?

• This question is off-topic. That being said, the comma is just to separate the two input parameters of the function "H". I think it's safe to assume that "PMK name" is just a string placeholder. – hunter Mar 31 '17 at 17:28
• @hunter why should this question be off-topic? – SEJPM Mar 31 '17 at 18:04
• @SEJPM because it seems to be asking how to interpret pseudocode – hunter Mar 31 '17 at 20:11
• @hunter but pseuo-code which is extremely commonly used in cryptography and exclusively in cryptography so I think the question is (nearly) fully on-topic. – SEJPM Mar 31 '17 at 20:12
• @SEJPM I might agree if the notation in question were (potentially) specific to crypto, but I don't think input params or string placeholders qualify - those are basic programming concepts. However, I've seen similar questions here asking for clarification of symbols common in crypto pseudocode like XOR, which can be confusing as it's sometimes seen as ⊕ or ^. To me something like that seems more on-topic. – hunter Mar 31 '17 at 20:25

From the way in which the formula is written, $H$ is probably some sort of keyed hash algorithm—probably HMAC. HMAC takes two parameters: the secret key to the MAC and the data to hash. The first parameter is probably the secret key to HMAC, with the concatenated data being the data to hash with HMAC.