package ssh

import (
	
	
	

	
)

func generateSigner() (ssh.Signer, error) {
	,  := rsa.GenerateKey(rand.Reader, 2048)
	if  != nil {
		return nil, 
	}
	return ssh.NewSignerFromKey()
}

func parsePtyRequest( []byte) ( Pty,  bool) {
	, ,  := parseString()
	if ! {
		return
	}
	, ,  := parseUint32()
	if ! {
		return
	}
	, ,  := parseUint32()
	if ! {
		return
	}
	 = Pty{
		Term: ,
		Window: Window{
			Width:  int(),
			Height: int(),
		},
	}
	return
}

func parseWinchRequest( []byte) ( Window,  bool) {
	, ,  := parseUint32()
	if  < 1 {
		 = false
	}
	if ! {
		return
	}
	, ,  := parseUint32()
	if  < 1 {
		 = false
	}
	if ! {
		return
	}
	 = Window{
		Width:  int(),
		Height: int(),
	}
	return
}

func parseString( []byte) ( string,  []byte,  bool) {
	if len() < 4 {
		return
	}
	 := binary.BigEndian.Uint32()
	if uint32(len()) < 4+ {
		return
	}
	 = string([4 : 4+])
	 = [4+:]
	 = true
	return
}

func parseUint32( []byte) (uint32, []byte, bool) {
	if len() < 4 {
		return 0, nil, false
	}
	return binary.BigEndian.Uint32(), [4:], true
}