code: func (k *Keyring) AddKey(key []byte) error {
  	if err := ValidateKey(key); err != nil {
  		return err
  	}
  
  	// No-op if key is already installed
  	for _, installedKey := range k.keys {
  		if bytes.Equal(installedKey, key) {
  			return nil
  		}
  	}
  
  	keys := append(k.keys, key)
  	primaryKey := k.GetPrimaryKey()
  	if primaryKey == nil {
  		primaryKey = key
  	}
  	k.installKeys(keys, primaryKey)
  	return nil
  }
docs: // AddKey will install a new key on the ring. Adding a key to the ring will make
  // it available for use in decryption. If the key already exists on the ring,
  // this function will just return noop.
  //
  // key should be either 16, 24, or 32 bytes to select AES-128,
  // AES-192, or AES-256.