github.com/tickoalcantara12/micro/v3@v3.0.0-20221007104245-9d75b9bcbab9/service/network/tunnel/mucp/crypto_test.go (about)

     1  // Licensed under the Apache License, Version 2.0 (the "License");
     2  // you may not use this file except in compliance with the License.
     3  // You may obtain a copy of the License at
     4  //
     5  //     https://www.apache.org/licenses/LICENSE-2.0
     6  //
     7  // Unless required by applicable law or agreed to in writing, software
     8  // distributed under the License is distributed on an "AS IS" BASIS,
     9  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10  // See the License for the specific language governing permissions and
    11  // limitations under the License.
    12  //
    13  // Original source: github.com/micro/go-micro/v3/network/tunnel/mucp/crypto_test.go
    14  
    15  package mucp
    16  
    17  import (
    18  	"bytes"
    19  	"testing"
    20  )
    21  
    22  func TestEncrypt(t *testing.T) {
    23  	key := []byte("tokenpassphrase")
    24  	gcm, err := newCipher(key)
    25  	if err != nil {
    26  		t.Fatal(err)
    27  	}
    28  
    29  	data := []byte("supersecret")
    30  
    31  	cipherText, err := Encrypt(gcm, data)
    32  	if err != nil {
    33  		t.Errorf("failed to encrypt data: %v", err)
    34  	}
    35  
    36  	// verify the cipherText is not the same as data
    37  	if bytes.Equal(data, cipherText) {
    38  		t.Error("encrypted data are the same as plaintext")
    39  	}
    40  }
    41  
    42  func TestDecrypt(t *testing.T) {
    43  	key := []byte("tokenpassphrase")
    44  	gcm, err := newCipher(key)
    45  	if err != nil {
    46  		t.Fatal(err)
    47  	}
    48  
    49  	data := []byte("supersecret")
    50  
    51  	cipherText, err := Encrypt(gcm, data)
    52  	if err != nil {
    53  		t.Errorf("failed to encrypt data: %v", err)
    54  	}
    55  
    56  	plainText, err := Decrypt(gcm, cipherText)
    57  	if err != nil {
    58  		t.Errorf("failed to decrypt data: %v", err)
    59  	}
    60  
    61  	// verify the plainText is the same as data
    62  	if !bytes.Equal(data, plainText) {
    63  		t.Error("decrypted data not the same as plaintext")
    64  	}
    65  }