diff options
Diffstat (limited to 'internal/stupidgcm')
| -rw-r--r-- | internal/stupidgcm/stupidgcm.go | 30 | ||||
| -rw-r--r-- | internal/stupidgcm/stupidgcm_test.go | 3 | ||||
| -rw-r--r-- | internal/stupidgcm/without_openssl.go | 11 | 
3 files changed, 23 insertions, 21 deletions
| diff --git a/internal/stupidgcm/stupidgcm.go b/internal/stupidgcm/stupidgcm.go index 6e551f5..a1a5a14 100644 --- a/internal/stupidgcm/stupidgcm.go +++ b/internal/stupidgcm/stupidgcm.go @@ -62,28 +62,28 @@ func (g stupidGCM) Seal(dst, iv, in, authData []byte) []byte {  	// Create scratch space "context"  	ctx := C.EVP_CIPHER_CTX_new()  	if ctx == nil { -		panic("EVP_CIPHER_CTX_new failed") +		log.Panic("EVP_CIPHER_CTX_new failed")  	}  	// Set cipher to AES-256  	if C.EVP_EncryptInit_ex(ctx, C.EVP_aes_256_gcm(), nil, nil, nil) != 1 { -		panic("EVP_EncryptInit_ex I failed") +		log.Panic("EVP_EncryptInit_ex I failed")  	}  	// Use 16-byte IV  	if C.EVP_CIPHER_CTX_ctrl(ctx, C.EVP_CTRL_GCM_SET_IVLEN, ivLen, nil) != 1 { -		panic("EVP_CIPHER_CTX_ctrl EVP_CTRL_GCM_SET_IVLEN failed") +		log.Panic("EVP_CIPHER_CTX_ctrl EVP_CTRL_GCM_SET_IVLEN failed")  	}  	// Set key and IV  	if C.EVP_EncryptInit_ex(ctx, nil, nil, (*C.uchar)(&g.key[0]), (*C.uchar)(&iv[0])) != 1 { -		panic("EVP_EncryptInit_ex II failed") +		log.Panic("EVP_EncryptInit_ex II failed")  	}  	// Provide authentication data  	var resultLen C.int  	if C.EVP_EncryptUpdate(ctx, nil, &resultLen, (*C.uchar)(&authData[0]), C.int(len(authData))) != 1 { -		panic("EVP_EncryptUpdate authData failed") +		log.Panic("EVP_EncryptUpdate authData failed")  	}  	if int(resultLen) != len(authData) {  		log.Panicf("Unexpected length %d", resultLen) @@ -91,7 +91,7 @@ func (g stupidGCM) Seal(dst, iv, in, authData []byte) []byte {  	// Encrypt "in" into "buf"  	if C.EVP_EncryptUpdate(ctx, (*C.uchar)(&buf[0]), &resultLen, (*C.uchar)(&in[0]), C.int(len(in))) != 1 { -		panic("EVP_EncryptUpdate failed") +		log.Panic("EVP_EncryptUpdate failed")  	}  	if int(resultLen) != len(in) {  		log.Panicf("Unexpected length %d", resultLen) @@ -101,7 +101,7 @@ func (g stupidGCM) Seal(dst, iv, in, authData []byte) []byte {  	// Because GCM is a stream encryption, this will not write out any data.  	dummy := make([]byte, 16)  	if C.EVP_EncryptFinal_ex(ctx, (*C.uchar)(&dummy[0]), &resultLen) != 1 { -		panic("EVP_EncryptFinal_ex failed") +		log.Panic("EVP_EncryptFinal_ex failed")  	}  	if resultLen != 0 {  		log.Panicf("Unexpected length %d", resultLen) @@ -109,7 +109,7 @@ func (g stupidGCM) Seal(dst, iv, in, authData []byte) []byte {  	// Get GMAC tag and append it to the ciphertext in "buf"  	if C.EVP_CIPHER_CTX_ctrl(ctx, C.EVP_CTRL_GCM_GET_TAG, tagLen, (unsafe.Pointer)(&buf[len(in)])) != 1 { -		panic("EVP_CIPHER_CTX_ctrl EVP_CTRL_GCM_GET_TAG failed") +		log.Panic("EVP_CIPHER_CTX_ctrl EVP_CTRL_GCM_GET_TAG failed")  	}  	// Free scratch space @@ -135,33 +135,33 @@ func (g stupidGCM) Open(dst, iv, in, authData []byte) ([]byte, error) {  	// Create scratch space "context"  	ctx := C.EVP_CIPHER_CTX_new()  	if ctx == nil { -		panic("EVP_CIPHER_CTX_new failed") +		log.Panic("EVP_CIPHER_CTX_new failed")  	}  	// Set cipher to AES-256  	if C.EVP_DecryptInit_ex(ctx, C.EVP_aes_256_gcm(), nil, nil, nil) != 1 { -		panic("EVP_DecryptInit_ex I failed") +		log.Panic("EVP_DecryptInit_ex I failed")  	}  	// Use 16-byte IV  	if C.EVP_CIPHER_CTX_ctrl(ctx, C.EVP_CTRL_GCM_SET_IVLEN, ivLen, nil) != 1 { -		panic("EVP_CIPHER_CTX_ctrl EVP_CTRL_GCM_SET_IVLEN failed") +		log.Panic("EVP_CIPHER_CTX_ctrl EVP_CTRL_GCM_SET_IVLEN failed")  	}  	// Set key and IV  	if C.EVP_DecryptInit_ex(ctx, nil, nil, (*C.uchar)(&g.key[0]), (*C.uchar)(&iv[0])) != 1 { -		panic("EVP_DecryptInit_ex II failed") +		log.Panic("EVP_DecryptInit_ex II failed")  	}  	// Set expected GMAC tag  	if C.EVP_CIPHER_CTX_ctrl(ctx, C.EVP_CTRL_GCM_SET_TAG, tagLen, (unsafe.Pointer)(&tag[0])) != 1 { -		panic("EVP_CIPHER_CTX_ctrl failed") +		log.Panic("EVP_CIPHER_CTX_ctrl failed")  	}  	// Provide authentication data  	var resultLen C.int  	if C.EVP_DecryptUpdate(ctx, nil, &resultLen, (*C.uchar)(&authData[0]), C.int(len(authData))) != 1 { -		panic("EVP_DecryptUpdate authData failed") +		log.Panic("EVP_DecryptUpdate authData failed")  	}  	if int(resultLen) != len(authData) {  		log.Panicf("Unexpected length %d", resultLen) @@ -169,7 +169,7 @@ func (g stupidGCM) Open(dst, iv, in, authData []byte) ([]byte, error) {  	// Decrypt "ciphertext" into "buf"  	if C.EVP_DecryptUpdate(ctx, (*C.uchar)(&buf[0]), &resultLen, (*C.uchar)(&ciphertext[0]), C.int(len(ciphertext))) != 1 { -		panic("EVP_DecryptUpdate failed") +		log.Panic("EVP_DecryptUpdate failed")  	}  	if int(resultLen) != len(ciphertext) {  		log.Panicf("Unexpected length %d", resultLen) diff --git a/internal/stupidgcm/stupidgcm_test.go b/internal/stupidgcm/stupidgcm_test.go index 3c11dfe..d6c0714 100644 --- a/internal/stupidgcm/stupidgcm_test.go +++ b/internal/stupidgcm/stupidgcm_test.go @@ -13,6 +13,7 @@ import (  	"crypto/cipher"  	"crypto/rand"  	"encoding/hex" +	"log"  	"testing"  	// For benchmark comparison @@ -24,7 +25,7 @@ func randBytes(n int) []byte {  	b := make([]byte, n)  	_, err := rand.Read(b)  	if err != nil { -		panic("Failed to read random bytes: " + err.Error()) +		log.Panic("Failed to read random bytes: " + err.Error())  	}  	return b  } diff --git a/internal/stupidgcm/without_openssl.go b/internal/stupidgcm/without_openssl.go index 91dd33c..9fb245e 100644 --- a/internal/stupidgcm/without_openssl.go +++ b/internal/stupidgcm/without_openssl.go @@ -3,6 +3,7 @@  package stupidgcm  import ( +	"log"  	"os"  	"github.com/rfjakob/gocryptfs/internal/tlog" @@ -24,25 +25,25 @@ func New(_ []byte) stupidGCM {  	errExit()  	// This panic is never reached, but having it here stops the Go compiler  	// from complaining about the missing return code. -	panic("") +	log.Panic("")  }  func (g stupidGCM) NonceSize() int {  	errExit() -	panic("") +	log.Panic("")  }  func (g stupidGCM) Overhead() int {  	errExit() -	panic("") +	log.Panic("")  }  func (g stupidGCM) Seal(_, _, _, _ []byte) []byte {  	errExit() -	panic("") +	log.Panic("")  }  func (g stupidGCM) Open(_, _, _, _ []byte) ([]byte, error) {  	errExit() -	panic("") +	log.Panic("")  } | 
