CrypterObject enhancements

PowerBuilder 2025 R2 enhances CrypterObject with stronger encryption algorithms, modern signature standards, and broader compatibility with external systems. These improvements allow developers to build applications that meet contemporary security requirements for data protection, authentication, and compliance.

  • Symmetric encryption & decryption supports AES-GCM

    A new algorithm, AES_GCM!, has been supported in addition to AES, DES, TDES, DESX, and Blowfish.

    AES-GCM provides both confidentiality through counter-mode encryption (CTR) and integrity through the Galois Message Authentication Code (GMAC). It is recommended for applications in finance, healthcare, and other security-sensitive domains.

    • Requires OperationModeCTR!.

    • Supports key lengths of 128, 192, and 256 bits.

    • Uses a 12-byte initialization vector (IV).

    • Supports Additional Authenticated Data (AAD).

    Related syntax changes:

    • The SymmetricAlgorithm enumeration is added with a new value: AES_GCM!.

    • The SymmetricEncrypt and SymmetricDecrypt functions support a new argument: aad.

      Blob SymmetricEncrypt(SymmetricAlgorithm algorithm, Blob variable, Blob key{, OperationMode operationmode{, Blob iv{, PaddingScheme padding{, Blob aad}}}})
      Blob SymmetricDecrypt(SymmetricAlgorithm algorithm, Blob variable, Blob key{, OperationMode operationmode{, Blob iv{, PaddingScheme padding{, Blob aad}}}})
  • Asymmetric signature and verification supports extended standards and algorithms

    The AsymmetricSign and AsymmetricVerifySign functions now support multiple signature standards and hash algorithms, offering stronger security and better interoperability.

    • Signature Standards: PKCS1V15! (default), PSS!.

    • Hash Algorithms: SHA1, SHA2 family (SHA256, SHA384, SHA512), and SHA3 family (SHA3-224, 256, 384, 512).

    • Key Compatibility: Supports PB-generated keys (via AsymmetricGenerateKey) and external PKCS#8 keys.

    Related syntax changes:

    • A new enumeration SignatureStandard is added with the following values: PKCS1V15!, PSS!.

    • A new enumeration SHAAlgorithm is added with the following values: SHA1!, SHA224!, SHA256!, SHA384!, SHA512!, SHA3_224!, SHA3_256!, SHA3_384!, SHA3_512!.

    • The AsymmetricSign function supports the following enumerations: SignatureStandard, SHAAlgorithm.

      blob AsymmetricSign(AsymmetricAlgorithm algorithm, SHAAlgorithm hashtype, blob variable, blob privkey)
      blob AsymmetricSign(AsymmetricAlgorithm algorithm, SignatureStandard standard, SHAAlgorithm hashtype, blob variable, blob privkey)
    • The AsymmetricVerifySign function supports the following enumerations: SignatureStandard, SHAAlgorithm.

      Integer AsymmetricVerifySign(AsymmetricAlgorithm algorithm, SHAAlgorithm hashtype, blob variable, blob pubkey, blob sign)
      Integer AsymmetricVerifySign(AsymmetricAlgorithm algorithm, SignatureStandard standard, SHAAlgorithm hashtype, blob variable, blob pubkey, blob sign)