/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the kms-2014-11-01.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.KeyManagementService.Model { /// /// Container for the parameters to the VerifyMac operation. /// Verifies the hash-based message authentication code (HMAC) for a specified message, /// HMAC KMS key, and MAC algorithm. To verify the HMAC, VerifyMac computes /// an HMAC using the message, HMAC KMS key, and MAC algorithm that you specify, and compares /// the computed HMAC to the HMAC that you specify. If the HMACs are identical, the verification /// succeeds; otherwise, it fails. Verification indicates that the message hasn't changed /// since the HMAC was calculated, and the specified key was used to generate and verify /// the HMAC. /// /// /// /// HMAC KMS keys and the HMAC algorithms that KMS uses conform to industry standards /// defined in RFC 2104. /// /// /// /// This operation is part of KMS support for HMAC KMS keys. For details, see HMAC /// keys in KMS in the Key Management Service Developer Guide. /// /// /// /// The KMS key that you use for this operation must be in a compatible key state. For /// details, see Key /// states of KMS keys in the Key Management Service Developer Guide. /// /// /// /// Cross-account use: Yes. To perform this operation with a KMS key in a different /// Amazon Web Services account, specify the key ARN or alias ARN in the value of the /// KeyId parameter. /// /// /// /// Required permissions: kms:VerifyMac /// (key policy) /// /// /// /// Related operations: GenerateMac /// /// public partial class VerifyMacRequest : AmazonKeyManagementServiceRequest { private bool? _dryRun; private List _grantTokens = new List(); private string _keyId; private MemoryStream _mac; private MacAlgorithmSpec _macAlgorithm; private MemoryStream _message; /// /// Gets and sets the property DryRun. /// /// Checks if your request will succeed. DryRun is an optional parameter. /// /// /// /// /// To learn more about how to use this parameter, see Testing /// your KMS API calls in the Key Management Service Developer Guide. /// /// public bool DryRun { get { return this._dryRun.GetValueOrDefault(); } set { this._dryRun = value; } } // Check to see if DryRun property is set internal bool IsSetDryRun() { return this._dryRun.HasValue; } /// /// Gets and sets the property GrantTokens. /// /// A list of grant tokens. /// /// /// /// Use a grant token when your permission to call this operation comes from a new grant /// that has not yet achieved eventual consistency. For more information, see Grant /// token and Using /// a grant token in the Key Management Service Developer Guide. /// /// [AWSProperty(Min=0, Max=10)] public List GrantTokens { get { return this._grantTokens; } set { this._grantTokens = value; } } // Check to see if GrantTokens property is set internal bool IsSetGrantTokens() { return this._grantTokens != null && this._grantTokens.Count > 0; } /// /// Gets and sets the property KeyId. /// /// The KMS key that will be used in the verification. /// /// /// /// Enter a key ID of the KMS key that was used to generate the HMAC. If you identify /// a different KMS key, the VerifyMac operation fails. /// /// [AWSProperty(Required=true, Min=1, Max=2048)] public string KeyId { get { return this._keyId; } set { this._keyId = value; } } // Check to see if KeyId property is set internal bool IsSetKeyId() { return this._keyId != null; } /// /// Gets and sets the property Mac. /// /// The HMAC to verify. Enter the HMAC that was generated by the GenerateMac operation /// when you specified the same message, HMAC KMS key, and MAC algorithm as the values /// specified in this request. /// /// [AWSProperty(Required=true, Min=1, Max=6144)] public MemoryStream Mac { get { return this._mac; } set { this._mac = value; } } // Check to see if Mac property is set internal bool IsSetMac() { return this._mac != null; } /// /// Gets and sets the property MacAlgorithm. /// /// The MAC algorithm that will be used in the verification. Enter the same MAC algorithm /// that was used to compute the HMAC. This algorithm must be supported by the HMAC KMS /// key identified by the KeyId parameter. /// /// [AWSProperty(Required=true)] public MacAlgorithmSpec MacAlgorithm { get { return this._macAlgorithm; } set { this._macAlgorithm = value; } } // Check to see if MacAlgorithm property is set internal bool IsSetMacAlgorithm() { return this._macAlgorithm != null; } /// /// Gets and sets the property Message. /// /// The message that will be used in the verification. Enter the same message that was /// used to generate the HMAC. /// /// /// /// GenerateMac and VerifyMac do not provide special handling for /// message digests. If you generated an HMAC for a hash digest of a message, you must /// verify the HMAC for the same hash digest. /// /// [AWSProperty(Required=true, Sensitive=true, Min=1, Max=4096)] public MemoryStream Message { get { return this._message; } set { this._message = value; } } // Check to see if Message property is set internal bool IsSetMessage() { return this._message != null; } } }