示例#1
0
        /// <summary>
        /// Generate a short, unique secret, using given sharing parameters.
        ///
        /// This is useful for temporary passwords, one-time pads, salts, etc.
        /// </summary>
        /// <param name="sharingParams">Sharing parameters. See <see cref="SharingParams"/>.</param>
        /// <returns>Metadata object related to generated secret.</returns>
        public GeneratedSecret GenerateSecret(SharingParams sharingParams)
        {
            const string urlPartGenerate = "/generate";
            var          generateUrl     = ApiUrl + urlPartGenerate;

            var postData = SharingParamsToPost(sharingParams);

            return(ApiPostRequest <GeneratedSecret>(generateUrl, postData));
        }
示例#2
0
        /// <summary>
        /// Shares secret message, using given sharing parameters.
        /// </summary>
        /// <param name="secret">Secret message to share.</param>
        /// <param name="sharingParams">Sharing parameters. See <see cref="VStepanov.OneTimeSharp.DataStructures.SharingParams"/>.</param>
        /// <returns>Metadata object related to shared secret.</returns>
        public SharedSecret ShareSecret(string secret, SharingParams sharingParams)
        {
            const string urlPartShare = "/share";
            var          shareUrl     = ApiUrl + urlPartShare;

            var postData = SharingParamsToPost(sharingParams);

            postData.Add("secret", secret);

            return(ApiPostRequest <SharedSecret>(shareUrl, postData));
        }
示例#3
0
        private static Dictionary <string, string> SharingParamsToPost(SharingParams sharingParams)
        {
            var postData = new Dictionary <string, string>();

            if (sharingParams.Password != null)
            {
                postData.Add("passphrase", sharingParams.Password);
            }
            if (sharingParams.Ttl != null)
            {
                postData.Add("ttl", sharingParams.Ttl);
            }
            if (sharingParams.Recipient != null)
            {
                postData.Add("recipient", sharingParams.Recipient);
            }

            return(postData);
        }