in your example wth s/key
it doesn't check password with mysql database? just the key with skey lib?



example:

Authentication Plugin Example

static int skey_auth(MYSQL_PLUGIN_VIO *vio, MYSQL_SERVER_AUTH_INFO *info)
{
  unsigned char *pkt;
  int pkt_len;
  struct skey mp;
  char buf[SKEY_MAX_CHALLENGE+3];

  buf[0] = 2; /* ordinary question */
  if (skeychallenge(&mp, info->user_name, buf+1, SKEY_MAX_CHALLENGE) < 0)
    return CR_ERROR;
  strcat(buf, ":");
  if (vio->write_packet(vio, buf, strlen(buf)))
    return CR_ERROR;
  if ((pkt_len= vio->read_packet(vio, &pkt)) < 0)
    return CR_ERROR;
  info->password_used = 1;
  return skeyverify(&mp, pkt) ? CR_ERROR : CR_OK;
}

Demo

$ mysql --user=sktest
[mariadb] otp-md5 98 janu76882: HERB JESS BLAB VERB DAWN BEN
Your MariaDB connection id is 3
Server version: 5.2.0-MariaDB-alpha-debug Source distribution
MariaDB [test]> quit
Bye

$ mysql --user=sktest
[mariadb] otp-md5 97 janu76882: MOS BLOT QUAD JANE HUGE FOOL
Your MariaDB connection id is 4
Server version: 5.2.0-MariaDB-alpha-debug Source distribution
MariaDB [test]> quit
Bye

$ mysql --user=sktest
[mariadb] otp-md5 96 janu76882: MOS BLOT QUAD JANE HUGE FOOL
ERROR 1045 (28000): Access denied for user 'sktest'@'localhost' (using password: YES)