mirror of
https://github.com/portainer/portainer.git
synced 2025-08-01 20:05:23 +02:00
add third_party digest lib to top level (#8140)
This commit is contained in:
parent
79bfd8f6fe
commit
8fd0efa34f
6 changed files with 604 additions and 0 deletions
90
third_party/digest/digest_test.go
vendored
Normal file
90
third_party/digest/digest_test.go
vendored
Normal file
|
@ -0,0 +1,90 @@
|
|||
// Copyright 2013 M-Lab
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License 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.
|
||||
|
||||
// The digest package provides an implementation of http.RoundTripper that takes
|
||||
// care of HTTP Digest Authentication (http://www.ietf.org/rfc/rfc2617.txt).
|
||||
// This only implements the MD5 and "auth" portions of the RFC, but that covers
|
||||
// the majority of avalible server side implementations including apache web
|
||||
// server.
|
||||
//
|
||||
|
||||
package digest
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
var cred = &credentials{
|
||||
Username: "Mufasa",
|
||||
Realm: "testrealm@host.com",
|
||||
Nonce: "dcd98b7102dd2f0e8b11d0f600bfb0c093",
|
||||
DigestURI: "/dir/index.html",
|
||||
Algorithm: "MD5",
|
||||
Opaque: "5ccc069c403ebaf9f0171e9517f40e41",
|
||||
MessageQop: "auth",
|
||||
method: "GET",
|
||||
password: "Circle Of Life",
|
||||
}
|
||||
|
||||
var cnonce = "0a4f113b"
|
||||
|
||||
func TestH(t *testing.T) {
|
||||
r1 := h("Mufasa:testrealm@host.com:Circle Of Life")
|
||||
if r1 != "939e7578ed9e3c518a452acee763bce9" {
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
r2 := h("GET:/dir/index.html")
|
||||
if r2 != "39aff3a2bab6126f332b942af96d3366" {
|
||||
t.Fail()
|
||||
}
|
||||
|
||||
r3 := h(fmt.Sprintf("%s:dcd98b7102dd2f0e8b11d0f600bfb0c093:00000001:0a4f113b:auth:%s", r1, r2))
|
||||
if r3 != "6629fae49393a05397450978507c4ef1" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestKd(t *testing.T) {
|
||||
r1 := kd("939e7578ed9e3c518a452acee763bce9",
|
||||
"dcd98b7102dd2f0e8b11d0f600bfb0c093:00000001:0a4f113b:auth:39aff3a2bab6126f332b942af96d3366")
|
||||
if r1 != "6629fae49393a05397450978507c4ef1" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestHa1(t *testing.T) {
|
||||
r1 := cred.ha1()
|
||||
if r1 != "939e7578ed9e3c518a452acee763bce9" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestHa2(t *testing.T) {
|
||||
r1 := cred.ha2()
|
||||
if r1 != "39aff3a2bab6126f332b942af96d3366" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestResp(t *testing.T) {
|
||||
r1, err := cred.resp(cnonce)
|
||||
if err != nil {
|
||||
t.Fail()
|
||||
}
|
||||
if r1 != "6629fae49393a05397450978507c4ef1" {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue