mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	update vendor keybase/go-crypto (#10234)
This commit is contained in:
		
							
								
								
									
										35
									
								
								vendor/github.com/keybase/go-crypto/openpgp/packet/packet.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								vendor/github.com/keybase/go-crypto/openpgp/packet/packet.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -17,6 +17,7 @@ import ( | ||||
|  | ||||
| 	"github.com/keybase/go-crypto/cast5" | ||||
| 	"github.com/keybase/go-crypto/openpgp/errors" | ||||
| 	"github.com/keybase/go-crypto/rsa" | ||||
| ) | ||||
|  | ||||
| // readFull is the same as io.ReadFull except that reading zero bytes returns | ||||
| @@ -413,10 +414,12 @@ const ( | ||||
| 	PubKeyAlgoElGamal        PublicKeyAlgorithm = 16 | ||||
| 	PubKeyAlgoDSA            PublicKeyAlgorithm = 17 | ||||
| 	// RFC 6637, Section 5. | ||||
| 	PubKeyAlgoECDH  PublicKeyAlgorithm = 18 | ||||
| 	PubKeyAlgoECDSA PublicKeyAlgorithm = 19 | ||||
| 	PubKeyAlgoECDH           PublicKeyAlgorithm = 18 | ||||
| 	PubKeyAlgoECDSA          PublicKeyAlgorithm = 19 | ||||
|  | ||||
| 	PubKeyAlgoBadElGamal     PublicKeyAlgorithm = 20 // Reserved (deprecated, formerly ElGamal Encrypt or Sign) | ||||
| 	// RFC -1 | ||||
| 	PubKeyAlgoEdDSA PublicKeyAlgorithm = 22 | ||||
| 	PubKeyAlgoEdDSA          PublicKeyAlgorithm = 22 | ||||
| ) | ||||
|  | ||||
| // CanEncrypt returns true if it's possible to encrypt a message to a public | ||||
| @@ -507,19 +510,17 @@ func readMPI(r io.Reader) (mpi []byte, bitLength uint16, err error) { | ||||
| 	numBytes := (int(bitLength) + 7) / 8 | ||||
| 	mpi = make([]byte, numBytes) | ||||
| 	_, err = readFull(r, mpi) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // mpiLength returns the length of the given *big.Int when serialized as an | ||||
| // MPI. | ||||
| func mpiLength(n *big.Int) (mpiLengthInBytes int) { | ||||
| 	mpiLengthInBytes = 2 /* MPI length */ | ||||
| 	mpiLengthInBytes += (n.BitLen() + 7) / 8 | ||||
| 	// According to RFC 4880 3.2. we should check that the MPI has no leading | ||||
| 	// zeroes (at least when not an encrypted MPI?), but this implementation | ||||
| 	// does generate leading zeroes, so we keep accepting them. | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // writeMPI serializes a big integer to w. | ||||
| func writeMPI(w io.Writer, bitLength uint16, mpiBytes []byte) (err error) { | ||||
| 	// Note that we can produce leading zeroes, in violation of RFC 4880 3.2. | ||||
| 	// Implementations seem to be tolerant of them, and stripping them would | ||||
| 	// make it complex to guarantee matching re-serialization. | ||||
| 	_, err = w.Write([]byte{byte(bitLength >> 8), byte(bitLength)}) | ||||
| 	if err == nil { | ||||
| 		_, err = w.Write(mpiBytes) | ||||
| @@ -551,6 +552,18 @@ func writeBig(w io.Writer, i *big.Int) error { | ||||
| 	return writeMPI(w, uint16(i.BitLen()), i.Bytes()) | ||||
| } | ||||
|  | ||||
| // padToKeySize left-pads a MPI with zeroes to match the length of the | ||||
| // specified RSA public. | ||||
| func padToKeySize(pub *rsa.PublicKey, b []byte) []byte { | ||||
| 	k := (pub.N.BitLen() + 7) / 8 | ||||
| 	if len(b) >= k { | ||||
| 		return b | ||||
| 	} | ||||
| 	bb := make([]byte, k) | ||||
| 	copy(bb[len(bb)-len(b):], b) | ||||
| 	return bb | ||||
| } | ||||
|  | ||||
| // CompressionAlgo Represents the different compression algorithms | ||||
| // supported by OpenPGP (except for BZIP2, which is not currently | ||||
| // supported). See Section 9.3 of RFC 4880. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user