WIP: initial mtls package #133
							
								
								
									
										247
									
								
								mtls/mtls.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,247 @@ | ||||
|  | ||||
| package mtls // import "go.unistack.org/micro/v3/mtls" | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| import ( | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	"bytes" | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	"crypto" | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	"crypto/ed25519" | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	"crypto/rand" | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	"crypto/tls" | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	"crypto/x509" | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	"crypto/x509/pkix" | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	"encoding/pem" | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	"sync" | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| ) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| var bp = newBPool() | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| type bpool struct { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	pool sync.Pool | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func newBPool() *bpool { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	var bp bpool | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	bp.pool.New = alloc | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return &bp | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func alloc() interface{} { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return &bytes.Buffer{} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func (bp *bpool) Get() *bytes.Buffer { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return bp.pool.Get().(*bytes.Buffer) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func (bp *bpool) Put(buf *bytes.Buffer) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	buf.Reset() | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	bp.pool.Put(buf) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| // NewCA creates new CA keypair | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func NewCA(opts ...CertificateOption) ([]byte, crypto.PrivateKey, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	options := NewCertificateOptions(opts...) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	crtreq := &x509.CertificateRequest{ | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		Subject: pkix.Name{ | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 			Organization:       options.Organization, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 			OrganizationalUnit: options.OrganizationalUnit, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 			CommonName:         options.CommonName, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		}, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		SignatureAlgorithm: options.SignatureAlgorithm, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	pemcsr, pemkey, err := newCsr(crtreq) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	pemcrt, err := SignCSR(pemcsr, nil, pemkey, opts...) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return pemcrt, pemkey, nil | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func NewIntermediate(cacrt *x509.Certificate, cakey crypto.PrivateKey, opts ...CertificateOption) ([]byte, crypto.PrivateKey, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	options := &CertificateOptions{} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	for _, o := range opts { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		o(options) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	crtreq := &x509.CertificateRequest{ | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		Subject: pkix.Name{ | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 			Organization:       options.Organization, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 			OrganizationalUnit: options.OrganizationalUnit, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 			CommonName:         options.CommonName, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		}, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		SignatureAlgorithm: options.SignatureAlgorithm, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	pemcsr, pemkey, err := newCsr(crtreq) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	pemcrt, err := SignCSR(pemcsr, cacrt, cakey) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return pemcrt, pemkey, nil | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| // SignCSR sign certificate request and return signed pubkey | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func SignCSR(rawcsr []byte, cacrt *x509.Certificate, cakey crypto.PrivateKey, opts ...CertificateOption) ([]byte, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if cacrt == nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		opts = append(opts, CertificateIsCA(true)) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	options := NewCertificateOptions(opts...) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	csr, err := x509.ParseCertificateRequest(rawcsr) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err == nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		err = csr.CheckSignature() | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	tpl := &x509.Certificate{ | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		Signature:             csr.Signature, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		SignatureAlgorithm:    csr.SignatureAlgorithm, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		PublicKeyAlgorithm:    csr.PublicKeyAlgorithm, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		PublicKey:             csr.PublicKey, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		SerialNumber:          options.SerialNumber, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		OCSPServer:            options.OCSPServer, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		IssuingCertificateURL: options.IssuingCertificateURL, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		Subject:               csr.Subject, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		NotBefore:             options.NotBefore, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		NotAfter:              options.NotAfter, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		KeyUsage:              options.KeyUsage, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		ExtKeyUsage:           options.ExtKeyUsage, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		BasicConstraintsValid: true, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		IsCA:                  options.IsCA, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if options.IsCA { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		cacrt = tpl | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} else { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		tpl.Issuer = cacrt.Subject | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	crt, err := x509.CreateCertificate(rand.Reader, tpl, cacrt, csr.PublicKey, cakey) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return crt, nil | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| // NewCertificateRequest create new certificate signing request and return key, csr in byte slice and err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func NewCertificateRequest(opts ...CertificateOption) ([]byte, crypto.PrivateKey, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	options := NewCertificateOptions(opts...) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	crtreq := &x509.CertificateRequest{ | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		Subject: pkix.Name{ | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 			Organization:       options.Organization, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 			OrganizationalUnit: options.OrganizationalUnit, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 			CommonName:         options.CommonName, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		}, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		SignatureAlgorithm: options.SignatureAlgorithm, | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return newCsr(crtreq) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| // newCsr returns CSR and private key | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func newCsr(crtreq *x509.CertificateRequest) ([]byte, crypto.PrivateKey, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	_, key, err := ed25519.GenerateKey(rand.Reader) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	csr, err := x509.CreateCertificateRequest(rand.Reader, crtreq, key) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return csr, key, nil | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| // ServerOptions holds server specific options | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| type ServerOptions struct { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	ServerName string | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	RootCAs    []string | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	ClientCAs  []string | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| // ServerOption func signature | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| type ServerOption func(*ServerOptions) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func NewServerConfig(src *tls.Config) *tls.Config { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	dst := src.Clone() | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	// dst.InsecureSkipVerify = true | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	dst.MinVersion = tls.VersionTLS13 | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	dst.ClientAuth = tls.VerifyClientCertIfGiven | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return dst | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func DecodeCrtKey(rawcrt []byte, rawkey []byte) (*x509.Certificate, crypto.PrivateKey, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	var crt *x509.Certificate | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	var key crypto.PrivateKey | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	var err error | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	crt, err = DecodeCrt(rawcrt) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err == nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		key, err = DecodeKey(rawkey) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return crt, key, nil | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func DecodeCrt(rawcrt []byte) (*x509.Certificate, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	pemcrt, _ := pem.Decode(rawcrt) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return x509.ParseCertificate(pemcrt.Bytes) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func EncodeCrt(crts ...*x509.Certificate) ([]byte, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	var err error | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	buf := bp.Get() | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	defer bp.Put(buf) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	for _, crt := range crts { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		if err = pem.Encode(buf, &pem.Block{Type: "CERTIFICATE", Bytes: crt.Raw}); err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 			return nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return buf.Bytes(), nil | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func EncodeCsr(csr *x509.Certificate) ([]byte, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	buf := bp.Get() | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	defer bp.Put(buf) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err := pem.Encode(buf, &pem.Block{Type: "CERTIFICATE REQUEST", Bytes: csr.Raw}); err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return buf.Bytes(), nil | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func DecodeKey(rawkey []byte) (crypto.PrivateKey, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	pemkey, _ := pem.Decode(rawkey) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return x509.ParsePKCS8PrivateKey(pemkey.Bytes) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
|  | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| func EncodeKey(privkey crypto.PrivateKey) ([]byte, error) { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	buf := bp.Get() | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	defer bp.Put(buf) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	enckey, err := x509.MarshalPKCS8PrivateKey(privkey) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err == nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		err = pem.Encode(buf, &pem.Block{Type: "PRIVATE KEY", Bytes: enckey}) | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	if err != nil { | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 		return nil, err | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	} | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| 	return buf.Bytes(), nil | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
| } | ||||
|   Disabled TLS certificate checkInsecureSkipVerify should not be used in production code. ## Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
[Show more details](https://github.com/unistack-org/micro/security/code-scanning/2) | ||||
							
								
								
									
										73
									
								
								mtls/mtls_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,73 @@ | ||||
| package mtls | ||||
|  | ||||
| import ( | ||||
| 	"crypto/ed25519" | ||||
| 	"crypto/x509" | ||||
| 	"testing" | ||||
| ) | ||||
|  | ||||
| func TestNewCa(t *testing.T) { | ||||
| 	bcrt, key, err := NewCA( | ||||
| 		CertificateOrganization("test_org"), | ||||
| 		CertificateOrganizationalUnit("test_unit"), | ||||
| 		CertificateIsCA(true), | ||||
| 	) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	if _, ok := key.(ed25519.PrivateKey); !ok { | ||||
| 		t.Fatalf("key is not ed25519") | ||||
| 	} | ||||
|  | ||||
| 	crt, err := x509.ParseCertificate(bcrt) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	if !crt.IsCA { | ||||
| 		t.Fatalf("crt IsCA invalid %v", crt) | ||||
| 	} | ||||
| 	if crt.Subject.Organization[0] != "test_org" { | ||||
| 		t.Fatalf("crt subject invalid %v", crt.Subject) | ||||
| 	} | ||||
| 	if crt.Subject.OrganizationalUnit[0] != "test_unit" { | ||||
| 		t.Fatalf("crt subject invalid %v", crt.Subject) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestNewIntermediate(t *testing.T) { | ||||
| 	bcrt, cakey, err := NewCA( | ||||
| 		CertificateOrganization("test_org"), | ||||
| 		CertificateOrganizationalUnit("test_unit"), | ||||
| 	) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	cacrt, err := x509.ParseCertificate(bcrt) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	bcrt, ikey, err := NewIntermediate(cacrt, cakey, | ||||
| 		CertificateOrganization("test_org"), | ||||
| 		CertificateOrganizationalUnit("test_unit"), | ||||
| 	) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	_ = ikey | ||||
| 	icrt, err := x509.ParseCertificate(bcrt) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	if icrt.IsCA { | ||||
| 		t.Fatalf("crt IsCA invalid %v", icrt) | ||||
| 	} | ||||
| 	if icrt.Subject.Organization[0] != "test_org" { | ||||
| 		t.Fatalf("crt subject invalid %v", icrt.Subject) | ||||
| 	} | ||||
| 	if icrt.Subject.OrganizationalUnit[0] != "test_unit" { | ||||
| 		t.Fatalf("crt subject invalid %v", icrt.Subject) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										155
									
								
								mtls/options.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,155 @@ | ||||
| package mtls | ||||
|  | ||||
| import ( | ||||
| 	"crypto/x509" | ||||
| 	"math/big" | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| // CertificateOptions holds options for x509.CreateCertificate | ||||
| type CertificateOptions struct { | ||||
| 	Organization          []string | ||||
| 	OrganizationalUnit    []string | ||||
| 	CommonName            string | ||||
| 	OCSPServer            []string | ||||
| 	IssuingCertificateURL []string | ||||
| 	SerialNumber          *big.Int | ||||
| 	NotAfter              time.Time | ||||
| 	NotBefore             time.Time | ||||
| 	SignatureAlgorithm    x509.SignatureAlgorithm | ||||
| 	PublicKeyAlgorithm    x509.PublicKeyAlgorithm | ||||
| 	ExtKeyUsage           []x509.ExtKeyUsage | ||||
| 	KeyUsage              x509.KeyUsage | ||||
| 	IsCA                  bool | ||||
| } | ||||
|  | ||||
| // CertificateOrganizationalUnit set OrganizationalUnit in certificate subject | ||||
| func CertificateOrganizationalUnit(s ...string) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.OrganizationalUnit = s | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateOrganization set Organization in certificate subject | ||||
| func CertificateOrganization(s ...string) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.Organization = s | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateCommonName set CommonName in certificate subject | ||||
| func CertificateCommonName(s string) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.CommonName = s | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateOCSPServer set OCSPServer in certificate | ||||
| func CertificateOCSPServer(s ...string) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.OCSPServer = s | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateIssuingCertificateURL set IssuingCertificateURL in certificate | ||||
| func CertificateIssuingCertificateURL(s ...string) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.IssuingCertificateURL = s | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateSerialNumber set SerialNumber in certificate | ||||
| func CertificateSerialNumber(n *big.Int) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.SerialNumber = n | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateNotAfter set NotAfter in certificate | ||||
| func CertificateNotAfter(t time.Time) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.NotAfter = t | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateNotBefore set SerialNumber in certificate | ||||
| func CertificateNotBefore(t time.Time) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.NotBefore = t | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateExtKeyUsage set ExtKeyUsage in certificate | ||||
| func CertificateExtKeyUsage(x ...x509.ExtKeyUsage) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.ExtKeyUsage = x | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateSignatureAlgorithm set SignatureAlgorithm in certificate | ||||
| func CertificateSignatureAlgorithm(alg x509.SignatureAlgorithm) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.SignatureAlgorithm = alg | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificatePublicKeyAlgorithm set PublicKeyAlgorithm in certificate | ||||
| func CertificatePublicKeyAlgorithm(alg x509.PublicKeyAlgorithm) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.PublicKeyAlgorithm = alg | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateKeyUsage set KeyUsage in certificate | ||||
| func CertificateKeyUsage(u x509.KeyUsage) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.KeyUsage = u | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateIsCA set IsCA in certificate | ||||
| func CertificateIsCA(b bool) CertificateOption { | ||||
| 	return func(o *CertificateOptions) { | ||||
| 		o.IsCA = b | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // CertificateOption func signature | ||||
| type CertificateOption func(*CertificateOptions) | ||||
|  | ||||
| func NewCertificateOptions(opts ...CertificateOption) CertificateOptions { | ||||
| 	options := CertificateOptions{} | ||||
| 	for _, o := range opts { | ||||
| 		o(&options) | ||||
| 	} | ||||
| 	if options.SerialNumber == nil { | ||||
| 		options.SerialNumber = big.NewInt(time.Now().UnixNano()) | ||||
| 	} | ||||
| 	if options.NotBefore.IsZero() { | ||||
| 		options.NotBefore = time.Now() | ||||
| 	} | ||||
| 	if options.NotAfter.IsZero() { | ||||
| 		options.NotAfter = time.Now().Add(10 * time.Minute) | ||||
| 	} | ||||
| 	if options.SignatureAlgorithm == x509.UnknownSignatureAlgorithm { | ||||
| 		options.SignatureAlgorithm = x509.PureEd25519 | ||||
| 	} | ||||
| 	if options.PublicKeyAlgorithm == x509.UnknownPublicKeyAlgorithm { | ||||
| 		options.PublicKeyAlgorithm = x509.Ed25519 | ||||
| 	} | ||||
| 	if options.ExtKeyUsage == nil { | ||||
| 		options.ExtKeyUsage = []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth, x509.ExtKeyUsageClientAuth} | ||||
| 		if options.IsCA { | ||||
| 			options.ExtKeyUsage = append(options.ExtKeyUsage, x509.ExtKeyUsageOCSPSigning, x509.ExtKeyUsageTimeStamping) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if options.KeyUsage == 0 { | ||||
| 		options.KeyUsage = x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | ||||
| 		if options.IsCA { | ||||
| 			options.KeyUsage = x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageDataEncipherment | x509.KeyUsageCertSign | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return options | ||||
| } | ||||
Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
Show more details
Disabled TLS certificate check
InsecureSkipVerify should not be used in production code.
Show more details