xref: /aosp_15_r20/external/pdfium/fxjs/xfa/cjx_signaturepseudomodel.cpp (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1 // Copyright 2017 The PDFium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #include "fxjs/xfa/cjx_signaturepseudomodel.h"
8 
9 #include <vector>
10 
11 #include "fxjs/js_resources.h"
12 #include "fxjs/xfa/cfxjse_engine.h"
13 #include "fxjs/xfa/cfxjse_value.h"
14 #include "v8/include/v8-primitive.h"
15 #include "xfa/fxfa/parser/cscript_signaturepseudomodel.h"
16 
17 const CJX_MethodSpec CJX_SignaturePseudoModel::MethodSpecs[] = {
18     {"verify", verifySignature_static},
19     {"sign", sign_static},
20     {"enumerate", enumerate_static},
21     {"clear", clear_static}};
22 
CJX_SignaturePseudoModel(CScript_SignaturePseudoModel * model)23 CJX_SignaturePseudoModel::CJX_SignaturePseudoModel(
24     CScript_SignaturePseudoModel* model)
25     : CJX_Object(model) {
26   DefineMethods(MethodSpecs);
27 }
28 
29 CJX_SignaturePseudoModel::~CJX_SignaturePseudoModel() = default;
30 
DynamicTypeIs(TypeTag eType) const31 bool CJX_SignaturePseudoModel::DynamicTypeIs(TypeTag eType) const {
32   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
33 }
34 
verifySignature(CFXJSE_Engine * runtime,const std::vector<v8::Local<v8::Value>> & params)35 CJS_Result CJX_SignaturePseudoModel::verifySignature(
36     CFXJSE_Engine* runtime,
37     const std::vector<v8::Local<v8::Value>>& params) {
38   if (params.empty() || params.size() > 4)
39     return CJS_Result::Failure(JSMessage::kParamError);
40 
41   return CJS_Result::Success(runtime->NewNumber(0));
42 }
43 
sign(CFXJSE_Engine * runtime,const std::vector<v8::Local<v8::Value>> & params)44 CJS_Result CJX_SignaturePseudoModel::sign(
45     CFXJSE_Engine* runtime,
46     const std::vector<v8::Local<v8::Value>>& params) {
47   if (params.size() < 3 || params.size() > 7)
48     return CJS_Result::Failure(JSMessage::kParamError);
49 
50   return CJS_Result::Success(runtime->NewBoolean(false));
51 }
52 
enumerate(CFXJSE_Engine * runtime,const std::vector<v8::Local<v8::Value>> & params)53 CJS_Result CJX_SignaturePseudoModel::enumerate(
54     CFXJSE_Engine* runtime,
55     const std::vector<v8::Local<v8::Value>>& params) {
56   if (!params.empty())
57     return CJS_Result::Failure(JSMessage::kParamError);
58 
59   return CJS_Result::Success();
60 }
61 
clear(CFXJSE_Engine * runtime,const std::vector<v8::Local<v8::Value>> & params)62 CJS_Result CJX_SignaturePseudoModel::clear(
63     CFXJSE_Engine* runtime,
64     const std::vector<v8::Local<v8::Value>>& params) {
65   if (params.empty() || params.size() > 2)
66     return CJS_Result::Failure(JSMessage::kParamError);
67 
68   return CJS_Result::Success(runtime->NewBoolean(false));
69 }
70