Index: openacs-4/packages/xotcl-core/xotcl-core.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/xotcl-core.info,v diff -u -N -r1.106.2.48 -r1.106.2.49 --- openacs-4/packages/xotcl-core/xotcl-core.info 26 Nov 2022 17:00:30 -0000 1.106.2.48 +++ openacs-4/packages/xotcl-core/xotcl-core.info 27 Feb 2023 18:33:07 -0000 1.106.2.49 @@ -10,7 +10,7 @@ t xotcl - + Gustaf Neumann XOTcl library functionality (e.g. thread handling, online documentation, Generic Form and List Classes) 2021-09-16 @@ -42,13 +42,13 @@ BSD-Style 2 - + - + Index: openacs-4/packages/xotcl-core/tcl/01-debug-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/01-debug-procs.tcl,v diff -u -N -r1.93.2.55 -r1.93.2.56 --- openacs-4/packages/xotcl-core/tcl/01-debug-procs.tcl 8 Feb 2023 19:04:28 -0000 1.93.2.55 +++ openacs-4/packages/xotcl-core/tcl/01-debug-procs.tcl 27 Feb 2023 18:33:07 -0000 1.93.2.56 @@ -129,6 +129,24 @@ } return $value } + :method type=signed {name input} { + # + # Check, if a value is a signed value, signed by + # ::security::parameter::signed. Note, that this is a converting + # checker. Therefore, call it always with "signed,convert" to + # obtain the value which was signed. + # + set pair [ns_base64urldecode $input] + if {[string is list -strict $pair] && [llength $pair] == 2} { + lassign $pair value signature + set secret [ns_config "ns/server/[ns_info server]/acs" parametersecret ""] + #ns_log notice "[list ad_verify_signature -secret $secret $value $signature]" + if {[ad_verify_signature -secret $secret $value $signature]} { + return $value + } + } + return -code error "Value '$input' of parameter $name is not properly signed" + } :method type=cr_item_of_package {name value:int32 package_id:int32} { if {![::xo::db::CrClass id_belongs_to_package -item_id $value -package_id $package_id]} { error "value '$value' of is not a valid content repository item of the required package" @@ -153,6 +171,7 @@ ::nx::Slot method type=html ::nx::Slot method type=nohtml ::nx::Slot method type=range + ::nx::Slot method type=signed ::nx::Slot method type=cr_item_of_package ::nx::Object nsfproc ::nsf::debug::call ::nx::Object nsfproc ::nsf::debug::exit