| // Copyright 2017 PDFium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| |
| #include "fxjs/cjx_signaturepseudomodel.h" |
| |
| #include "fxjs/cfxjse_arguments.h" |
| #include "fxjs/cfxjse_value.h" |
| #include "xfa/fxfa/parser/cscript_signaturepseudomodel.h" |
| |
| const CJX_MethodSpec CJX_SignaturePseudoModel::MethodSpecs[] = { |
| {"verify", verifySignature_static}, |
| {"sign", sign_static}, |
| {"enumerate", enumerate_static}, |
| {"clear", clear_static}, |
| {"", nullptr}}; |
| |
| CJX_SignaturePseudoModel::CJX_SignaturePseudoModel( |
| CScript_SignaturePseudoModel* model) |
| : CJX_Object(model) { |
| DefineMethods(MethodSpecs); |
| } |
| |
| CJX_SignaturePseudoModel::~CJX_SignaturePseudoModel() {} |
| |
| void CJX_SignaturePseudoModel::verifySignature(CFXJSE_Arguments* pArguments) { |
| int32_t iLength = pArguments->GetLength(); |
| if (iLength < 1 || iLength > 4) { |
| ThrowParamCountMismatchException(L"verify"); |
| return; |
| } |
| |
| CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| if (pValue) |
| pValue->SetInteger(0); |
| } |
| |
| void CJX_SignaturePseudoModel::sign(CFXJSE_Arguments* pArguments) { |
| int32_t iLength = pArguments->GetLength(); |
| if (iLength < 3 || iLength > 7) { |
| ThrowParamCountMismatchException(L"sign"); |
| return; |
| } |
| |
| CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| if (pValue) |
| pValue->SetBoolean(false); |
| } |
| |
| void CJX_SignaturePseudoModel::enumerate(CFXJSE_Arguments* pArguments) { |
| if (pArguments->GetLength() != 0) { |
| ThrowParamCountMismatchException(L"enumerate"); |
| return; |
| } |
| return; |
| } |
| |
| void CJX_SignaturePseudoModel::clear(CFXJSE_Arguments* pArguments) { |
| int32_t iLength = pArguments->GetLength(); |
| if (iLength < 1 || iLength > 2) { |
| ThrowParamCountMismatchException(L"clear"); |
| return; |
| } |
| |
| CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| if (pValue) |
| pValue->SetBoolean(false); |
| } |