build(init):项目加入版本库控制。
This commit is contained in:
		
							
								
								
									
										52
									
								
								types/crc16.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								types/crc16.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
package types
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"archgrid.xyz/ag/toolsbox/hash/crc16"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type CRC16Algorithm string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	CRC16_CCITT       CRC16Algorithm = "ccitt"
 | 
			
		||||
	CRC16_CCITT_FALSE CRC16Algorithm = "ccitt-false"
 | 
			
		||||
	CRC16_SCSI        CRC16Algorithm = "scsi"
 | 
			
		||||
	CRC16_IBM         CRC16Algorithm = "ibm"
 | 
			
		||||
	CRC16_MBUS        CRC16Algorithm = "mbus"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (a *CRC16Algorithm) String() string {
 | 
			
		||||
	return string(*a)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *CRC16Algorithm) Set(s string) error {
 | 
			
		||||
	switch s {
 | 
			
		||||
	case "ccitt", "ccitt-false", "scsi", "ibm", "mbus":
 | 
			
		||||
		*a = CRC16Algorithm(s)
 | 
			
		||||
		return nil
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Errorf("不支持的CRC16算法:%s", s)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *CRC16Algorithm) Type() string {
 | 
			
		||||
	return "CRC16Algorithm"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a CRC16Algorithm) IntoCRC16Mode() crc16.CRC16Mode {
 | 
			
		||||
	switch a {
 | 
			
		||||
	case CRC16_CCITT:
 | 
			
		||||
		return crc16.CCITT
 | 
			
		||||
	case CRC16_CCITT_FALSE:
 | 
			
		||||
		return crc16.CCITT_FALSE
 | 
			
		||||
	case CRC16_SCSI:
 | 
			
		||||
		return crc16.SCSI
 | 
			
		||||
	case CRC16_IBM:
 | 
			
		||||
		return crc16.IBM
 | 
			
		||||
	case CRC16_MBUS:
 | 
			
		||||
		return crc16.MBUS
 | 
			
		||||
	default:
 | 
			
		||||
		return crc16.IBM
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										46
									
								
								types/crc32.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								types/crc32.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
package types
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"archgrid.xyz/ag/toolsbox/hash/crc32"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type CRC32Algorithm string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	CRC32_IEEE       CRC32Algorithm = "ieee"
 | 
			
		||||
	CRC32_CASTAGNOLI CRC32Algorithm = "castagnoli"
 | 
			
		||||
	CRC32_KOOPMAN    CRC32Algorithm = "koopman"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (a *CRC32Algorithm) String() string {
 | 
			
		||||
	return string(*a)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *CRC32Algorithm) Set(s string) error {
 | 
			
		||||
	switch s {
 | 
			
		||||
	case "ieee", "castagnoli", "koopman":
 | 
			
		||||
		*a = CRC32Algorithm(s)
 | 
			
		||||
		return nil
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Errorf("不支持的CRC32算法:%s", s)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *CRC32Algorithm) Type() string {
 | 
			
		||||
	return "CRC32Algorithm"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a CRC32Algorithm) IntoCRC32Mode() crc32.CRC32Mode {
 | 
			
		||||
	switch a {
 | 
			
		||||
	case CRC32_IEEE:
 | 
			
		||||
		return crc32.IEEE
 | 
			
		||||
	case CRC32_CASTAGNOLI:
 | 
			
		||||
		return crc32.Castagnoli
 | 
			
		||||
	case CRC32_KOOPMAN:
 | 
			
		||||
		return crc32.Koopman
 | 
			
		||||
	default:
 | 
			
		||||
		return crc32.IEEE
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								types/crc64.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								types/crc64.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
package types
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"archgrid.xyz/ag/toolsbox/hash/crc64"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type CRC64Algorithm string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	CRC64_ISO  CRC64Algorithm = "iso"
 | 
			
		||||
	CRC64_ECMA CRC64Algorithm = "ecma"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (a *CRC64Algorithm) String() string {
 | 
			
		||||
	return string(*a)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *CRC64Algorithm) Set(s string) error {
 | 
			
		||||
	switch s {
 | 
			
		||||
	case "iso", "ecma":
 | 
			
		||||
		*a = CRC64Algorithm(s)
 | 
			
		||||
		return nil
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Errorf("不支持的CRC64算法:%s", s)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *CRC64Algorithm) Type() string {
 | 
			
		||||
	return "CRC64Algorithm"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a CRC64Algorithm) IntoCRC64Mode() crc64.CRC64Mode {
 | 
			
		||||
	switch a {
 | 
			
		||||
	case CRC64_ISO:
 | 
			
		||||
		return crc64.ISO
 | 
			
		||||
	case CRC64_ECMA:
 | 
			
		||||
		return crc64.ECMA
 | 
			
		||||
	default:
 | 
			
		||||
		return crc64.ISO
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										67
									
								
								types/crc8.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								types/crc8.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
			
		||||
package types
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"archgrid.xyz/ag/toolsbox/hash/crc8"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type CRC8Algorithm string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	CRC8_Origin   CRC8Algorithm = "crc8"
 | 
			
		||||
	CRC8_CDMA2000 CRC8Algorithm = "cdma2000"
 | 
			
		||||
	CRC8_DARC     CRC8Algorithm = "darc"
 | 
			
		||||
	CRC8_DVB_S2   CRC8Algorithm = "dvb-s2"
 | 
			
		||||
	CRC8_EBU      CRC8Algorithm = "ebu"
 | 
			
		||||
	CRC8_I_CODE   CRC8Algorithm = "i-code"
 | 
			
		||||
	CRC8_ITU      CRC8Algorithm = "itu"
 | 
			
		||||
	CRC8_MAXIM    CRC8Algorithm = "maxim"
 | 
			
		||||
	CRC8_ROHC     CRC8Algorithm = "rohc"
 | 
			
		||||
	CRC8_WCDMA    CRC8Algorithm = "wcdma"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (a *CRC8Algorithm) String() string {
 | 
			
		||||
	return string(*a)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *CRC8Algorithm) Set(s string) error {
 | 
			
		||||
	switch s {
 | 
			
		||||
	case "crc8", "cdma2000", "darc", "dvb-s2", "ebu", "i-code", "itu", "maxim", "rohc", "wcdma":
 | 
			
		||||
		*a = CRC8Algorithm(s)
 | 
			
		||||
		return nil
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Errorf("不支持的CRC8算法:%s", s)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *CRC8Algorithm) Type() string {
 | 
			
		||||
	return "CRC8Algorithm"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a CRC8Algorithm) IntoCRC8Mode() crc8.CRC8Mode {
 | 
			
		||||
	switch a {
 | 
			
		||||
	case CRC8_Origin:
 | 
			
		||||
		return crc8.ORIGIN
 | 
			
		||||
	case CRC8_CDMA2000:
 | 
			
		||||
		return crc8.CDMA2000
 | 
			
		||||
	case CRC8_DARC:
 | 
			
		||||
		return crc8.DARC
 | 
			
		||||
	case CRC8_DVB_S2:
 | 
			
		||||
		return crc8.DVB_S2
 | 
			
		||||
	case CRC8_EBU:
 | 
			
		||||
		return crc8.EBU
 | 
			
		||||
	case CRC8_I_CODE:
 | 
			
		||||
		return crc8.I_CODE
 | 
			
		||||
	case CRC8_ITU:
 | 
			
		||||
		return crc8.ITU
 | 
			
		||||
	case CRC8_MAXIM:
 | 
			
		||||
		return crc8.MAXIM
 | 
			
		||||
	case CRC8_ROHC:
 | 
			
		||||
		return crc8.ROHC
 | 
			
		||||
	case CRC8_WCDMA:
 | 
			
		||||
		return crc8.WCDMA
 | 
			
		||||
	default:
 | 
			
		||||
		return crc8.ORIGIN
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								types/encoding.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								types/encoding.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
package types
 | 
			
		||||
 | 
			
		||||
import "fmt"
 | 
			
		||||
 | 
			
		||||
type ResultEncoding string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	ResultInBase64 ResultEncoding = "base64"
 | 
			
		||||
	ResultInHex    ResultEncoding = "hex"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (re *ResultEncoding) String() string {
 | 
			
		||||
	return string(*re)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (re *ResultEncoding) Set(s string) error {
 | 
			
		||||
	switch s {
 | 
			
		||||
	case "base64", "hex":
 | 
			
		||||
		*re = ResultEncoding(s)
 | 
			
		||||
		return nil
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Errorf("不支持的编码方式:%s", s)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (re *ResultEncoding) Type() string {
 | 
			
		||||
	return "ResultEncoding"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								types/encryption_padding.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								types/encryption_padding.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
package types
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type EncryptionPadding string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PKCS7Padding EncryptionPadding = "pkcs7"
 | 
			
		||||
	ZeroPadding  EncryptionPadding = "zero"
 | 
			
		||||
	NoPadding    EncryptionPadding = "no"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (ep *EncryptionPadding) String() string {
 | 
			
		||||
	return string(*ep)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (ep *EncryptionPadding) Set(s string) error {
 | 
			
		||||
	switch strings.ToLower(s) {
 | 
			
		||||
	case "pkcs7", "zero", "no":
 | 
			
		||||
		*ep = EncryptionPadding(s)
 | 
			
		||||
		return nil
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Errorf("不支持的填充方式:%s", s)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (ep *EncryptionPadding) Type() string {
 | 
			
		||||
	return "EncryptionPadding"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								types/rsa.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								types/rsa.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
package types
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"archgrid.xyz/ag/toolsbox/encryption/rsa"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type RSAKeyBits string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	RSA1024 RSAKeyBits = "1024"
 | 
			
		||||
	RSA2048 RSAKeyBits = "2048"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (r *RSAKeyBits) String() string {
 | 
			
		||||
	return string(*r)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *RSAKeyBits) Set(s string) error {
 | 
			
		||||
	switch s {
 | 
			
		||||
	case "1024", "2048":
 | 
			
		||||
		*r = RSAKeyBits(s)
 | 
			
		||||
		return nil
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Errorf("不支持的RSA密钥长度:%s", s)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *RSAKeyBits) Type() string {
 | 
			
		||||
	return "RSAKeyBits"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r RSAKeyBits) IntoRSAKeyLength() rsa.KeyLength {
 | 
			
		||||
	switch r {
 | 
			
		||||
	case RSA1024:
 | 
			
		||||
		return rsa.RSA1024
 | 
			
		||||
	case RSA2048:
 | 
			
		||||
		return rsa.RSA2048
 | 
			
		||||
	default:
 | 
			
		||||
		return rsa.RSA2048
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user