| 174 | } |
| 175 | |
| 176 | func (p *queueDriver) makeSAS(name string, permissions sas.QueuePermissions) (string, error) { |
| 177 | start, end := p.cfg.SASTimes() |
| 178 | sv := sas.QueueSignatureValues{Protocol: sas.ProtocolHTTPSandHTTP, QueueName: name, Permissions: permissions.String(), StartTime: start, ExpiryTime: end} |
| 179 | cred, err := azqueue.NewSharedKeyCredential(p.ep.Account, p.ep.Key) |
| 180 | if err != nil { |
| 181 | return "", err |
| 182 | } |
| 183 | sasToken, err := sv.SignWithSharedKey(cred) |
| 184 | if err != nil { |
| 185 | return "", err |
| 186 | } |
| 187 | return strings.TrimPrefix(sasToken.Encode(), "?"), nil |
| 188 | } |
| 189 | |
| 190 | func (p *queueDriver) CreateBootstrapTokens() (string, string, error) { |
| 191 | if p.ep.Account == "" || p.ep.Key == "" { |
| 192 | return "", "", ErrSASGenerationFailed |
| 193 | } |
| 194 | hSAS, err := p.makeSAS(p.cfg.handshakeEndpoint, sas.QueuePermissions{Add: true}) |
| 195 | if err != nil { |
| 196 | return "", "", fmt.Errorf("%w: %v", ErrSASGenerationFailed, err) |