Struct: v4.StreamSigner

import "../ibm-cos-sdk-go-v2/aws/signer/v4"

Overview

StreamSigner implements Signature Version 4 (SigV4) signing of event stream encoded payloads.

Implemented Interfaces

types.AnalyticsFilter, v4.EventStreamSigner, v4.HTTPPresigner, s3.HTTPPresignerV4, types.MetricsFilter, s3.PresignPost, arn.S3ObjectLambdaARN, types.SelectObjectContentEventStream

Method Summary collapse

Method Details

func (s *StreamSigner) GetSignature(ctx context.Context, headers, payload []byte, signingTime time.Time, optFns ...func(*StreamSignerOptions)) ([]byte, error)

GetSignature signs the provided header and payload bytes.



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// File 'aws/signer/v4/stream.go', line 52

func (s *StreamSigner) GetSignature(ctx context.Context, headers, payload []byte, signingTime time.Time, optFns ...func(*StreamSignerOptions)) ([]byte, error) { options := s.options for _, fn := range optFns { fn(&options) } prevSignature := s.prevSignature st := v4Internal.NewSigningTime(signingTime) sigKey := s.signingKeyDeriver.DeriveKey(s.credentials, s.service, s.region, st) scope := v4Internal.BuildCredentialScope(st, s.region, s.service) stringToSign := s.buildEventStreamStringToSign(headers, payload, prevSignature, scope, &st) signature := v4Internal.HMACSHA256(sigKey, []byte(stringToSign)) s.prevSignature = signature return signature, nil }