code: func Open(versionValidator VersionValidator, ciphertext []byte, keyring Keyring) (i *MessageKeyInfo, plaintext []byte, err error) {
  	buf := bytes.NewBuffer(ciphertext)
  	mki, plaintextStream, err := NewDecryptStream(versionValidator, buf, keyring)
  	if err != nil {
  		return mki, nil, err
  	}
  	ret, err := ioutil.ReadAll(plaintextStream)
  	if err != nil {
  		return nil, nil, err
  	}
  	return mki, ret, err
  }
docs: // Open simply opens a ciphertext given the set of keys in the specified keyring.
  // It returns a plaintext on success, and an error on failure. It returns the header's
  // MessageKeyInfo in either case.