Class: Tanker::CTanker::CVerification
- Inherits:
-
FFI::Struct
- Object
- FFI::Struct
- Tanker::CTanker::CVerification
- Defined in:
- lib/tanker/c_tanker/c_verification.rb
Constant Summary collapse
- TYPE_EMAIL =
1- TYPE_PASSPHRASE =
2- TYPE_VERIFICATION_KEY =
3- TYPE_OIDC_ID_TOKEN =
4- TYPE_PHONE_NUMBER =
5- TYPE_PREVERIFIED_EMAIL =
6- TYPE_PREVERIFIED_PHONE_NUMBER =
7- TYPE_E2E_PASSPHRASE =
8- TYPE_PREVERIFIED_OIDC =
9- TYPE_OIDC_AUTHORIZATION_CODE =
10- TYPE_PREHASHED_AND_ENCRYPTED_PASSPHRASE =
11
Instance Method Summary collapse
-
#initialize(verification) ⇒ CVerification
constructor
rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity Not relevant for a case/when.
Constructor Details
#initialize(verification) ⇒ CVerification
rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity Not relevant for a case/when
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
# File 'lib/tanker/c_tanker/c_verification.rb', line 111 def initialize(verification) # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity Not relevant for a case/when super() unless verification.is_a? Tanker::Verification raise TypeError, 'Verification argument is not a Tanker::Verification' end # NOTE: Instance variables are required to keep the CStrings alive case verification when Tanker::EmailVerification self[:type] = TYPE_EMAIL self[:email_verification] = CEmailVerification.new verification.email, verification.verification_code when Tanker::PassphraseVerification @passphrase = CTanker.new_cstring verification.passphrase self[:type] = TYPE_PASSPHRASE self[:passphrase] = @passphrase when Tanker::VerificationKeyVerification @verification_key = CTanker.new_cstring verification.verification_key self[:type] = TYPE_VERIFICATION_KEY self[:verification_key] = @verification_key when Tanker::OIDCIDTokenVerification @oidc_id_token = CTanker.new_cstring verification.oidc_id_token self[:type] = TYPE_OIDC_ID_TOKEN self[:oidc_id_token] = @oidc_id_token when Tanker::PhoneNumberVerification self[:type] = TYPE_PHONE_NUMBER self[:phone_number_verification] = CPhoneNumberVerification.new verification.phone_number, verification.verification_code when Tanker::PreverifiedEmailVerification @preverified_email = CTanker.new_cstring verification.preverified_email self[:type] = TYPE_PREVERIFIED_EMAIL self[:preverified_email] = @preverified_email when Tanker::PreverifiedPhoneNumberVerification @preverified_phone_number = CTanker.new_cstring verification.preverified_phone_number self[:type] = TYPE_PREVERIFIED_PHONE_NUMBER self[:preverified_phone_number] = @preverified_phone_number when Tanker::E2ePassphraseVerification @e2e_passphrase = CTanker.new_cstring verification.e2e_passphrase self[:type] = TYPE_E2E_PASSPHRASE self[:e2e_passphrase] = @e2e_passphrase when Tanker::PreverifiedOIDCVerification @preverified_oidc = COIDCVerification.new verification.subject, verification.provider_id self[:type] = TYPE_PREVERIFIED_OIDC self[:preverified_oidc] = @preverified_oidc when Tanker::OIDCAuthorizationCodeVerification self[:type] = TYPE_OIDC_AUTHORIZATION_CODE self[:oidc_authorization_code_verification] = COIDCAuthorizationCodeVerification.new( verification.provider_id, verification., verification.state ) when Tanker::PrehashedAndEncryptedPassphraseVerification @prehashed_and_encrypted_passphrase = CTanker.new_cstring verification.prehashed_and_encrypted_passphrase self[:type] = TYPE_PREHASHED_AND_ENCRYPTED_PASSPHRASE self[:prehashed_and_encrypted_passphrase] = @prehashed_and_encrypted_passphrase else raise ArgumentError, 'Unknown Tanker::Verification type!' end self[:version] = 9 end |