String Operations

This document details the string operations supported by TFHE-rs.

clear name
fhe name
first input type
second input type
third input type

eq

FheAsciiString

FheAsciiString or ClearString

ne

FheAsciiString

FheAsciiString or ClearString

le

FheAsciiString

FheAsciiString or ClearString

ge

FheAsciiString

FheAsciiString or ClearString

lt

FheAsciiString

FheAsciiString or ClearString

gt

FheAsciiString

FheAsciiString or ClearString

len

FheAsciiString

is_empty

FheAsciiString

eq_ignore_case

FheAsciiString

FheAsciiString or ClearString

to_lowercase

FheAsciiString

to_uppercase

FheAsciiString

contains

FheAsciiString

FheAsciiString or ClearString

ends_with

FheAsciiString

FheAsciiString or ClearString

starts_with

FheAsciiString

FheAsciiString or ClearString

find

FheAsciiString

FheAsciiString or ClearString

rfind

FheAsciiString

FheAsciiString or ClearString

strip_prefix

FheAsciiString

FheAsciiString or ClearString

strip_suffix

FheAsciiString

FheAsci---iString or ClearString

concat

FheAsciiString

FheAsciiString

repeat

FheAsciiString

u16 or u32 or i32 or usize or (FheUint16, u16)

trim_end

FheAsciiString

trim_start

FheAsciiString

trim

FheAsciiString

replace

FheAsciiString

FheAsciiString

replacen

FheAsciiString

FheAsciiString or ClearString

u16 or u32 or i32 or usize or (FheUint16, u16)

The following example shows how to perform string operations:

use tfhe::prelude::*;
use tfhe::{
    generate_keys, set_server_key, ConfigBuilder, FheAsciiString, FheStringLen,
};
    
fn main() -> Result<(), Box<dyn std::error::Error>> {
    
    let config = ConfigBuilder::default().build();
    let (client_key, server_key) = generate_keys(config);
    set_server_key(server_key);
    
    let string1 = FheAsciiString::try_encrypt("tfhe-RS", &client_key).unwrap();
    let string2 = FheAsciiString::try_encrypt("TFHE-rs", &client_key).unwrap();
    let is_eq = string1.eq_ignore_case(&string2);

    assert!(is_eq.decrypt(&client_key));

    Ok(())
}

Last updated

Was this helpful?