code: func SigncryptOpen(ciphertext []byte, keyring SigncryptKeyring, resolver SymmetricKeyResolver) (senderPub SigningPublicKey, plaintext []byte, err error) {
  	buf := bytes.NewBuffer(ciphertext)
  	senderPub, plaintextStream, err := NewSigncryptOpenStream(buf, keyring, resolver)
  	if err != nil {
  		return senderPub, nil, err
  	}
  	ret, err := ioutil.ReadAll(plaintextStream)
  	if err != nil {
  		return nil, nil, err
  	}
  	return senderPub, ret, err
  }
docs: // SigncryptOpen simply opens a ciphertext given the set of keys in the specified keyring.
  // It returns a plaintext on sucess, and an error on failure. It returns the header's
  // MessageKeyInfo in either case.