How to modify narginchk in DES matlab code

3 views (last 30 days)
I have downloaded DES code from file exchange and try to modify it a bit but it gives error which I cannot figure out whats wrong with hit. Here is the part of the code
function [varargout] = DES(~,~)
%DES: Data Encryption Standard
% Encrypt/Decrypt a 64-bit message using a 64-bit key using the Feistel Network
% -------------------------------------------------------------------------
% Inputs:
input64 = '1234567890123456789012345678901234567890123456789012345678901234' ;
mode = 'ENC';
key ='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
Outputs:
% varargout{1} = output64, a 64-bit message after encryption/decryption
% varargout{2} = a 64-bit key, if a 64-bit key is not provided as an input
% -------------------------------------------------------------------------
% Demos:
0. Initialization %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 0.1 check input
%error(nargchk(1,3,nargin));
narginchk(1,3);
switch nargin
case 1
narginchk(1,3); error at this line.
>> DES
Error using DES (line 64)
Not enough input arguments.
....

Accepted Answer

Walter Roberson
Walter Roberson on 16 Nov 2019
Edited: Walter Roberson on 16 Nov 2019
You should not modify it to assign input64 and mode and key in the code. You should define the function as accepting up to 3 input variables, input64, mode and key and you should pass the desired values into the function.
If you insist on defining the variables inside the function, then comment out the narginchk line and the entire switch block with all cases.
  3 Comments
Walter Roberson
Walter Roberson on 18 Nov 2019
If you are using the FEX contribution DES then you have to pass arguments to it when you run it.
k = keygen;
msg = 'To be, or not to be!'
emsg = DES(msg, k, 'ENC');
dmsg = DES(emsg, k, 'DEC')

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!