/// <summary> /// Decodes meta information of authentication data according to Aadhaar API specification. /// </summary> /// <returns>The current instance of <see cref="OtpInfo"/>.</returns> /// <exception cref="ArgumentException"><see cref="InfoValue"/> is empty.</exception> public OtpInfo Decode() { ValidateEmptyString(InfoValue, nameof(InfoValue)); /* * <Version> * [00]: SHA-256 of Aadhaar Number [01]: request-type [02]: timestamp * [03]: OTP_api_ver [04]: SHA-256 of ASA code [05]: SHA-256 of AUA code * [06]: Sub-AUA code [07]: masked-mobile [08]: masked-email */ var start = InfoValue.IndexOf('{'); var end = InfoValue.LastIndexOf('}'); if (start != -1 && end != -1) { var infoArray = InfoValue.Substring(start + 1, end - (start + 1)).Split(','); AadhaarNumberHash = infoArray[0]; RequestType = (OtpRequestType)infoArray[1][0]; // Timestamp = DateTimeOffset.ParseExact(infoArray[2], TimestampFormat, CultureInfo.InvariantCulture); AuaCodeHash = infoArray[5]; SubAuaCodeHash = infoArray[6]; } return(this); }
/// <summary> /// Decodes meta information of authentication data according to Aadhaar API specification. /// </summary> public void Decode() { ValidateEmptyString(InfoValue, nameof(InfoValue)); /* * <Version> * [00]: SHA-256 of Aadhaar Number [01]: SHA-256 of Demo element [02]: Encoded Usage Data * [03]: pid_version [04]: timestamp [05]: fmrcount * [06]: fircount [07]: iircount [08]: auth_api_ver * [09]: SHA-256 of ASA code [10]: SHA-256 of AUA code [11]: SUB AUA code * [12]: lot [13]: lov [14]: lang * [15]: pi-ms [16]: pi-mv [17]: pi-lmv * [18]: pa-ms [19]: pa-mv [20]: pa-lmv * [21]: pfa-ms [22]: pfa-mv [23]: pfa-lmv * [24]: SHA-256 of tid */ var start = InfoValue.IndexOf('{'); var end = InfoValue.LastIndexOf('}'); if (start != -1 && end != -1) { var infoArray = InfoValue.Substring(start + 1, end - (start + 1)).Split(','); AadhaarNumberHash = infoArray[0]; DemographicHash = infoArray[1]; UsageData = infoArray[2]; Timestamp = DateTimeOffset.ParseExact(infoArray[4], TimestampFormat, CultureInfo.InvariantCulture); AuaCodeHash = infoArray[10]; SubAuaCode = infoArray[11]; TerminalHash = infoArray[24]; } }
/// <summary> /// Decodes meta information of authentication data according to Aadhaar API specification. /// </summary> public void Decode() { ValidateEmptyString(InfoValue, nameof(InfoValue)); /* * <Version> * [00]: SHA-256 of Aadhaar Number [01]: timestamp [02]: OTP_api_ver, * [03]: SHA-256 of ASA code [04]: SHA-256 of AUA code [05]: Sub-AUA code, * [06]: masked-mobile [07]: masked-email */ var start = InfoValue.IndexOf('{'); var end = InfoValue.LastIndexOf('}'); if (start != -1 && end != -1) { var infoArray = InfoValue.Substring(start + 1, end - (start + 1)).Split(','); AadhaarNumberHash = infoArray[0]; Timestamp = DateTimeOffset.ParseExact(infoArray[1], TimestampFormat, CultureInfo.InvariantCulture); AuaCodeHash = infoArray[4]; SubAuaCode = infoArray[5]; MaskedMobile = infoArray[6]; MaskedEmail = infoArray[7]; } }