secCertificateInformation (Functionblock)

Top  Previous  Next

Architecture:

NX32L

Device support:

All

Firmware version:

1.08.00


The secCertificateInformation function retrieves information about a certificate installed on the device.

 

 

Input:

name : STRING

The name of the certificate.

 

 

Output:

status : BOOL

True if the certificate is found.

 

type : SINT

The type of certificate.

1

- A root CA certificate.

2

- A certificate chain.

 

subject : STRING

The subject string.

 

issuer : STRING

The issuer string.

 

serial : STRING

The serial number of the certificate.

 

valid_from : DINT

The time (linsec) from when the certificate is valid.

 

valid_to : DINT

After this time (linsec), the certificate is not valid.

 

key : BOOL

True if the certificate includes an encryption key.

 

 

Declaration:

FUNCTION_BLOCK secCertificateInformation;
VAR_INPUT
  name       : STRING;
END_VAR;
VAR_OUTPUT
  status     : BOOL;
  type       : SINT;
  subject   : STRING;
  issuer     : STRING;
  serial     : STRING;
  valid_from : DINT;
  valid_to   : DINT;
  key     : BOOL;
END_VAR;

 

 

Example:

INCLUDE rtcu.inc

 

VAR

  sec : secCertificateInformation;

END_VAR;

 

FUNCTION show_certificate

VAR_INPUT

  name : STRING;

END_VAR;

VAR

  str  : STRING;

END_VAR;

 

  // Get information

  sec(name := name);

 

  // Output

  DebugMsg(message := "------------------------------");

  DebugMsg(message := " Certificate [" + name + "]");

  IF sec.status THEN

    DebugFmt(message := "   type     = \1", v1 := sec.type);

    DebugMsg(message := "   subject  = [" + sec.subject + "]");

    DebugMsg(message := "   issuer   = [" + sec.issuer + "]");

    DebugMsg(message := "   serial   = [" + sec.serial + "]");

    DebugMsg(message := "   valid");

    DebugFmt(message := "     from   = \4", v4 := sec.valid_from);

    DebugFmt(message := "     to     = \4", v4 := sec.valid_to);

    DebugFmt(message := "   key      = \1", v1 := INT(sec.key));

  ELSE

    DebugMsg(message := "   Not found!");

  END_IF;

 

END_FUNCTION;