Skip to content

Support for LastPass passkeys #111

@purdy

Description

@purdy

I was playing around with creating passkeys with LastPass (a password manager) and ran into issues with credential creation after the passkey is created from LastPass. It seems to fail in the processCreate when it tries to create the AttestationObject. Inside the construct, it follows the fido-u2f path:

Decoded $enc example from the AttestationObject __construct:

array (
  fmt => 'fido-u2f',
  attStmt => 
  array (
    sig => 'signaturebuffer',
    x5c => 'certbuffer',
  ),
  authData => 
  lbuchs\WebAuthn\Binary\ByteBuffer::__set_state(array(
    useBase64UrlEncoding => false,
    _data => '...',
    _length => 180,
  )),
)

Sample $this->_authenticatorData:

lbuchs\WebAuthn\Attestation\AuthenticatorData::__set_state(array(
  _COSE_KTY => 1,
  _COSE_ALG => 3,
  _COSE_CRV => -1,
  _COSE_X => -2,
  _COSE_Y => -3,
  _COSE_N => -1,
  _COSE_E => -2,
  _EC2_TYPE => 2,
  _EC2_ES256 => -7,
  _EC2_P256 => 1,
  _RSA_TYPE => 3,
  _RSA_RS256 => -257,
  _OKP_TYPE => 1,
  _OKP_ED25519 => 6,
  _OKP_EDDSA => -8,
  _binary => '���k�F���Y��P��<s�{�.QK���9�[]������
Un��F�B��mU��0b�D����}�]��B3�������'��I[ E�"I��x�����fm�g`1�Q�����& �!X /�r��bb�T����R�U:2��R w��x���;"X _Mq�>���w���o˃i\9Ȟ�'��T�uѾ��',
  _rpIdHash => '���k�F���Y��P��<s�{�.QK���9�[',
  _flags => 
  stdClass::__set_state(array(
    bit_0 => true,
    bit_1 => false,
    bit_2 => true,
    bit_3 => true,
    bit_4 => true,
    bit_5 => false,
    bit_6 => true,
    bit_7 => false,
    userPresent => true,
    userVerified => true,
    isBackupEligible => true,
    isBackup => true,
    attestedDataIncluded => true,
    extensionDataIncluded => false,
  )),
  _signCount => 0,
  _attestedCredentialData => 
  stdClass::__set_state(array(
    aaguid => '��
Un��F�B��mU�',
    credentialId => 'b�D����}�]��B3�������'��I[ E�"I��x�����fm�g`1�Q�',
    credentialPublicKey => 
    stdClass::__set_state(array(
      kty => 2,
      alg => -7,
      crv => 1,
      x => '/�r��bb�T����R�U:2��R w��x���;',
      y => '_Mq�>���w���o˃i\9Ȟ�'��T�uѾ��',
    )),
  )),
  _extensionData => null,
))

Sample $attStmt in the __construct method:

array (
  sig => 'signaturebuffer',
  x5c => 'certbuffer',
)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions