You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.

Class: Aws::SNS::MessageVerifier

Inherits:
Object
  • Object
show all
Defined in:
aws-sdk-resources/lib/aws-sdk-resources/services/sns/message_verifier.rb

Overview

A utility class that can be used to verify the authenticity of messages sent by Amazon SNS.

verifier = Aws::SNS::MessageVerifier.new

# returns true/false
verifier.authentic?(message_body)

# raises a Aws::SNS::MessageVerifier::VerificationError on failure
verifier.authenticate!(message_body)

You can re-use a single MessageVerifier instance to authenticate multiple SNS messages.

Defined Under Namespace

Classes: VerificationError

Instance Method Summary collapse

Constructor Details

#initializeMessageVerifier

Returns a new instance of MessageVerifier.



42
43
44
# File 'aws-sdk-resources/lib/aws-sdk-resources/services/sns/message_verifier.rb', line 42

def initialize
  @cached_pems = {}
end

Instance Method Details

#authentic?(message_body) ⇒ Boolean

Returns true if the given message has been successfully verified. Returns false otherwise.

Parameters:

  • message_body (String<JSON>)

Returns:

  • (Boolean)

    Returns true if the given message has been successfully verified. Returns false otherwise.



49
50
51
52
53
# File 'aws-sdk-resources/lib/aws-sdk-resources/services/sns/message_verifier.rb', line 49

def authentic?(message_body)
  authenticate!(message_body)
rescue VerificationError
  false
end

#authenticate!(message_body) ⇒ Boolean

Returns true when the given message has been successfully verified.

Parameters:

  • message_body (String<JSON>)

Returns:

  • (Boolean)

    Returns true when the given message has been successfully verified.

Raises:



60
61
62
63
64
65
66
67
68
69
# File 'aws-sdk-resources/lib/aws-sdk-resources/services/sns/message_verifier.rb', line 60

def authenticate!(message_body)
  msg = Json.load(message_body)
  msg = convert_lambda_msg(msg) if is_from_lambda(msg)
  if public_key(msg).verify(sha1, signature(msg), canonical_string(msg))
    true
  else
    msg = 'the authenticity of the message cannot be verified'
    raise VerificationError, msg
  end
end