github.com/go-chef/chef@v0.30.1/authentication_test.go (about)

     1  package chef
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  const (
     8  	teststr     = "Hash this string"
     9  	testsha1    = "hdBcDGYOo5/Q4k2DojVVP1ANs3U="
    10  	testsha256  = "HKxj85/WjYxTHye4B2EPs9UPD8PxhplXZ/tjFucgCj4="
    11  	privateKeyG = `
    12  -----BEGIN RSA PRIVATE KEY-----
    13  MIIEpAIBAAKCAQEAx12nDxxOwSPHRSJEDz67a0folBqElzlu2oGMiUTS+dqtj3FU
    14  h5lJc1MjcprRVxcDVwhsSSo9948XEkk39IdblUCLohucqNMzOnIcdZn8zblN7Cnp
    15  W03UwRM0iWX1HuwHnGvm6PKeqKGqplyIXYO0qlDWCzC+VaxFTwOUk31MfOHJQn4y
    16  fTrfuE7h3FTElLBu065SFp3dPICIEmWCl9DadnxbnZ8ASxYQ9xG7hmZduDgjNW5l
    17  3x6/EFkpym+//D6AbWDcVJ1ovCsJL3CfH/NZC3ekeJ/aEeLxP/vaCSH1VYC5VsYK
    18  5Qg7SIa6Nth3+RZz1hYOoBJulEzwljznwoZYRQIDAQABAoIBADPQol+qAsnty5er
    19  PTcdHcbXLJp5feZz1dzSeL0gdxja/erfEJIhg9aGUBs0I55X69VN6h7l7K8PsHZf
    20  MzzJhUL4QJJETOYP5iuVhtIF0I+DTr5Hck/5nYcEv83KAvgjbiL4ZE486IF5awnL
    21  2OE9HtJ5KfhEleNcX7MWgiIHGb8G1jCqu/tH0GI8Z4cNgUrXMbczGwfbN/5Wc0zo
    22  Dtpe0Tec/Fd0DLFwRiAuheakPjlVWb7AGMDX4TyzCXfMpS1ul2jk6nGFk77uQozF
    23  PQUawCRp+mVS4qecgq/WqfTZZbBlW2L18/kpafvsxG8kJ7OREtrb0SloZNFHEc2Q
    24  70GbgKECgYEA6c/eOrI3Uour1gKezEBFmFKFH6YS/NZNpcSG5PcoqF6AVJwXg574
    25  Qy6RatC47e92be2TT1Oyplntj4vkZ3REv81yfz/tuXmtG0AylH7REbxubxAgYmUT
    26  18wUAL4s3TST2AlK4R29KwBadwUAJeOLNW+Rc4xht1galsqQRb4pUzkCgYEA2kj2
    27  vUhKAB7QFCPST45/5q+AATut8WeHnI+t1UaiZoK41Jre8TwlYqUgcJ16Q0H6KIbJ
    28  jlEZAu0IsJxjQxkD4oJgv8n5PFXdc14HcSQ512FmgCGNwtDY/AT7SQP3kOj0Rydg
    29  N02uuRb/55NJ07Bh+yTQNGA+M5SSnUyaRPIAMW0CgYBgVU7grDDzB60C/g1jZk/G
    30  VKmYwposJjfTxsc1a0gLJvSE59MgXc04EOXFNr4a+oC3Bh2dn4SJ2Z9xd1fh8Bur
    31  UwCLwVE3DBTwl2C/ogiN4C83/1L4d2DXlrPfInvloBYR+rIpUlFweDLNuve2pKvk
    32  llU9YGeaXOiHnGoY8iKgsQKBgQDZKMOHtZYhHoZlsul0ylCGAEz5bRT0V8n7QJlw
    33  12+TSjN1F4n6Npr+00Y9ov1SUh38GXQFiLq4RXZitYKu6wEJZCm6Q8YXd1jzgDUp
    34  IyAEHNsrV7Y/fSSRPKd9kVvGp2r2Kr825aqQasg16zsERbKEdrBHmwPmrsVZhi7n
    35  rlXw1QKBgQDBOyUJKQOgDE2u9EHybhCIbfowyIE22qn9a3WjQgfxFJ+aAL9Bg124
    36  fJIEzz43fJ91fe5lTOgyMF5TtU5ClAOPGtlWnXU0e5j3L4LjbcqzEbeyxvP3sn1z
    37  dYkX7NdNQ5E6tcJZuJCGq0HxIAQeKPf3x9DRKzMnLply6BEzyuAC4g==
    38  -----END RSA PRIVATE KEY-----
    39  `
    40  )
    41  
    42  var testblock = "Stuff and nonsense to encode  "
    43  
    44  func TestGenerateDigestSignature(t *testing.T) {
    45  	pk, _ := PrivateKeyFromString([]byte(privateKeyG))
    46  	_, err := GenerateDigestSignature(pk, teststr)
    47  	if err != nil {
    48  		t.Error("Error generating signature", err)
    49  	}
    50  }
    51  
    52  func TestGenerateSignature(t *testing.T) {
    53  	pk, _ := PrivateKeyFromString([]byte(privateKeyG))
    54  	_, err := GenerateSignature(pk, teststr)
    55  	if err != nil {
    56  		t.Error("Error generating signature", err)
    57  	}
    58  }
    59  
    60  func TestPrivateEncrypt(t *testing.T) {
    61  	pk, _ := PrivateKeyFromString([]byte(privateKeyG))
    62  	_, err := privateEncrypt(pk, []byte(teststr))
    63  	if err != nil {
    64  		t.Error("Error encrypting", err)
    65  	}
    66  }
    67  
    68  func TestBasicHashStr(t *testing.T) {
    69  	hashOut := HashStr(teststr)
    70  	if hashOut != testsha1 {
    71  		t.Error("Incorrect SHA1 value")
    72  	}
    73  }
    74  
    75  func TestBasicHashStr256(t *testing.T) {
    76  	hashOut := HashStr256(teststr)
    77  	if hashOut != testsha256 {
    78  		t.Error("Incorrect SHA256 value")
    79  	}
    80  }
    81  
    82  func TestBase64BlockEncode(t *testing.T) {
    83  	blockOut := Base64BlockEncode([]byte(testblock+testblock+testblock), 60)
    84  	if len(blockOut) != 2 {
    85  		t.Errorf("Incorrect number of encoded blocks got %+v", len(blockOut))
    86  	}
    87  	if len(blockOut[0]) != 60 {
    88  		t.Errorf("Incorrect length of the encoded block got %+v", len(blockOut))
    89  	}
    90  }