include/mpin.h.in [100:120]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /** @brief Perform client side of the one-pass version of the M-Pin protocol * If Time Permits are disabled, set d = 0, and UT is not generated and can be set to NULL. If Time Permits are enabled, and PIN error detection is OFF, U is not generated and can be set to NULL. If Time Permits are enabled, and PIN error detection is ON, U and UT are both generated. @param h is the hash type @param d is input date, in days since the epoch. Set to 0 if Time permits disabled @param ID is the input client identity @param R is a pointer to a cryptographically secure random number generator @param x an output internally randomly generated if R!=NULL, otherwise must be provided as an input @param pin is the input PIN number @param T is the input M-Pin token (the client secret with PIN portion removed) @param V is output = -(x+y)(CS+TP), where CS is the reconstructed client secret, and TP is the time permit @param U is output = x.H(ID) @param UT is output = x.(H(ID)+H(d|H(ID))) @param TP is the input time permit @param MESSAGE is the message to be signed @param t is input epoch time in seconds - a timestamp @param y is output H(t|U) or H(t|UT) if Time Permits enabled @return 0 or an error code */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - include/mpin256.h.in [102:122]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /** @brief Perform client side of the one-pass version of the M-Pin protocol * If Time Permits are disabled, set d = 0, and UT is not generated and can be set to NULL. If Time Permits are enabled, and PIN error detection is OFF, U is not generated and can be set to NULL. If Time Permits are enabled, and PIN error detection is ON, U and UT are both generated. @param h is the hash type @param d is input date, in days since the epoch. Set to 0 if Time permits disabled @param ID is the input client identity @param R is a pointer to a cryptographically secure random number generator @param x an output internally randomly generated if R!=NULL, otherwise must be provided as an input @param pin is the input PIN number @param T is the input M-Pin token (the client secret with PIN portion removed) @param V is output = -(x+y)(CS+TP), where CS is the reconstructed client secret, and TP is the time permit @param U is output = x.H(ID) @param UT is output = x.(H(ID)+H(d|H(ID))) @param TP is the input time permit @param MESSAGE is the message to be signed @param t is input epoch time in seconds - a timestamp @param y is output H(t|U) or H(t|UT) if Time Permits enabled @return 0 or an error code */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -