From 44cfb33b65a890a18ae994d0200294ba2b325921 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 19 Jul 2022 02:43:16 +0000 Subject: err and const --- rabbit.go | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/rabbit.go b/rabbit.go index d70d835..01e1278 100644 --- a/rabbit.go +++ b/rabbit.go @@ -8,12 +8,20 @@ import ( ) const ( - invalidKeyLen = "rabbitio: key must be 16 byte len, not more not less" - invalidIVXLen = "rabbitio: iv must be 8 byte len or nothing (zero) at all" + RabbitKeyLen = 0x10 + RabbitIVXLen = 0x08 +) + +var ( + ErrInvalidKey = errors.New("rabbitio: key must be 16 byte len, not more not less") + ErrInvalidIVX = errors.New("rabbitio: iv must be 8 byte len or nothing (zero) at all") ) var aro = []uint32{ - 0x4D34D34D, 0xD34D34D3, 0x34D34D34, 0x4D34D34D, 0xD34D34D3, 0x34D34D34, 0x4D34D34D, 0xD34D34D3, + 0x4D34D34D, 0xD34D34D3, + 0x34D34D34, 0x4D34D34D, + 0xD34D34D3, 0x34D34D34, + 0x4D34D34D, 0xD34D34D3, } type rabbitCipher struct { @@ -28,11 +36,11 @@ type rabbitCipher struct { // according to RFC 4503, key must be 16 byte len, iv on the other hand is optional but // must be either zero len or 8 byte len, error will be returned on wrong key/iv len func NewCipher(key []byte, iv []byte) (cipher.Stream, error) { - if len(key) != 0x10 { - return nil, errors.New(invalidKeyLen) + if len(key) != RabbitKeyLen { + return nil, ErrInvalidKey } - if len(iv) != 0x00 && len(iv) != 0x08 { - return nil, errors.New(invalidIVXLen) + if len(iv) != 0x00 && len(iv) != RabbitIVXLen { + return nil, ErrInvalidIVX } var k [0x04]uint32 for i := range k { -- cgit v1.2.3