#import <Cocoa/Cocoa.h>
#include "CommonKeyDerivation.h"
#import "TestToolProtocol.h"
@interface CCDerviationTestObject : NSObject <TestToolProtocol>
{
NSString* _namePBKDF; CCPBKDFAlgorithm _algoPBKDF; NSData* _password; NSData* _salt; CCPseudoRandomAlgorithm _prf; uint _rounds; uint8_t _derivedKey[1024]; NSData* _derivedResult; NSData* _expectedResult; id<TestToolProtocol> _testObject; BOOL _testPassed;
}
@property (readonly) NSString* namePBKDF;
@property (readonly) CCPBKDFAlgorithm algoPBKDF;
@property (readonly) NSData* password;
@property (readonly) NSData* salt;
@property (readonly) CCPseudoRandomAlgorithm prf;
@property (readonly) uint rounds;
@property (readonly) NSData* derivedResult;
@property (readonly) NSData* expectedResult;
@property (readonly) id<TestToolProtocol> testObject;
@property (readonly) BOOL testPassed;
+ (NSArray *)setupPBKDFTests:(id<TestToolProtocol>)testObject;
- (id)initWithPBKDFName:(NSString *)name
withCCPBKDFAlgorithm:(CCPBKDFAlgorithm) algo
withPassword:(NSData *) password
withSalt:(NSData *) salt
withCCPseudoRandomAlgorithm:(CCPseudoRandomAlgorithm) prf
withRounds:(uint)rounds
withExpectedResult:(NSData *)expectedResult
withTestObject:(id<TestToolProtocol>)testObject;
- (void)doAssertTest:(BOOL)result errorString:(NSString *)errorStr;
- (void)runTest;
struct test_vector {
u_int rounds;
const char *pass;
const char *salt;
const char expected[32];
};
@end