Example #1
0
        public string GeneratePinStepJwt(BaseJwtComposeInfo info, string pin)
        {
            var requester = GetRequester();

            var data = new Dictionary <string, object>
            {
                { "pin", pin },
                { requester.Key, requester.Value }
            };

            if (!string.IsNullOrEmpty(info.EncKey))
            {
                data.Add("encKey", info.EncKey);
            }
            if (!string.IsNullOrEmpty(info.EncVector))
            {
                data.Add("encVector", info.EncVector);
            }

            if (info.IncludeFido2FallbackBehavior && _ownIdCoreConfiguration.TFAEnabled)
            {
                data.Add("fido2FallbackBehavior", _ownIdCoreConfiguration.Fido2FallbackBehavior.ToString().ToLower());
            }

            data.Add("canBeRecovered", info.CanBeRecovered);

            var fields = GetBaseFlowFieldsDictionary(info, data);

            return(_jwtService.GenerateDataJwt(fields, info.ClientTime));
        }
Example #2
0
        public string GenerateProfileConfigJwt(BaseJwtComposeInfo info, string did)
        {
            var data = GetFieldsConfigDictionary(did);

            if (info.IncludeRequester)
            {
                var(key, value) = GetRequester();
                data[key]       = value;
            }

            var fields = GetBaseFlowFieldsDictionary(info, data);

            return(_jwtService.GenerateDataJwt(fields, info.ClientTime));
        }
Example #3
0
        private Dictionary <string, object> GetBaseFlowFieldsDictionary(BaseJwtComposeInfo info, object data = null)
        {
            var stepDict = GetStepBehavior(info.Behavior);

            var fields = new Dictionary <string, object>
            {
                { "jti", info.Context },
                { "locale", info.Locale },
                { "isDesktop", info.IsDesktop },
                { "nextStep", stepDict }
            };

            if (data != null)
            {
                fields.Add("data", data);
            }

            return(fields);
        }
Example #4
0
        public string GenerateBaseStepJwt(BaseJwtComposeInfo info, string did = null)
        {
            var data = new Dictionary <string, object>
            {
                { "requestedFields", new object[0] }
            };

            if (!string.IsNullOrEmpty(did))
            {
                var(didKey, didValue) = GetDid(did);
                data.Add(didKey, didValue);
            }

            if (info.IncludeRequester)
            {
                var(reqKey, reqValue) = GetRequester();
                data.Add(reqKey, reqValue);
            }

            if (!string.IsNullOrEmpty(info.EncKey))
            {
                data.Add("encKey", info.EncKey);
            }
            if (!string.IsNullOrEmpty(info.EncVector))
            {
                data.Add("encVector", info.EncVector);
            }

            if (info.IncludeFido2FallbackBehavior && _ownIdCoreConfiguration.TFAEnabled)
            {
                data.Add("fido2FallbackBehavior", _ownIdCoreConfiguration.Fido2FallbackBehavior.ToString().ToLower());
            }

            data.Add("canBeRecovered", info.CanBeRecovered);

            var fields = GetBaseFlowFieldsDictionary(info, data);

            return(_jwtService.GenerateDataJwt(fields, info.ClientTime));
        }
Example #5
0
        public string GenerateRecoveryDataJwt(BaseJwtComposeInfo info, ConnectionRecoveryResult <object> data)
        {
            var dataDict = new Dictionary <string, object>
            {
                { "encKey", info.EncKey },
                { "encVector", info.EncVector }
            };

            if (data != null)
            {
                var(didKey, didValue) = GetDid(data.DID);
                dataDict = new Dictionary <string, object>
                {
                    { "profile", data.UserProfile },
                    { didKey, didValue },
                    { "pubKey", data.PublicKey },
                    { "recoveryData", data.RecoveryData }
                };
            }

            var fields = GetBaseFlowFieldsDictionary(info, dataDict);

            return(_jwtService.GenerateDataJwt(fields, info.ClientTime));
        }
Example #6
0
        public string GenerateFinalStepJwt(BaseJwtComposeInfo info)
        {
            var fields = GetBaseFlowFieldsDictionary(info);

            return(_jwtService.GenerateDataJwt(fields, info.ClientTime));
        }
Example #7
0
        public string GenerateDataStepJwt <T>(BaseJwtComposeInfo info, T data) where T : class
        {
            var fields = GetBaseFlowFieldsDictionary(info, data);

            return(_jwtService.GenerateDataJwt(fields, info.ClientTime));
        }