#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

/// Objective-C++ bridge exposing native C++ XChaCha20-Poly1305 routines to Swift.
@interface NativeCryptoBridge : NSObject

+ (nullable NSData *)xChaCha20Poly1305Encrypt:(NSData *)plaintext
                                          key:(NSData *)key
                                        nonce:(NSData *)nonce;

+ (nullable NSData *)xChaCha20Poly1305Decrypt:(NSData *)ciphertextWithTag
                                          key:(NSData *)key
                                        nonce:(NSData *)nonce;

+ (nullable NSData *)xChaCha20Xor:(NSData *)input
                               key:(NSData *)key
                             nonce:(NSData *)nonce;

+ (nullable NSData *)naclSharedKeyFromRawDH:(NSData *)rawDH;

@end

NS_ASSUME_NONNULL_END
